[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49399] trunk/blender/source/blender/ compositor/nodes: Fixed own regression introduced in recent compositor commit
Sergey Sharybin
sergey.vfx at gmail.com
Mon Jul 30 18:39:40 CEST 2012
Revision: 49399
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49399
Author: nazgul
Date: 2012-07-30 16:39:39 +0000 (Mon, 30 Jul 2012)
Log Message:
-----------
Fixed own regression introduced in recent compositor commit
MuteNode could be used as a replacement for other nodes when
using fast calculation or when using unknown node from blender.
Should work properly now.
Modified Paths:
--------------
trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp
trunk/blender/source/blender/compositor/nodes/COM_MuteNode.h
Modified: trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp 2012-07-30 16:07:37 UTC (rev 49398)
+++ trunk/blender/source/blender/compositor/nodes/COM_MuteNode.cpp 2012-07-30 16:39:39 UTC (rev 49399)
@@ -47,7 +47,12 @@
}
}
}
-
+
+ createDefaultOutput(graph, output);
+}
+
+void MuteNode::createDefaultOutput(ExecutionSystem *graph, OutputSocket *output)
+{
NodeOperation *operation = NULL;
switch (output->getDataType()) {
case COM_DT_VALUE:
@@ -100,7 +105,10 @@
bNode *editorNode = this->getbNode();
vector<OutputSocket *> &outputsockets = this->getOutputSockets();
- if (editorNode->typeinfo->internal_connect) {
+ /* mute node is also used for unknown nodes and couple of nodes in fast mode
+ * can't use generic routines in that case
+ */
+ if ((editorNode->flag & NODE_MUTED) && editorNode->typeinfo->internal_connect) {
vector<InputSocket *> &inputsockets = this->getInputSockets();
bNodeTree *editorTree = (bNodeTree *) context->getbNodeTree();
SocketMap socketMap;
@@ -117,7 +125,14 @@
InputSocket *fromSocket = (InputSocket *) socketMap.find(link->fromsock)->second;
OutputSocket *toSocket = (OutputSocket *) socketMap.find(link->tosock)->second;
- toSocket->relinkConnections(fromSocket->getConnection()->getFromSocket(), false);
+ if (toSocket->isConnected()) {
+ if (fromSocket->isConnected()) {
+ toSocket->relinkConnections(fromSocket->getConnection()->getFromSocket(), false);
+ }
+ else {
+ createDefaultOutput(graph, toSocket);
+ }
+ }
}
}
Modified: trunk/blender/source/blender/compositor/nodes/COM_MuteNode.h
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_MuteNode.h 2012-07-30 16:07:37 UTC (rev 49398)
+++ trunk/blender/source/blender/compositor/nodes/COM_MuteNode.h 2012-07-30 16:39:39 UTC (rev 49399)
@@ -43,6 +43,7 @@
typedef std::map<bNodeSocket *, Socket *> SocketMap;
void reconnect(ExecutionSystem *graph, OutputSocket *output);
+ void createDefaultOutput(ExecutionSystem *graph, OutputSocket *output);
template<class SocketType> void fillSocketMap(vector<SocketType *> &sockets, SocketMap &socketMap);
};
More information about the Bf-blender-cvs
mailing list