View Issue Details

IDProjectCategoryView StatusLast Update
0005135DarkRadiantMap Editingpublic08.11.2020 18:35
ReporterDragofer Assigned Togreebo  
PrioritylowSeveritycrashReproducibilityalways
Status closedResolutionfixed 
OSWindowsOS Version10 
Product Version2.7.0 
Target Version2.8.0Fixed in Version2.8.0 
Summary0005135: Texture Tool: crashes on brush surfaces with texture scale 0
DescriptionIt's possible to use the Surface Inspector (hotkey s) to reduce the horizontal or vertical scale until it reaches 0, which looks very glitchy.
A mapper may make and try to correct this mistake in 2 different ways, both of which cause DR to hang indefinitely.

A) on a normally textured brush surface:
Open both Surface Inspector and Texture Tool -> reduce horizontal or vertical scale to 0 in the Surface Inspector -> undo causes DR to hang

B) on a 0-scale brush surface:
Opening the Texture Tool causes DR to hang
Steps To Reproduce1) Create a brush and give it a texture: textures/darkmod/wood/boards/wood_brown_walnut
2) Ctrl-shift-LMB select a single surface of the brush

Crash variant A:
3) Open Surface Inspector (s) and Texture Tool (ctrl alt t)
4) Use Surface Inspector to reduce horizontal scale in steps until it reaches 0
5) Ctrl + z to undo -> DR hangs

Crash variant B:
3) Open Surface Inspector (s)
4) Use Surface Inspector to reduce horizontal scale in steps until it reaches 0
5) Optional: deselect and do something else in DR
6) With the 0-scale brush surface selected, open the Texture Tool (ctrl alt t) -> DR hangs
Additional InformationFor crash variant A: the Texture Tool has to be open at the moment where the texture scale is set to 0. If the Texture Tool is only opened afterwards, no crash occurs when undoing.
Patches aren't affected, only brushes.

Maybe a decent way to fix this would be to prevent the mapper from reaching 0 scale in the first place: i.e. if the current texture scale is lower than or equal to the step size, do nothing.
TagsNo tags attached.

Activities

greebo

greebo

24.03.2020 04:30

administrator   ~0012302

The hang is gone in a20898d0. I'll look into preventing scale factors reaching 0, if that's easily possible.
greebo

greebo

24.03.2020 04:56

administrator   ~0012303

Turns out that scale values of 0 are prevented already by the code, so the brush in question doesn't really have 0 scale, it's just *very* small. => Won't change anything for the moment being

Related Changesets

DarkRadiant: master a20898d0

2020-03-24 04:28:14

greebo

Details Diff
Fix hang in 0005135: Texture Tool grid drawing algorithm might hang when drawing huge UV spaces Affected Issues
0005135
mod - radiant/textool/TexTool.cpp Diff File

Issue History

Date Modified Username Field Change
29.01.2020 16:07 Dragofer New Issue
29.01.2020 16:08 Dragofer Description Updated View Revisions
29.01.2020 16:08 Dragofer Additional Information Updated View Revisions
29.01.2020 16:13 Dragofer Additional Information Updated View Revisions
30.01.2020 03:34 greebo Status new => acknowledged
06.02.2020 15:51 Dragofer Summary Opening Texture Tool/Undoing in Texture Tool after reaching texture scale 0 on a brush surface causes crash => Texture Tool: crashes on brush surfaces with texture scale 0
24.03.2020 04:06 greebo Status acknowledged => confirmed
24.03.2020 04:26 greebo Assigned To => greebo
24.03.2020 04:26 greebo Status confirmed => assigned
24.03.2020 04:26 greebo Target Version => 2.8.0
24.03.2020 04:29 greebo Changeset attached => DarkRadiant master a20898d0
24.03.2020 04:30 greebo Note Added: 0012302
24.03.2020 04:56 greebo Status assigned => resolved
24.03.2020 04:56 greebo Resolution open => fixed
24.03.2020 04:56 greebo Fixed in Version => 2.8.0
24.03.2020 04:56 greebo Note Added: 0012303
08.11.2020 18:35 greebo Status resolved => closed