|
Blender
V2.93
|
#include <COM_NodeOperationBuilder.h>
Classes | |
| class | Link |
Public Member Functions | |
| NodeOperationBuilder (const CompositorContext *context, bNodeTree *b_nodetree) | |
| const CompositorContext & | context () const |
| void | convertToOperations (ExecutionSystem *system) |
| void | addOperation (NodeOperation *operation) |
| void | mapInputSocket (NodeInput *node_socket, NodeOperationInput *operation_socket) |
| void | mapOutputSocket (NodeOutput *node_socket, NodeOperationOutput *operation_socket) |
| void | addLink (NodeOperationOutput *from, NodeOperationInput *to) |
| void | removeInputLink (NodeOperationInput *to) |
| void | addPreview (NodeOperationOutput *output) |
| void | addNodeInputPreview (NodeInput *input) |
| void | registerViewer (ViewerOperation *viewer) |
| ViewerOperation * | active_viewer () const |
| const Vector< NodeOperation * > & | get_operations () const |
| const Vector< Link > & | get_links () const |
Protected Member Functions | |
| void | add_datatype_conversions () |
| void | add_operation_input_constants () |
| void | add_input_constant_value (NodeOperationInput *input, const NodeInput *node_input) |
| void | resolve_proxies () |
| void | determineResolutions () |
| Vector< NodeOperationInput * > | cache_output_links (NodeOperationOutput *output) const |
| WriteBufferOperation * | find_attached_write_buffer_operation (NodeOperationOutput *output) const |
| void | add_complex_operation_buffers () |
| void | add_input_buffers (NodeOperation *operation, NodeOperationInput *input) |
| void | add_output_buffers (NodeOperation *operation, NodeOperationOutput *output) |
| void | prune_operations () |
| void | sort_operations () |
| void | group_operations () |
| ExecutionGroup * | make_group (NodeOperation *op) |
Definition at line 45 of file COM_NodeOperationBuilder.h.
| blender::compositor::NodeOperationBuilder::NodeOperationBuilder | ( | const CompositorContext * | context, |
| bNodeTree * | b_nodetree | ||
| ) |
Definition at line 43 of file COM_NodeOperationBuilder.cc.
References context(), and blender::compositor::NodeGraph::from_bNodeTree().
|
inline |
The currently active viewer output operation
Definition at line 116 of file COM_NodeOperationBuilder.h.
Referenced by blender::compositor::NodeConverter::active_viewer().
|
protected |
Add read/write buffer operations around complex operations
Definition at line 533 of file COM_NodeOperationBuilder.cc.
References add_input_buffers(), add_output_buffers(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), and blender::compositor::DebugInfo::operation_read_write_buffer().
Referenced by convertToOperations().
|
protected |
Add datatype conversion where needed
Definition at line 252 of file COM_NodeOperationBuilder.cc.
References addLink(), addOperation(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::compositor::COM_convert_data_type(), blender::compositor::NodeOperation::get_flags(), blender::compositor::NodeOperation::getInputSocket(), blender::compositor::NodeOperation::getOutputSocket(), removeInputLink(), and blender::compositor::NodeOperationFlags::use_datatype_conversion.
Referenced by convertToOperations().
|
protected |
Definition at line 445 of file COM_NodeOperationBuilder.cc.
References addLink(), addOperation(), find_attached_write_buffer_operation(), blender::compositor::CompositorContext::getbNodeTree(), blender::compositor::NodeOperation::getInputSocket(), blender::compositor::NodeOperationInput::getLink(), blender::compositor::WriteBufferOperation::getMemoryProxy(), blender::compositor::NodeOperation::getOutputSocket(), blender::compositor::NodeOperationInput::isConnected(), output, blender::compositor::WriteBufferOperation::readResolutionFromInputSocket(), blender::compositor::ReadBufferOperation::readResolutionFromWriteBuffer(), removeInputLink(), blender::compositor::NodeOperation::setbNodeTree(), and blender::compositor::ReadBufferOperation::setMemoryProxy().
Referenced by add_complex_operation_buffers().
|
protected |
Definition at line 299 of file COM_NodeOperationBuilder.cc.
References addLink(), addOperation(), blender::compositor::Color, blender::compositor::NodeInput::getbNodeSocket(), blender::compositor::NodeOperationInput::getDataType(), blender::compositor::NodeInput::getEditorValueColor(), blender::compositor::NodeInput::getEditorValueFloat(), blender::compositor::NodeInput::getEditorValueVector(), blender::compositor::NodeOperation::getOutputSocket(), blender::compositor::SetColorOperation::setChannels(), blender::compositor::SetValueOperation::setValue(), blender::compositor::SetVectorOperation::setVector(), blender::compositor::Value, blender::compositor::Vector, zero_v3(), and zero_v4().
Referenced by add_operation_input_constants().
|
protected |
Construct a constant value operation for every unconnected input
Definition at line 280 of file COM_NodeOperationBuilder.cc.
References add_input_constant_value(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), and blender::compositor::NodeOperationInput::isConnected().
Referenced by convertToOperations().
|
protected |
Definition at line 483 of file COM_NodeOperationBuilder.cc.
References addLink(), addOperation(), BLI_assert, cache_output_links(), blender::compositor::CompositorContext::getbNodeTree(), blender::compositor::NodeOperationOutput::getDataType(), blender::compositor::NodeOperation::getInputSocket(), blender::compositor::WriteBufferOperation::getMemoryProxy(), blender::compositor::NodeOperation::getOutputSocket(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), output, blender::compositor::WriteBufferOperation::readResolutionFromInputSocket(), blender::compositor::ReadBufferOperation::readResolutionFromWriteBuffer(), removeInputLink(), blender::compositor::NodeOperation::setbNodeTree(), and blender::compositor::ReadBufferOperation::setMemoryProxy().
Referenced by add_complex_operation_buffers().
| void blender::compositor::NodeOperationBuilder::addLink | ( | NodeOperationOutput * | from, |
| NodeOperationInput * | to | ||
| ) |
Definition at line 152 of file COM_NodeOperationBuilder.cc.
References from, blender::compositor::NodeOperationInput::isConnected(), and blender::compositor::NodeOperationInput::setLink().
Referenced by add_datatype_conversions(), add_input_buffers(), add_input_constant_value(), add_output_buffers(), blender::compositor::NodeConverter::addInputColor(), blender::compositor::NodeConverter::addInputValue(), blender::compositor::NodeConverter::addInputVector(), blender::compositor::NodeConverter::addLink(), addPreview(), blender::compositor::COM_convert_resolution(), convertToOperations(), and resolve_proxies().
| void blender::compositor::NodeOperationBuilder::addNodeInputPreview | ( | NodeInput * | input | ) |
Add a preview operation for a node input
Definition at line 219 of file COM_NodeOperationBuilder.cc.
References addOperation(), blender::compositor::NodeOperation::getInputSocket(), and mapInputSocket().
Referenced by blender::compositor::NodeConverter::addNodeInputPreview().
| void blender::compositor::NodeOperationBuilder::addOperation | ( | NodeOperation * | operation | ) |
Definition at line 121 of file COM_NodeOperationBuilder.cc.
References blender::compositor::Node::getbNode(), bNode::name, blender::compositor::NodeOperation::set_id(), and blender::compositor::NodeOperation::set_name().
Referenced by add_datatype_conversions(), add_input_buffers(), add_input_constant_value(), add_output_buffers(), blender::compositor::NodeConverter::addInputColor(), blender::compositor::NodeConverter::addInputProxy(), blender::compositor::NodeConverter::addInputValue(), blender::compositor::NodeConverter::addInputVector(), addNodeInputPreview(), blender::compositor::NodeConverter::addOperation(), blender::compositor::NodeConverter::addOutputColor(), blender::compositor::NodeConverter::addOutputProxy(), blender::compositor::NodeConverter::addOutputValue(), blender::compositor::NodeConverter::addOutputVector(), addPreview(), blender::compositor::COM_convert_resolution(), and blender::compositor::NodeConverter::setInvalidOutput().
| void blender::compositor::NodeOperationBuilder::addPreview | ( | NodeOperationOutput * | output | ) |
Add a preview operation for a operation output
Definition at line 209 of file COM_NodeOperationBuilder.cc.
References addLink(), addOperation(), blender::compositor::NodeOperation::getInputSocket(), and output.
Referenced by blender::compositor::NodeConverter::addPreview().
|
protected |
Helper function to store connected inputs for replacement
Definition at line 419 of file COM_NodeOperationBuilder.cc.
References inputs, and output.
Referenced by add_output_buffers().
|
inline |
Definition at line 91 of file COM_NodeOperationBuilder.h.
Referenced by NodeOperationBuilder().
| void blender::compositor::NodeOperationBuilder::convertToOperations | ( | ExecutionSystem * | system | ) |
Definition at line 49 of file COM_NodeOperationBuilder.cc.
References blender::MultiValueMap< Key, Value >::add(), add_complex_operation_buffers(), add_datatype_conversions(), add_operation_input_constants(), addLink(), determineResolutions(), from, group_operations(), blender::Span< T >::is_empty(), blender::compositor::NodeGraph::links(), blender::MultiValueMap< Key, Value >::lookup(), node, blender::compositor::DebugInfo::node_to_operations(), blender::compositor::NodeGraph::nodes(), prune_operations(), resolve_proxies(), and blender::compositor::ExecutionSystem::set_operations().
Referenced by blender::compositor::ExecutionSystem::ExecutionSystem().
|
protected |
Calculate resolution for each operation
Definition at line 380 of file COM_NodeOperationBuilder.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::compositor::COM_convert_resolution(), blender::compositor::NodeOperation::getHeight(), blender::compositor::NodeOperation::getWidth(), blender::compositor::CompositorContext::isRendering(), and blender::compositor::None.
Referenced by convertToOperations().
|
protected |
Find a connected write buffer operation to an OpOutput
Definition at line 431 of file COM_NodeOperationBuilder.cc.
References blender::compositor::NodeOperation::get_flags(), blender::compositor::NodeOperationFlags::is_write_buffer_operation, and output.
Referenced by add_input_buffers().
Definition at line 126 of file COM_NodeOperationBuilder.h.
Referenced by blender::compositor::operator<<().
|
inline |
Definition at line 121 of file COM_NodeOperationBuilder.h.
Referenced by blender::compositor::operator<<().
|
protected |
Create execution groups
Definition at line 670 of file COM_NodeOperationBuilder.cc.
References blender::compositor::MemoryProxy::getExecutor(), blender::compositor::ReadBufferOperation::getMemoryProxy(), blender::compositor::MemoryProxy::getWriteBufferOperation(), blender::compositor::CompositorContext::isRendering(), make_group(), blender::compositor::MemoryProxy::setExecutor(), and blender::compositor::ExecutionGroup::setOutputExecutionGroup().
Referenced by convertToOperations().
|
protected |
Definition at line 659 of file COM_NodeOperationBuilder.cc.
References blender::compositor::add_group_operations_recursive(), and visited.
Referenced by group_operations().
| void blender::compositor::NodeOperationBuilder::mapInputSocket | ( | NodeInput * | node_socket, |
| NodeOperationInput * | operation_socket | ||
| ) |
Map input socket of the current node to an operation socket
Definition at line 130 of file COM_NodeOperationBuilder.cc.
References BLI_assert, and blender::compositor::NodeInput::getNode().
Referenced by blender::compositor::NodeConverter::addInputProxy(), addNodeInputPreview(), and blender::compositor::NodeConverter::mapInputSocket().
| void blender::compositor::NodeOperationBuilder::mapOutputSocket | ( | NodeOutput * | node_socket, |
| NodeOperationOutput * | operation_socket | ||
| ) |
Map output socket of the current node to an operation socket
Definition at line 143 of file COM_NodeOperationBuilder.cc.
References BLI_assert, and blender::compositor::NodeOutput::getNode().
Referenced by blender::compositor::NodeConverter::addOutputColor(), blender::compositor::NodeConverter::addOutputProxy(), blender::compositor::NodeConverter::addOutputValue(), blender::compositor::NodeConverter::addOutputVector(), blender::compositor::NodeConverter::mapOutputSocket(), and blender::compositor::NodeConverter::setInvalidOutput().
|
protected |
Remove unreachable operations
Definition at line 582 of file COM_NodeOperationBuilder.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::compositor::find_reachable_operations_recursive(), and blender::compositor::CompositorContext::isRendering().
Referenced by convertToOperations().
| void blender::compositor::NodeOperationBuilder::registerViewer | ( | ViewerOperation * | viewer | ) |
Define a viewer operation as the active output, if possible
Definition at line 229 of file COM_NodeOperationBuilder.cc.
References blender::compositor::CompositorContext::getbNodeTree(), blender::compositor::Node::getbNodeTree(), blender::compositor::Node::isInActiveGroup(), and blender::compositor::ViewerOperation::setActive().
Referenced by blender::compositor::NodeConverter::registerViewer().
| void blender::compositor::NodeOperationBuilder::removeInputLink | ( | NodeOperationInput * | to | ) |
Definition at line 164 of file COM_NodeOperationBuilder.cc.
References blender::compositor::NodeOperationInput::setLink().
Referenced by add_datatype_conversions(), add_input_buffers(), add_output_buffers(), blender::compositor::COM_convert_resolution(), and resolve_proxies().
|
protected |
Replace proxy operations with direct links
Definition at line 351 of file COM_NodeOperationBuilder.cc.
References addLink(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), from, and removeInputLink().
Referenced by convertToOperations().
|
protected |
Sort operations by link dependencies
Definition at line 626 of file COM_NodeOperationBuilder.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::compositor::sort_operations_recursive(), and visited.