diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/makesdna/DNA_node_types.h | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/makesdna/DNA_node_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 1611 |
1 files changed, 804 insertions, 807 deletions
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 0f06aed8bca..905cd4764ad 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -51,301 +51,301 @@ struct uiBlock; #define NODE_MAXSTR 64 typedef struct bNodeStack { - float vec[4]; - float min, max; - void *data; - /** When input has link, tagged before executing. */ - short hasinput; - /** When output is linked, tagged before executing. */ - short hasoutput; - /** Type of data pointer. */ - short datatype; - /** Type of socket stack comes from, to remap linking different sockets. */ - short sockettype; - /** Data is a copy of external data (no freeing). */ - short is_copy; - /** Data is used by external nodes (no freeing). */ - short external; - char _pad[4]; + float vec[4]; + float min, max; + void *data; + /** When input has link, tagged before executing. */ + short hasinput; + /** When output is linked, tagged before executing. */ + short hasoutput; + /** Type of data pointer. */ + short datatype; + /** Type of socket stack comes from, to remap linking different sockets. */ + short sockettype; + /** Data is a copy of external data (no freeing). */ + short is_copy; + /** Data is used by external nodes (no freeing). */ + short external; + char _pad[4]; } bNodeStack; /* ns->datatype, shadetree only */ -#define NS_OSA_VECTORS 1 -#define NS_OSA_VALUES 2 +#define NS_OSA_VECTORS 1 +#define NS_OSA_VALUES 2 /* node socket/node socket type -b conversion rules */ -#define NS_CR_CENTER 0 -#define NS_CR_NONE 1 -#define NS_CR_FIT_WIDTH 2 -#define NS_CR_FIT_HEIGHT 3 -#define NS_CR_FIT 4 -#define NS_CR_STRETCH 5 +#define NS_CR_CENTER 0 +#define NS_CR_NONE 1 +#define NS_CR_FIT_WIDTH 2 +#define NS_CR_FIT_HEIGHT 3 +#define NS_CR_FIT 4 +#define NS_CR_STRETCH 5 typedef struct bNodeSocket { - struct bNodeSocket *next, *prev, *new_sock; - - /** User-defined properties. */ - IDProperty *prop; - - /** Unique identifier for mapping. */ - char identifier[64]; - - /** MAX_NAME. */ - char name[64]; - - /* XXX deprecated, only used for the Image and OutputFile nodes, - * should be removed at some point. - */ - /** Custom storage. */ - void *storage; - - short type, flag; - /** Max. number of links. */ - short limit; - /** Input/output type. */ - short in_out; - /** Runtime type information. */ - struct bNodeSocketType *typeinfo; - /** Runtime type identifier. */ - char idname[64]; - - float locx, locy; - - /** Default input value used for unlinked sockets. */ - void *default_value; - - /* execution data */ - /** Local stack index. */ - short stack_index; - /* XXX deprecated, kept for forward compatibility */ - short stack_type DNA_DEPRECATED; - char draw_shape; - char _pad[3]; - - /** Cached data from execution. */ - void *cache; - - /* internal data to retrieve relations and groups - * DEPRECATED, now uses the generic identifier string instead - */ - /** Group socket identifiers, to find matching pairs after reading files. */ - int own_index DNA_DEPRECATED; - /* XXX deprecated, only used for restoring old group node links */ - int to_index DNA_DEPRECATED; - /* XXX deprecated, still forward compatible since verification - * restores pointer from matching own_index. */ - struct bNodeSocket *groupsock DNA_DEPRECATED; - - /** A link pointer, set in ntreeUpdateTree. */ - struct bNodeLink *link; - - /* XXX deprecated, socket input values are stored in default_value now. - * kept for forward compatibility */ - /** Custom data for inputs, only UI writes in this. */ - bNodeStack ns DNA_DEPRECATED; + struct bNodeSocket *next, *prev, *new_sock; + + /** User-defined properties. */ + IDProperty *prop; + + /** Unique identifier for mapping. */ + char identifier[64]; + + /** MAX_NAME. */ + char name[64]; + + /* XXX deprecated, only used for the Image and OutputFile nodes, + * should be removed at some point. + */ + /** Custom storage. */ + void *storage; + + short type, flag; + /** Max. number of links. */ + short limit; + /** Input/output type. */ + short in_out; + /** Runtime type information. */ + struct bNodeSocketType *typeinfo; + /** Runtime type identifier. */ + char idname[64]; + + float locx, locy; + + /** Default input value used for unlinked sockets. */ + void *default_value; + + /* execution data */ + /** Local stack index. */ + short stack_index; + /* XXX deprecated, kept for forward compatibility */ + short stack_type DNA_DEPRECATED; + char draw_shape; + char _pad[3]; + + /** Cached data from execution. */ + void *cache; + + /* internal data to retrieve relations and groups + * DEPRECATED, now uses the generic identifier string instead + */ + /** Group socket identifiers, to find matching pairs after reading files. */ + int own_index DNA_DEPRECATED; + /* XXX deprecated, only used for restoring old group node links */ + int to_index DNA_DEPRECATED; + /* XXX deprecated, still forward compatible since verification + * restores pointer from matching own_index. */ + struct bNodeSocket *groupsock DNA_DEPRECATED; + + /** A link pointer, set in ntreeUpdateTree. */ + struct bNodeLink *link; + + /* XXX deprecated, socket input values are stored in default_value now. + * kept for forward compatibility */ + /** Custom data for inputs, only UI writes in this. */ + bNodeStack ns DNA_DEPRECATED; } bNodeSocket; /* sock->type */ typedef enum eNodeSocketDatatype { - SOCK_CUSTOM = -1, /* socket has no integer type */ - SOCK_FLOAT = 0, - SOCK_VECTOR = 1, - SOCK_RGBA = 2, - SOCK_SHADER = 3, - SOCK_BOOLEAN = 4, - __SOCK_MESH = 5, /* deprecated */ - SOCK_INT = 6, - SOCK_STRING = 7, + SOCK_CUSTOM = -1, /* socket has no integer type */ + SOCK_FLOAT = 0, + SOCK_VECTOR = 1, + SOCK_RGBA = 2, + SOCK_SHADER = 3, + SOCK_BOOLEAN = 4, + __SOCK_MESH = 5, /* deprecated */ + SOCK_INT = 6, + SOCK_STRING = 7, } eNodeSocketDatatype; /* socket shape */ typedef enum eNodeSocketDrawShape { - SOCK_DRAW_SHAPE_CIRCLE = 0, - SOCK_DRAW_SHAPE_SQUARE = 1, - SOCK_DRAW_SHAPE_DIAMOND = 2, + SOCK_DRAW_SHAPE_CIRCLE = 0, + SOCK_DRAW_SHAPE_SQUARE = 1, + SOCK_DRAW_SHAPE_DIAMOND = 2, } eNodeSocketDrawShape; /* socket side (input/output) */ typedef enum eNodeSocketInOut { - SOCK_IN = 1, - SOCK_OUT = 2, + SOCK_IN = 1, + SOCK_OUT = 2, } eNodeSocketInOut; /* sock->flag, first bit is select */ typedef enum eNodeSocketFlag { - /** hidden is user defined, to hide unused */ - SOCK_HIDDEN = (1 << 1), - /** for quick check if socket is linked */ - SOCK_IN_USE = (1 << 2), - /** unavailable is for dynamic sockets */ - SOCK_UNAVAIL = (1 << 3), - // /** DEPRECATED dynamic socket (can be modified by user) */ - // SOCK_DYNAMIC = (1 << 4), - // /** DEPRECATED group socket should not be exposed */ - // SOCK_INTERNAL = (1 << 5), - /** socket collapsed in UI */ - SOCK_COLLAPSED = (1 << 6), - /** hide socket value, if it gets auto default */ - SOCK_HIDE_VALUE = (1 << 7), - /** socket hidden automatically, to distinguish from manually hidden */ - SOCK_AUTO_HIDDEN__DEPRECATED = (1 << 8), - SOCK_NO_INTERNAL_LINK = (1 << 9), + /** hidden is user defined, to hide unused */ + SOCK_HIDDEN = (1 << 1), + /** for quick check if socket is linked */ + SOCK_IN_USE = (1 << 2), + /** unavailable is for dynamic sockets */ + SOCK_UNAVAIL = (1 << 3), + // /** DEPRECATED dynamic socket (can be modified by user) */ + // SOCK_DYNAMIC = (1 << 4), + // /** DEPRECATED group socket should not be exposed */ + // SOCK_INTERNAL = (1 << 5), + /** socket collapsed in UI */ + SOCK_COLLAPSED = (1 << 6), + /** hide socket value, if it gets auto default */ + SOCK_HIDE_VALUE = (1 << 7), + /** socket hidden automatically, to distinguish from manually hidden */ + SOCK_AUTO_HIDDEN__DEPRECATED = (1 << 8), + SOCK_NO_INTERNAL_LINK = (1 << 9), } eNodeSocketFlag; /* limit data in bNode to what we want to see saved? */ typedef struct bNode { - struct bNode *next, *prev, *new_node; - - /** User-defined properties. */ - IDProperty *prop; - - /** Runtime type information. */ - struct bNodeType *typeinfo; - /** Runtime type identifier. */ - char idname[64]; - - /** MAX_NAME. */ - char name[64]; - int flag; - short type; - char _pad[2]; - /** Both for dependency and sorting. */ - short done, level; - /** Lasty: check preview render status, menunr: browse ID blocks. */ - short lasty, menunr; - /** For groupnode, offset in global caller stack. */ - short stack_index; - /** Number of this node in list, used for UI exec events. */ - short nr; - /** Custom user-defined color. */ - float color[3]; - - ListBase inputs, outputs; - /** Parent node. */ - struct bNode *parent; - /** Optional link to libdata. */ - struct ID *id; - /** Custom data, must be struct, for storage in file. */ - void *storage; - /** The original node in the tree (for localized tree). */ - struct bNode *original; - /** List of cached internal links (input to output), for muted nodes and operators. */ - ListBase internal_links; - - /** Root offset for drawing (parent space). */ - float locx, locy; - /** Node custom width and height. */ - float width, height; - /** Node width if hidden. */ - float miniwidth; - /** Additional offset from loc. */ - float offsetx, offsety; - /** Initial locx for insert offset animation. */ - float anim_init_locx; - /** Offset that will be added to locx for insert offset animation. */ - float anim_ofsx; - - /** Update flags. */ - int update; - - /** Custom user-defined label, MAX_NAME. */ - char label[64]; - /** To be abused for buttons. */ - short custom1, custom2; - float custom3, custom4; - - /** Need_exec is set as UI execution event, exec is flag during exec. */ - short need_exec, exec; - /** Optional extra storage for use in thread (read only then!). */ - void *threaddata; - /** Entire boundbox (worldspace). */ - rctf totr; - /** Optional buttons area. */ - rctf butr; - /** Optional preview area. */ - rctf prvr; - /* XXX TODO - * Node totr size depends on the prvr size, which in turn is determined from preview size. - * In earlier versions bNodePreview was stored directly in nodes, but since now there can be - * multiple instances using different preview images it is possible that required node size varies between instances. - * preview_xsize, preview_ysize defines a common reserved size for preview rect for now, - * could be replaced by more accurate node instance drawing, but that requires removing totr from DNA - * and replacing all uses with per-instance data. - */ - /** Reserved size of the preview rect. */ - short preview_xsize, preview_ysize; - /** Used at runtime when going through the tree. Initialize before use. */ - short tmp_flag; - char _pad2[2]; - /** Runtime during drawing. */ - struct uiBlock *block; - - /** - * XXX: eevee only, id of screen space reflection layer, - * needs to be a float to feed GPU_uniform. - */ - float ssr_id; - /** - * XXX: eevee only, id of screen subsurface scatter layer, - * needs to be a float to feed GPU_uniform. - */ - float sss_id; + struct bNode *next, *prev, *new_node; + + /** User-defined properties. */ + IDProperty *prop; + + /** Runtime type information. */ + struct bNodeType *typeinfo; + /** Runtime type identifier. */ + char idname[64]; + + /** MAX_NAME. */ + char name[64]; + int flag; + short type; + char _pad[2]; + /** Both for dependency and sorting. */ + short done, level; + /** Lasty: check preview render status, menunr: browse ID blocks. */ + short lasty, menunr; + /** For groupnode, offset in global caller stack. */ + short stack_index; + /** Number of this node in list, used for UI exec events. */ + short nr; + /** Custom user-defined color. */ + float color[3]; + + ListBase inputs, outputs; + /** Parent node. */ + struct bNode *parent; + /** Optional link to libdata. */ + struct ID *id; + /** Custom data, must be struct, for storage in file. */ + void *storage; + /** The original node in the tree (for localized tree). */ + struct bNode *original; + /** List of cached internal links (input to output), for muted nodes and operators. */ + ListBase internal_links; + + /** Root offset for drawing (parent space). */ + float locx, locy; + /** Node custom width and height. */ + float width, height; + /** Node width if hidden. */ + float miniwidth; + /** Additional offset from loc. */ + float offsetx, offsety; + /** Initial locx for insert offset animation. */ + float anim_init_locx; + /** Offset that will be added to locx for insert offset animation. */ + float anim_ofsx; + + /** Update flags. */ + int update; + + /** Custom user-defined label, MAX_NAME. */ + char label[64]; + /** To be abused for buttons. */ + short custom1, custom2; + float custom3, custom4; + + /** Need_exec is set as UI execution event, exec is flag during exec. */ + short need_exec, exec; + /** Optional extra storage for use in thread (read only then!). */ + void *threaddata; + /** Entire boundbox (worldspace). */ + rctf totr; + /** Optional buttons area. */ + rctf butr; + /** Optional preview area. */ + rctf prvr; + /* XXX TODO + * Node totr size depends on the prvr size, which in turn is determined from preview size. + * In earlier versions bNodePreview was stored directly in nodes, but since now there can be + * multiple instances using different preview images it is possible that required node size varies between instances. + * preview_xsize, preview_ysize defines a common reserved size for preview rect for now, + * could be replaced by more accurate node instance drawing, but that requires removing totr from DNA + * and replacing all uses with per-instance data. + */ + /** Reserved size of the preview rect. */ + short preview_xsize, preview_ysize; + /** Used at runtime when going through the tree. Initialize before use. */ + short tmp_flag; + char _pad2[2]; + /** Runtime during drawing. */ + struct uiBlock *block; + + /** + * XXX: eevee only, id of screen space reflection layer, + * needs to be a float to feed GPU_uniform. + */ + float ssr_id; + /** + * XXX: eevee only, id of screen subsurface scatter layer, + * needs to be a float to feed GPU_uniform. + */ + float sss_id; } bNode; /* node->flag */ -#define NODE_SELECT 1 -#define NODE_OPTIONS 2 -#define NODE_PREVIEW 4 -#define NODE_HIDDEN 8 -#define NODE_ACTIVE 16 -#define NODE_ACTIVE_ID 32 -#define NODE_DO_OUTPUT 64 -#define __NODE_GROUP_EDIT 128 /* DEPRECATED */ - /* free test flag, undefined */ -#define NODE_TEST 256 - /* node is disabled */ -#define NODE_MUTED 512 -// #define NODE_CUSTOM_NAME 1024 /* deprecated! */ - /* group node types: use const outputs by default */ -#define NODE_CONST_OUTPUT (1 << 11) - /* node is always behind others */ -#define NODE_BACKGROUND (1 << 12) - /* automatic flag for nodes included in transforms */ -#define NODE_TRANSFORM (1 << 13) - /* node is active texture */ - - /* note: take care with this flag since its possible it gets - * `stuck` inside/outside the active group - which makes buttons - * window texture not update, we try to avoid it by clearing the - * flag when toggling group editing - Campbell */ -#define NODE_ACTIVE_TEXTURE (1 << 14) - /* use a custom color for the node */ -#define NODE_CUSTOM_COLOR (1 << 15) - /* Node has been initialized - * This flag indicates the node->typeinfo->init function has been called. - * In case of undefined type at creation time this can be delayed until - * until the node type is registered. - */ -#define NODE_INIT (1 << 16) - - /* do recalc of output, used to skip recalculation of unwanted - * composite out nodes when editing tree - */ -#define NODE_DO_OUTPUT_RECALC (1 << 17) +#define NODE_SELECT 1 +#define NODE_OPTIONS 2 +#define NODE_PREVIEW 4 +#define NODE_HIDDEN 8 +#define NODE_ACTIVE 16 +#define NODE_ACTIVE_ID 32 +#define NODE_DO_OUTPUT 64 +#define __NODE_GROUP_EDIT 128 /* DEPRECATED */ +/* free test flag, undefined */ +#define NODE_TEST 256 +/* node is disabled */ +#define NODE_MUTED 512 +// #define NODE_CUSTOM_NAME 1024 /* deprecated! */ +/* group node types: use const outputs by default */ +#define NODE_CONST_OUTPUT (1 << 11) +/* node is always behind others */ +#define NODE_BACKGROUND (1 << 12) +/* automatic flag for nodes included in transforms */ +#define NODE_TRANSFORM (1 << 13) +/* node is active texture */ + +/* note: take care with this flag since its possible it gets + * `stuck` inside/outside the active group - which makes buttons + * window texture not update, we try to avoid it by clearing the + * flag when toggling group editing - Campbell */ +#define NODE_ACTIVE_TEXTURE (1 << 14) +/* use a custom color for the node */ +#define NODE_CUSTOM_COLOR (1 << 15) +/* Node has been initialized + * This flag indicates the node->typeinfo->init function has been called. + * In case of undefined type at creation time this can be delayed until + * until the node type is registered. + */ +#define NODE_INIT (1 << 16) + +/* do recalc of output, used to skip recalculation of unwanted + * composite out nodes when editing tree + */ +#define NODE_DO_OUTPUT_RECALC (1 << 17) /* node->update */ /* XXX NODE_UPDATE is a generic update flag. More fine-grained updates * might be used in the future, but currently all work the same way. */ -#define NODE_UPDATE 0xFFFF /* generic update flag (includes all others) */ -#define NODE_UPDATE_ID 1 /* associated id data block has changed */ -#define NODE_UPDATE_OPERATOR 2 /* node update triggered from update operator */ +#define NODE_UPDATE 0xFFFF /* generic update flag (includes all others) */ +#define NODE_UPDATE_ID 1 /* associated id data block has changed */ +#define NODE_UPDATE_OPERATOR 2 /* node update triggered from update operator */ /* Unique hash key for identifying node instances * Defined as a struct because DNA does not support other typedefs. */ typedef struct bNodeInstanceKey { - unsigned int value; + unsigned int value; } bNodeInstanceKey; /* Base struct for entries in node instance hash. @@ -355,43 +355,41 @@ typedef struct bNodeInstanceKey { # # typedef struct bNodeInstanceHashEntry { - bNodeInstanceKey key; + bNodeInstanceKey key; - /* tags for cleaning the cache */ - short tag; + /* tags for cleaning the cache */ + short tag; } bNodeInstanceHashEntry; - # # typedef struct bNodePreview { - /** Must be first. */ - bNodeInstanceHashEntry hash_entry; + /** Must be first. */ + bNodeInstanceHashEntry hash_entry; - unsigned char *rect; - short xsize, ysize; + unsigned char *rect; + short xsize, ysize; } bNodePreview; - typedef struct bNodeLink { - struct bNodeLink *next, *prev; + struct bNodeLink *next, *prev; - bNode *fromnode, *tonode; - bNodeSocket *fromsock, *tosock; + bNode *fromnode, *tonode; + bNodeSocket *fromsock, *tosock; - int flag; - char _pad[4]; + int flag; + char _pad[4]; } bNodeLink; /* link->flag */ -#define NODE_LINKFLAG_HILITE (1 << 0) /* link has been successfully validated */ -#define NODE_LINK_VALID (1 << 1) -#define NODE_LINK_TEST (1 << 2) /* free test flag, undefined */ +#define NODE_LINKFLAG_HILITE (1 << 0) /* link has been successfully validated */ +#define NODE_LINK_VALID (1 << 1) +#define NODE_LINK_TEST (1 << 2) /* free test flag, undefined */ /* tree->edit_quality/tree->render_quality */ -#define NTREE_QUALITY_HIGH 0 -#define NTREE_QUALITY_MEDIUM 1 -#define NTREE_QUALITY_LOW 2 +#define NTREE_QUALITY_HIGH 0 +#define NTREE_QUALITY_MEDIUM 1 +#define NTREE_QUALITY_LOW 2 /* tree->chunksize */ #define NTREE_CHUNCKSIZE_32 32 @@ -405,855 +403,854 @@ typedef struct bNodeLink { /* only re-usable node trees are in the library though, * materials and textures allocate own tree struct */ typedef struct bNodeTree { - ID id; - /** Animation data (must be immediately after id for utilities to use it). */ - struct AnimData *adt; - - /** Runtime type information. */ - struct bNodeTreeType *typeinfo; - /** Runtime type identifier. */ - char idname[64]; - - /** Runtime RNA type of the group interface. */ - struct StructRNA *interface_type; - - /** Grease pencil data. */ - struct bGPdata *gpd; - /** Node tree stores own offset for consistent editor view. */ - float view_center[2]; - - ListBase nodes, links; - - /** Set init on fileread. */ - int type, init; - /** - * Sockets in groups have unique identifiers, adding new sockets always - * will increase this counter. - */ - int cur_index; - int flag; - /** Update flags. */ - int update; - /** Flag to prevent reentrant update calls. */ - short is_updating; - /** Generic temporary flag for recursion check (DFS/BFS). */ - short done; - char _pad2[4]; - - /** Specific node type this tree is used for. */ - int nodetype DNA_DEPRECATED; - - /** Quality setting when editing. */ - short edit_quality; - /** Quality setting when rendering. */ - short render_quality; - /** Tile size for compositor engine. */ - int chunksize; - - rctf viewer_border; - - /* Lists of bNodeSocket to hold default values and own_index. - * Warning! Don't make links to these sockets, input/output nodes are used for that. - * These sockets are used only for generating external interfaces. - */ - ListBase inputs, outputs; - - /* Node preview hash table - * Only available in base node trees (e.g. scene->node_tree) - */ - struct bNodeInstanceHash *previews; - /* Defines the node tree instance to use for the "active" context, - * in case multiple different editors are used and make context ambiguous. - */ - bNodeInstanceKey active_viewer_key; - char _pad[4]; - - /* execution data */ - /* XXX It would be preferable to completely move this data out of the underlying node tree, - * so node tree execution could finally run independent of the tree itself. This would allow node trees - * to be merely linked by other data (materials, textures, etc.), as ID data is supposed to. - * Execution data is generated from the tree once at execution start and can then be used - * as long as necessary, even while the tree is being modified. - */ - struct bNodeTreeExec *execdata; - - /* callbacks */ - void (*progress)(void *, float progress); - /** \warning may be called by different threads */ - void (*stats_draw)(void *, const char *str); - int (*test_break)(void *); - void (*update_draw)(void *); - void *tbh, *prh, *sdh, *udh; - - void *duplilock; + ID id; + /** Animation data (must be immediately after id for utilities to use it). */ + struct AnimData *adt; + + /** Runtime type information. */ + struct bNodeTreeType *typeinfo; + /** Runtime type identifier. */ + char idname[64]; + + /** Runtime RNA type of the group interface. */ + struct StructRNA *interface_type; + + /** Grease pencil data. */ + struct bGPdata *gpd; + /** Node tree stores own offset for consistent editor view. */ + float view_center[2]; + + ListBase nodes, links; + + /** Set init on fileread. */ + int type, init; + /** + * Sockets in groups have unique identifiers, adding new sockets always + * will increase this counter. + */ + int cur_index; + int flag; + /** Update flags. */ + int update; + /** Flag to prevent reentrant update calls. */ + short is_updating; + /** Generic temporary flag for recursion check (DFS/BFS). */ + short done; + char _pad2[4]; + + /** Specific node type this tree is used for. */ + int nodetype DNA_DEPRECATED; + + /** Quality setting when editing. */ + short edit_quality; + /** Quality setting when rendering. */ + short render_quality; + /** Tile size for compositor engine. */ + int chunksize; + + rctf viewer_border; + + /* Lists of bNodeSocket to hold default values and own_index. + * Warning! Don't make links to these sockets, input/output nodes are used for that. + * These sockets are used only for generating external interfaces. + */ + ListBase inputs, outputs; + + /* Node preview hash table + * Only available in base node trees (e.g. scene->node_tree) + */ + struct bNodeInstanceHash *previews; + /* Defines the node tree instance to use for the "active" context, + * in case multiple different editors are used and make context ambiguous. + */ + bNodeInstanceKey active_viewer_key; + char _pad[4]; + + /* execution data */ + /* XXX It would be preferable to completely move this data out of the underlying node tree, + * so node tree execution could finally run independent of the tree itself. This would allow node trees + * to be merely linked by other data (materials, textures, etc.), as ID data is supposed to. + * Execution data is generated from the tree once at execution start and can then be used + * as long as necessary, even while the tree is being modified. + */ + struct bNodeTreeExec *execdata; + + /* callbacks */ + void (*progress)(void *, float progress); + /** \warning may be called by different threads */ + void (*stats_draw)(void *, const char *str); + int (*test_break)(void *); + void (*update_draw)(void *); + void *tbh, *prh, *sdh, *udh; + + void *duplilock; } bNodeTree; /* ntree->type, index */ -#define NTREE_CUSTOM -1 /* for dynamically registered custom types */ -#define NTREE_SHADER 0 -#define NTREE_COMPOSIT 1 -#define NTREE_TEXTURE 2 +#define NTREE_CUSTOM -1 /* for dynamically registered custom types */ +#define NTREE_SHADER 0 +#define NTREE_COMPOSIT 1 +#define NTREE_TEXTURE 2 /* ntree->init, flag */ -#define NTREE_TYPE_INIT 1 +#define NTREE_TYPE_INIT 1 /* ntree->flag */ -#define NTREE_DS_EXPAND (1 << 0) /* for animation editors */ -#define NTREE_COM_OPENCL (1 << 1) /* use opencl */ -#define NTREE_TWO_PASS (1 << 2) /* two pass */ -#define NTREE_COM_GROUPNODE_BUFFER (1 << 3) /* use groupnode buffers */ -#define NTREE_VIEWER_BORDER (1 << 4) /* use a border for viewer nodes */ +#define NTREE_DS_EXPAND (1 << 0) /* for animation editors */ +#define NTREE_COM_OPENCL (1 << 1) /* use opencl */ +#define NTREE_TWO_PASS (1 << 2) /* two pass */ +#define NTREE_COM_GROUPNODE_BUFFER (1 << 3) /* use groupnode buffers */ +#define NTREE_VIEWER_BORDER (1 << 4) /* use a border for viewer nodes */ /* NOTE: DEPRECATED, use (id->tag & LIB_TAG_LOCALIZED) instead. */ /* tree is localized copy, free when deleting node groups */ -/* #define NTREE_IS_LOCALIZED (1 << 5) */ +/* #define NTREE_IS_LOCALIZED (1 << 5) */ /* XXX not nice, but needed as a temporary flags * for group updates after library linking. */ /* changes from r35033 */ -#define NTREE_DO_VERSIONS_GROUP_EXPOSE_2_56_2 (1 << 10) +#define NTREE_DO_VERSIONS_GROUP_EXPOSE_2_56_2 (1 << 10) /* custom_nodes branch: remove links to node tree sockets */ -#define NTREE_DO_VERSIONS_CUSTOMNODES_GROUP (1 << 11) +#define NTREE_DO_VERSIONS_CUSTOMNODES_GROUP (1 << 11) /* custom_nodes branch: create group input/output nodes */ -#define NTREE_DO_VERSIONS_CUSTOMNODES_GROUP_CREATE_INTERFACE (1 << 12) +#define NTREE_DO_VERSIONS_CUSTOMNODES_GROUP_CREATE_INTERFACE (1 << 12) /* ntree->update */ typedef enum eNodeTreeUpdate { - NTREE_UPDATE = 0xFFFF, /* generic update flag (includes all others) */ - NTREE_UPDATE_LINKS = (1 << 0), /* links have been added or removed */ - NTREE_UPDATE_NODES = (1 << 1), /* nodes or sockets have been added or removed */ - NTREE_UPDATE_GROUP_IN = (1 << 4), /* group inputs have changed */ - NTREE_UPDATE_GROUP_OUT = (1 << 5), /* group outputs have changed */ - /* group has changed (generic flag including all other group flags) */ - NTREE_UPDATE_GROUP = (NTREE_UPDATE_GROUP_IN | NTREE_UPDATE_GROUP_OUT), + NTREE_UPDATE = 0xFFFF, /* generic update flag (includes all others) */ + NTREE_UPDATE_LINKS = (1 << 0), /* links have been added or removed */ + NTREE_UPDATE_NODES = (1 << 1), /* nodes or sockets have been added or removed */ + NTREE_UPDATE_GROUP_IN = (1 << 4), /* group inputs have changed */ + NTREE_UPDATE_GROUP_OUT = (1 << 5), /* group outputs have changed */ + /* group has changed (generic flag including all other group flags) */ + NTREE_UPDATE_GROUP = (NTREE_UPDATE_GROUP_IN | NTREE_UPDATE_GROUP_OUT), } eNodeTreeUpdate; - /* socket value structs for input buttons * DEPRECATED now using ID properties */ typedef struct bNodeSocketValueInt { - /** RNA subtype. */ - int subtype; - int value; - int min, max; + /** RNA subtype. */ + int subtype; + int value; + int min, max; } bNodeSocketValueInt; typedef struct bNodeSocketValueFloat { - /** RNA subtype. */ - int subtype; - float value; - float min, max; + /** RNA subtype. */ + int subtype; + float value; + float min, max; } bNodeSocketValueFloat; typedef struct bNodeSocketValueBoolean { - char value; - char _pad[3]; + char value; + char _pad[3]; } bNodeSocketValueBoolean; typedef struct bNodeSocketValueVector { - /** RNA subtype. */ - int subtype; - float value[3]; - float min, max; + /** RNA subtype. */ + int subtype; + float value[3]; + float min, max; } bNodeSocketValueVector; typedef struct bNodeSocketValueRGBA { - float value[4]; + float value[4]; } bNodeSocketValueRGBA; typedef struct bNodeSocketValueString { - int subtype; - char _pad[4]; - /** 1024 = FILEMAX. */ - char value[1024]; + int subtype; + char _pad[4]; + /** 1024 = FILEMAX. */ + char value[1024]; } bNodeSocketValueString; /* data structs, for node->storage */ enum { - CMP_NODE_MASKTYPE_ADD = 0, - CMP_NODE_MASKTYPE_SUBTRACT = 1, - CMP_NODE_MASKTYPE_MULTIPLY = 2, - CMP_NODE_MASKTYPE_NOT = 3, + CMP_NODE_MASKTYPE_ADD = 0, + CMP_NODE_MASKTYPE_SUBTRACT = 1, + CMP_NODE_MASKTYPE_MULTIPLY = 2, + CMP_NODE_MASKTYPE_NOT = 3, }; enum { - CMP_NODE_LENSFLARE_GHOST = (1 << 0), - CMP_NODE_LENSFLARE_GLOW = (1 << 1), - CMP_NODE_LENSFLARE_CIRCLE = (1 << 2), - CMP_NODE_LENSFLARE_STREAKS = (1 << 3), + CMP_NODE_LENSFLARE_GHOST = (1 << 0), + CMP_NODE_LENSFLARE_GLOW = (1 << 1), + CMP_NODE_LENSFLARE_CIRCLE = (1 << 2), + CMP_NODE_LENSFLARE_STREAKS = (1 << 3), }; enum { - CMP_NODE_DILATEERODE_STEP = 0, - CMP_NODE_DILATEERODE_DISTANCE_THRESH = 1, - CMP_NODE_DILATEERODE_DISTANCE = 2, - CMP_NODE_DILATEERODE_DISTANCE_FEATHER = 3, + CMP_NODE_DILATEERODE_STEP = 0, + CMP_NODE_DILATEERODE_DISTANCE_THRESH = 1, + CMP_NODE_DILATEERODE_DISTANCE = 2, + CMP_NODE_DILATEERODE_DISTANCE_FEATHER = 3, }; enum { - CMP_NODE_INPAINT_SIMPLE = 0, + CMP_NODE_INPAINT_SIMPLE = 0, }; enum { - /* CMP_NODEFLAG_MASK_AA = (1 << 0), */ /* DEPRECATED */ - CMP_NODEFLAG_MASK_NO_FEATHER = (1 << 1), - CMP_NODEFLAG_MASK_MOTION_BLUR = (1 << 2), + /* CMP_NODEFLAG_MASK_AA = (1 << 0), */ /* DEPRECATED */ + CMP_NODEFLAG_MASK_NO_FEATHER = (1 << 1), + CMP_NODEFLAG_MASK_MOTION_BLUR = (1 << 2), - /* we may want multiple aspect options, exposed as an rna enum */ - CMP_NODEFLAG_MASK_FIXED = (1 << 8), - CMP_NODEFLAG_MASK_FIXED_SCENE = (1 << 9), + /* we may want multiple aspect options, exposed as an rna enum */ + CMP_NODEFLAG_MASK_FIXED = (1 << 8), + CMP_NODEFLAG_MASK_FIXED_SCENE = (1 << 9), }; enum { - CMP_NODEFLAG_BLUR_VARIABLE_SIZE = (1 << 0), - CMP_NODEFLAG_BLUR_EXTEND_BOUNDS = (1 << 1), + CMP_NODEFLAG_BLUR_VARIABLE_SIZE = (1 << 0), + CMP_NODEFLAG_BLUR_EXTEND_BOUNDS = (1 << 1), }; typedef struct NodeFrame { - short flag; - short label_size; + short flag; + short label_size; } NodeFrame; /* this one has been replaced with ImageUser, keep it for do_versions() */ typedef struct NodeImageAnim { - int frames DNA_DEPRECATED; - int sfra DNA_DEPRECATED; - int nr DNA_DEPRECATED; - char cyclic DNA_DEPRECATED; - char movie DNA_DEPRECATED; - char _pad[2]; + int frames DNA_DEPRECATED; + int sfra DNA_DEPRECATED; + int nr DNA_DEPRECATED; + char cyclic DNA_DEPRECATED; + char movie DNA_DEPRECATED; + char _pad[2]; } NodeImageAnim; typedef struct ColorCorrectionData { - float saturation; - float contrast; - float gamma; - float gain; - float lift; - char _pad[4]; + float saturation; + float contrast; + float gamma; + float gain; + float lift; + char _pad[4]; } ColorCorrectionData; typedef struct NodeColorCorrection { - ColorCorrectionData master; - ColorCorrectionData shadows; - ColorCorrectionData midtones; - ColorCorrectionData highlights; - float startmidtones; - float endmidtones; + ColorCorrectionData master; + ColorCorrectionData shadows; + ColorCorrectionData midtones; + ColorCorrectionData highlights; + float startmidtones; + float endmidtones; } NodeColorCorrection; typedef struct NodeBokehImage { - float angle; - int flaps; - float rounding; - float catadioptric; - float lensshift; + float angle; + int flaps; + float rounding; + float catadioptric; + float lensshift; } NodeBokehImage; typedef struct NodeBoxMask { - float x; - float y; - float rotation; - float height; - float width; - char _pad[4]; + float x; + float y; + float rotation; + float height; + float width; + char _pad[4]; } NodeBoxMask; typedef struct NodeEllipseMask { - float x; - float y; - float rotation; - float height; - float width; - char _pad[4]; + float x; + float y; + float rotation; + float height; + float width; + char _pad[4]; } NodeEllipseMask; /* layer info for image node outputs */ typedef struct NodeImageLayer { - /* index in the Image->layers->passes lists */ - int pass_index DNA_DEPRECATED; - /* render pass name */ - /** Amount defined in openexr_multi.h. */ - char pass_name[64]; + /* index in the Image->layers->passes lists */ + int pass_index DNA_DEPRECATED; + /* render pass name */ + /** Amount defined in openexr_multi.h. */ + char pass_name[64]; } NodeImageLayer; typedef struct NodeBlurData { - short sizex, sizey; - short samples, maxspeed, minspeed, relative, aspect; - short curved; - float fac, percentx, percenty; - short filtertype; - char bokeh, gamma; - /** Needed for absolute/relative conversions. */ - int image_in_width, image_in_height; + short sizex, sizey; + short samples, maxspeed, minspeed, relative, aspect; + short curved; + float fac, percentx, percenty; + short filtertype; + char bokeh, gamma; + /** Needed for absolute/relative conversions. */ + int image_in_width, image_in_height; } NodeBlurData; typedef struct NodeDBlurData { - float center_x, center_y, distance, angle, spin, zoom; - short iter; - char wrap, _pad; + float center_x, center_y, distance, angle, spin, zoom; + short iter; + char wrap, _pad; } NodeDBlurData; typedef struct NodeBilateralBlurData { - float sigma_color, sigma_space; - short iter; - char _pad[2]; + float sigma_color, sigma_space; + short iter; + char _pad[2]; } NodeBilateralBlurData; /* NOTE: Only for do-version code. */ typedef struct NodeHueSat { - float hue, sat, val; + float hue, sat, val; } NodeHueSat; typedef struct NodeImageFile { - /** 1024 = FILE_MAX. */ - char name[1024]; - struct ImageFormatData im_format; - int sfra, efra; + /** 1024 = FILE_MAX. */ + char name[1024]; + struct ImageFormatData im_format; + int sfra, efra; } NodeImageFile; /* XXX first struct fields should match NodeImageFile to ensure forward compatibility */ typedef struct NodeImageMultiFile { - /** 1024 = FILE_MAX. */ - char base_path[1024]; - ImageFormatData format; - /** XXX old frame rand values from NodeImageFile for forward compatibility. */ - int sfra DNA_DEPRECATED, efra DNA_DEPRECATED; - /** Selected input in details view list. */ - int active_input; - char _pad[4]; + /** 1024 = FILE_MAX. */ + char base_path[1024]; + ImageFormatData format; + /** XXX old frame rand values from NodeImageFile for forward compatibility. */ + int sfra DNA_DEPRECATED, efra DNA_DEPRECATED; + /** Selected input in details view list. */ + int active_input; + char _pad[4]; } NodeImageMultiFile; typedef struct NodeImageMultiFileSocket { - /* single layer file output */ - short use_render_format DNA_DEPRECATED; - /** Use overall node image format. */ - short use_node_format; - char _pad1[4]; - /** 1024 = FILE_MAX. */ - char path[1024]; - ImageFormatData format; - - /* multilayer output */ - /** EXR_TOT_MAXNAME-2 ('.' and channel char are appended). */ - char layer[30]; - char _pad2[2]; + /* single layer file output */ + short use_render_format DNA_DEPRECATED; + /** Use overall node image format. */ + short use_node_format; + char _pad1[4]; + /** 1024 = FILE_MAX. */ + char path[1024]; + ImageFormatData format; + + /* multilayer output */ + /** EXR_TOT_MAXNAME-2 ('.' and channel char are appended). */ + char layer[30]; + char _pad2[2]; } NodeImageMultiFileSocket; typedef struct NodeChroma { - float t1, t2, t3; - float fsize, fstrength, falpha; - float key[4]; - short algorithm, channel; + float t1, t2, t3; + float fsize, fstrength, falpha; + float key[4]; + short algorithm, channel; } NodeChroma; typedef struct NodeTwoXYs { - short x1, x2, y1, y2; - float fac_x1, fac_x2, fac_y1, fac_y2; + short x1, x2, y1, y2; + float fac_x1, fac_x2, fac_y1, fac_y2; } NodeTwoXYs; typedef struct NodeTwoFloats { - float x, y; + float x, y; } NodeTwoFloats; typedef struct NodeVertexCol { - char name[64]; + char name[64]; } NodeVertexCol; /* qdn: Defocus blur node */ typedef struct NodeDefocus { - char bktype, _pad0, preview, gamco; - short samples, no_zbuf; - float fstop, maxblur, bthresh, scale; - float rotation; - char _pad1[4]; + char bktype, _pad0, preview, gamco; + short samples, no_zbuf; + float fstop, maxblur, bthresh, scale; + float rotation; + char _pad1[4]; } NodeDefocus; typedef struct NodeScriptDict { - /** For PyObject *dict. */ - void *dict; - /** For BPy_Node *node. */ - void *node; + /** For PyObject *dict. */ + void *dict; + /** For BPy_Node *node. */ + void *node; } NodeScriptDict; /* qdn: glare node */ typedef struct NodeGlare { - char quality, type, iter; - /* XXX angle is only kept for backward/forward compatibility, - * was used for two different things, see T50736. */ - char angle DNA_DEPRECATED, _pad0, size, star_45, streaks; - float colmod, mix, threshold, fade; - float angle_ofs; - char _pad1[4]; + char quality, type, iter; + /* XXX angle is only kept for backward/forward compatibility, + * was used for two different things, see T50736. */ + char angle DNA_DEPRECATED, _pad0, size, star_45, streaks; + float colmod, mix, threshold, fade; + float angle_ofs; + char _pad1[4]; } NodeGlare; /* qdn: tonemap node */ typedef struct NodeTonemap { - float key, offset, gamma; - float f, m, a, c; - int type; + float key, offset, gamma; + float f, m, a, c; + int type; } NodeTonemap; /* qdn: lens distortion node */ typedef struct NodeLensDist { - short jit, proj, fit; - char _pad[2]; + short jit, proj, fit; + char _pad[2]; } NodeLensDist; typedef struct NodeColorBalance { - /* ASC CDL parameters */ - float slope[3]; - float offset[3]; - float power[3]; - float offset_basis; - char _pad[4]; - - /* LGG parameters */ - float lift[3]; - float gamma[3]; - float gain[3]; + /* ASC CDL parameters */ + float slope[3]; + float offset[3]; + float power[3]; + float offset_basis; + char _pad[4]; + + /* LGG parameters */ + float lift[3]; + float gamma[3]; + float gain[3]; } NodeColorBalance; typedef struct NodeColorspill { - short limchan, unspill; - float limscale; - float uspillr, uspillg, uspillb; + short limchan, unspill; + float limscale; + float uspillr, uspillg, uspillb; } NodeColorspill; typedef struct NodeDilateErode { - char falloff; - char _pad[7]; + char falloff; + char _pad[7]; } NodeDilateErode; typedef struct NodeMask { - int size_x, size_y; + int size_x, size_y; } NodeMask; typedef struct NodeTexBase { - TexMapping tex_mapping; - ColorMapping color_mapping; + TexMapping tex_mapping; + ColorMapping color_mapping; } NodeTexBase; typedef struct NodeTexSky { - NodeTexBase base; - int sky_model; - float sun_direction[3]; - float turbidity; - float ground_albedo; + NodeTexBase base; + int sky_model; + float sun_direction[3]; + float turbidity; + float ground_albedo; } NodeTexSky; typedef struct NodeTexImage { - NodeTexBase base; - ImageUser iuser; - int color_space; - int projection; - float projection_blend; - int interpolation; - int extension; - char _pad[4]; + NodeTexBase base; + ImageUser iuser; + int color_space; + int projection; + float projection_blend; + int interpolation; + int extension; + char _pad[4]; } NodeTexImage; typedef struct NodeTexChecker { - NodeTexBase base; + NodeTexBase base; } NodeTexChecker; typedef struct NodeTexBrick { - NodeTexBase base; - int offset_freq, squash_freq; - float offset, squash; + NodeTexBase base; + int offset_freq, squash_freq; + float offset, squash; } NodeTexBrick; typedef struct NodeTexEnvironment { - NodeTexBase base; - ImageUser iuser; - int color_space; - int projection; - int interpolation; - char _pad[4]; + NodeTexBase base; + ImageUser iuser; + int color_space; + int projection; + int interpolation; + char _pad[4]; } NodeTexEnvironment; typedef struct NodeTexGradient { - NodeTexBase base; - int gradient_type; - char _pad[4]; + NodeTexBase base; + int gradient_type; + char _pad[4]; } NodeTexGradient; typedef struct NodeTexNoise { - NodeTexBase base; + NodeTexBase base; } NodeTexNoise; typedef struct NodeTexVoronoi { - NodeTexBase base; - int coloring; - int distance; - int feature; - char _pad[4]; + NodeTexBase base; + int coloring; + int distance; + int feature; + char _pad[4]; } NodeTexVoronoi; typedef struct NodeTexMusgrave { - NodeTexBase base; - int musgrave_type; - char _pad[4]; + NodeTexBase base; + int musgrave_type; + char _pad[4]; } NodeTexMusgrave; typedef struct NodeTexWave { - NodeTexBase base; - int wave_type; - int wave_profile; + NodeTexBase base; + int wave_type; + int wave_profile; } NodeTexWave; typedef struct NodeTexMagic { - NodeTexBase base; - int depth; - char _pad[4]; + NodeTexBase base; + int depth; + char _pad[4]; } NodeTexMagic; typedef struct NodeShaderAttribute { - char name[64]; + char name[64]; } NodeShaderAttribute; typedef struct NodeShaderVectTransform { - int type; - int convert_from, convert_to; - char _pad[4]; + int type; + int convert_from, convert_to; + char _pad[4]; } NodeShaderVectTransform; typedef struct NodeShaderTexPointDensity { - NodeTexBase base; - short point_source; - char _pad[2]; - int particle_system; - float radius; - int resolution; - short space; - short interpolation; - short color_source; - short ob_color_source; - /** Vertex attribute layer for color source, MAX_CUSTOMDATA_LAYER_NAME. */ - char vertex_attribute_name[64]; - /* Used at runtime only by sampling RNA API. */ - PointDensity pd; - int cached_resolution; - char _pad2[4]; + NodeTexBase base; + short point_source; + char _pad[2]; + int particle_system; + float radius; + int resolution; + short space; + short interpolation; + short color_source; + short ob_color_source; + /** Vertex attribute layer for color source, MAX_CUSTOMDATA_LAYER_NAME. */ + char vertex_attribute_name[64]; + /* Used at runtime only by sampling RNA API. */ + PointDensity pd; + int cached_resolution; + char _pad2[4]; } NodeShaderTexPointDensity; /* TEX_output */ typedef struct TexNodeOutput { - char name[64]; + char name[64]; } TexNodeOutput; typedef struct NodeKeyingScreenData { - char tracking_object[64]; + char tracking_object[64]; } NodeKeyingScreenData; typedef struct NodeKeyingData { - float screen_balance; - float despill_factor; - float despill_balance; - int edge_kernel_radius; - float edge_kernel_tolerance; - float clip_black, clip_white; - int dilate_distance; - int feather_distance; - int feather_falloff; - int blur_pre, blur_post; + float screen_balance; + float despill_factor; + float despill_balance; + int edge_kernel_radius; + float edge_kernel_tolerance; + float clip_black, clip_white; + int dilate_distance; + int feather_distance; + int feather_falloff; + int blur_pre, blur_post; } NodeKeyingData; typedef struct NodeTrackPosData { - char tracking_object[64]; - char track_name[64]; + char tracking_object[64]; + char track_name[64]; } NodeTrackPosData; typedef struct NodeTranslateData { - char wrap_axis; - char relative; - char _pad[6]; + char wrap_axis; + char relative; + char _pad[6]; } NodeTranslateData; typedef struct NodePlaneTrackDeformData { - char tracking_object[64]; - char plane_track_name[64]; - char flag; - char motion_blur_samples; - char _pad[2]; - float motion_blur_shutter; + char tracking_object[64]; + char plane_track_name[64]; + char flag; + char motion_blur_samples; + char _pad[2]; + float motion_blur_shutter; } NodePlaneTrackDeformData; typedef struct NodeShaderScript { - int mode; - int flag; + int mode; + int flag; - /** 1024 = FILE_MAX. */ - char filepath[1024]; + /** 1024 = FILE_MAX. */ + char filepath[1024]; - char bytecode_hash[64]; - char *bytecode; + char bytecode_hash[64]; + char *bytecode; } NodeShaderScript; typedef struct NodeShaderTangent { - int direction_type; - int axis; - char uv_map[64]; + int direction_type; + int axis; + char uv_map[64]; } NodeShaderTangent; typedef struct NodeShaderNormalMap { - int space; - char uv_map[64]; + int space; + char uv_map[64]; } NodeShaderNormalMap; typedef struct NodeShaderUVMap { - char uv_map[64]; + char uv_map[64]; } NodeShaderUVMap; typedef struct NodeShaderTexIES { - int mode; + int mode; - /** 1024 = FILE_MAX. */ - char filepath[1024]; + /** 1024 = FILE_MAX. */ + char filepath[1024]; } NodeShaderTexIES; typedef struct NodeSunBeams { - float source[2]; + float source[2]; - float ray_length; + float ray_length; } NodeSunBeams; typedef struct NodeCryptomatte { - float add[3]; - float remove[3]; - char *matte_id; - int num_inputs; - char _pad[4]; + float add[3]; + float remove[3]; + char *matte_id; + int num_inputs; + char _pad[4]; } NodeCryptomatte; /* script node mode */ -#define NODE_SCRIPT_INTERNAL 0 -#define NODE_SCRIPT_EXTERNAL 1 +#define NODE_SCRIPT_INTERNAL 0 +#define NODE_SCRIPT_EXTERNAL 1 /* script node flag */ -#define NODE_SCRIPT_AUTO_UPDATE 1 +#define NODE_SCRIPT_AUTO_UPDATE 1 /* ies node mode */ -#define NODE_IES_INTERNAL 0 -#define NODE_IES_EXTERNAL 1 +#define NODE_IES_INTERNAL 0 +#define NODE_IES_EXTERNAL 1 /* frame node flags */ -#define NODE_FRAME_SHRINK 1 /* keep the bounding box minimal */ -#define NODE_FRAME_RESIZEABLE 2 /* test flag, if frame can be resized by user */ +#define NODE_FRAME_SHRINK 1 /* keep the bounding box minimal */ +#define NODE_FRAME_RESIZEABLE 2 /* test flag, if frame can be resized by user */ /* proxy node flags */ -#define NODE_PROXY_AUTOTYPE 1 /* automatically change output type based on link */ +#define NODE_PROXY_AUTOTYPE 1 /* automatically change output type based on link */ /* comp channel matte */ -#define CMP_NODE_CHANNEL_MATTE_CS_RGB 1 -#define CMP_NODE_CHANNEL_MATTE_CS_HSV 2 -#define CMP_NODE_CHANNEL_MATTE_CS_YUV 3 -#define CMP_NODE_CHANNEL_MATTE_CS_YCC 4 +#define CMP_NODE_CHANNEL_MATTE_CS_RGB 1 +#define CMP_NODE_CHANNEL_MATTE_CS_HSV 2 +#define CMP_NODE_CHANNEL_MATTE_CS_YUV 3 +#define CMP_NODE_CHANNEL_MATTE_CS_YCC 4 /* glossy distributions */ -#define SHD_GLOSSY_BECKMANN 0 -#define SHD_GLOSSY_SHARP 1 -#define SHD_GLOSSY_GGX 2 -#define SHD_GLOSSY_ASHIKHMIN_SHIRLEY 3 -#define SHD_GLOSSY_MULTI_GGX 4 +#define SHD_GLOSSY_BECKMANN 0 +#define SHD_GLOSSY_SHARP 1 +#define SHD_GLOSSY_GGX 2 +#define SHD_GLOSSY_ASHIKHMIN_SHIRLEY 3 +#define SHD_GLOSSY_MULTI_GGX 4 /* vector transform */ -#define SHD_VECT_TRANSFORM_TYPE_VECTOR 0 -#define SHD_VECT_TRANSFORM_TYPE_POINT 1 -#define SHD_VECT_TRANSFORM_TYPE_NORMAL 2 +#define SHD_VECT_TRANSFORM_TYPE_VECTOR 0 +#define SHD_VECT_TRANSFORM_TYPE_POINT 1 +#define SHD_VECT_TRANSFORM_TYPE_NORMAL 2 -#define SHD_VECT_TRANSFORM_SPACE_WORLD 0 -#define SHD_VECT_TRANSFORM_SPACE_OBJECT 1 -#define SHD_VECT_TRANSFORM_SPACE_CAMERA 2 +#define SHD_VECT_TRANSFORM_SPACE_WORLD 0 +#define SHD_VECT_TRANSFORM_SPACE_OBJECT 1 +#define SHD_VECT_TRANSFORM_SPACE_CAMERA 2 /* toon modes */ -#define SHD_TOON_DIFFUSE 0 -#define SHD_TOON_GLOSSY 1 +#define SHD_TOON_DIFFUSE 0 +#define SHD_TOON_GLOSSY 1 /* hair components */ -#define SHD_HAIR_REFLECTION 0 -#define SHD_HAIR_TRANSMISSION 1 +#define SHD_HAIR_REFLECTION 0 +#define SHD_HAIR_TRANSMISSION 1 /* principled hair parametrization */ -#define SHD_PRINCIPLED_HAIR_REFLECTANCE 0 -#define SHD_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION 1 -#define SHD_PRINCIPLED_HAIR_DIRECT_ABSORPTION 2 +#define SHD_PRINCIPLED_HAIR_REFLECTANCE 0 +#define SHD_PRINCIPLED_HAIR_PIGMENT_CONCENTRATION 1 +#define SHD_PRINCIPLED_HAIR_DIRECT_ABSORPTION 2 /* blend texture */ -#define SHD_BLEND_LINEAR 0 -#define SHD_BLEND_QUADRATIC 1 -#define SHD_BLEND_EASING 2 -#define SHD_BLEND_DIAGONAL 3 -#define SHD_BLEND_RADIAL 4 -#define SHD_BLEND_QUADRATIC_SPHERE 5 -#define SHD_BLEND_SPHERICAL 6 +#define SHD_BLEND_LINEAR 0 +#define SHD_BLEND_QUADRATIC 1 +#define SHD_BLEND_EASING 2 +#define SHD_BLEND_DIAGONAL 3 +#define SHD_BLEND_RADIAL 4 +#define SHD_BLEND_QUADRATIC_SPHERE 5 +#define SHD_BLEND_SPHERICAL 6 /* noise basis for textures */ -#define SHD_NOISE_PERLIN 0 -#define SHD_NOISE_VORONOI_F1 1 -#define SHD_NOISE_VORONOI_F2 2 -#define SHD_NOISE_VORONOI_F3 3 -#define SHD_NOISE_VORONOI_F4 4 -#define SHD_NOISE_VORONOI_F2_F1 5 -#define SHD_NOISE_VORONOI_CRACKLE 6 -#define SHD_NOISE_CELL_NOISE 7 - -#define SHD_NOISE_SOFT 0 -#define SHD_NOISE_HARD 1 +#define SHD_NOISE_PERLIN 0 +#define SHD_NOISE_VORONOI_F1 1 +#define SHD_NOISE_VORONOI_F2 2 +#define SHD_NOISE_VORONOI_F3 3 +#define SHD_NOISE_VORONOI_F4 4 +#define SHD_NOISE_VORONOI_F2_F1 5 +#define SHD_NOISE_VORONOI_CRACKLE 6 +#define SHD_NOISE_CELL_NOISE 7 + +#define SHD_NOISE_SOFT 0 +#define SHD_NOISE_HARD 1 /* voronoi texture */ -#define SHD_VORONOI_DISTANCE 0 -#define SHD_VORONOI_MANHATTAN 1 -#define SHD_VORONOI_CHEBYCHEV 2 -#define SHD_VORONOI_MINKOWSKI 3 +#define SHD_VORONOI_DISTANCE 0 +#define SHD_VORONOI_MANHATTAN 1 +#define SHD_VORONOI_CHEBYCHEV 2 +#define SHD_VORONOI_MINKOWSKI 3 -#define SHD_VORONOI_INTENSITY 0 -#define SHD_VORONOI_CELLS 1 +#define SHD_VORONOI_INTENSITY 0 +#define SHD_VORONOI_CELLS 1 -#define SHD_VORONOI_F1 0 -#define SHD_VORONOI_F2 1 -#define SHD_VORONOI_F3 2 -#define SHD_VORONOI_F4 3 -#define SHD_VORONOI_F2F1 4 +#define SHD_VORONOI_F1 0 +#define SHD_VORONOI_F2 1 +#define SHD_VORONOI_F3 2 +#define SHD_VORONOI_F4 3 +#define SHD_VORONOI_F2F1 4 /* musgrave texture */ -#define SHD_MUSGRAVE_MULTIFRACTAL 0 -#define SHD_MUSGRAVE_FBM 1 -#define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL 2 -#define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3 -#define SHD_MUSGRAVE_HETERO_TERRAIN 4 +#define SHD_MUSGRAVE_MULTIFRACTAL 0 +#define SHD_MUSGRAVE_FBM 1 +#define SHD_MUSGRAVE_HYBRID_MULTIFRACTAL 2 +#define SHD_MUSGRAVE_RIDGED_MULTIFRACTAL 3 +#define SHD_MUSGRAVE_HETERO_TERRAIN 4 /* wave texture */ -#define SHD_WAVE_BANDS 0 -#define SHD_WAVE_RINGS 1 +#define SHD_WAVE_BANDS 0 +#define SHD_WAVE_RINGS 1 -#define SHD_WAVE_PROFILE_SIN 0 -#define SHD_WAVE_PROFILE_SAW 1 +#define SHD_WAVE_PROFILE_SIN 0 +#define SHD_WAVE_PROFILE_SAW 1 /* sky texture */ -#define SHD_SKY_OLD 0 -#define SHD_SKY_NEW 1 +#define SHD_SKY_OLD 0 +#define SHD_SKY_NEW 1 /* image/environment texture */ -#define SHD_COLORSPACE_NONE 0 -#define SHD_COLORSPACE_COLOR 1 +#define SHD_COLORSPACE_NONE 0 +#define SHD_COLORSPACE_COLOR 1 /* environment texture */ -#define SHD_PROJ_EQUIRECTANGULAR 0 -#define SHD_PROJ_MIRROR_BALL 1 +#define SHD_PROJ_EQUIRECTANGULAR 0 +#define SHD_PROJ_MIRROR_BALL 1 -#define SHD_IMAGE_EXTENSION_REPEAT 0 -#define SHD_IMAGE_EXTENSION_EXTEND 1 -#define SHD_IMAGE_EXTENSION_CLIP 2 +#define SHD_IMAGE_EXTENSION_REPEAT 0 +#define SHD_IMAGE_EXTENSION_EXTEND 1 +#define SHD_IMAGE_EXTENSION_CLIP 2 /* image texture */ -#define SHD_PROJ_FLAT 0 -#define SHD_PROJ_BOX 1 -#define SHD_PROJ_SPHERE 2 -#define SHD_PROJ_TUBE 3 +#define SHD_PROJ_FLAT 0 +#define SHD_PROJ_BOX 1 +#define SHD_PROJ_SPHERE 2 +#define SHD_PROJ_TUBE 3 /* image texture interpolation */ -#define SHD_INTERP_LINEAR 0 -#define SHD_INTERP_CLOSEST 1 -#define SHD_INTERP_CUBIC 2 -#define SHD_INTERP_SMART 3 +#define SHD_INTERP_LINEAR 0 +#define SHD_INTERP_CLOSEST 1 +#define SHD_INTERP_CUBIC 2 +#define SHD_INTERP_SMART 3 /* tangent */ -#define SHD_TANGENT_RADIAL 0 -#define SHD_TANGENT_UVMAP 1 +#define SHD_TANGENT_RADIAL 0 +#define SHD_TANGENT_UVMAP 1 /* tangent */ -#define SHD_TANGENT_AXIS_X 0 -#define SHD_TANGENT_AXIS_Y 1 -#define SHD_TANGENT_AXIS_Z 2 +#define SHD_TANGENT_AXIS_X 0 +#define SHD_TANGENT_AXIS_Y 1 +#define SHD_TANGENT_AXIS_Z 2 /* normal map, displacement space */ -#define SHD_SPACE_TANGENT 0 -#define SHD_SPACE_OBJECT 1 -#define SHD_SPACE_WORLD 2 -#define SHD_SPACE_BLENDER_OBJECT 3 -#define SHD_SPACE_BLENDER_WORLD 4 +#define SHD_SPACE_TANGENT 0 +#define SHD_SPACE_OBJECT 1 +#define SHD_SPACE_WORLD 2 +#define SHD_SPACE_BLENDER_OBJECT 3 +#define SHD_SPACE_BLENDER_WORLD 4 -#define SHD_AO_INSIDE 1 -#define SHD_AO_LOCAL 2 +#define SHD_AO_INSIDE 1 +#define SHD_AO_LOCAL 2 /* math node clamp */ -#define SHD_MATH_CLAMP 1 +#define SHD_MATH_CLAMP 1 /* Math node operation/ */ enum { - NODE_MATH_ADD = 0, - NODE_MATH_SUB = 1, - NODE_MATH_MUL = 2, - NODE_MATH_DIVIDE = 3, - NODE_MATH_SIN = 4, - NODE_MATH_COS = 5, - NODE_MATH_TAN = 6, - NODE_MATH_ASIN = 7, - NODE_MATH_ACOS = 8, - NODE_MATH_ATAN = 9, - NODE_MATH_POW = 10, - NODE_MATH_LOG = 11, - NODE_MATH_MIN = 12, - NODE_MATH_MAX = 13, - NODE_MATH_ROUND = 14, - NODE_MATH_LESS = 15, - NODE_MATH_GREATER = 16, - NODE_MATH_MOD = 17, - NODE_MATH_ABS = 18, - NODE_MATH_ATAN2 = 19, - NODE_MATH_FLOOR = 20, - NODE_MATH_CEIL = 21, - NODE_MATH_FRACT = 22, - NODE_MATH_SQRT = 23, + NODE_MATH_ADD = 0, + NODE_MATH_SUB = 1, + NODE_MATH_MUL = 2, + NODE_MATH_DIVIDE = 3, + NODE_MATH_SIN = 4, + NODE_MATH_COS = 5, + NODE_MATH_TAN = 6, + NODE_MATH_ASIN = 7, + NODE_MATH_ACOS = 8, + NODE_MATH_ATAN = 9, + NODE_MATH_POW = 10, + NODE_MATH_LOG = 11, + NODE_MATH_MIN = 12, + NODE_MATH_MAX = 13, + NODE_MATH_ROUND = 14, + NODE_MATH_LESS = 15, + NODE_MATH_GREATER = 16, + NODE_MATH_MOD = 17, + NODE_MATH_ABS = 18, + NODE_MATH_ATAN2 = 19, + NODE_MATH_FLOOR = 20, + NODE_MATH_CEIL = 21, + NODE_MATH_FRACT = 22, + NODE_MATH_SQRT = 23, }; /* mix rgb node flags */ -#define SHD_MIXRGB_USE_ALPHA 1 -#define SHD_MIXRGB_CLAMP 2 +#define SHD_MIXRGB_USE_ALPHA 1 +#define SHD_MIXRGB_CLAMP 2 /* subsurface */ enum { #ifdef DNA_DEPRECATED - SHD_SUBSURFACE_COMPATIBLE = 0, // Deprecated + SHD_SUBSURFACE_COMPATIBLE = 0, // Deprecated #endif - SHD_SUBSURFACE_CUBIC = 1, - SHD_SUBSURFACE_GAUSSIAN = 2, - SHD_SUBSURFACE_BURLEY = 3, - SHD_SUBSURFACE_RANDOM_WALK = 4, + SHD_SUBSURFACE_CUBIC = 1, + SHD_SUBSURFACE_GAUSSIAN = 2, + SHD_SUBSURFACE_BURLEY = 3, + SHD_SUBSURFACE_RANDOM_WALK = 4, }; /* blur node */ -#define CMP_NODE_BLUR_ASPECT_NONE 0 -#define CMP_NODE_BLUR_ASPECT_Y 1 -#define CMP_NODE_BLUR_ASPECT_X 2 +#define CMP_NODE_BLUR_ASPECT_NONE 0 +#define CMP_NODE_BLUR_ASPECT_Y 1 +#define CMP_NODE_BLUR_ASPECT_X 2 /* wrapping */ -#define CMP_NODE_WRAP_NONE 0 -#define CMP_NODE_WRAP_X 1 -#define CMP_NODE_WRAP_Y 2 -#define CMP_NODE_WRAP_XY 3 +#define CMP_NODE_WRAP_NONE 0 +#define CMP_NODE_WRAP_X 1 +#define CMP_NODE_WRAP_Y 2 +#define CMP_NODE_WRAP_XY 3 #define CMP_NODE_MASK_MBLUR_SAMPLES_MAX 64 /* image */ -#define CMP_NODE_IMAGE_USE_STRAIGHT_OUTPUT 1 +#define CMP_NODE_IMAGE_USE_STRAIGHT_OUTPUT 1 /* viewer and cmposite output */ -#define CMP_NODE_OUTPUT_IGNORE_ALPHA 1 +#define CMP_NODE_OUTPUT_IGNORE_ALPHA 1 /* Plane track deform node */ enum { - CMP_NODEFLAG_PLANETRACKDEFORM_MOTION_BLUR = 1, + CMP_NODEFLAG_PLANETRACKDEFORM_MOTION_BLUR = 1, }; /* Stabilization node */ enum { - CMP_NODEFLAG_STABILIZE_INVERSE = 1, + CMP_NODEFLAG_STABILIZE_INVERSE = 1, }; #define CMP_NODE_PLANETRACKDEFORM_MBLUR_SAMPLES_MAX 64 @@ -1261,33 +1258,33 @@ enum { /* Point Density shader node */ enum { - SHD_POINTDENSITY_SOURCE_PSYS = 0, - SHD_POINTDENSITY_SOURCE_OBJECT = 1, + SHD_POINTDENSITY_SOURCE_PSYS = 0, + SHD_POINTDENSITY_SOURCE_OBJECT = 1, }; enum { - SHD_POINTDENSITY_SPACE_OBJECT = 0, - SHD_POINTDENSITY_SPACE_WORLD = 1, + SHD_POINTDENSITY_SPACE_OBJECT = 0, + SHD_POINTDENSITY_SPACE_WORLD = 1, }; enum { - SHD_POINTDENSITY_COLOR_PARTAGE = 1, - SHD_POINTDENSITY_COLOR_PARTSPEED = 2, - SHD_POINTDENSITY_COLOR_PARTVEL = 3, + SHD_POINTDENSITY_COLOR_PARTAGE = 1, + SHD_POINTDENSITY_COLOR_PARTSPEED = 2, + SHD_POINTDENSITY_COLOR_PARTVEL = 3, }; enum { - SHD_POINTDENSITY_COLOR_VERTCOL = 0, - SHD_POINTDENSITY_COLOR_VERTWEIGHT = 1, - SHD_POINTDENSITY_COLOR_VERTNOR = 2, + SHD_POINTDENSITY_COLOR_VERTCOL = 0, + SHD_POINTDENSITY_COLOR_VERTWEIGHT = 1, + SHD_POINTDENSITY_COLOR_VERTNOR = 2, }; /* Output shader node */ typedef enum NodeShaderOutputTarget { - SHD_OUTPUT_ALL = 0, - SHD_OUTPUT_EEVEE = 1, - SHD_OUTPUT_CYCLES = 2, + SHD_OUTPUT_ALL = 0, + SHD_OUTPUT_EEVEE = 1, + SHD_OUTPUT_CYCLES = 2, } NodeShaderOutputTarget; #endif |