Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLukas Toenne <lukas.toenne@googlemail.com>2012-05-18 13:26:55 +0400
committerLukas Toenne <lukas.toenne@googlemail.com>2012-05-18 13:26:55 +0400
commitef876762628a7f4b1d411a79fa78f57b338361e2 (patch)
tree1067366a9e2843eedbd476e8ae73798ac6ac7274 /source/blender/compositor/nodes/COM_ImageNode.cpp
parentb5a6be37f1f3ab7bd3d9e27f1bc88657296c4f5c (diff)
Partial revert of r46542.
Displaying image layers with flattened names (render_layer.render_pass) can lead to extremely long socket lists, especially with older files that were used with distinct render layers before. In general the flattening of names would be preferable, but it needs a sensible way of limiting the number of displayed outputs. For now the render layer dropdown selection is the best option to ensure usability.
Diffstat (limited to 'source/blender/compositor/nodes/COM_ImageNode.cpp')
-rw-r--r--source/blender/compositor/nodes/COM_ImageNode.cpp24
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);