diff options
Diffstat (limited to 'source/blender/compositor/nodes/COM_ImageNode.cpp')
-rw-r--r-- | source/blender/compositor/nodes/COM_ImageNode.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/source/blender/compositor/nodes/COM_ImageNode.cpp b/source/blender/compositor/nodes/COM_ImageNode.cpp index cc2f5f699a5..5300d2deffc 100644 --- a/source/blender/compositor/nodes/COM_ImageNode.cpp +++ b/source/blender/compositor/nodes/COM_ImageNode.cpp @@ -71,23 +71,21 @@ void ImageNode::convertToOperations(ExecutionSystem *graph, CompositorContext * if (image && image->type==IMA_TYPE_MULTILAYER) { BKE_image_get_ibuf(image, imageuser); if (image->rr) { - OutputSocket * socket; - int index; - for (index = 0 ; index < numberOfOutputs ; index ++) { - socket = this->getOutputSocket(index); - if (socket->isConnected() || index == 0) { - bNodeSocket *bnodeSocket = socket->getbNodeSocket(); - NodeImageLayer *storage = (NodeImageLayer*)bnodeSocket->storage; - int passindex = storage->pass_index; - int layerindex = storage->layer_index; - RenderLayer *rl = (RenderLayer*)BLI_findlink(&image->rr->layers, layerindex); - if (rl) { - + RenderLayer *rl = (RenderLayer*)BLI_findlink(&image->rr->layers, imageuser->layer); + if (rl) { + OutputSocket * socket; + int index; + for (index = 0 ; index < numberOfOutputs ; index ++) { + socket = this->getOutputSocket(index); + if (socket->isConnected() || index == 0) { + bNodeSocket *bnodeSocket = socket->getbNodeSocket(); + NodeImageLayer *storage = (NodeImageLayer*)bnodeSocket->storage; + int passindex = storage->pass_index; + RenderPass *rpass = (RenderPass *)BLI_findlink(&rl->passes, passindex); if (rpass) { NodeOperation * operation = NULL; imageuser->pass = passindex; - imageuser->layer = layerindex; switch (rpass->channels) { case 1: operation = doMultilayerCheck(graph, rl, image, imageuser, framenumber, index, passindex, COM_DT_VALUE); |