Blender  V2.59
Classes | Typedefs | Functions | Variables
node.c File Reference
#include "MEM_guardedalloc.h"
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
#include <limits.h>
#include "DNA_anim_types.h"
#include "DNA_action_types.h"
#include "DNA_node_types.h"
#include "BLI_listbase.h"
#include "RNA_access.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
#include "BKE_fcurve.h"
#include "BKE_node.h"
#include "BKE_utildefines.h"
#include "PIL_time.h"
#include "CMP_node.h"
#include "intern/CMP_util.h"
#include "SHD_node.h"
#include "TEX_node.h"
#include "intern/TEX_util.h"
#include "GPU_material.h"

Go to the source code of this file.

Classes

struct  bNodeThreadStack
struct  ThreadData

Typedefs

typedef struct bNodeThreadStack bNodeThreadStack
typedef struct ThreadData ThreadData

Functions

static bNodeTypenode_get_type (bNodeTree *ntree, int type, ID *id)
void ntreeInitTypes (bNodeTree *ntree)
void ntreeUpdateType (bNodeTree *ntree, bNodeType *ntype)
static bNodeSocketnode_add_socket_type (ListBase *lb, bNodeSocketType *stype)
static bNodeSocketnode_add_group_socket (ListBase *lb, bNodeSocket *gsock)
static void node_rem_socket (bNodeTree *ntree, ListBase *lb, bNodeSocket *sock)
static bNodeSocketverify_socket (ListBase *lb, bNodeSocketType *stype)
static bNodeSocketverify_group_socket (ListBase *lb, bNodeSocket *gsock)
static void verify_socket_list (bNodeTree *ntree, ListBase *lb, bNodeSocketType *stype_first)
static void verify_group_socket_list (bNodeTree *ntree, ListBase *lb, ListBase *glb)
void nodeVerifyType (bNodeTree *ntree, bNode *node)
void ntreeVerifyTypes (bNodeTree *ntree)
static const char * group_label (bNode *node)
void register_node_type_group (ListBase *lb)
static bNodeSocketfind_group_node_input (bNode *gnode, bNodeSocket *gsock)
static bNodeSocketfind_group_node_output (bNode *gnode, bNodeSocket *gsock)
bNodenodeMakeGroupFromSelected (bNodeTree *ntree)
void nodeGroupVerify (bNodeTree *ngroup)
void nodeGroupSocketUseFlags (bNodeTree *ngroup)
bNodenodeFindNodebyName (bNodeTree *ntree, const char *name)
int nodeFindNode (bNodeTree *ntree, bNodeSocket *sock, bNode **nodep, int *sockindex, int *in_out)
int nodeGroupUnGroup (bNodeTree *ntree, bNode *gnode)
void nodeGroupCopy (bNode *gnode)
bNodeSocketnodeGroupAddSocket (bNodeTree *ngroup, const char *name, int type, int in_out)
bNodeSocketnodeGroupExposeSocket (bNodeTree *ngroup, bNodeSocket *sock, int in_out)
void nodeGroupExposeAllSockets (bNodeTree *ngroup)
void nodeGroupRemoveSocket (bNodeTree *ngroup, bNodeSocket *gsock, int in_out)
void nodeAddSockets (bNode *node, bNodeType *ntype)
void nodeUniqueName (bNodeTree *ntree, bNode *node)
bNodenodeAddNodeType (bNodeTree *ntree, int type, bNodeTree *ngroup, ID *id)
void nodeMakeDynamicType (bNode *node)
void nodeUpdateType (bNodeTree *ntree, bNode *node, bNodeType *ntype)
bNodenodeCopyNode (struct bNodeTree *ntree, struct bNode *node)
bNodeLinknodeAddLink (bNodeTree *ntree, bNode *fromnode, bNodeSocket *fromsock, bNode *tonode, bNodeSocket *tosock)
void nodeRemLink (bNodeTree *ntree, bNodeLink *link)
void nodeRemSocketLinks (bNodeTree *ntree, bNodeSocket *sock)
bNodeTreentreeAddTree (const char *name, int type, const short is_group)
bNodeTreentreeCopyTree (bNodeTree *ntree)
void ntreeSwitchID (bNodeTree *ntree, ID *id_from, ID *id_to)
static void node_free_preview (bNode *node)
static void node_init_preview (bNode *node, int xsize, int ysize)
void ntreeInitPreview (bNodeTree *ntree, int xsize, int ysize)
static void nodeClearPreview (bNode *node)
void ntreeClearPreview (bNodeTree *ntree)
void nodeAddToPreview (bNode *node, float *col, int x, int y, int do_manage)
void nodeUnlinkNode (bNodeTree *ntree, bNode *node)
static void composit_free_node_cache (bNode *node)
void nodeFreeNode (bNodeTree *ntree, bNode *node)
void ntreeFreeTree (bNodeTree *ntree)
void ntreeFreeCache (bNodeTree *ntree)
void ntreeMakeLocal (bNodeTree *ntree)
static int ntreeHasType (bNodeTree *ntree, int type)
bNodeLinknodeFindLink (bNodeTree *ntree, bNodeSocket *from, bNodeSocket *to)
int nodeCountSocketLinks (bNodeTree *ntree, bNodeSocket *sock)
bNodenodeGetActive (bNodeTree *ntree)
bNodenodeGetActiveID (bNodeTree *ntree, short idtype)
int nodeSetActiveID (bNodeTree *ntree, short idtype, ID *id)
void nodeClearActiveID (bNodeTree *ntree, short idtype)
void nodeSetActive (bNodeTree *ntree, bNode *node)
void ntreeSocketUseFlags (bNodeTree *ntree)
static int node_recurs_check (bNode *node, bNode ***nsort)
static void ntreeSetOutput (bNodeTree *ntree)
void ntreeSolveOrder (bNodeTree *ntree)
void NodeTagChanged (bNodeTree *ntree, bNode *node)
int NodeTagIDChanged (bNodeTree *ntree, ID *id)
static bNodeStackget_socket_stack (bNodeStack *stack, bNodeSocket *sock, bNodeStack **gin)
static void node_get_stack (bNode *node, bNodeStack *stack, bNodeStack **in, bNodeStack **out, bNodeStack **gin)
static void node_group_execute (bNodeStack *stack, void *data, bNode *gnode, bNodeStack **in)
static int set_stack_indexes_default (bNode *node, int index)
static int ntree_begin_exec_tree (bNodeTree *ntree)
static int set_stack_indexes_group (bNode *node, int index)
static void composit_begin_exec (bNodeTree *ntree, bNodeStack *stack)
static void composit_end_exec (bNodeTree *ntree, bNodeStack *stack)
static void group_tag_used_outputs (bNode *gnode, bNodeStack *stack, bNodeStack **gin)
static bNodeThreadStackntreeGetThreadStack (bNodeTree *ntree, int thread)
static void ntreeReleaseThreadStack (bNodeThreadStack *nts)
static void tex_end_exec (bNodeTree *ntree)
void ntreeBeginExecTree (bNodeTree *ntree)
void ntreeEndExecTree (bNodeTree *ntree)
void ntreeExecTree (bNodeTree *ntree, void *callerdata, int thread)
static int node_only_value (bNode *node)
static void * exec_composite_node (void *node_v)
static int setExecutableNodes (bNodeTree *ntree, ThreadData *thd)
static void freeExecutableNode (bNodeTree *ntree)
static bNodegetExecutableNode (bNodeTree *ntree)
static void ntree_composite_texnode (bNodeTree *ntree, int init)
void ntreeCompositExecTree (bNodeTree *ntree, RenderData *rd, int do_preview)
bNodeTreentreeLocalize (bNodeTree *ntree)
static int node_exists (bNodeTree *ntree, bNode *testnode)
static int outsocket_exists (bNode *node, bNodeSocket *testsock)
void ntreeLocalSync (bNodeTree *localtree, bNodeTree *ntree)
void ntreeLocalMerge (bNodeTree *localtree, bNodeTree *ntree)
static void gpu_from_node_stack (ListBase *sockets, bNodeStack **ns, GPUNodeStack *gs)
static void data_from_gpu_stack (ListBase *sockets, bNodeStack **ns, GPUNodeStack *gs)
static void gpu_node_group_execute (bNodeStack *stack, GPUMaterial *mat, bNode *gnode, bNodeStack **in)
void ntreeGPUMaterialNodes (bNodeTree *ntree, GPUMaterial *mat)
void set_node_shader_lamp_loop (void(*lamp_loop_func)(ShadeInput *, ShadeResult *))
static void force_hidden_passes (bNode *node, int passflag)
void ntreeCompositForceHidden (bNodeTree *ntree, Scene *curscene)
void ntreeCompositTagRender (Scene *curscene)
static int node_animation_properties (bNodeTree *ntree, bNode *node)
int ntreeCompositTagAnimated (bNodeTree *ntree)
void ntreeCompositTagGenerators (bNodeTree *ntree)
void ntreeClearTags (bNodeTree *ntree)
int ntreeTexTagAnimated (bNodeTree *ntree)
void node_type_base (bNodeType *ntype, int type, const char *name, short nclass, short flag, struct bNodeSocketType *inputs, struct bNodeSocketType *outputs)
void node_type_init (bNodeType *ntype, void(*initfunc)(struct bNode *))
void node_type_size (struct bNodeType *ntype, int width, int minwidth, int maxwidth)
void node_type_storage (bNodeType *ntype, const char *storagename, void(*freestoragefunc)(struct bNode *), void(*copystoragefunc)(struct bNode *, struct bNode *))
void node_type_exec (struct bNodeType *ntype, void(*execfunc)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **))
void node_type_gpu (struct bNodeType *ntype, int(*gpufunc)(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out))
void node_type_label (struct bNodeType *ntype, const char *(*labelfunc)(struct bNode *))
static bNodeTypeis_nodetype_registered (ListBase *typelist, int type, ID *id)
void nodeRegisterType (ListBase *typelist, const bNodeType *ntype)
static void registerCompositNodes (ListBase *ntypelist)
static void registerShaderNodes (ListBase *ntypelist)
static void registerTextureNodes (ListBase *ntypelist)
static void remove_dynamic_typeinfos (ListBase *list)
void init_nodesystem (void)
void free_nodesystem (void)
void clear_scene_in_nodes (Main *bmain, Scene *sce)

