41 #define MAX_SOCKET 512
114 class SocketMFNetworkBuilder;
115 class NodeMFNetworkBuilder;
116 class GeoNodeExecParams;
165 const char *data_path);
170 const char *data_path);
284 struct bNode *dest_node,
285 const struct bNode *src_node);
307 const char **r_disabled_hint);
334 #define NODE_CLASS_INPUT 0
335 #define NODE_CLASS_OUTPUT 1
336 #define NODE_CLASS_OP_COLOR 3
337 #define NODE_CLASS_OP_VECTOR 4
338 #define NODE_CLASS_OP_FILTER 5
339 #define NODE_CLASS_GROUP 6
341 #define NODE_CLASS_CONVERTOR 8
342 #define NODE_CLASS_MATTE 9
343 #define NODE_CLASS_DISTORT 10
345 #define NODE_CLASS_PATTERN 12
346 #define NODE_CLASS_TEXTURE 13
356 #define NODE_CLASS_SCRIPT 32
357 #define NODE_CLASS_INTERFACE 33
358 #define NODE_CLASS_SHADER 40
359 #define NODE_CLASS_GEOMETRY 41
360 #define NODE_CLASS_ATTRIBUTE 42
361 #define NODE_CLASS_LAYOUT 100
364 #define NODE_RESIZE_TOP 1
365 #define NODE_RESIZE_BOTTOM 2
366 #define NODE_RESIZE_RIGHT 4
367 #define NODE_RESIZE_LEFT 8
430 #define NODE_TREE_TYPES_BEGIN(ntype) \
432 GHashIterator *__node_tree_type_iter__ = ntreeTypeGetIterator(); \
433 for (; !BLI_ghashIterator_done(__node_tree_type_iter__); \
434 BLI_ghashIterator_step(__node_tree_type_iter__)) { \
435 bNodeTreeType *ntype = (bNodeTreeType *)BLI_ghashIterator_getValue(__node_tree_type_iter__);
437 #define NODE_TREE_TYPES_END \
439 BLI_ghashIterator_free(__node_tree_type_iter__); \
453 const bool do_id_user);
469 struct bNode ***r_deplist,
510 struct bNode *from_node,
514 struct bNode *from_node,
535 #define NODE_TYPES_BEGIN(ntype) \
537 GHashIterator *__node_type_iter__ = nodeTypeGetIterator(); \
538 for (; !BLI_ghashIterator_done(__node_type_iter__); \
539 BLI_ghashIterator_step(__node_type_iter__)) { \
540 bNodeType *ntype = (bNodeType *)BLI_ghashIterator_getValue(__node_type_iter__);
542 #define NODE_TYPES_END \
544 BLI_ghashIterator_free(__node_type_iter__); \
557 #define NODE_SOCKET_TYPES_BEGIN(stype) \
559 GHashIterator *__node_socket_type_iter__ = nodeSocketTypeGetIterator(); \
560 for (; !BLI_ghashIterator_done(__node_socket_type_iter__); \
561 BLI_ghashIterator_step(__node_socket_type_iter__)) { \
562 bNodeSocketType *stype = (bNodeSocketType *)BLI_ghashIterator_getValue( \
563 __node_socket_type_iter__);
565 #define NODE_SOCKET_TYPES_END \
567 BLI_ghashIterator_free(__node_socket_type_iter__); \
619 const struct bNode *node_src,
631 struct bNode *node_src,
635 const bool do_id_user);
655 struct bNode *to_node,
663 struct bNode **r_node,
670 const bNode *node_start,
673 const bool reversed);
675 const bNode *node_start,
781 #define NODE_INSTANCE_HASH_ITER(iter_, hash_) \
782 for (BKE_node_instance_hash_iterator_init(&iter_, hash_); \
783 BKE_node_instance_hash_iterator_done(&iter_) == false; \
784 BKE_node_instance_hash_iterator_step(&iter_))
796 bool create_previews);
821 const char **r_disabled_hint);
826 struct bNodeType *ntype,
const char *idname,
const char *name,
short nclass,
short flag);
835 const char *storagename,
837 void (*copyfunc)(
struct bNodeTree *dest_ntree,
838 struct bNode *dest_node,
839 const struct bNode *src_node));
855 void (*update_internal_links)(
struct bNodeTree *,
struct bNode *));
867 #define NODE_UNDEFINED -2
868 #define NODE_CUSTOM -1
873 #define NODE_REROUTE 6
874 #define NODE_GROUP_INPUT 7
875 #define NODE_GROUP_OUTPUT 8
876 #define NODE_CUSTOM_GROUP 9
935 #define FOREACH_NODETREE_BEGIN(bmain, _nodetree, _id) \
937 struct NodeTreeIterStore _nstore; \
938 bNodeTree *_nodetree; \
941 BKE_node_tree_iter_init(&_nstore, bmain); \
942 while (BKE_node_tree_iter_step(&_nstore, &_nodetree, &_id) == true) { \
945 #define FOREACH_NODETREE_END \
958 const int layer_index);
972 #define SH_NODE_RGB 101
973 #define SH_NODE_VALUE 102
974 #define SH_NODE_MIX_RGB 103
975 #define SH_NODE_VALTORGB 104
976 #define SH_NODE_RGBTOBW 105
977 #define SH_NODE_SHADERTORGB 106
979 #define SH_NODE_NORMAL 107
981 #define SH_NODE_MAPPING 109
982 #define SH_NODE_CURVE_VEC 110
983 #define SH_NODE_CURVE_RGB 111
984 #define SH_NODE_CAMERA 114
985 #define SH_NODE_MATH 115
986 #define SH_NODE_VECTOR_MATH 116
987 #define SH_NODE_SQUEEZE 117
989 #define SH_NODE_INVERT 119
990 #define SH_NODE_SEPRGB 120
991 #define SH_NODE_COMBRGB 121
992 #define SH_NODE_HUE_SAT 122
993 #define NODE_DYNAMIC 123
995 #define SH_NODE_OUTPUT_MATERIAL 124
996 #define SH_NODE_OUTPUT_WORLD 125
997 #define SH_NODE_OUTPUT_LIGHT 126
998 #define SH_NODE_FRESNEL 127
999 #define SH_NODE_MIX_SHADER 128
1000 #define SH_NODE_ATTRIBUTE 129
1001 #define SH_NODE_BACKGROUND 130
1002 #define SH_NODE_BSDF_ANISOTROPIC 131
1003 #define SH_NODE_BSDF_DIFFUSE 132
1004 #define SH_NODE_BSDF_GLOSSY 133
1005 #define SH_NODE_BSDF_GLASS 134
1006 #define SH_NODE_BSDF_TRANSLUCENT 137
1007 #define SH_NODE_BSDF_TRANSPARENT 138
1008 #define SH_NODE_BSDF_VELVET 139
1009 #define SH_NODE_EMISSION 140
1010 #define SH_NODE_NEW_GEOMETRY 141
1011 #define SH_NODE_LIGHT_PATH 142
1012 #define SH_NODE_TEX_IMAGE 143
1013 #define SH_NODE_TEX_SKY 145
1014 #define SH_NODE_TEX_GRADIENT 146
1015 #define SH_NODE_TEX_VORONOI 147
1016 #define SH_NODE_TEX_MAGIC 148
1017 #define SH_NODE_TEX_WAVE 149
1018 #define SH_NODE_TEX_NOISE 150
1019 #define SH_NODE_TEX_MUSGRAVE 152
1020 #define SH_NODE_TEX_COORD 155
1021 #define SH_NODE_ADD_SHADER 156
1022 #define SH_NODE_TEX_ENVIRONMENT 157
1024 #define SH_NODE_HOLDOUT 159
1025 #define SH_NODE_LAYER_WEIGHT 160
1026 #define SH_NODE_VOLUME_ABSORPTION 161
1027 #define SH_NODE_VOLUME_SCATTER 162
1028 #define SH_NODE_GAMMA 163
1029 #define SH_NODE_TEX_CHECKER 164
1030 #define SH_NODE_BRIGHTCONTRAST 165
1031 #define SH_NODE_LIGHT_FALLOFF 166
1032 #define SH_NODE_OBJECT_INFO 167
1033 #define SH_NODE_PARTICLE_INFO 168
1034 #define SH_NODE_TEX_BRICK 169
1035 #define SH_NODE_BUMP 170
1036 #define SH_NODE_SCRIPT 171
1037 #define SH_NODE_AMBIENT_OCCLUSION 172
1038 #define SH_NODE_BSDF_REFRACTION 173
1039 #define SH_NODE_TANGENT 174
1040 #define SH_NODE_NORMAL_MAP 175
1041 #define SH_NODE_HAIR_INFO 176
1042 #define SH_NODE_SUBSURFACE_SCATTERING 177
1043 #define SH_NODE_WIREFRAME 178
1044 #define SH_NODE_BSDF_TOON 179
1045 #define SH_NODE_WAVELENGTH 180
1046 #define SH_NODE_BLACKBODY 181
1047 #define SH_NODE_VECT_TRANSFORM 182
1048 #define SH_NODE_SEPHSV 183
1049 #define SH_NODE_COMBHSV 184
1050 #define SH_NODE_BSDF_HAIR 185
1052 #define SH_NODE_UVMAP 187
1053 #define SH_NODE_SEPXYZ 188
1054 #define SH_NODE_COMBXYZ 189
1055 #define SH_NODE_OUTPUT_LINESTYLE 190
1056 #define SH_NODE_UVALONGSTROKE 191
1057 #define SH_NODE_TEX_POINTDENSITY 192
1058 #define SH_NODE_BSDF_PRINCIPLED 193
1059 #define SH_NODE_TEX_IES 194
1060 #define SH_NODE_EEVEE_SPECULAR 195
1061 #define SH_NODE_BEVEL 197
1062 #define SH_NODE_DISPLACEMENT 198
1063 #define SH_NODE_VECTOR_DISPLACEMENT 199
1064 #define SH_NODE_VOLUME_PRINCIPLED 200
1066 #define SH_NODE_BSDF_HAIR_PRINCIPLED 701
1067 #define SH_NODE_MAP_RANGE 702
1068 #define SH_NODE_CLAMP 703
1069 #define SH_NODE_TEX_WHITE_NOISE 704
1070 #define SH_NODE_VOLUME_INFO 705
1071 #define SH_NODE_VERTEX_COLOR 706
1072 #define SH_NODE_OUTPUT_AOV 707
1073 #define SH_NODE_VECTOR_ROTATE 708
1088 bool *has_surface_output,
1089 bool *has_volume_output);
1098 #define RRES_OUT_IMAGE 0
1099 #define RRES_OUT_ALPHA 1
1105 #define RRES_OUT_DIFF 7
1132 #define CMP_NODE_VIEWER 201
1133 #define CMP_NODE_RGB 202
1134 #define CMP_NODE_VALUE 203
1135 #define CMP_NODE_MIX_RGB 204
1136 #define CMP_NODE_VALTORGB 205
1137 #define CMP_NODE_RGBTOBW 206
1138 #define CMP_NODE_NORMAL 207
1139 #define CMP_NODE_CURVE_VEC 208
1140 #define CMP_NODE_CURVE_RGB 209
1141 #define CMP_NODE_ALPHAOVER 210
1142 #define CMP_NODE_BLUR 211
1143 #define CMP_NODE_FILTER 212
1144 #define CMP_NODE_MAP_VALUE 213
1145 #define CMP_NODE_TIME 214
1146 #define CMP_NODE_VECBLUR 215
1147 #define CMP_NODE_SEPRGBA 216
1148 #define CMP_NODE_SEPHSVA 217
1149 #define CMP_NODE_SETALPHA 218
1150 #define CMP_NODE_HUE_SAT 219
1151 #define CMP_NODE_IMAGE 220
1152 #define CMP_NODE_R_LAYERS 221
1153 #define CMP_NODE_COMPOSITE 222
1154 #define CMP_NODE_OUTPUT_FILE 223
1155 #define CMP_NODE_TEXTURE 224
1156 #define CMP_NODE_TRANSLATE 225
1157 #define CMP_NODE_ZCOMBINE 226
1158 #define CMP_NODE_COMBRGBA 227
1159 #define CMP_NODE_DILATEERODE 228
1160 #define CMP_NODE_ROTATE 229
1161 #define CMP_NODE_SCALE 230
1162 #define CMP_NODE_SEPYCCA 231
1163 #define CMP_NODE_COMBYCCA 232
1164 #define CMP_NODE_SEPYUVA 233
1165 #define CMP_NODE_COMBYUVA 234
1166 #define CMP_NODE_DIFF_MATTE 235
1167 #define CMP_NODE_COLOR_SPILL 236
1168 #define CMP_NODE_CHROMA_MATTE 237
1169 #define CMP_NODE_CHANNEL_MATTE 238
1170 #define CMP_NODE_FLIP 239
1171 #define CMP_NODE_SPLITVIEWER 240
1173 #define CMP_NODE_MAP_UV 242
1174 #define CMP_NODE_ID_MASK 243
1175 #define CMP_NODE_DEFOCUS 244
1176 #define CMP_NODE_DISPLACE 245
1177 #define CMP_NODE_COMBHSVA 246
1178 #define CMP_NODE_MATH 247
1179 #define CMP_NODE_LUMA_MATTE 248
1180 #define CMP_NODE_BRIGHTCONTRAST 249
1181 #define CMP_NODE_GAMMA 250
1182 #define CMP_NODE_INVERT 251
1183 #define CMP_NODE_NORMALIZE 252
1184 #define CMP_NODE_CROP 253
1185 #define CMP_NODE_DBLUR 254
1186 #define CMP_NODE_BILATERALBLUR 255
1187 #define CMP_NODE_PREMULKEY 256
1188 #define CMP_NODE_DIST_MATTE 257
1189 #define CMP_NODE_VIEW_LEVELS 258
1190 #define CMP_NODE_COLOR_MATTE 259
1191 #define CMP_NODE_COLORBALANCE 260
1192 #define CMP_NODE_HUECORRECT 261
1193 #define CMP_NODE_MOVIECLIP 262
1194 #define CMP_NODE_STABILIZE2D 263
1195 #define CMP_NODE_TRANSFORM 264
1196 #define CMP_NODE_MOVIEDISTORTION 265
1197 #define CMP_NODE_DOUBLEEDGEMASK 266
1198 #define CMP_NODE_OUTPUT_MULTI_FILE__DEPRECATED \
1200 #define CMP_NODE_MASK 268
1201 #define CMP_NODE_KEYINGSCREEN 269
1202 #define CMP_NODE_KEYING 270
1203 #define CMP_NODE_TRACKPOS 271
1204 #define CMP_NODE_INPAINT 272
1205 #define CMP_NODE_DESPECKLE 273
1206 #define CMP_NODE_ANTIALIASING 274
1208 #define CMP_NODE_GLARE 301
1209 #define CMP_NODE_TONEMAP 302
1210 #define CMP_NODE_LENSDIST 303
1211 #define CMP_NODE_SUNBEAMS 304
1213 #define CMP_NODE_COLORCORRECTION 312
1214 #define CMP_NODE_MASK_BOX 313
1215 #define CMP_NODE_MASK_ELLIPSE 314
1216 #define CMP_NODE_BOKEHIMAGE 315
1217 #define CMP_NODE_BOKEHBLUR 316
1218 #define CMP_NODE_SWITCH 317
1219 #define CMP_NODE_PIXELATE 318
1221 #define CMP_NODE_MAP_RANGE 319
1222 #define CMP_NODE_PLANETRACKDEFORM 320
1223 #define CMP_NODE_CORNERPIN 321
1224 #define CMP_NODE_SWITCH_VIEW 322
1225 #define CMP_NODE_CRYPTOMATTE_LEGACY 323
1226 #define CMP_NODE_DENOISE 324
1227 #define CMP_NODE_EXPOSURE 325
1228 #define CMP_NODE_CRYPTOMATTE 326
1231 #define CMP_CHAN_RGB 1
1232 #define CMP_CHAN_A 2
1235 #define CMP_FILT_SOFT 0
1236 #define CMP_FILT_SHARP 1
1237 #define CMP_FILT_LAPLACE 2
1238 #define CMP_FILT_SOBEL 3
1239 #define CMP_FILT_PREWITT 4
1240 #define CMP_FILT_KIRSCH 5
1241 #define CMP_FILT_SHADOW 6
1244 #define CMP_SCALE_RELATIVE 0
1245 #define CMP_SCALE_ABSOLUTE 1
1246 #define CMP_SCALE_SCENEPERCENT 2
1247 #define CMP_SCALE_RENDERPERCENT 3
1249 #define CMP_SCALE_RENDERSIZE_FRAME_ASPECT (1 << 0)
1250 #define CMP_SCALE_RENDERSIZE_FRAME_CROP (1 << 1)
1253 #define CMP_TRACKPOS_ABSOLUTE 0
1254 #define CMP_TRACKPOS_RELATIVE_START 1
1255 #define CMP_TRACKPOS_RELATIVE_FRAME 2
1256 #define CMP_TRACKPOS_ABSOLUTE_FRAME 3
1259 #define CMP_CRYPTOMATTE_SRC_RENDER 0
1260 #define CMP_CRYPTOMATTE_SRC_IMAGE 1
1270 const char *view_name);
1294 const char defname[],
1298 const char defname[],
1325 #define TEX_NODE_OUTPUT 401
1326 #define TEX_NODE_CHECKER 402
1327 #define TEX_NODE_TEXTURE 403
1328 #define TEX_NODE_BRICKS 404
1329 #define TEX_NODE_MATH 405
1330 #define TEX_NODE_MIX_RGB 406
1331 #define TEX_NODE_RGBTOBW 407
1332 #define TEX_NODE_VALTORGB 408
1333 #define TEX_NODE_IMAGE 409
1334 #define TEX_NODE_CURVE_RGB 410
1335 #define TEX_NODE_INVERT 411
1336 #define TEX_NODE_HUE_SAT 412
1337 #define TEX_NODE_CURVE_TIME 413
1338 #define TEX_NODE_ROTATE 414
1339 #define TEX_NODE_VIEWER 415
1340 #define TEX_NODE_TRANSLATE 416
1341 #define TEX_NODE_COORD 417
1342 #define TEX_NODE_DISTANCE 418
1343 #define TEX_NODE_COMPOSE 419
1344 #define TEX_NODE_DECOMPOSE 420
1345 #define TEX_NODE_VALTONOR 421
1346 #define TEX_NODE_SCALE 422
1347 #define TEX_NODE_AT 423
1350 #define TEX_NODE_PROC 500
1351 #define TEX_NODE_PROC_MAX 600
1376 #define GEO_NODE_TRIANGULATE 1000
1377 #define GEO_NODE_EDGE_SPLIT 1001
1378 #define GEO_NODE_TRANSFORM 1002
1379 #define GEO_NODE_BOOLEAN 1003
1380 #define GEO_NODE_POINT_DISTRIBUTE 1004
1381 #define GEO_NODE_POINT_INSTANCE 1005
1382 #define GEO_NODE_SUBDIVISION_SURFACE 1006
1383 #define GEO_NODE_OBJECT_INFO 1007
1384 #define GEO_NODE_ATTRIBUTE_RANDOMIZE 1008
1385 #define GEO_NODE_ATTRIBUTE_MATH 1009
1386 #define GEO_NODE_JOIN_GEOMETRY 1010
1387 #define GEO_NODE_ATTRIBUTE_FILL 1011
1388 #define GEO_NODE_ATTRIBUTE_MIX 1012
1389 #define GEO_NODE_ATTRIBUTE_COLOR_RAMP 1013
1390 #define GEO_NODE_POINT_SEPARATE 1014
1391 #define GEO_NODE_ATTRIBUTE_COMPARE 1015
1392 #define GEO_NODE_POINT_ROTATE 1016
1393 #define GEO_NODE_ATTRIBUTE_VECTOR_MATH 1017
1394 #define GEO_NODE_ALIGN_ROTATION_TO_VECTOR 1018
1395 #define GEO_NODE_POINT_TRANSLATE 1019
1396 #define GEO_NODE_POINT_SCALE 1020
1397 #define GEO_NODE_ATTRIBUTE_SAMPLE_TEXTURE 1021
1398 #define GEO_NODE_POINTS_TO_VOLUME 1022
1399 #define GEO_NODE_COLLECTION_INFO 1023
1400 #define GEO_NODE_IS_VIEWPORT 1024
1401 #define GEO_NODE_ATTRIBUTE_PROXIMITY 1025
1402 #define GEO_NODE_VOLUME_TO_MESH 1026
1403 #define GEO_NODE_ATTRIBUTE_COMBINE_XYZ 1027
1404 #define GEO_NODE_ATTRIBUTE_SEPARATE_XYZ 1028
1405 #define GEO_NODE_SUBDIVIDE 1029
1406 #define GEO_NODE_ATTRIBUTE_REMOVE 1030
1407 #define GEO_NODE_ATTRIBUTE_CONVERT 1031
1408 #define GEO_NODE_MESH_PRIMITIVE_CUBE 1032
1409 #define GEO_NODE_MESH_PRIMITIVE_CIRCLE 1033
1410 #define GEO_NODE_MESH_PRIMITIVE_UV_SPHERE 1034
1411 #define GEO_NODE_MESH_PRIMITIVE_CYLINDER 1035
1412 #define GEO_NODE_MESH_PRIMITIVE_ICO_SPHERE 1036
1413 #define GEO_NODE_MESH_PRIMITIVE_CONE 1037
1414 #define GEO_NODE_MESH_PRIMITIVE_LINE 1038
1415 #define GEO_NODE_MESH_PRIMITIVE_GRID 1039
1416 #define GEO_NODE_ATTRIBUTE_MAP_RANGE 1040
1417 #define GEO_NODE_ATTRIBUTE_CLAMP 1041
1418 #define GEO_NODE_BOUNDING_BOX 1042
1426 #define FN_NODE_BOOLEAN_MATH 1200
1427 #define FN_NODE_FLOAT_COMPARE 1202
1428 #define FN_NODE_RANDOM_FLOAT 1206
1429 #define FN_NODE_INPUT_VECTOR 1207
1430 #define FN_NODE_INPUT_STRING 1208
void node_type_gpu(struct bNodeType *ntype, NodeGPUExecFunction gpu_fn)
void nodeFromView(const struct bNode *node, float x, float y, float *rx, float *ry)
void ntreeTypeAdd(struct bNodeTreeType *nt)
void nodeSetSocketAvailability(struct bNodeSocket *sock, bool is_available)
void BKE_node_clipboard_init(const struct bNodeTree *ntree)
void *(* NodeInitExecFunction)(struct bNodeExecContext *context, struct bNode *node, bNodeInstanceKey key)
void nodeUniqueName(struct bNodeTree *ntree, struct bNode *node)
struct bNodeLink * nodeFindLink(struct bNodeTree *ntree, const struct bNodeSocket *from, const struct bNodeSocket *to)
void ntreeNodeFlagSet(const bNodeTree *ntree, const int flag, const bool enable)
struct bNodeTree * ntreeLocalize(struct bNodeTree *ntree)
BLI_INLINE void BKE_node_instance_hash_iterator_free(bNodeInstanceHashIterator *iter)
const struct ListBase * BKE_node_clipboard_get_links(void)
struct bNodeTree * ntreeFromID(struct ID *id)
bNodePreview * BKE_node_preview_verify(struct bNodeInstanceHash *previews, bNodeInstanceKey key, int xsize, int ysize, bool create)
void node_type_base(struct bNodeType *ntype, int type, const char *name, short nclass, short flag)
void BKE_node_preview_free(struct bNodePreview *preview)
struct CryptomatteSession * ntreeCompositCryptomatteSession(const Scene *scene, bNode *node)
struct GHashIterator * nodeSocketTypeGetIterator(void)
void BKE_node_clipboard_add_node(struct bNode *node)
bool ntreeOutputExists(const struct bNode *node, const struct bNodeSocket *testsock)
void nodeRegisterSocketType(struct bNodeSocketType *stype)
void ntreeTagUsedSockets(struct bNodeTree *ntree)
void node_type_size(struct bNodeType *ntype, int width, int minwidth, int maxwidth)
bool nodeLinkIsHidden(const struct bNodeLink *link)
void nodeClearActiveID(struct bNodeTree *ntree, short idtype)
bool nodeTypeUndefined(struct bNode *node)
struct bNodeSocket * ntreeInsertSocketInterfaceFromSocket(struct bNodeTree *ntree, struct bNodeSocket *next_sock, struct bNode *from_node, struct bNodeSocket *from_sock)
bool nodeAttachNodeCheck(const struct bNode *node, const struct bNode *parent)
void ntreeTexEndExecTree(struct bNodeTreeExec *exec)
bNodeInstanceHash * BKE_node_instance_hash_new(const char *info)
struct bNodeSocket * nodeAddSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, const char *idname, const char *identifier, const char *name)
void BKE_node_tree_unlink_id(ID *id, struct bNodeTree *ntree)
void BKE_node_preview_sync_tree(struct bNodeTree *to_ntree, struct bNodeTree *from_ntree)
void nodeInternalRelink(struct bNodeTree *ntree, struct bNode *node)
void node_type_socket_templates(struct bNodeType *ntype, struct bNodeSocketTemplate *inputs, struct bNodeSocketTemplate *outputs)
struct bNode * ntreeFindType(const struct bNodeTree *ntree, int type)
bool nodeGroupPoll(struct bNodeTree *nodetree, struct bNodeTree *grouptree, const char **r_disabled_hint)
void ntreeBlendWrite(struct BlendWriter *writer, struct bNodeTree *ntree)
const bNodeInstanceKey NODE_INSTANCE_KEY_BASE
void nodeRemSocketLinks(struct bNodeTree *ntree, struct bNodeSocket *sock)
void ntreeBlendReadData(struct BlendDataReader *reader, struct bNodeTree *ntree)
BLI_INLINE bNodeInstanceKey BKE_node_instance_hash_iterator_get_key(bNodeInstanceHashIterator *iter)
void node_type_update(struct bNodeType *ntype, void(*updatefunc)(struct bNodeTree *ntree, struct bNode *node))
void ntreeCompositColorBalanceSyncFromCDL(bNodeTree *ntree, bNode *node)
struct bNodeTreeType * ntreeTypeFind(const char *idname)
void * NodeGeometryExecFunction
void BKE_node_preview_clear_tree(struct bNodeTree *ntree)
struct bNodeType NodeTypeUndefined
void ntreeLocalSync(struct bNodeTree *localtree, struct bNodeTree *ntree)
bool ntreeHasTree(const struct bNodeTree *ntree, const struct bNodeTree *lookup)
struct bNodeTreeExec * ntreeShaderBeginExecTree(struct bNodeTree *ntree)
void ntreeBlendReadLib(struct BlendLibReader *reader, struct bNodeTree *ntree)
bool nodeIsChildOf(const bNode *parent, const bNode *child)
void ntreeFreeLocalNode(struct bNodeTree *ntree, struct bNode *node)
void BKE_node_instance_hash_insert(bNodeInstanceHash *hash, bNodeInstanceKey key, void *value)
void BKE_node_tree_iter_init(struct NodeTreeIterStore *ntreeiter, struct Main *bmain)
void ntreeCompositTagRender(struct Scene *scene)
struct StructRNA * ntreeInterfaceTypeGet(struct bNodeTree *ntree, bool create)
int ntreeTexExecTree(struct bNodeTree *ntree, struct TexResult *target, const float co[3], float dxt[3], float dyt[3], int osatex, const short thread, const struct Tex *tex, short which_output, int cfra, int preview, struct MTex *mtex)
void BKE_node_preview_remove_unused(struct bNodeTree *ntree)
bNodePreview * BKE_node_preview_copy(struct bNodePreview *preview)
int ntreeCompositOutputFileRemoveActiveSocket(struct bNodeTree *ntree, struct bNode *node)
void ntreeCompositColorBalanceSyncFromLGG(bNodeTree *ntree, bNode *node)
void nodeChainIter(const bNodeTree *ntree, const bNode *node_start, bool(*callback)(bNode *, bNode *, void *, const bool), void *userdata, const bool reversed)
void(* bNodeInstanceValueFP)(void *value)
void(* bNodeClassCallback)(void *calldata, int nclass, const char *name)
const struct ListBase * BKE_node_clipboard_get_nodes(void)
void node_type_base_custom(struct bNodeType *ntype, const char *idname, const char *name, short nclass, short flag)
void ntreeCompositUpdateRLayers(struct bNodeTree *ntree)
void BKE_node_preview_free_tree(struct bNodeTree *ntree)
BLI_INLINE void * BKE_node_instance_hash_iterator_get_value(bNodeInstanceHashIterator *iter)
void(* NodeExecFunction)(void *data, int thread, struct bNode *, struct bNodeExecData *execdata, struct bNodeStack **in, struct bNodeStack **out)
struct bNode * ntreeShaderOutputNode(struct bNodeTree *ntree, int target)
void ntreeFreeCache(struct bNodeTree *ntree)
struct bNodeSocketType bNodeSocketType
Defines a socket type.
BLI_INLINE void BKE_node_instance_hash_iterator_init(bNodeInstanceHashIterator *iter, bNodeInstanceHash *hash)
struct GHashIterator * ntreeTypeGetIterator(void)
void nodeUpdate(struct bNodeTree *ntree, struct bNode *node)
void ntreeRemoveSocketInterface(struct bNodeTree *ntree, struct bNodeSocket *sock)
void ntreeCompositExecTree(struct Scene *scene, struct bNodeTree *ntree, struct RenderData *rd, int rendering, int do_previews, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, const char *view_name)
void(* NodeFreeExecFunction)(void *nodedata)
struct bNodeTree * ntreeCopyTree_ex(const struct bNodeTree *ntree, struct Main *bmain, const bool do_id_user)
void BKE_node_preview_set_pixel(struct bNodePreview *preview, const float col[4], int x, int y, bool do_manage)
void nodePositionPropagate(struct bNode *node)
void ntreeFreeTree(struct bNodeTree *ntree)
void nodeAttachNode(struct bNode *node, struct bNode *parent)
struct bNode * nodeFindNodebyName(struct bNodeTree *ntree, const char *name)
void ntreeInterfaceTypeFree(struct bNodeTree *ntree)
void ntreeCompositCryptomatteLayerPrefix(const Scene *scene, const bNode *node, char *r_prefix, size_t prefix_len)
void node_type_init(struct bNodeType *ntype, void(*initfunc)(struct bNodeTree *ntree, struct bNode *node))
int BKE_node_instance_hash_remove(bNodeInstanceHash *hash, bNodeInstanceKey key, bNodeInstanceValueFP valfreefp)
void ntreeCompositOutputFileUniqueLayer(struct ListBase *list, struct bNodeSocket *sock, const char defname[], char delim)
void * SocketGetCPPValueFunction
void nodeRemoveAllSockets(struct bNodeTree *ntree, struct bNode *node)
struct bNode * nodeGetActive(struct bNodeTree *ntree)
void nodeRemLink(struct bNodeTree *ntree, struct bNodeLink *link)
int nodeSocketIsHidden(const struct bNodeSocket *sock)
bool nodeUpdateID(struct bNodeTree *ntree, struct ID *id)
BLI_INLINE bool BKE_node_instance_hash_iterator_done(bNodeInstanceHashIterator *iter)
void BKE_node_system_exit(void)
struct bNodeSocket * nodeAddStaticSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, int type, int subtype, const char *identifier, const char *name)
void node_type_size_preset(struct bNodeType *ntype, eNodeSizePreset size)
struct bNode * BKE_node_copy_ex(struct bNodeTree *ntree, const struct bNode *node_src, const int flag, const bool unique_name)
void ntreeCompositOutputFileUniquePath(struct ListBase *list, struct bNodeSocket *sock, const char defname[], char delim)
struct bNodeSocket * ntreeAddSocketInterfaceFromSocket(struct bNodeTree *ntree, struct bNode *from_node, struct bNodeSocket *from_sock)
bool ntreeHasType(const struct bNodeTree *ntree, int type)
void nodeRemoveNode(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node, bool do_id_user)
int BKE_node_clipboard_get_type(void)
struct bNodeSocket * ntreeCompositOutputFileAddSocket(struct bNodeTree *ntree, struct bNode *node, const char *name, struct ImageFormatData *im_format)
void nodeMuteLinkToggle(struct bNodeTree *ntree, struct bNodeLink *link)
void * BKE_node_instance_hash_pop(bNodeInstanceHash *hash, bNodeInstanceKey key)
int BKE_node_instance_hash_haskey(bNodeInstanceHash *hash, bNodeInstanceKey key)
void BKE_node_clipboard_add_link(struct bNodeLink *link)
struct bNodeType bNodeType
Defines a node type.
void ntreeInterfaceTypeUpdate(struct bNodeTree *ntree)
int ntreeCompositCryptomatteRemoveSocket(bNodeTree *ntree, bNode *node)
bool BKE_node_preview_used(const struct bNode *node)
void nodeLabel(struct bNodeTree *ntree, struct bNode *node, char *label, int maxlen)
void ntreeUpdateTree(struct Main *main, struct bNodeTree *ntree)
struct bNode * BKE_node_copy_store_new_pointers(struct bNodeTree *ntree, struct bNode *node_src, const int flag)
void ntreeCompositCryptomatteSyncFromRemove(bNode *node)
struct bNodeTreeType bNodeTreeType
void ntreeCompositClearTags(struct bNodeTree *ntree)
bool BKE_node_is_connected_to_output(struct bNodeTree *ntree, struct bNode *node)
void ntreeCompositOutputFileSetPath(struct bNode *node, struct bNodeSocket *sock, const char *name)
bool BKE_node_tree_iter_step(struct NodeTreeIterStore *ntreeiter, struct bNodeTree **r_nodetree, struct ID **r_id)
int nodeSocketLinkLimit(const struct bNodeSocket *sock)
bool BKE_node_instance_hash_tag_key(bNodeInstanceHash *hash, bNodeInstanceKey key)
void BKE_node_preview_merge_tree(struct bNodeTree *to_ntree, struct bNodeTree *from_ntree, bool remove_old)
void BKE_node_instance_hash_clear(bNodeInstanceHash *hash, bNodeInstanceValueFP valfreefp)
void node_type_internal_links(struct bNodeType *ntype, void(*update_internal_links)(struct bNodeTree *, struct bNode *))
void nodePositionRelative(struct bNode *from_node, struct bNode *to_node, struct bNodeSocket *from_sock, struct bNodeSocket *to_sock)
BLI_INLINE void BKE_node_instance_hash_iterator_step(bNodeInstanceHashIterator *iter)
void node_type_group_update(struct bNodeType *ntype, void(*group_update_func)(struct bNodeTree *ntree, struct bNode *node))
void ntreeTexCheckCyclics(struct bNodeTree *ntree)
void ntreeFreeEmbeddedTree(struct bNodeTree *ntree)
bool nodeSetActiveID(struct bNodeTree *ntree, short idtype, struct ID *id)
const char * nodeStaticSocketType(int type, int subtype)
struct bNodeSocketTemplate bNodeSocketTemplate
Compact definition of a node socket.
struct bNodeType * nodeTypeFind(const char *idname)
struct bNodeSocket * nodeInsertSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, const char *idname, struct bNodeSocket *next_sock, const char *identifier, const char *name)
bool nodeSocketIsRegistered(struct bNodeSocket *sock)
void ntreeSetOutput(struct bNodeTree *ntree)
void BKE_node_system_init(void)
void node_type_storage(struct bNodeType *ntype, const char *storagename, void(*freefunc)(struct bNode *node), void(*copyfunc)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node))
const char * nodeStaticSocketInterfaceType(int type, int subtype)
void BKE_nodetree_remove_layer_n(struct bNodeTree *ntree, struct Scene *scene, const int layer_index)
struct bNodeLink * nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock)
int(* NodeGPUExecFunction)(struct GPUMaterial *mat, struct bNode *node, struct bNodeExecData *execdata, struct GPUNodeStack *in, struct GPUNodeStack *out)
void nodeClearActive(struct bNodeTree *ntree)
void nodeParentsIter(bNode *node, bool(*callback)(bNode *, void *), void *userdata)
void nodeRemoveSocket(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock)
int BKE_node_instance_hash_size(bNodeInstanceHash *hash)
void BKE_node_preview_clear(struct bNodePreview *preview)
struct bNodeSocket * nodeFindSocket(const struct bNode *node, eNodeSocketInOut in_out, const char *identifier)
struct bNodeTreeExec * ntreeTexBeginExecTree(struct bNodeTree *ntree)
void ntreeCompositCryptomatteSyncFromAdd(const Scene *scene, bNode *node)
void BKE_nodetree_shading_params_eval(struct Depsgraph *depsgraph, struct bNodeTree *ntree_dst, const struct bNodeTree *ntree_src)
struct bNodeTree * ntreeCopyTree(struct Main *bmain, const struct bNodeTree *ntree)
void ntreeGPUMaterialNodes(struct bNodeTree *localtree, struct GPUMaterial *mat, bool *has_surface_output, bool *has_volume_output)
struct bNodeSocket * nodeInsertStaticSocket(struct bNodeTree *ntree, struct bNode *node, eNodeSocketInOut in_out, int type, int subtype, struct bNodeSocket *next_sock, const char *identifier, const char *name)
void BKE_node_instance_hash_remove_untagged(bNodeInstanceHash *hash, bNodeInstanceValueFP valfreefp)
struct bNode * nodeAddNode(const struct bContext *C, struct bNodeTree *ntree, const char *idname)
struct bNode * nodeFindRootParent(bNode *node)
void ntreeLocalMerge(struct Main *bmain, struct bNodeTree *localtree, struct bNodeTree *ntree)
void ntreeTypeFreeLink(const struct bNodeTreeType *nt)
void ntreeShaderEndExecTree(struct bNodeTreeExec *exec)
void BKE_node_instance_hash_tag(bNodeInstanceHash *hash, void *value)
bool ntreeIsRegistered(struct bNodeTree *ntree)
void ntreeUpdateAllUsers(struct Main *main, struct ID *id)
void nodeSetSelected(struct bNode *node, bool select)
struct bNodeTree ** BKE_ntree_ptr_from_id(struct ID *id)
struct bNode * nodeGetActiveID(struct bNodeTree *ntree, short idtype)
void nodeUpdateInternalLinks(struct bNodeTree *ntree, struct bNode *node)
struct GHashIterator * nodeTypeGetIterator(void)
struct bNode * nodeGetActiveTexture(struct bNodeTree *ntree)
bNodeSocket * ntreeCompositCryptomatteAddSocket(bNodeTree *ntree, bNode *node)
bool ntreeNodeExists(const struct bNodeTree *ntree, const struct bNode *testnode)
struct bNodeSocket * ntreeFindSocketInterface(struct bNodeTree *ntree, eNodeSocketInOut in_out, const char *identifier)
struct bNodeTree * ntreeCopyTree_ex_new_pointers(const struct bNodeTree *ntree, struct Main *bmain, const bool do_id_user)
struct bNodeSocketType NodeSocketTypeUndefined
void BKE_node_preview_init_tree(struct bNodeTree *ntree, int xsize, int ysize, bool create_previews)
void ntreeBlendReadExpand(struct BlendExpander *expander, struct bNodeTree *ntree)
void nodeChainIterBackwards(const bNodeTree *ntree, const bNode *node_start, bool(*callback)(bNode *, bNode *, void *), void *userdata, int recursion_lvl)
void ntreeFreeLocalTree(struct bNodeTree *ntree)
const bNodeInstanceKey NODE_INSTANCE_KEY_NONE
struct bNodeInstanceHash bNodeInstanceHash
void ntreeCompositOutputFileSetLayer(struct bNode *node, struct bNodeSocket *sock, const char *name)
bool nodeFindNode(struct bNodeTree *ntree, struct bNodeSocket *sock, struct bNode **r_node, int *r_sockindex)
struct bNodeTree * ntreeAddTree(struct Main *bmain, const char *name, const char *idname)
void nodeUnregisterSocketType(struct bNodeSocketType *stype)
struct bNodeSocket * ntreeAddSocketInterface(struct bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, const char *name)
struct bNode * nodeAddStaticNode(const struct bContext *C, struct bNodeTree *ntree, int type)
void * SocketGetCPPTypeFunction
void BKE_node_instance_hash_clear_tags(bNodeInstanceHash *hash)
bool BKE_node_clipboard_validate(void)
int nodeCountSocketLinks(const struct bNodeTree *ntree, const struct bNodeSocket *sock)
void ntreeUpdateAllNew(struct Main *main)
void BKE_node_clipboard_clear(void)
void nodeToView(const struct bNode *node, float x, float y, float *rx, float *ry)
void node_type_exec(struct bNodeType *ntype, NodeInitExecFunction init_exec_fn, NodeFreeExecFunction free_exec_fn, NodeExecFunction exec_fn)
struct bNodeSocket * ntreeInsertSocketInterface(struct bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, struct bNodeSocket *next_sock, const char *name)
void nodeDetachNode(struct bNode *node)
void ntreeGetDependencyList(struct bNodeTree *ntree, struct bNode ***r_deplist, int *r_deplist_len)
void * BKE_node_instance_hash_lookup(bNodeInstanceHash *hash, bNodeInstanceKey key)
struct bNodeSocketType * nodeSocketTypeFind(const char *idname)
void ntreeSetTypes(const struct bContext *C, struct bNodeTree *ntree)
void nodeUnregisterType(struct bNodeType *ntype)
void BKE_node_instance_hash_free(bNodeInstanceHash *hash, bNodeInstanceValueFP valfreefp)
void nodeRegisterType(struct bNodeType *ntype)
void node_type_label(struct bNodeType *ntype, void(*labelfunc)(struct bNodeTree *ntree, struct bNode *, char *label, int maxlen))
void nodeUnlinkNode(struct bNodeTree *ntree, struct bNode *node)
void nodeSetActive(struct bNodeTree *ntree, struct bNode *node)
GHashIterator bNodeInstanceHashIterator
void BKE_node_clipboard_free(void)
BLI_INLINE bNodeInstanceHashIterator * BKE_node_instance_hash_iterator_new(bNodeInstanceHash *hash)
void * NodeExpandInMFNetworkFunction
void nodeModifySocketType(struct bNodeTree *ntree, struct bNode *node, struct bNodeSocket *sock, int type, int subtype)
const char * nodeSocketLabel(const struct bNodeSocket *sock)
void ntreeCompositRegisterPass(struct bNodeTree *ntree, struct Scene *scene, struct ViewLayer *view_layer, const char *name, eNodeSocketDatatype type)
void * SocketExpandInMFNetworkFunction
void ntreeCompositCryptomatteUpdateLayerNames(const Scene *scene, bNode *node)
bNodeInstanceKey BKE_node_instance_key(bNodeInstanceKey parent_key, const struct bNodeTree *ntree, const struct bNode *node)
BLI_INLINE void * BLI_ghashIterator_getKey(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_step(GHashIterator *ghi)
BLI_INLINE bool BLI_ghashIterator_done(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_free(GHashIterator *ghi)
BLI_INLINE void * BLI_ghashIterator_getValue(GHashIterator *ghi) ATTR_WARN_UNUSED_RESULT
GHashIterator * BLI_ghashIterator_new(GHash *gh) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
void BLI_ghashIterator_init(GHashIterator *ghi, GHash *gh)
struct Depsgraph Depsgraph
These structs are the foundation for all linked lists in the library system.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const Depsgraph * depsgraph
DEGForeachIDComponentCallback callback
int main(int argc, char **argv)
static bNodeSocketTemplate outputs[]
static bNodeSocketTemplate inputs[]
static void exec(void *data, int UNUSED(thread), bNode *node, bNodeExecData *execdata, bNodeStack **in, bNodeStack **out)
static void unique_name(bNode *node)
struct SELECTID_Context context
struct Simulation * simulation
struct FreestyleLineStyle * linestyle
Compact definition of a node socket.
struct bNodeSocket * sock
void(* interface_init_socket)(struct bNodeTree *ntree, struct bNodeSocket *stemp, struct bNode *node, struct bNodeSocket *sock, const char *data_path)
void(* draw_color)(struct bContext *C, struct PointerRNA *ptr, struct PointerRNA *node_ptr, float *r_color)
ExtensionRNA ext_interface
void(* interface_register_properties)(struct bNodeTree *ntree, struct bNodeSocket *stemp, struct StructRNA *data_srna)
void(* interface_draw_color)(struct bContext *C, struct PointerRNA *ptr, float *r_color)
void(* interface_verify_socket)(struct bNodeTree *ntree, struct bNodeSocket *stemp, struct bNode *node, struct bNodeSocket *sock, const char *data_path)
void(* draw)(struct bContext *C, struct uiLayout *layout, struct PointerRNA *ptr, struct PointerRNA *node_ptr, const char *text)
bool use_link_limits_of_type
void(* free_self)(struct bNodeSocketType *stype)
SocketGetCPPTypeFunction get_cpp_type
SocketExpandInMFNetworkFunction expand_in_mf_network
SocketGetCPPValueFunction get_cpp_value
void(* interface_draw)(struct bContext *C, struct uiLayout *layout, struct PointerRNA *ptr)
void(* interface_from_socket)(struct bNodeTree *ntree, struct bNodeSocket *stemp, struct bNode *node, struct bNodeSocket *sock)
bool(* poll)(const struct bContext *C, struct bNodeTreeType *ntreetype)
void(* free_node_cache)(struct bNodeTree *ntree, struct bNode *node)
void(* update)(struct bNodeTree *ntree)
void(* local_merge)(struct Main *bmain, struct bNodeTree *localtree, struct bNodeTree *ntree)
void(* get_from_context)(const struct bContext *C, struct bNodeTreeType *ntreetype, struct bNodeTree **r_ntree, struct ID **r_id, struct ID **r_from)
bool(* validate_link)(struct bNodeTree *ntree, struct bNodeLink *link)
void(* free_cache)(struct bNodeTree *ntree)
void(* localize)(struct bNodeTree *localtree, struct bNodeTree *ntree)
void(* foreach_nodeclass)(struct Scene *scene, void *calldata, bNodeClassCallback func)
void(* local_sync)(struct bNodeTree *localtree, struct bNodeTree *ntree)
void(* node_add_init)(struct bNodeTree *ntree, struct bNode *bnode)
void(* copyfunc)(struct bNodeTree *dest_ntree, struct bNode *dest_node, const struct bNode *src_node)
NodeGeometryExecFunction geometry_node_execute
int(* tweak_area_func)(struct bNode *node, int x, int y)
void(* group_update_func)(struct bNodeTree *ntree, struct bNode *node)
void(* draw_nodetype)(const struct bContext *C, struct ARegion *region, struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *node, bNodeInstanceKey key)
NodeExpandInMFNetworkFunction expand_in_mf_network
bool(* poll)(struct bNodeType *ntype, struct bNodeTree *nodetree, const char **r_disabled_hint)
void(* update_internal_links)(struct bNodeTree *, struct bNode *node)
NodeInitExecFunction init_exec_fn
void(* updatefunc)(struct bNodeTree *ntree, struct bNode *node)
bNodeSocketTemplate * outputs
void(* initfunc_api)(const struct bContext *C, struct PointerRNA *ptr)
void(* free_self)(struct bNodeType *ntype)
void(* insert_link)(struct bNodeTree *ntree, struct bNode *node, struct bNodeLink *link)
void(* freefunc)(struct bNode *node)
NodeGPUExecFunction gpu_fn
void(* draw_buttons_ex)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)
void(* draw_nodetype_prepare)(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node)
void(* draw_buttons)(struct uiLayout *, struct bContext *C, struct PointerRNA *ptr)
void(* freefunc_api)(struct PointerRNA *ptr)
void(* labelfunc)(struct bNodeTree *ntree, struct bNode *node, char *label, int maxlen)
bNodeSocketTemplate * inputs
bool(* poll_instance)(struct bNode *node, struct bNodeTree *nodetree, const char **r_disabled_hint)
void(* initfunc)(struct bNodeTree *ntree, struct bNode *node)
int(* select_area_func)(struct bNode *node, int x, int y)
int(* resize_area_func)(struct bNode *node, int x, int y)
void(* draw_backdrop)(struct SpaceNode *snode, struct ImBuf *backdrop, struct bNode *node, int x, int y)
void(* copyfunc_api)(struct PointerRNA *ptr, const struct bNode *src_node)
NodeFreeExecFunction free_exec_fn
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)