Fix Shift+F5 causing False Colors to be applied twice #2877
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

The color map post-processing stage, applied when
False Colorsis enabled, is being called twice onStop Rendering (Shift+F5).This happens by
on_rendering_abort()being called and emitting asignal_rendering_abort()at:appleseed/src/appleseed/renderer/kernel/rendering/masterrenderer.cpp
Line 173 in 964c5a9
which also results in emitting
signal_rendering_failed()on:appleseed/src/appleseed.studio/mainwindow/rendering/renderingmanager.cpp
Lines 113 to 117 in 964c5a9
Thus,
slot_rendering_end()runs twice.I'm submitting a "conservative" fix, as it only prevents False Colors from being applied when a "failed" signal is emitted (other previous behavior stay the same).
However, it would be interesting to remove unnecessary computations that are being run twice. Creating a new
signal_rendering_aborted()onrenderingmanager.cppcould help splitting what should be run on "aborting" from "failing", e.g.: