https://bugs.kde.org/show_bug.cgi?id=492320

--- Comment #7 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit b3f0ad41d5a1677b8a2821a6b7e7ce16aae27cd2 by Dmitry Kazakov.
Committed on 05/09/2024 at 11:37.
Pushed by dkazakov into branch 'master'.

Fix infinite loop with combination of clone + transform-mask-on-source

Some tricky combination of transform masks and clone layers could
cause an infinite loop, e.g. this one:

+-----------------+
|root             |
|  clone_of_p1 -+ |
|  paint 2      | |
|  paint 1    <-+ |
|    transf1      |
+-----------------+

When a clone layer is updated, it may request recalculation of the
source layer in the areas outside the bounds of the image. This
outside-the-image update could cause the async regeneration of the mask.
And async regeneration of the mask could cause an update of the clone
layer, which would close the infinite loop.

M  +6    -1    libs/image/kis_transform_mask.cpp
M  +6    -1    libs/image/tests/CMakeLists.txt
A  +-    --   
libs/image/tests/data/clone_layer_test/tmask_source_00_initial.png
A  +-    --   
libs/image/tests/data/clone_layer_test/tmask_source_10_transform_mask_initial_static.png
A  +-    --    libs/image/tests/data/clone_layer_test/tmask_source_20_final.png
M  +110  -0    libs/image/tests/kis_clone_layer_test.cpp
M  +4    -0    libs/image/tests/kis_clone_layer_test.h
M  +39   -109 
plugins/tools/tool_transform2/tests/TransformStrokeStrategyTest.cpp
M  +9    -6    sdk/tests/KisDumbTransformMaskParams.cpp
A  +87   -0    sdk/tests/KisTransformMaskTestingListener.h     [License:
GPL(v2.0+)]

https://invent.kde.org/graphics/krita/-/commit/b3f0ad41d5a1677b8a2821a6b7e7ce16aae27cd2

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to