Variables

static ListBase empty_list = {NULL, NULL}
ListBase node_all_composit = {NULL, NULL}
ListBase node_all_shaders = {NULL, NULL}
ListBase node_all_textures = {NULL, NULL}
static bNodeType ntype_group
void(* node_shader_lamp_loop )(struct ShadeInput *, struct ShadeResult *)

Detailed Description

Definition in file node.c.


Typedef Documentation

typedef struct ThreadData ThreadData

Function Documentation

void clear_scene_in_nodes ( Main bmain,
Scene sce 
)
static void composit_begin_exec ( bNodeTree ntree,
bNodeStack stack 
) [static]
static void composit_end_exec ( bNodeTree ntree,
bNodeStack stack 
) [static]
static void composit_free_node_cache ( bNode node) [static]
static void data_from_gpu_stack ( ListBase sockets,
bNodeStack **  ns,
GPUNodeStack gs 
) [static]
static void* exec_composite_node ( void *  node_v) [static]
static bNodeSocket* find_group_node_input ( bNode gnode,
bNodeSocket gsock 
) [static]
static bNodeSocket* find_group_node_output ( bNode gnode,
bNodeSocket gsock 
) [static]

Definition at line 376 of file node.c.

References ListBase::first, bNodeSocket::groupsock, bNodeSocket::next, NULL, and bNode::outputs.

