44 while (m_nodes.size()) {
45 delete m_nodes.pop_last();
57 if (
STREQ(b_sock->identifier, identifier)) {
67 if (
STREQ(b_sock->identifier, identifier)) {
79 node->setbNodeTree(b_ntree);
80 node->setInstanceKey(key);
81 node->setIsInActiveGroup(is_active_group);
90 m_links.append(
Link(fromSocket, toSocket));
112 NodeRange node_range(m_nodes.begin() + nodes_start, m_nodes.end());
123 bool is_active_group)
158 if (
output->getbNodeSocket() == b_socket) {
189 if (input->getbNodeSocket() == b_nodelink->
tosock && !input->isLinked()) {
201 bool is_active_group)
204 b_link = b_link->next) {
206 add_node(proxy, b_ntree, key, is_active_group);
213 bool is_active_group)
227 add_node(proxy, b_ntree, key, is_active_group);
239 bool is_active_group =
false;
242 b_sock_io = b_sock_io->next) {
246 add_node(proxy, b_group_tree, key, is_active_group);
258 bool is_active_group =
false;
261 b_sock_io = b_sock_io->next) {
270 add_node(proxy, b_group_tree, key, is_active_group);
290 int nodes_start = m_nodes.size();
294 b_node_io = b_node_io->next) {
310 bool is_active_group)
314 add_node(proxy, b_ntree, key, is_active_group);
const bNodeInstanceKey NODE_INSTANCE_KEY_BASE
#define NODE_CUSTOM_GROUP
bNodeInstanceKey BKE_node_instance_key(bNodeInstanceKey parent_key, const struct bNodeTree *ntree, const struct bNode *node)
Overall context of the compositor.
static void node_added(const Node *node)
static bNodeSocket * find_b_node_input(bNode *b_node, const char *identifier)
void add_bNodeTree(const CompositorContext &context, int nodes_start, bNodeTree *tree, bNodeInstanceKey parent_key)
void add_bNode(const CompositorContext &context, bNodeTree *b_ntree, bNode *b_node, bNodeInstanceKey key, bool is_active_group)
std::pair< Vector< Node * >::iterator, Vector< Node * >::iterator > NodeRange
void from_bNodeTree(const CompositorContext &context, bNodeTree *tree)
void add_proxies_group_inputs(bNode *b_node, bNode *b_node_io)
void add_link(NodeOutput *fromSocket, NodeInput *toSocket)
void add_proxies_reroute(bNodeTree *b_ntree, bNode *b_node, bNodeInstanceKey key, bool is_active_group)
void add_proxies_skip(bNodeTree *b_ntree, bNode *b_node, bNodeInstanceKey key, bool is_active_group)
NodeOutput * find_output(const NodeRange &node_range, bNodeSocket *b_socket)
void add_proxies_mute(bNodeTree *b_ntree, bNode *b_node, bNodeInstanceKey key, bool is_active_group)
static bNodeSocket * find_b_node_output(bNode *b_node, const char *identifier)
void add_bNodeLink(const NodeRange &node_range, bNodeLink *b_nodelink)
void add_proxies_group(const CompositorContext &context, bNode *b_node, bNodeInstanceKey key)
void add_proxies_group_outputs(bNode *b_node, bNode *b_node_io, bool use_buffer)
void add_node(Node *node, bNodeTree *b_ntree, bNodeInstanceKey key, bool is_active_group)
NodeOutput are sockets that can send data/input.
__kernel void ccl_constant KernelData ccl_global void ccl_global char ccl_global int ccl_global char ccl_global unsigned int ccl_global float * buffer
Node * COM_convert_bnode(bNode *b_node)
Wraps a bNode in its Node instance.
bool COM_bnode_is_fast_node(const bNode &b_node)
True if the node is considered 'fast'.
struct bNodeSocket * next
bNodeInstanceKey active_viewer_key