Summary: | Artifacts when opening a kra file with drop shadow in a group (Krita 4.0.0-beta1.1.appimage) | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | mvowada <freebox64> |
Component: | layer styles | Assignee: | Dmitry Kazakov <dimula73> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | halla, kde |
Priority: | NOR | Keywords: | triaged |
Version: | 4.0.0-beta.1 | ||
Target Milestone: | --- | ||
Platform: | Appimage | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/1a68ab810d6dd57c29e07e6f6b3bd738eceba62d | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
Kra file with drop shadow
Kra file with drop shadow on group layer |
Description
mvowada
2018-02-12 00:04:02 UTC
Created attachment 110685 [details] Kra file with drop shadow I cannot reproduce this anymore with a current build (there's one here: http://rempt.xs4all.nl/~boud/Krita-4.0.0-beta1-9f3212b-x86_64.appimage) and the attached .kra file. If you've got a .kra file that still shows the problem, please attach it. (In reply to Boudewijn Rempt from comment #1) > Created attachment 110685 [details] > Kra file with drop shadow > > I cannot reproduce this anymore with a current build (there's one here: > http://rempt.xs4all.nl/~boud/Krita-4.0.0-beta1-9f3212b-x86_64.appimage) and > the attached .kra file. If you've got a .kra file that still shows the > problem, please attach it. Thank you very much for the appimage link! I've checked with your file and the one I had, and I'm not able to reproduce this issue anymore. Thanks again :) Created attachment 110714 [details]
Kra file with drop shadow on group layer
Indeed, thanks for the review and appimage ! Unfortunately it is not fixed on my side : you file opens correctly, but the bug still seem to be here : 1. open bla.kra : no artifacts (neither in Krita 3.3.3) 2. put the drop shadow effect on Layer5 (group layer) instead of Layer3 3. save and re-open, artifacts are visible in both 3.3.3 and latest appimage The attached modified bla2.kra file attached should show the issue. (In reply to tkp from comment #4) > Unfortunately it is not fixed on my side > The attached modified bla2.kra file attached should show the issue. Yes, you're right. (changing the status back to "Confirmed") Git commit f17d3500db2a8336a7c20b362f0074e4e5a035ba by Dmitry Kazakov. Committed on 26/02/2018 at 11:30. Pushed by dkazakov into branch 'master'. Fix rendering of group layers with convolution-based layers styles Basically, group layers and adjustment layers depend on children and predecessors correspondingly. We should take care about that, because layer styles can also depend on that... M +33 -1 libs/image/layerstyles/kis_layer_style_projection_plane.cpp M +78 -11 libs/image/tests/kis_walkers_test.cpp M +1 -0 libs/image/tests/kis_walkers_test.h https://commits.kde.org/krita/f17d3500db2a8336a7c20b362f0074e4e5a035ba Git commit 9d2920f896c0342774cacd95d4f8a4c5c9f58329 by Dmitry Kazakov. Committed on 09/05/2019 at 14:17. Pushed by dkazakov into branch 'master'. Fix rendering of masks and layer styles on dependent nodes In Krita we have two [0] types of "dependent" nodes, that is, whose contents depends on the result of a merge of other layers. KisAdjustmentLayer depends on the result of composing all the layer below it. KisGroupLayer depends on the result of composing its children. All these layers can have filter masks and/or layer styles. To handle them, the patch introduces a term needRectForOriginal(). needRectForOriginal(rect) means "what area of layer's original device should be prepared to correct result in 'rect' of the 'final device'". Under 'final device' it may be considered projection for a layer or a final composed planes for a projection plane. What is the difference between needRectForOriginal() and needRect? needRect() defines "what area of layers below should be prepared to get correctly merged image". Obviously, group layer doesn't depend on layers below (it depends on its children) and adjustment layer's needRect also includes filter's needRect, which is not the case for needRectForOriginal(). [1] --- actually, we have three. KisCloneLayer is also "dependent", but it is not covered by this patch. Related: bug 366419 M +5 -0 libs/image/kis_abstract_projection_plane.cpp M +8 -0 libs/image/kis_abstract_projection_plane.h M +4 -1 libs/image/kis_adjustment_layer.cc M +5 -2 libs/image/kis_async_merger.cpp M +23 -2 libs/image/kis_base_rects_walker.h M +17 -0 libs/image/kis_layer.cc M +15 -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 +5 -0 libs/image/kis_mask_projection_plane.cpp M +1 -0 libs/image/kis_mask_projection_plane.h M +5 -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 +44 -18 libs/image/layerstyles/kis_layer_style_projection_plane.cpp M +3 -0 libs/image/layerstyles/kis_layer_style_projection_plane.h A +- -- libs/image/tests/data/async_merger_test/dependent_adj_mask.png A +- -- libs/image/tests/data/async_merger_test/dependent_adj_style.png A +- -- libs/image/tests/data/async_merger_test/dependent_group_mask.png A +- -- libs/image/tests/data/async_merger_test/dependent_group_mask_style.png A +- -- libs/image/tests/data/async_merger_test/dependent_group_style.png M +160 -0 libs/image/tests/kis_async_merger_test.cpp M +7 -0 libs/image/tests/kis_async_merger_test.h M +3 -2 libs/image/tests/kis_walkers_test.cpp https://invent.kde.org/kde/krita/commit/9d2920f896c0342774cacd95d4f8a4c5c9f58329 Git commit 1a68ab810d6dd57c29e07e6f6b3bd738eceba62d by Dmitry Kazakov, on behalf of Eoin O'Neill. Committed on 17/05/2021 at 07:35. Pushed by dkazakov into branch 'master'. Fix artifacts when merging multiple animated layers w/ layer styles M +6 -1 libs/image/kis_layer_utils.cpp https://invent.kde.org/graphics/krita/commit/1a68ab810d6dd57c29e07e6f6b3bd738eceba62d |