View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0006151 | DarkRadiant | General | public | 04.11.2022 22:09 | 13.01.2024 05:35 |
Reporter | Frost_Salamander | Assigned To | greebo | ||
Priority | normal | Severity | normal | Reproducibility | random |
Status | closed | Resolution | fixed | ||
Platform | PC | OS | Windows | OS Version | 10 |
Product Version | 3.5.0 | ||||
Target Version | 3.6.0 | Fixed in Version | 3.6.0 | ||
Summary | 0006151: Shader Clipboard source gets cleared on 'copy shader' operation | ||||
Description | I mentioned this in the forums, but didn't raise a bug report right away because it's difficult to reproduce: https://forums.thedarkmod.com/index.php?/topic/21638-darkradiant-350-released/&do=findComment&comment=480055 It happens reliably, just 'after a while'. Restarting DR fixes it temporarily. So I compiled DR from source with debug, and have been working with it until the problem occurred. Then I attached the debugger and had a look. It looks like what's happening is when you select a brush face, the 'face' property of the _source property in ShaderClipboard.cpp is getting set correctly, but then cleared right after by some event from MediaBrowser.cpp. However, the 'shader' property is set by the same operation, so that gets used instead during the subsequent paste operation, and that's why I don't see the scale/position of the source face applied. NOTE: I realize that the clipboard gets cleared as soon as you do a copy - this is happening after that, and after the face gets correctly set in the clipboard. The thing that is triggering the clear operation is this: https://github.com/codereader/DarkRadiant/blob/6979f499f3e740aa2fc31ea09910439a614725bc/radiant/ui/mediabrowser/MediaBrowser.cpp#L189 I've included a screenshot of the debugger that shows _source about to be cleared, and the current stack. You can see that 'face' is populated before the clear() occurs. I think that's about all I'm able to figure out on my own - if there is anything else I can try to help debug this, let me know. | ||||
Steps To Reproduce | 1. Open a new map and create 2 brushes 2. texture them with the same material, but scale them differently 3. Select the 'Media' tab in the properties window 4. Select a face on one of the brushes and do a copy shader operation 5. do a paste shader operation onto the other brush (face or entire brush) 6. Note that the shader is pasted using the default scale/position instead of the scale/position of the source face 7. Now select a different tab from the 'Media' tab (e.g. the 'entity' tab 8. repeat steps 4 and 5 9. Note the shader should now be pasted using the scale/position from the source face (expected behavior) | ||||
Additional Information | See screenshot below. | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
related to | 0006127 | new | Pick Shader via MMB not working. |
Thanks for the detailed rundown | |
I've had this happen just with some simple blocking out of an area with brushes, mainly using clipper and vertex control mode and importing the nautical merchant ship exterior prefab from the 2.11 dev builds. My first shader copy operation between 2 adjacent slanted brushes with MMB and Ctrl + MMB, 10 mins after starting and after changing the texture of the first brush via the media browser, failed to adjust texture coordinates. |
|
OK it is in fact easy to reproduce. All you need is to do is have the Media tab selected in the Properties window. If that's not selected it works as expected. I will update the steps to reproduce. | |
DarkRadiant: master 5cb3fb3b 05.11.2022 15:09 Details Diff |
0006151: Prevent feedback loops when synchronising the media browser selection to the shader clipboard |
Affected Issues 0006151 |
|
mod - radiant/ui/mediabrowser/MediaBrowser.cpp | Diff File | ||
mod - radiant/ui/mediabrowser/MediaBrowser.h | Diff File | ||
DarkRadiant: master 43ac4ef6 06.11.2022 05:05 Details Diff |
0006151: Unfocused nodes are added to the focus pool if they end up being selected by other means (programmatically or other features). |
Affected Issues 0006151 |
|
mod - radiantcore/selection/RadiantSelectionSystem.cpp | Diff File | ||
mod - test/Selection.cpp | Diff File |
Date Modified | Username | Field | Change |
---|---|---|---|
04.11.2022 22:09 | Frost_Salamander | New Issue | |
04.11.2022 22:09 | Frost_Salamander | File Added: image.png | |
04.11.2022 22:10 | Frost_Salamander | Description Updated | |
04.11.2022 22:13 | Frost_Salamander | Description Updated | |
04.11.2022 22:16 | Frost_Salamander | Description Updated | |
05.11.2022 09:17 | greebo | Status | new => acknowledged |
05.11.2022 09:17 | greebo | Note Added: 0015387 | |
05.11.2022 10:35 | Dragofer | Note Added: 0015388 | |
05.11.2022 10:35 | Dragofer | Note Edited: 0015388 | |
05.11.2022 10:35 | Dragofer | Note Edited: 0015388 | |
05.11.2022 10:38 | Dragofer | Note Edited: 0015388 | |
05.11.2022 10:40 | Dragofer | Note Edited: 0015388 | |
05.11.2022 10:40 | Frost_Salamander | Note Added: 0015389 | |
05.11.2022 10:41 | Dragofer | Note Edited: 0015388 | |
05.11.2022 10:51 | Frost_Salamander | Steps to Reproduce Updated | |
05.11.2022 12:32 | greebo | Status | acknowledged => confirmed |
05.11.2022 12:32 | greebo | Target Version | => 3.6.0 |
05.11.2022 15:08 | greebo | Assigned To | => greebo |
05.11.2022 15:08 | greebo | Status | confirmed => assigned |
05.11.2022 15:10 | greebo | Status | assigned => resolved |
05.11.2022 15:10 | greebo | Resolution | open => fixed |
05.11.2022 15:10 | greebo | Fixed in Version | => 3.6.0 |
05.11.2022 15:22 | greebo | Changeset attached | => DarkRadiant master 5cb3fb3b |
06.11.2022 05:06 | greebo | Changeset attached | => DarkRadiant master 43ac4ef6 |
09.11.2022 13:17 | Bikerdude | Relationship added | related to 0006127 |
13.01.2024 05:35 | greebo | Status | resolved => closed |