View Issue Details

IDProjectCategoryView StatusLast Update
0005410DarkRadiantGeneralpublic16.11.2020 07:18
ReporterMirceaKitsune Assigned Togreebo  
PrioritylowSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Platformx64OSLinux openSUSEOS VersionRelease
Product Version2.8.0 
Target Version2.9.0Fixed in Version2.9.0 
Summary0005410: Filtered textures aren't edited when modifying textures on the whole brush, no obvious way to tell which textures are locked
DescriptionThis one's a very minor issue, I'm only reporting it to help polish the upcoming 2.9.0 release. There's a small behavior in DR that's a bit overhand: If you a select a brush containing a filtered texture, which is possible if you're drawing it with that texture or selected it before applying the filter and making it invisible, you can resize it but can't change any of the textures on it: Opening up the Surface Inspector and trying to assign another image does nothing.
Steps To ReproduceIn this example I'll go with the Clip texture though any will do:

- Press T to open the texture browser. In its window find and select textures/common/clip, so that any new brushes you create are drawn with this texture.
- Under the Filter menu, make sure Clip Textures is enabled so brushes with this texture are normally hidden.
- Draw a new brush. It will have the Clip texture, and due to just being drawn and currently selected it will make an exception and not be filtered until you press Escape to deselect.

The problem: While this brush is selected, you can resize it or otherwise edit its geometry which is good. However if you try giving it another texture from either the Texture Browser or Surface Inspector, this won't work until you turn off the Clip Texture filter. This is a bit counter intuitive: While that filter should and does hide brushes with that texture, it shouldn't prevent you from changing a texture that you can currently see on a brush.
Additional InformationI noticed that if you give a brush multiple textures (eg: Caulk on one face and Clip on all others) then select the whole brush with Clip Textures filtered and try to assign a new texture to the brush, only the faces with Caulk will change while the faces with Clip remain unedited. This makes me wonder what would be best: On one side the filtered textures are locked and you aren't allowed to edit them which seems like the desired behavior... on the other side a texture you can see as selected doesn't change when editing the whole brush, which is overhand and goes against expectation (you may not even realize why this happens until you check your Filters).

Maybe instead it would be possible to make it more obvious that you're temporarily seeing a filtered face just because its brush is selected but can't edit that texture until you disable its filter, such as by making the selection blink or have a different color? Or instead hide the filtered faces even when the brush is selected, so the user doesn't have to wonder "which texture on this brush is currently filtered and won't change"... this would be a problem if the brush contains only filtered textures though, since then you're drawing a completely invisible box, so what we could do is just not draw the faces in cause but only the outline so just the shape of the brush can be seen there.
TagsNo tags attached.

Activities

greebo

greebo

16.11.2020 05:39

administrator   ~0012947

I can see the behaviour.
The issue also affects selected patches that carry a material that is filtered out, but are visible due their selection status.

Related Changesets

DarkRadiant: master d7bb39ec

2020-11-16 05:36:57

greebo

Details Diff
0005410: When assigning textures to the selection, also include brushes that are otherwise filtered or invisible (but are visible due to their selection status) Affected Issues
0005410
mod - libs/scene/Node.h Diff File
mod - libs/selectionlib.h Diff File
mod - radiantcore/brush/Brush.cpp Diff File
mod - radiantcore/brush/Brush.h Diff File
mod - radiantcore/brush/BrushNode.cpp Diff File
mod - radiantcore/brush/BrushNode.h Diff File
mod - radiantcore/selection/SceneWalkers.h Diff File

DarkRadiant: master de3e2aeb

2020-11-16 07:17:47

greebo

Details Diff
0005410: Unit test asserting that it's possible to assign a texture to a forcedly visible brush Affected Issues
0005410
mod - test/Makefile.am Diff File
add - test/Selection.cpp Diff File
add - test/resources/tdm/maps/primitives_with_clip_material.map Diff File
add - test/resources/tdm/materials/tdm_internal_engine.mtr Diff File
mod - tools/msvc/Tests/Tests.vcxproj Diff File
mod - tools/msvc/Tests/Tests.vcxproj.filters Diff File

Issue History

Date Modified Username Field Change
15.11.2020 14:43 MirceaKitsune New Issue
16.11.2020 05:33 greebo Status new => confirmed
16.11.2020 05:39 greebo Note Added: 0012947
16.11.2020 07:18 greebo Changeset attached => DarkRadiant master d7bb39ec
16.11.2020 07:18 greebo Changeset attached => DarkRadiant master de3e2aeb
16.11.2020 07:18 greebo Assigned To => greebo
16.11.2020 07:18 greebo Status confirmed => assigned
16.11.2020 07:18 greebo Target Version => 2.9.0
16.11.2020 07:18 greebo Status assigned => resolved
16.11.2020 07:18 greebo Resolution open => fixed
16.11.2020 07:18 greebo Fixed in Version => 2.9.0