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

Dmitry Kazakov <dimul...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
      Latest Commit|                            |https://invent.kde.org/grap
                   |                            |hics/krita/-/commit/bc0757f
                   |                            |08dc4c0ba69ac28c66d93b73c73
                   |                            |e3c93f
             Status|CONFIRMED                   |RESOLVED

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

Fix more cycling updates in clone/transform-masks combinations

If a layer has multiple transform masks (or any other masks with
complex need rects), we the transform mask update rect may leak
from outside-image position to the inside-image position, which
would cause the transform mask to start an async update. Hence we
cannot use the update rect position for prohibiting the transform
mask async updates.

To fix this issue we now have KisRenderPassFlags flags that are
passed to KisAsyncMerger and define is transform masks should do
any async updates. When a clone layer starts preparing hidden area
for itself, it just sets this flag and guarantees that no cycling
updates would happen.

A  +17   -0    libs/image/KisRenderPassFlags.h     [License: GPL(v2.0+)]
M  +2    -1    libs/image/kis_abstract_projection_plane.cpp
M  +2    -2    libs/image/kis_abstract_projection_plane.h
M  +25   -10   libs/image/kis_async_merger.cpp
M  +9    -0    libs/image/kis_async_merger.h
M  +3    -1    libs/image/kis_filter_mask.cpp
M  +2    -1    libs/image/kis_filter_mask.h
M  +7    -6    libs/image/kis_layer.cc
M  +6    -2    libs/image/kis_layer.h
M  +2    -2    libs/image/kis_layer_projection_plane.cpp
M  +1    -1    libs/image/kis_layer_projection_plane.h
M  +10   -7    libs/image/kis_mask.cc
M  +6    -3    libs/image/kis_mask.h
M  +2    -1    libs/image/kis_mask_projection_plane.cpp
M  +1    -1    libs/image/kis_mask_projection_plane.h
M  +4    -1    libs/image/kis_selection_mask.cpp
M  +1    -1    libs/image/kis_selection_mask.h
M  +4    -3    libs/image/kis_transform_mask.cpp
M  +2    -1    libs/image/kis_transform_mask.h
M  +3    -1    libs/image/kis_transparency_mask.cc
M  +2    -1    libs/image/kis_transparency_mask.h
M  +2    -1   
libs/image/layerstyles/kis_layer_style_filter_projection_plane.cpp
M  +1    -1    libs/image/layerstyles/kis_layer_style_filter_projection_plane.h
M  +4    -4    libs/image/layerstyles/kis_layer_style_projection_plane.cpp
M  +1    -1    libs/image/layerstyles/kis_layer_style_projection_plane.h
M  +3    -1    libs/image/lazybrush/kis_colorize_mask.cpp
M  +2    -1    libs/image/lazybrush/kis_colorize_mask.h
A  +-    --   
libs/image/tests/data/clone_layer_test/tmask_x2_source_00_initial.png
A  +-    --   
libs/image/tests/data/clone_layer_test/tmask_x2_source_10_transform_mask_initial_static.png
A  +-    --   
libs/image/tests/data/clone_layer_test/tmask_x2_source_20_final.png
M  +114  -0    libs/image/tests/kis_clone_layer_test.cpp
M  +1    -0    libs/image/tests/kis_clone_layer_test.h
M  +2    -2    libs/image/tests/kis_filter_mask_test.cpp
M  +6    -6    libs/image/tests/kis_layer_style_projection_plane_test.cpp
M  +1    -1    libs/image/tests/kis_mask_test.cpp
M  +3    -3    libs/image/tests/kis_paint_layer_test.cpp
M  +3    -3    libs/image/tests/kis_transparency_mask_test.cpp
M  +1    -1    libs/ui/widgets/kis_scratch_pad.cpp

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

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

Reply via email to