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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/grap
                   |                            |hics/krita/commit/d758626da
                   |                            |a77b02662e7b417322e1ce0cac0
                   |                            |095c

--- Comment #6 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit ba67c4155932f002951901ffb0f35725dcf78603 by Dmitry Kazakov.
Committed on 02/06/2020 at 10:06.
Pushed by dkazakov into branch 'krita/4.3'.

Fix KisSuspendProjectionUpdatesStrokeStrategy to replay refresh requests as
well

When Lod0 stroke executes in the background, all image updates should
be disabled, including fullRefreshAsync() requests.

The patch fixes artifacts when applying multiple Move Tool strokes
sequentially in LodN mode.

M  +24   -2    libs/image/kis_image.cc
M  +1    -0    libs/image/kis_image.h
M  +1    -0    libs/image/kis_image_interfaces.h
M  +9    -0    libs/image/kis_projection_updates_filter.cpp
M  +2    -0    libs/image/kis_projection_updates_filter.h
M  +6    -1    libs/image/kis_simple_update_queue.cpp
M  +2    -1    libs/image/kis_simple_update_queue.h
M  +64   -15   libs/image/kis_suspend_projection_updates_stroke_strategy.cpp
M  +2    -2    libs/image/kis_update_scheduler.cpp
M  +1    -1    libs/image/kis_update_scheduler.h

https://invent.kde.org/graphics/krita/commit/ba67c4155932f002951901ffb0f35725dcf78603

--- Comment #7 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit d758626daa77b02662e7b417322e1ce0cac0095c by Dmitry Kazakov.
Committed on 02/06/2020 at 10:06.
Pushed by dkazakov into branch 'krita/4.3'.

Fix Move Tool to work correctly with Instant Preview

There were multiple problems:

1) We couldn't search for a "node under cursor" in the GUI thread,
because Lod0 plane may be not ready yet (because currrently running
LodN stroke hasn't finished yet). Therefore, the node selection should
happen in the stroke itself.

2) It leads to the fact that the stroke can be ended without doing
any work (when no nodes are found), hence we now have
MoveStrokeStrategy::sigStrokeStartedEmpty

3) Since we don't have the list of nodes to process before the stroke
is actually started, we cannot properly decide whether we can use LodN
in MoveStrokeStrategy::createLodClone(). Therefore, we use pessimistic
approach there: if the tool uses "layer under cursor" and the image has
at least one non-lod-supporting node (e.g. a shape layer or a selection
mask), then LodN mode is disabled.

4) The patch also fixes a bug in MoveSelectionStrokeStrategy, which
caused it to return wrong handles rect in LodN mode.

M  +10   -0    libs/image/kis_layer_utils.cpp
M  +2    -0    libs/image/kis_layer_utils.h
M  +8    -0    libs/image/kis_lod_transform.h
M  +1    -0    libs/ui/CMakeLists.txt
A  +61   -0    libs/ui/tool/strokes/KisNodeSelectionRecipe.cpp     [License:
GPL (v2+)]
A  +47   -0    libs/ui/tool/strokes/KisNodeSelectionRecipe.h     [License: GPL
(v2+)]
M  +86   -29   libs/ui/tool/strokes/move_stroke_strategy.cpp
M  +36   -3    libs/ui/tool/strokes/move_stroke_strategy.h
M  +109  -53   plugins/tools/basictools/kis_tool_move.cc
M  +4    -1    plugins/tools/basictools/kis_tool_move.h
M  +12   -1   
plugins/tools/basictools/strokes/move_selection_stroke_strategy.cpp

https://invent.kde.org/graphics/krita/commit/d758626daa77b02662e7b417322e1ce0cac0095c

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

Reply via email to