[Bf-blender-cvs] [88aa056d1ac] master: Fix: Image node alpha socket converted to operations twice

Manuel Castilla noreply at git.blender.org
Wed Jun 16 14:32:52 CEST 2021


Commit: 88aa056d1ac5155b8fa20fb36598c84837bccfc2
Author: Manuel Castilla
Date:   Wed Jun 16 14:04:24 2021 +0200
Branches: master
https://developer.blender.org/rB88aa056d1ac5155b8fa20fb36598c84837bccfc2

Fix: Image node alpha socket converted to operations twice

On selecting a multi-layer image with a combined pass, a "Combined"
socket is created and default combined pass socket "Image" is
disabled by setting `SOCK_UNAVAIL` flag. When converting into
operations, `ImageNode` converts alpha socket on finding any socket with
a combined pass without checking the flag.

Since commit rB93e2491ee724 an assertion fails when mapping sockets
twice because now map `add_new` is used.

Reviewed By: jbakker

Differential Revision: https://developer.blender.org/D11566

===================================================================

M	source/blender/compositor/nodes/COM_ImageNode.cc

===================================================================

diff --git a/source/blender/compositor/nodes/COM_ImageNode.cc b/source/blender/compositor/nodes/COM_ImageNode.cc
index f0bfda0f40e..20476144efa 100644
--- a/source/blender/compositor/nodes/COM_ImageNode.cc
+++ b/source/blender/compositor/nodes/COM_ImageNode.cc
@@ -168,7 +168,7 @@ void ImageNode::convertToOperations(NodeConverter &converter,
             if (index == 0 && operation) {
               converter.addPreview(operation->getOutputSocket());
             }
-            if (STREQ(rpass->name, RE_PASSNAME_COMBINED)) {
+            if (STREQ(rpass->name, RE_PASSNAME_COMBINED) && !(bnodeSocket->flag & SOCK_UNAVAIL)) {
               for (NodeOutput *alphaSocket : getOutputSockets()) {
                 bNodeSocket *bnodeAlphaSocket = alphaSocket->getbNodeSocket();
                 if (!STREQ(bnodeAlphaSocket->name, "Alpha")) {



More information about the Bf-blender-cvs mailing list