Referenced by nodeMakeGroupFromSelected().

static void force_hidden_passes ( bNode node,
int  passflag 
) [static]
void free_nodesystem ( void  )

Definition at line 3632 of file node.c.

References BLI_freelistN(), and remove_dynamic_typeinfos().

Referenced by free_blender(), and main().

static void freeExecutableNode ( bNodeTree ntree) [static]
static bNodeStack* get_socket_stack ( bNodeStack stack,
bNodeSocket sock,
bNodeStack **  gin 
) [static]
static bNode* getExecutableNode ( bNodeTree ntree) [static]
static void gpu_from_node_stack ( ListBase sockets,
bNodeStack **  ns,
GPUNodeStack gs 
) [static]
static void gpu_node_group_execute ( bNodeStack stack,
GPUMaterial mat,
bNode gnode,
bNodeStack **  in 
) [static]
static const char* group_label ( bNode node) [static]

Definition at line 353 of file node.c.

References bNode::id, and ID::name.

Referenced by register_node_type_group().

static void group_tag_used_outputs ( bNode gnode,
bNodeStack stack,
bNodeStack **  gin 
) [static]
void init_nodesystem ( void  )

Definition at line 3625 of file node.c.

References registerCompositNodes(), registerShaderNodes(), and registerTextureNodes().

