[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47406] trunk/blender/source/blender/ compositor/nodes/COM_ViewerNode.cpp: Fix #31697: Blender crashes when using several viewer nodes in tile
Sergey Sharybin
sergey.vfx at gmail.com
Mon Jun 4 15:19:30 CEST 2012
Revision: 47406
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47406
Author: nazgul
Date: 2012-06-04 13:19:17 +0000 (Mon, 04 Jun 2012)
Log Message:
-----------
Fix #31697: Blender crashes when using several viewer nodes in tile
Issue was caused by fact that viewer node might re-size ImBuf used for
viewer node result, so if several viewer nodes are running for inputs
with different resolutions it'll result in a crash,
Now copied behavior or pre-tile compositor -- execute viewer node which
has NODE_DO_OUTPUT flag, so no several nodes would be calculated at once.
Should be pretty ok because calculation of several viewers doesn't actually
make sense because there's only one buffer they might use and it's getting
re-calculated when changing active viewer node.
Modified Paths:
--------------
trunk/blender/source/blender/compositor/nodes/COM_ViewerNode.cpp
Modified: trunk/blender/source/blender/compositor/nodes/COM_ViewerNode.cpp
===================================================================
--- trunk/blender/source/blender/compositor/nodes/COM_ViewerNode.cpp 2012-06-04 13:07:41 UTC (rev 47405)
+++ trunk/blender/source/blender/compositor/nodes/COM_ViewerNode.cpp 2012-06-04 13:19:17 UTC (rev 47406)
@@ -36,8 +36,8 @@
InputSocket *alphaSocket = this->getInputSocket(1);
Image *image = (Image*)this->getbNode()->id;
ImageUser * imageUser = (ImageUser*) this->getbNode()->storage;
- if (imageSocket->isConnected()) {
- bNode *editorNode = this->getbNode();
+ bNode *editorNode = this->getbNode();
+ if (imageSocket->isConnected() && (editorNode->flag & NODE_DO_OUTPUT)) {
ViewerOperation *viewerOperation = new ViewerOperation();
viewerOperation->setColorManagement(context->getScene()->r.color_mgt_flag & R_COLOR_MANAGEMENT);
viewerOperation->setColorPredivide(context->getScene()->r.color_mgt_flag & R_COLOR_MANAGEMENT_PREDIVIDE);
More information about the Bf-blender-cvs
mailing list