Summary: | Setting blending modes/opacity/position/names of multiple output layers is not managed | ||
---|---|---|---|
Product: | [Applications] krita | Reporter: | David Tschumperlé <David.Tschumperle> |
Component: | G'Mic for Krita | Assignee: | amyspark <amy> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | amy, thetwo222 |
Priority: | NOR | ||
Version: | 5.0.0-beta5 | ||
Target Milestone: | --- | ||
Platform: | Other | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/graphics/krita/commit/37d49dc6b9144760c0d4872dda4fb61af541b6bb | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
What filter Drop Water produces
What it should produce |
Description
David Tschumperlé
2021-12-20 15:45:59 UTC
Created attachment 144719 [details]
What filter Drop Water produces
Created attachment 144720 [details]
What it should produce
Plugin comms log says:
> krita.plugins: convertFromGmicFast
> krita.plugins: Layer name: "name([unnamed] [specular spots]),mode(alpha),opacity(100)"
> krita.plugins: Detected mode: "alpha" => "normal"
> krita.plugins: Detected opacity: 100
> krita.plugins: Detected layer name: "[unnamed] [specular spots]"
> krita.plugins: pluginFinished 0
I don't see any obvious bugs here, I'll have to dig into the image conversion code.
Definitely a bug in our image conversion code. Currently, we run the G'MIC->Krita layer name parsing only if there is an existing node that is going to be overwritten (via KisImportQmicProcessingVisitor traversal). In this case, there are more output than input layers, so the previous step (KisQmicSynchronizeLayersCommand) will take care of the excess nodes... except that it never runs the name parsing step, so the appropriate layer modes are not set. While at it, I found another bug regarding Krita->G'MIC layer naming; when I implemented G'MIC's format for layer names, I actually never packed it inside the "message", so G'MIC returns nodes that use it as "[unnamed]". I'll address both bugs in the MR. Is the error related to "position" fixed? When I use a filter that outputs multiple layers like "decompose channels", it outputs the image to the upper left corner Git commit 540942d8086e32fad496780d18f76addf97cf22e by L. E. Segovia. Committed on 23/12/2021 at 16:36. Pushed by lsegovia into branch 'master'. Use the G'MIC formatted layer name for Krita->G'MIC comms Related: bug 429851 M +1 -1 plugins/extensions/qmic/kis_qmic_interface.cpp https://invent.kde.org/graphics/krita/commit/540942d8086e32fad496780d18f76addf97cf22e Git commit a1dbad405f55fd352e0d45c9df09c2bfc9abeeec by L. E. Segovia. Committed on 23/12/2021 at 16:36. Pushed by lsegovia into branch 'master'. Fix blending modes missing from G'MIC filters The layer name parsing must be applied also to excess nodes (and not only those parsed by the visitor). M +2 -0 plugins/extensions/qmic/kis_qmic_synchronize_layers_command.cpp https://invent.kde.org/graphics/krita/commit/a1dbad405f55fd352e0d45c9df09c2bfc9abeeec Git commit e003f328f73c438818ef749ec2239ddfbe81cacb by L. E. Segovia. Committed on 23/12/2021 at 16:38. Pushed by lsegovia into branch 'krita/5.0'. Use the G'MIC formatted layer name for Krita->G'MIC comms Related: bug 429851 (cherry picked from commit 540942d8086e32fad496780d18f76addf97cf22e) M +1 -1 plugins/extensions/qmic/kis_qmic_interface.cpp https://invent.kde.org/graphics/krita/commit/e003f328f73c438818ef749ec2239ddfbe81cacb Git commit 37d49dc6b9144760c0d4872dda4fb61af541b6bb by L. E. Segovia. Committed on 23/12/2021 at 16:38. Pushed by lsegovia into branch 'krita/5.0'. Fix blending modes missing from G'MIC filters The layer name parsing must be applied also to excess nodes (and not only those parsed by the visitor). (cherry picked from commit a1dbad405f55fd352e0d45c9df09c2bfc9abeeec) M +2 -0 plugins/extensions/qmic/kis_qmic_synchronize_layers_command.cpp https://invent.kde.org/graphics/krita/commit/37d49dc6b9144760c0d4872dda4fb61af541b6bb |