Referenced by main().

static bNodeType* is_nodetype_registered ( ListBase typelist,
int  type,
ID id 
) [static]

Definition at line 3421 of file node.c.

References ListBase::first, bNodeType::id, bNodeType::next, NULL, and bNodeType::type.

Referenced by nodeRegisterType().

static bNodeSocket* node_add_group_socket ( ListBase lb,
bNodeSocket gsock 
) [static]
static bNodeSocket* node_add_socket_type ( ListBase lb,
bNodeSocketType stype 
) [static]
static int node_animation_properties ( bNodeTree ntree,
bNode node 
) [static]
static int node_exists ( bNodeTree ntree,
bNode testnode 
) [static]

Definition at line 2909 of file node.c.

References ListBase::first, bNode::next, and bNodeTree::nodes.

Referenced by ntreeLocalMerge(), and ntreeLocalSync().

static void node_free_preview ( bNode node) [static]

Definition at line 1259 of file node.c.

References MEM_freeN(), NULL, bNode::preview, and bNodePreview::rect.

Referenced by nodeFreeNode(), ntreeLocalMerge(), and ntreeLocalSync().

static void node_get_stack ( bNode node,
bNodeStack stack,
bNodeStack **  in,
bNodeStack **  out,
bNodeStack **  gin 
) [static]
static bNodeType* node_get_type ( bNodeTree ntree,
int  type,
ID id 
) [static]
static void node_group_execute ( bNodeStack stack,
void *  data,
bNode gnode,
bNodeStack **  in 
) [static]
static void node_init_preview ( bNode node,
int  xsize,
int  ysize 
) [static]
static int node_only_value ( bNode node) [static]
static int node_recurs_check ( bNode node,
bNode ***  nsort 
) [static]
static void node_rem_socket ( bNodeTree ntree,
ListBase lb,
bNodeSocket sock 
) [static]
void node_type_base ( bNodeType ntype,
int  type,
const char *  name,
short  nclass,
short  flag,
struct bNodeSocketType inputs,
struct bNodeSocketType outputs 
)

Definition at line 3365 of file node.c.

