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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|CONFIRMED                   |RESOLVED
      Latest Commit|                            |https://invent.kde.org/grap
                   |                            |hics/krita/-/commit/75a084c
                   |                            |a7e904e1fabfd556f617c32acda
                   |                            |1e514c
         Resolution|---                         |FIXED

--- Comment #2 from Dmitry Kazakov <dimul...@gmail.com> ---
Git commit 75a084ca7e904e1fabfd556f617c32acda1e514c by Dmitry Kazakov.
Committed on 07/11/2024 at 14:55.
Pushed by dkazakov into branch 'master'.

Implement KisAbstractProjectionPlane::looseUserVisibleBounds()

The function does almost exactly the same thing that tightUserVisibleBounds()
does, but uses extent() instead of exactBounds() of the source layer as a base
for the calculation. It makes it possible to use this method in hot places,
like
change/needRect calculation the transform masks.

The patch fixes two bugs:

1) needRect of a group layer is not nullified by a transform mask attached to a
group.
After loading the layer, the group's original is empty, so we cannot use
node->original()->extent() as an interestRect for the non-affine transforms.

2) When calculating KisGroupLayer::extent() in pass-though mode we should use
tight/looseUserVisibleBounds() on the children to make sure the layer styles'
state
is taken into account. Otherwise, changing visibility of a pass-through group
containing
a layer with layer styles will cause artifacts on the canvas.

M  +5    -0    libs/image/kis_abstract_projection_plane.cpp
M  +11   -0    libs/image/kis_abstract_projection_plane.h
M  +19   -5    libs/image/kis_group_layer.cc
M  +3    -0    libs/image/kis_group_layer.h
M  +13   -2    libs/image/kis_layer.cc
M  +11   -0    libs/image/kis_layer.h
M  +5    -0    libs/image/kis_layer_projection_plane.cpp
M  +1    -0    libs/image/kis_layer_projection_plane.h
M  +7    -0    libs/image/kis_mask_projection_plane.cpp
M  +1    -0    libs/image/kis_mask_projection_plane.h
M  +17   -5    libs/image/kis_transform_mask.cpp
M  +9    -0   
libs/image/layerstyles/kis_layer_style_filter_projection_plane.cpp
M  +1    -0    libs/image/layerstyles/kis_layer_style_filter_projection_plane.h
M  +12   -0    libs/image/layerstyles/kis_layer_style_projection_plane.cpp
M  +1    -0    libs/image/layerstyles/kis_layer_style_projection_plane.h

https://invent.kde.org/graphics/krita/-/commit/75a084ca7e904e1fabfd556f617c32acda1e514c

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

Reply via email to