Changeset View
Changeset View
Standalone View
Standalone View
source/blender/compositor/nodes/COM_CryptomatteNode.cc
| Show First 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | void CryptomatteNode::input_operations_from_render_source( | ||||
| RenderResult *render_result = render ? RE_AcquireResultRead(render) : nullptr; | RenderResult *render_result = render ? RE_AcquireResultRead(render) : nullptr; | ||||
| if (!render_result) { | if (!render_result) { | ||||
| return; | return; | ||||
| } | } | ||||
| short view_layer_id = 0; | short view_layer_id = 0; | ||||
| const std::string prefix = prefix_from_node(context, node); | const std::string prefix = prefix_from_node(context, node); | ||||
| const char *view_name = context.getViewName(); | |||||
| LISTBASE_FOREACH_INDEX (ViewLayer *, view_layer, &scene->view_layers, view_layer_id) { | LISTBASE_FOREACH_INDEX (ViewLayer *, view_layer, &scene->view_layers, view_layer_id) { | ||||
| RenderLayer *render_layer = RE_GetRenderLayer(render_result, view_layer->name); | RenderLayer *render_layer = RE_GetRenderLayer(render_result, view_layer->name); | ||||
| if (render_layer) { | if (render_layer) { | ||||
| LISTBASE_FOREACH (RenderPass *, render_pass, &render_layer->passes) { | LISTBASE_FOREACH (RenderPass *, render_pass, &render_layer->passes) { | ||||
| if (view_name && !STREQ(render_pass->view, view_name)) { | |||||
| continue; | |||||
| } | |||||
| const std::string combined_name = combined_layer_pass_name(render_layer, render_pass); | const std::string combined_name = combined_layer_pass_name(render_layer, render_pass); | ||||
| if (blender::StringRef(combined_name).startswith(prefix)) { | if (blender::StringRef(combined_name).startswith(prefix)) { | ||||
| RenderLayersProg *op = new RenderLayersProg( | RenderLayersProg *op = new RenderLayersProg( | ||||
| render_pass->name, DataType::Color, render_pass->channels); | render_pass->name, DataType::Color, render_pass->channels); | ||||
| op->setScene(scene); | op->setScene(scene); | ||||
| op->setLayerId(view_layer_id); | op->setLayerId(view_layer_id); | ||||
| op->setRenderData(context.getRenderData()); | op->setRenderData(context.getRenderData()); | ||||
| op->setViewName(context.getViewName()); | op->setViewName(view_name); | ||||
| r_input_operations.append(op); | r_input_operations.append(op); | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| RE_ReleaseResult(render); | RE_ReleaseResult(render); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 132 Lines • Show Last 20 Lines | |||||