References bNodeType::flag, inputs, bNodeType::inputs, bNodeType::maxwidth, bNodeType::minwidth, bNodeType::name, bNodeType::nclass, outputs, bNodeType::outputs, bNodeType::type, and bNodeType::width.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_crop(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_image(), register_node_type_cmp_invert(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_cmp_zcombine(), register_node_type_group(), register_node_type_sh_camera(), register_node_type_sh_combrgb(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_dynamic(), register_node_type_sh_geom(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_mapping(), register_node_type_sh_material(), register_node_type_sh_material_ext(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_normal(), register_node_type_sh_output(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_seprgb(), register_node_type_sh_squeeze(), register_node_type_sh_texture(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

void node_type_exec ( struct bNodeType ntype,
void(*)(void *data, struct bNode *, struct bNodeStack **, struct bNodeStack **)  execfunc 
)

Definition at line 3406 of file node.c.

References bNodeType::execfunc.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_crop(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_image(), register_node_type_cmp_invert(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_cmp_zcombine(), register_node_type_sh_camera(), register_node_type_sh_combrgb(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_geom(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_mapping(), register_node_type_sh_material(), register_node_type_sh_material_ext(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_normal(), register_node_type_sh_output(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_seprgb(), register_node_type_sh_squeeze(), register_node_type_sh_texture(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

void node_type_gpu ( struct bNodeType ntype,
int(*)(struct GPUMaterial *mat, struct bNode *node, struct GPUNodeStack *in, struct GPUNodeStack *out)  gpufunc 
)
void node_type_init ( bNodeType ntype,
void(*)(struct bNode *)  initfunc 
)

Definition at line 3384 of file node.c.

References bNodeType::initfunc.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_crop(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_diff_matte(), register_node_type_cmp_distance_matte(), register_node_type_cmp_glare(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_image(), register_node_type_cmp_invert(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_output_file(), register_node_type_cmp_rotate(), register_node_type_cmp_splitviewer(), register_node_type_cmp_tonemap(), register_node_type_cmp_valtorgb(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_geom(), register_node_type_sh_mapping(), register_node_type_sh_material(), register_node_type_sh_material_ext(), register_node_type_sh_valtorgb(), register_node_type_tex_bricks(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_image(), register_node_type_tex_output(), and register_node_type_tex_valtorgb().

void node_type_label ( struct bNodeType ntype,
const char *(*)(struct bNode *)  labelfunc 
)
void node_type_size ( struct bNodeType ntype,
int  width,
int  minwidth,
int  maxwidth 
)

Definition at line 3389 of file node.c.

References bNodeType::maxwidth, bNodeType::minwidth, and bNodeType::width.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_crop(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_image(), register_node_type_cmp_invert(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_cmp_zcombine(), register_node_type_group(), register_node_type_sh_camera(), register_node_type_sh_combrgb(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_geom(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_mapping(), register_node_type_sh_material(), register_node_type_sh_material_ext(), register_node_type_sh_math(), register_node_type_sh_mix_rgb(), register_node_type_sh_output(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_seprgb(), register_node_type_sh_squeeze(), register_node_type_sh_texture(), register_node_type_sh_valtorgb(), register_node_type_sh_value(), register_node_type_sh_vect_math(), register_node_type_tex_at(), register_node_type_tex_bricks(), register_node_type_tex_checker(), register_node_type_tex_compose(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_decompose(), register_node_type_tex_distance(), register_node_type_tex_hue_sat(), register_node_type_tex_image(), register_node_type_tex_invert(), register_node_type_tex_math(), register_node_type_tex_mix_rgb(), register_node_type_tex_output(), register_node_type_tex_rgbtobw(), register_node_type_tex_rotate(), register_node_type_tex_scale(), register_node_type_tex_texture(), register_node_type_tex_translate(), register_node_type_tex_valtonor(), register_node_type_tex_valtorgb(), and register_node_type_tex_viewer().

void node_type_storage ( bNodeType ntype,
const char *  storagename,
void(*)(struct bNode *)  freestoragefunc,
void(*)(struct bNode *, struct bNode *)  copystoragefunc 
)

Definition at line 3396 of file node.c.

References bNodeType::copystoragefunc, bNodeType::freestoragefunc, and bNodeType::storagename.

Referenced by register_node_type_cmp_alphaover(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_crop(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_diff_matte(), register_node_type_cmp_distance_matte(), register_node_type_cmp_glare(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_image(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_splitviewer(), register_node_type_cmp_tonemap(), register_node_type_cmp_valtorgb(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_sh_camera(), register_node_type_sh_curve_rgb(), register_node_type_sh_curve_vec(), register_node_type_sh_geom(), register_node_type_sh_mapping(), register_node_type_sh_math(), register_node_type_sh_squeeze(), register_node_type_sh_valtorgb(), register_node_type_sh_vect_math(), register_node_type_tex_coord(), register_node_type_tex_curve_rgb(), register_node_type_tex_curve_time(), register_node_type_tex_distance(), register_node_type_tex_image(), register_node_type_tex_math(), register_node_type_tex_output(), and register_node_type_tex_valtorgb().

bNodeLink* nodeAddLink ( bNodeTree ntree,
bNode fromnode,
bNodeSocket fromsock,
bNode tonode,
bNodeSocket tosock 
) [read]
bNode* nodeAddNodeType ( bNodeTree ntree,
int  type,
bNodeTree ngroup,
ID id 
) [read]
void nodeAddSockets ( bNode node,
bNodeType ntype 
)
void nodeAddToPreview ( bNode node,
float *  col,
int  x,
int  y,
int  do_manage 
)
void nodeClearActiveID ( bNodeTree ntree,
short  idtype 
)

Definition at line 1713 of file node.c.

References ListBase::first, bNode::flag, GS, bNode::id, ID::name, bNode::next, NODE_ACTIVE_ID, bNodeTree::nodes, and NULL.

Referenced by node_set_active().

static void nodeClearPreview ( bNode node) [static]

Definition at line 1312 of file node.c.

References MEM_allocN_len(), bNode::preview, and bNodePreview::rect.

Referenced by ntreeClearPreview().

bNode* nodeCopyNode ( struct bNodeTree ntree,
struct bNode node 
) [read]
int nodeCountSocketLinks ( bNodeTree ntree,
bNodeSocket sock 
)
bNodeLink* nodeFindLink ( bNodeTree ntree,
bNodeSocket from,
bNodeSocket to 
) [read]
int nodeFindNode ( bNodeTree ntree,
bNodeSocket sock,
bNode **  nodep,
int *  sockindex,
int *  in_out 
)
bNode* nodeFindNodebyName ( bNodeTree ntree,
const char *  name 
) [read]

Definition at line 631 of file node.c.

References BLI_findstring(), and bNodeTree::nodes.

Referenced by animchan_sync_fcurve(), and skip_fcurve_selected_data().

void nodeFreeNode ( bNodeTree ntree,
bNode node 
)
bNode* nodeGetActive ( bNodeTree ntree) [read]
bNode* nodeGetActiveID ( bNodeTree ntree,
short  idtype 
) [read]
bNodeSocket* nodeGroupAddSocket ( bNodeTree ngroup,
const char *  name,
int  type,
int  in_out 
) [read]
void nodeGroupCopy ( bNode gnode)
void nodeGroupExposeAllSockets ( bNodeTree ngroup)
bNodeSocket* nodeGroupExposeSocket ( bNodeTree ngroup,
bNodeSocket sock,
int  in_out 
) [read]
void nodeGroupRemoveSocket ( bNodeTree ngroup,
bNodeSocket gsock,
int  in_out 
)
void nodeGroupSocketUseFlags ( bNodeTree ngroup)
int nodeGroupUnGroup ( bNodeTree ntree,
bNode gnode 
)
void nodeGroupVerify ( bNodeTree ngroup)
void nodeMakeDynamicType ( bNode node)
bNode* nodeMakeGroupFromSelected ( bNodeTree ntree) [read]
void nodeRegisterType ( ListBase typelist,
const bNodeType ntype 
)
void nodeRemLink ( bNodeTree ntree,
bNodeLink link 
)
void nodeRemSocketLinks ( bNodeTree ntree,
bNodeSocket sock 
)
void nodeSetActive ( bNodeTree ntree,
bNode node 
)
int nodeSetActiveID ( bNodeTree ntree,
short  idtype,
ID id 
)
void NodeTagChanged ( bNodeTree ntree,
bNode node 
)
int NodeTagIDChanged ( bNodeTree ntree,
ID id 
)
void nodeUniqueName ( bNodeTree ntree,
bNode node 
)

Definition at line 943 of file node.c.

References BLI_uniquename(), bNode::name, and bNodeTree::nodes.

Referenced by do_versions(), nodeAddNodeType(), and nodeCopyNode().

void nodeUnlinkNode ( bNodeTree ntree,
bNode node 
)
void nodeUpdateType ( bNodeTree ntree,
bNode node,
bNodeType ntype 
)
void nodeVerifyType ( bNodeTree ntree,
bNode node 
)
static int ntree_begin_exec_tree ( bNodeTree ntree) [static]
static void ntree_composite_texnode ( bNodeTree ntree,
int  init 
) [static]
bNodeTree* ntreeAddTree ( const char *  name,
int  type,
const short  is_group 
) [read]
void ntreeBeginExecTree ( bNodeTree ntree)
void ntreeClearPreview ( bNodeTree ntree)
void ntreeClearTags ( bNodeTree ntree)
void ntreeCompositExecTree ( bNodeTree ntree,
RenderData rd,
int  do_preview 
)
void ntreeCompositForceHidden ( bNodeTree ntree,
Scene curscene 
)
int ntreeCompositTagAnimated ( bNodeTree ntree)
void ntreeCompositTagGenerators ( bNodeTree ntree)
void ntreeCompositTagRender ( Scene curscene)
bNodeTree* ntreeCopyTree ( bNodeTree ntree) [read]
void ntreeEndExecTree ( bNodeTree ntree)
void ntreeExecTree ( bNodeTree ntree,
void *  callerdata,
int  thread 
)
void ntreeFreeCache ( bNodeTree ntree)
void ntreeFreeTree ( bNodeTree ntree)
static bNodeThreadStack* ntreeGetThreadStack ( bNodeTree ntree,
int  thread 
) [static]
void ntreeGPUMaterialNodes ( bNodeTree ntree,
GPUMaterial mat 
)
static int ntreeHasType ( bNodeTree ntree,
int  type 
) [static]

Definition at line 1609 of file node.c.

References ListBase::first, bNode::next, bNodeTree::nodes, and bNode::type.

Referenced by setExecutableNodes().

void ntreeInitPreview ( bNodeTree ntree,
int  xsize,
int  ysize 
)
void ntreeInitTypes ( bNodeTree ntree)
bNodeTree* ntreeLocalize ( bNodeTree ntree) [read]
void ntreeLocalMerge ( bNodeTree localtree,
bNodeTree ntree 
)
void ntreeLocalSync ( bNodeTree localtree,
bNodeTree ntree 
)
void ntreeMakeLocal ( bNodeTree ntree)
static void ntreeReleaseThreadStack ( bNodeThreadStack nts) [static]

Definition at line 2322 of file node.c.

References bNodeThreadStack::used.

Referenced by ntreeExecTree().

static void ntreeSetOutput ( bNodeTree ntree) [static]
void ntreeSocketUseFlags ( bNodeTree ntree)
void ntreeSolveOrder ( bNodeTree ntree)
void ntreeSwitchID ( bNodeTree ntree,
ID id_from,
ID id_to 
)

Definition at line 1245 of file node.c.

References ListBase::first, bNode::id, bNode::next, and bNodeTree::nodes.

Referenced by copy_scene().

int ntreeTexTagAnimated ( bNodeTree ntree)
void ntreeUpdateType ( bNodeTree ntree,
bNodeType ntype 
)

Definition at line 139 of file node.c.

References ListBase::first, bNode::next, bNodeTree::nodes, nodeUpdateType(), and bNode::typeinfo.

void ntreeVerifyTypes ( bNodeTree ntree)

Definition at line 334 of file node.c.

References ListBase::first, bNode::next, bNodeTree::nodes, nodeVerifyType(), and ntreeInitTypes().

Referenced by lib_verify_nodetree().

static int outsocket_exists ( bNode node,
bNodeSocket testsock 
) [static]

Definition at line 2918 of file node.c.

References ListBase::first, bNodeSocket::next, and bNode::outputs.

Referenced by ntreeLocalMerge().

void register_node_type_group ( ListBase lb)
static void registerCompositNodes ( ListBase ntypelist) [static]

Definition at line 3444 of file node.c.

References register_node_type_cmp_alphaover(), register_node_type_cmp_bilateralblur(), register_node_type_cmp_blur(), register_node_type_cmp_brightcontrast(), register_node_type_cmp_channel_matte(), register_node_type_cmp_chroma_matte(), register_node_type_cmp_color_matte(), register_node_type_cmp_color_spill(), register_node_type_cmp_colorbalance(), register_node_type_cmp_combhsva(), register_node_type_cmp_combrgba(), register_node_type_cmp_combycca(), register_node_type_cmp_combyuva(), register_node_type_cmp_composite(), register_node_type_cmp_crop(), register_node_type_cmp_curve_rgb(), register_node_type_cmp_curve_time(), register_node_type_cmp_curve_vec(), register_node_type_cmp_dblur(), register_node_type_cmp_defocus(), register_node_type_cmp_diff_matte(), register_node_type_cmp_dilateerode(), register_node_type_cmp_displace(), register_node_type_cmp_distance_matte(), register_node_type_cmp_filter(), register_node_type_cmp_flip(), register_node_type_cmp_gamma(), register_node_type_cmp_glare(), register_node_type_cmp_hue_sat(), register_node_type_cmp_huecorrect(), register_node_type_cmp_idmask(), register_node_type_cmp_image(), register_node_type_cmp_invert(), register_node_type_cmp_lensdist(), register_node_type_cmp_luma_matte(), register_node_type_cmp_map_value(), register_node_type_cmp_mapuv(), register_node_type_cmp_math(), register_node_type_cmp_mix_rgb(), register_node_type_cmp_normal(), register_node_type_cmp_normalize(), register_node_type_cmp_output_file(), register_node_type_cmp_premulkey(), register_node_type_cmp_rgb(), register_node_type_cmp_rgbtobw(), register_node_type_cmp_rlayers(), register_node_type_cmp_rotate(), register_node_type_cmp_scale(), register_node_type_cmp_sephsva(), register_node_type_cmp_seprgba(), register_node_type_cmp_sepycca(), register_node_type_cmp_sepyuva(), register_node_type_cmp_setalpha(), register_node_type_cmp_splitviewer(), register_node_type_cmp_texture(), register_node_type_cmp_tonemap(), register_node_type_cmp_translate(), register_node_type_cmp_valtorgb(), register_node_type_cmp_value(), register_node_type_cmp_vecblur(), register_node_type_cmp_view_levels(), register_node_type_cmp_viewer(), register_node_type_cmp_zcombine(), and register_node_type_group().

Referenced by init_nodesystem().

static void registerShaderNodes ( ListBase ntypelist) [static]
static void registerTextureNodes ( ListBase ntypelist) [static]
static void remove_dynamic_typeinfos ( ListBase list) [static]
void set_node_shader_lamp_loop ( void(*)(ShadeInput *, ShadeResult *)  lamp_loop_func)

Definition at line 3122 of file node.c.

References node_shader_lamp_loop.

static int set_stack_indexes_default ( bNode node,
int  index 
) [static]
static int set_stack_indexes_group ( bNode node,
int  index 
) [static]
static int setExecutableNodes ( bNodeTree ntree,
ThreadData thd 
) [static]
static void tex_end_exec ( bNodeTree ntree) [static]
static bNodeSocket* verify_group_socket ( ListBase lb,
bNodeSocket gsock 
) [static]
static void verify_group_socket_list ( bNodeTree ntree,
ListBase lb,
ListBase glb 
) [static]
static bNodeSocket* verify_socket ( ListBase lb,
bNodeSocketType stype 
) [static]
static void verify_socket_list ( bNodeTree ntree,
ListBase lb,
bNodeSocketType stype_first 
) [static]

Variable Documentation

ListBase empty_list = {NULL, NULL} [static]

Definition at line 73 of file node.c.

Referenced by ntreeInitTypes().

ListBase node_all_composit = {NULL, NULL}

Definition at line 74 of file node.c.

Referenced by ED_init_node_butfuncs(), and ntreeInitTypes().

ListBase node_all_shaders = {NULL, NULL}

Definition at line 75 of file node.c.

Referenced by ED_init_node_butfuncs(), and ntreeInitTypes().

ListBase node_all_textures = {NULL, NULL}

Definition at line 76 of file node.c.

Referenced by ED_init_node_butfuncs(), and ntreeInitTypes().

void(* node_shader_lamp_loop)(struct ShadeInput *, struct ShadeResult *)

Definition at line 3120 of file node.c.

Referenced by node_shader_exec_material(), and set_node_shader_lamp_loop().

Definition at line 350 of file node.c.