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.