27 #include "node_util.h"
30 #include "RNA_prototypes.h"
35 #ifdef WITH_COMPOSITOR
71 sock->cache =
nullptr;
89 while (
node !=
nullptr) {
93 local_node->original =
node;
101 local_node->id = (
ID *)
node->id;
104 local_node->id =
nullptr;
110 local_node = local_node->next;
135 if (orig_node->storage) {
145 orig_socket->cache = lsock->
cache;
146 lsock->
cache =
nullptr;
147 orig_socket =
nullptr;
185 strcpy(tt->
idname,
"CompositorNodeTree");
187 tt->
ui_icon = ICON_NODE_COMPOSITING;
210 const char *view_name)
212 #ifdef WITH_COMPOSITOR
225 if (
ntree ==
nullptr) {
244 sce_iter = (
Scene *)sce_iter->id.next) {
245 if (sce_iter->nodetree) {
262 if (
ntree ==
nullptr) {
struct Scene * CTX_data_scene(const bContext *C)
void BKE_image_merge(struct Main *bmain, struct Image *dest, struct Image *source)
void ntreeTypeAdd(struct bNodeTreeType *nt)
#define NODE_CLASS_OUTPUT
#define CMP_NODE_COMPOSITE
#define CMP_NODE_SPLITVIEWER
#define NODE_CLASS_INTERFACE
#define NODE_CLASS_CONVERTER
#define CMP_NODE_MOVIEDISTORTION
void(* bNodeClassCallback)(void *calldata, int nclass, const char *name)
struct bNode * nodeFindNodebyName(struct bNodeTree *ntree, const char *name)
#define NODE_CLASS_DISTORT
void BKE_node_preview_merge_tree(struct bNodeTree *to_ntree, struct bNodeTree *from_ntree, bool remove_old)
bool nodeIsStaticSocketType(const struct bNodeSocketType *stype)
void ntreeSetOutput(struct bNodeTree *ntree)
struct bNodeSocket * nodeFindSocket(const struct bNode *node, eNodeSocketInOut in_out, const char *identifier)
#define NODE_CLASS_OP_VECTOR
#define NODE_CLASS_LAYOUT
#define NODE_CLASS_OP_COLOR
#define NODE_CLASS_OP_FILTER
#define CMP_NODE_R_LAYERS
void BKE_ntree_update_tag_node_property(struct bNodeTree *ntree, struct bNode *node)
void BKE_ntree_update_main(struct Main *bmain, struct NodeTreeUpdateExtraParams *params)
struct MovieDistortion * BKE_tracking_distortion_copy(struct MovieDistortion *distortion)
void BKE_tracking_distortion_free(struct MovieDistortion *distortion)
#define LISTBASE_FOREACH(type, var, list)
void COM_execute(RenderData *render_data, Scene *scene, bNodeTree *node_tree, int rendering, const char *view_name)
The main method that is used to execute the compositor tree. It can be executed during editing (blenk...
void ntree_update_reroute_nodes(bNodeTree *ntree)
void node_cmp_rlayers_outputs(bNodeTree *ntree, bNode *node)
static void foreach_nodeclass(Scene *UNUSED(scene), void *calldata, bNodeClassCallback func)
static bool composite_node_tree_socket_type_valid(bNodeTreeType *UNUSED(ntreetype), bNodeSocketType *socket_type)
static void composite_node_add_init(bNodeTree *UNUSED(bnodetree), bNode *bnode)
static void free_node_cache(bNodeTree *UNUSED(ntree), bNode *node)
void ntreeCompositTagRender(Scene *scene)
static void local_merge(Main *bmain, bNodeTree *localtree, bNodeTree *ntree)
static void localize(bNodeTree *localtree, bNodeTree *ntree)
static void update(bNodeTree *ntree)
bNodeTreeType * ntreeType_Composite
void ntreeCompositUpdateRLayers(bNodeTree *ntree)
void ntreeCompositClearTags(bNodeTree *ntree)
static void free_cache(bNodeTree *ntree)
static void composite_get_from_context(const bContext *C, bNodeTreeType *UNUSED(treetype), bNodeTree **r_ntree, ID **r_id, ID **r_from)
void register_node_tree_type_cmp()
void ntreeCompositExecTree(Scene *scene, bNodeTree *ntree, RenderData *rd, int rendering, int do_preview, const char *view_name)
struct bNodeTree * nodetree
struct bNodeSocket * next
void(* free_node_cache)(struct bNodeTree *ntree, struct bNode *node)
void(* update)(struct bNodeTree *ntree)
void(* local_merge)(struct Main *bmain, struct bNodeTree *localtree, struct bNodeTree *ntree)
void(* get_from_context)(const struct bContext *C, struct bNodeTreeType *ntreetype, struct bNodeTree **r_ntree, struct ID **r_id, struct ID **r_from)
void(* free_cache)(struct bNodeTree *ntree)
void(* localize)(struct bNodeTree *localtree, struct bNodeTree *ntree)
bool(* valid_socket_type)(struct bNodeTreeType *ntreetype, struct bNodeSocketType *socket_type)
void(* foreach_nodeclass)(struct Scene *scene, void *calldata, bNodeClassCallback func)
void(* node_add_init)(struct bNodeTree *ntree, struct bNode *bnode)
struct bNodeType * typeinfo