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

--- Comment #10 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit 1d1159b5eaafed77f0d3f86fcf54289f3c1abe9c by Dmitry Kazakov.
Committed on 05/09/2024 at 11:45.
Pushed by dkazakov into branch 'krita/5.2'.

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/1d1159b5eaafed77f0d3f86fcf54289f3c1abe9c

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

Reply via email to