112 const float socket_y,
114 const int total_inputs,
146 int recalc_flags = 0;
333 if (
G.is_rendering) {
356 cj->
ntree = nodetree;
532 printf(
"ED_node_shader_default called on wrong ID type.\n");
544 printf(
"error in composite initialize\n");
579 printf(
"error in texture initialize\n");
611 if (!treetype || (treetype->
poll && !treetype->
poll(
C, treetype))) {
654 for (path = path->
prev; path; path = path->
prev) {
668 if (r_active_texture_changed) {
669 *r_active_texture_changed =
false;
676 bool do_update =
false;
705 if (node_iter->type ==
node->type) {
711 if (was_output == 0) {
715 else if (do_update) {
733 if (r_active_texture_changed) {
734 *r_active_texture_changed =
true;
752 if (was_output == 0) {
760 if (was_output == 0) {
771 else if (do_update) {
779 BIF_preview_changed(-1);
780 allqueue(REDRAWBUTSSHADING, 1);
781 allqueue(REDRAWIPO, 0);
837 static void edit_node_properties_get(
950 switch (event->
type) {
958 float *pwidth = &
node->width;
960 float widthmin =
node->typeinfo->minwidth;
961 float widthmax =
node->typeinfo->maxwidth;
965 *pwidth = oldwidth + dx;
966 CLAMP(*pwidth, widthmin, widthmax);
969 float locmax = nsw->
oldlocx + oldwidth;
972 CLAMP(
node->locx, locmax - widthmax, locmax - widthmin);
973 *pwidth = locmax -
node->locx;
985 CLAMP(
node->locy, locmin + heightmin, locmin + heightmax);
990 CLAMP(
node->height, heightmin, heightmax);
1054 dir =
node->typeinfo->resize_area_func(
node, cursor[0], cursor[1]);
1071 ot->
name =
"Resize Node";
1131 const rctf multi_socket_rect = {
1139 .ymin = socket->
locy - node_socket_height,
1140 .ymax = socket->
locy + node_socket_height,
1222 for (parent =
node->parent; parent; parent = parent->
parent) {
1243 bool do_tag_update =
false;
1257 if (
node == lastnode) {
1270 if (link->tonode && (link->tonode->flag &
NODE_SELECT) &&
1271 (keep_inputs || (link->fromnode && (link->fromnode->flag &
NODE_SELECT)))) {
1273 newlink->
flag = link->flag;
1276 if (link->fromnode && (link->fromnode->flag &
NODE_SELECT)) {
1282 newlink->
fromnode = link->fromnode;
1283 newlink->
fromsock = link->fromsock;
1290 if (link == lastlink) {
1306 if (
node == lastnode) {
1326 if (
node == lastnode) {
1334 if (do_tag_update) {
1344 ot->
name =
"Duplicate Nodes";
1356 ot->
srna,
"keep_inputs", 0,
"Keep Inputs",
"Keep the input links to duplicated nodes");
1437 ot->
name =
"Read View Layers";
1438 ot->
idname =
"NODE_OT_read_viewlayers";
1439 ot->
description =
"Read all render layers of all used scenes";
1458 if (node_iter->id == (
ID *)sce) {
1489 ot->
name =
"Render Changed Layer";
1490 ot->
idname =
"NODE_OT_render_changed";
1491 ot->
description =
"Render current scene, when input node's layer has been changed";
1505 int tot_eq = 0, tot_neq = 0;
1519 !(
node->typeinfo->draw_buttons ||
node->typeinfo->draw_buttons_ex)) {
1523 if (
node->flag & toggle_flag) {
1538 !(
node->typeinfo->draw_buttons ||
node->typeinfo->draw_buttons_ex)) {
1542 if ((tot_eq && tot_neq) || tot_eq == 0) {
1543 node->flag |= toggle_flag;
1546 node->flag &= ~toggle_flag;
1573 ot->
idname =
"NODE_OT_hide_toggle";
1604 ot->
name =
"Toggle Node Preview";
1605 ot->
description =
"Toggle preview display for selected nodes";
1606 ot->
idname =
"NODE_OT_preview_toggle";
1635 ot->
name =
"Toggle Node Options";
1636 ot->
description =
"Toggle option buttons display for selected nodes";
1637 ot->
idname =
"NODE_OT_options_toggle";
1659 bool hidden =
false;
1685 ot->
name =
"Toggle Hidden Node Sockets";
1687 ot->
idname =
"NODE_OT_hide_socket_toggle";
1703 bool do_tag_update =
false;
1709 if ((
node->flag &
SELECT) &&
node->typeinfo->update_internal_links) {
1719 if (do_tag_update) {
1729 ot->
name =
"Toggle Node Mute";
1731 ot->
idname =
"NODE_OT_mute_toggle";
1747 bool do_tag_update =
false;
1763 if (do_tag_update) {
1820 ot->
name =
"Update Views";
1822 ot->
idname =
"NODE_OT_switch_view_update";
1858 ot->
name =
"Delete with Reconnect";
1859 ot->
description =
"Delete nodes; will reconnect nodes as if deletion was muted";
1860 ot->
idname =
"NODE_OT_delete_reconnect";
1885 else if (snode && snode->
edittree) {
1905 ot->
name =
"Add File Node Socket";
1907 ot->
idname =
"NODE_OT_output_file_add_socket";
1917 ot->
srna,
"file_path",
"Image",
MAX_NAME,
"File Path",
"Subpath of the output file");
1933 else if (snode && snode->
edittree) {
1954 ot->
name =
"Remove File Node Socket";
1955 ot->
description =
"Remove active input from a file output node";
1956 ot->
idname =
"NODE_OT_output_file_remove_active_socket";
1977 else if (snode && snode->
edittree) {
1994 if (direction == 1) {
2021 {1,
"UP", 0,
"Up",
""}, {2,
"DOWN", 0,
"Down",
""}, {0,
NULL, 0,
NULL,
NULL}};
2024 ot->
name =
"Move File Node Socket";
2025 ot->
description =
"Move the active input of a file output node up or down the list";
2026 ot->
idname =
"NODE_OT_output_file_move_active_socket";
2076 ot->
idname =
"NODE_OT_node_copy_color";
2132 if (link->tonode && (link->tonode->flag &
NODE_SELECT) && link->fromnode &&
2135 newlink->
flag = link->flag;
2151 ot->
name =
"Copy to Clipboard";
2153 ot->
idname =
"NODE_OT_clipboard_copy";
2186 if (is_clipboard_valid ==
false) {
2189 "Some nodes references could not be restored, will be left empty");
2193 bool all_nodes_valid =
true;
2195 const char *disabled_hint =
NULL;
2196 if (!
node->typeinfo->poll_instance ||
2197 !
node->typeinfo->poll_instance(
node,
ntree, &disabled_hint)) {
2198 all_nodes_valid =
false;
2199 if (disabled_hint) {
2202 "Cannot add node %s into node tree %s:\n %s",
2210 "Cannot add node %s into node tree %s",
2216 if (!all_nodes_valid) {
2226 float center[2] = {0.0f, 0.0f};
2252 link->fromnode->new_node,
2253 link->fromsock->new_sock,
2254 link->tonode->new_node,
2255 link->tosock->new_sock);
2272 ot->
name =
"Paste from Clipboard";
2273 ot->
description =
"Pastes nodes from the clipboard to the active node tree";
2274 ot->
idname =
"NODE_OT_clipboard_paste";
2289 if (socket->flag &
SELECT) {
2307 const char *default_name = (in_out ==
SOCK_IN) ?
"Input" :
"Output";
2325 socket_iter->flag &= ~
SELECT;
2343 ot->
name =
"Add Node Tree Interface Socket";
2344 ot->
description =
"Add an input or output socket to the current node tree";
2345 ot->
idname =
"NODE_OT_tree_socket_add";
2367 if (iosock ==
NULL) {
2393 ot->
name =
"Remove Node Tree Interface Socket";
2394 ot->
description =
"Remove an input or output socket to the current node tree";
2395 ot->
idname =
"NODE_OT_tree_socket_remove";
2409 {1,
"UP", 0,
"Up",
""},
2410 {2,
"DOWN", 0,
"Down",
""},
2425 if (iosock ==
NULL) {
2429 switch (direction) {
2468 ot->
name =
"Move Node Tree Socket";
2469 ot->
description =
"Move a socket up or down in the current node tree's sockets stack";
2470 ot->
idname =
"NODE_OT_tree_socket_move";
2492 if (!(
type &&
type->update_script_node)) {
2536 if (ngroup && !ngroup->
done) {
2569 else if (snode && snode->
edittree) {
2576 type->update_script_node(engine, ntree_base,
node);
2616 ot->
name =
"Script Node Update";
2617 ot->
description =
"Update shader script node with new sockets and options from the script";
2618 ot->
idname =
"NODE_OT_shader_script_update";
2635 int backdrop_height,
2639 float bufx = backdrop_width * snode->
zoom;
2640 float bufy = backdrop_height * snode->
zoom;
2642 *fx = (bufx > 0.0f ? ((
float)
x - 0.5f * region->
winx - snode->
xof) / bufx + 0.5f : 0.0f);
2643 *fy = (bufy > 0.0f ? ((
float)
y - 0.5f * region->
winy - snode->
yof) / bufy + 0.5f : 0.0f);
2682 if (rectf.
xmin == 0.0f && rectf.
ymin == 0.0f && rectf.
xmax == 1.0f && rectf.
ymax == 1.0f) {
2705 ot->
name =
"Viewer Region";
2706 ot->
description =
"Set the boundaries for viewer operations";
2707 ot->
idname =
"NODE_OT_viewer_border";
2738 ot->
name =
"Clear Viewer Region";
2739 ot->
description =
"Clear the boundaries for viewer operations";
2740 ot->
idname =
"NODE_OT_clear_viewer_border";
2763 else if (snode && snode->
edittree) {
2782 ot->
name =
"Add Cryptomatte Socket";
2783 ot->
description =
"Add a new input layer to a Cryptomatte node";
2784 ot->
idname =
"NODE_OT_cryptomatte_layer_add";
2807 else if (snode && snode->
edittree) {
2828 ot->
name =
"Remove Cryptomatte Socket";
2830 ot->
idname =
"NODE_OT_cryptomatte_layer_remove";
typedef float(TangentPoint)[2]
struct Scene * CTX_data_scene(const bContext *C)
PointerRNA CTX_data_pointer_get(const bContext *C, const char *member)
struct SpaceNode * CTX_wm_space_node(const bContext *C)
struct wmWindowManager * CTX_wm_manager(const bContext *C)
PointerRNA CTX_data_pointer_get_type(const bContext *C, const char *member, StructRNA *type)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Object * CTX_data_active_object(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct wmWindow * CTX_wm_window(const bContext *C)
void BKE_image_release_ibuf(struct Image *ima, struct ImBuf *ibuf, void *lock)
struct ImBuf * BKE_image_acquire_ibuf(struct Image *ima, struct ImageUser *iuser, void **r_lock)
void BKE_image_backup_render(struct Scene *scene, struct Image *ima, bool free_current_slot)
struct Image * BKE_image_ensure_viewer(struct Main *bmain, int type, const char *name)
@ LIB_ID_CREATE_NO_USER_REFCOUNT
General operations, lookup, etc. for materials.
struct Material * BKE_material_default_surface(void)
struct Material * BKE_material_default_volume(void)
void BKE_node_clipboard_init(const struct bNodeTree *ntree)
const struct ListBase * BKE_node_clipboard_get_links(void)
void BKE_node_clipboard_add_node(struct bNode *node)
#define SH_NODE_OUTPUT_WORLD
void nodeClearActiveID(struct bNodeTree *ntree, short idtype)
void nodeInternalRelink(struct bNodeTree *ntree, struct bNode *node)
struct bNodeTreeType * ntreeTypeFind(const char *idname)
bool ntreeHasTree(const struct bNodeTree *ntree, const struct bNodeTree *lookup)
void ntreeCompositTagRender(struct Scene *scene)
int ntreeCompositOutputFileRemoveActiveSocket(struct bNodeTree *ntree, struct bNode *node)
const struct ListBase * BKE_node_clipboard_get_nodes(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 nodeAttachNode(struct bNode *node, struct bNode *parent)
struct bNode * nodeFindNodebyName(struct bNodeTree *ntree, const char *name)
struct bNode * nodeGetActive(struct bNodeTree *ntree)
int nodeSocketIsHidden(const struct bNodeSocket *sock)
bool nodeUpdateID(struct bNodeTree *ntree, struct ID *id)
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 BKE_node_clipboard_add_link(struct bNodeLink *link)
int ntreeCompositCryptomatteRemoveSocket(bNodeTree *ntree, bNode *node)
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)
#define CMP_NODE_CRYPTOMATTE_LEGACY
#define CMP_NODE_OUTPUT_FILE
#define FOREACH_NODETREE_END
struct bNodeLink * nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock)
#define SH_NODE_BACKGROUND
struct bNodeSocket * nodeFindSocket(const struct bNode *node, eNodeSocketInOut in_out, const char *identifier)
struct bNodeTree * ntreeCopyTree(struct Main *bmain, const struct bNodeTree *ntree)
void ntreeLocalMerge(struct Main *bmain, struct bNodeTree *localtree, struct bNodeTree *ntree)
void nodeSetSelected(struct bNode *node, bool select)
#define NODE_RESIZE_BOTTOM
#define FOREACH_NODETREE_BEGIN(bmain, _nodetree, _id)
#define CMP_CRYPTOMATTE_SRC_RENDER
bNodeSocket * ntreeCompositCryptomatteAddSocket(bNodeTree *ntree, bNode *node)
struct bNodeTree * ntreeAddTree(struct Main *bmain, const char *name, const char *idname)
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)
#define CMP_NODE_R_LAYERS
bool BKE_node_clipboard_validate(void)
int nodeCountSocketLinks(const struct bNodeTree *ntree, const struct bNodeSocket *sock)
void BKE_node_clipboard_clear(void)
struct bNodeSocket * ntreeInsertSocketInterface(struct bNodeTree *ntree, eNodeSocketInOut in_out, const char *idname, struct bNodeSocket *next_sock, const char *name)
void nodeDetachNode(struct bNode *node)
#define NODE_RESIZE_RIGHT
void nodeSetActive(struct bNodeTree *ntree, struct bNode *node)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
bool BKE_scene_multiview_is_render_view_active(const struct RenderData *rd, const struct SceneRenderView *srv)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
#define LISTBASE_FOREACH_MUTABLE(type, var, list)
#define LISTBASE_FOREACH_BACKWARD(type, var, list)
void BLI_insertlinkafter(struct ListBase *listbase, void *vprevlink, void *vnewlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH_INDEX(type, var, list, index_var)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_insertlinkbefore(struct ListBase *listbase, void *vnextlink, void *vnewlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE float max_ff(float a, float b)
MINLINE float min_ff(float a, float b)
MINLINE int max_ii(int a, int b)
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
bool BLI_rctf_isect_pt(const struct rctf *rect, const float x, const float y)
BLI_INLINE float BLI_rctf_cent_y(const struct rctf *rct)
bool BLI_rctf_isect(const struct rctf *src1, const struct rctf *src2, struct rctf *dest)
BLI_INLINE float BLI_rctf_cent_x(const struct rctf *rct)
void BLI_rctf_init_pt_radius(struct rctf *rect, const float xy[2], float size)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
void DEG_evaluate_on_refresh(Depsgraph *graph)
Depsgraph * DEG_graph_new(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, eEvaluationMode mode)
struct Depsgraph Depsgraph
void DEG_graph_free(Depsgraph *graph)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_graph_build_for_compositor_preview(struct Depsgraph *graph, struct bNodeTree *nodetree)
void DEG_relations_tag_update(struct Main *bmain)
struct ID * DEG_get_evaluated_id(const struct Depsgraph *depsgraph, struct ID *id)
#define NODE_ACTIVE_PREVIEW
#define NODE_CUSTOM_COLOR
#define NODE_UPDATE_OPERATOR
#define NODE_ACTIVE_TEXTURE
#define NTREE_VIEWER_BORDER
#define NODE_DO_OUTPUT_RECALC
#define NTREE_QUALITY_HIGH
#define R_NO_FRAME_UPDATE
void ED_node_tree_start(struct SpaceNode *snode, struct bNodeTree *ntree, struct ID *id, struct ID *from)
void ED_node_tag_update_id(struct ID *id)
void ED_node_sort(struct bNodeTree *ntree)
void ED_node_tag_update_nodetree(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node)
void ED_preview_kill_jobs(struct wmWindowManager *wm, struct Main *bmain)
bool ED_operator_node_active(struct bContext *C)
bool ED_operator_node_editable(struct bContext *C)
void ED_region_tag_redraw(struct ARegion *region)
NSNotificationCenter * center
_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 GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble GLdouble r _GL_VOID_RET _GL_VOID GLfloat GLfloat r _GL_VOID_RET _GL_VOID GLint GLint r _GL_VOID_RET _GL_VOID GLshort GLshort r _GL_VOID_RET _GL_VOID GLdouble GLdouble r
_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
void GPU_material_free(struct ListBase *gpumaterial)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
struct bNodeTreeType * ntreeType_Shader
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel CMP_NODE_SPLITVIEWER
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner CMP_NODE_CRYPTOMATTE
Group RGB to Bright Vector Camera CLAMP
Group RGB to Bright Vector Camera Vector Combine Material SH_NODE_OUTPUT_LIGHT
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White CMP_NODE_VIEWER
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti TEX_NODE_CHECKER
Group RGB to Bright Vector Camera Vector Combine Material Light SH_NODE_OUTPUT_LINESTYLE
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set CMP_NODE_COMPOSITE
Group RGB to Bright Vector Camera Vector Combine SH_NODE_OUTPUT_MATERIAL
struct bNodeTreeType * ntreeType_Texture
StructRNA RNA_ShaderNodeScript
void UI_view2d_region_to_view(const struct View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL()
RenderEngine * RE_engine_create(RenderEngineType *type)
RenderEngineType * RE_engines_find(const char *idname)
void RE_engine_free(RenderEngine *engine)
void KERNEL_FUNCTION_FULL_NAME() shader(KernelGlobals *kg, uint4 *input, float4 *output, int type, int filter, int i, int offset, int sample)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
bNodeTreeType * ntreeType_Composite
int node_get_resize_cursor(int directions)
void snode_update(SpaceNode *snode, bNode *node)
static void compo_startjob(void *cjv, short *stop, short *do_update, float *progress)
void NODE_OT_delete(wmOperatorType *ot)
void NODE_OT_hide_toggle(wmOperatorType *ot)
bool ED_node_is_compositor(struct SpaceNode *snode)
static bool node_shader_script_update_text_recursive(RenderEngine *engine, RenderEngineType *type, bNodeTree *ntree, Text *text)
void ED_node_post_apply_transform(bContext *UNUSED(C), bNodeTree *UNUSED(ntree))
static int node_read_viewlayers_exec(bContext *C, wmOperator *UNUSED(op))
static int node_socket_toggle_exec(bContext *C, wmOperator *UNUSED(op))
struct NodeSizeWidget NodeSizeWidget
static bool cursor_isect_multi_input_socket(const float cursor[2], const bNodeSocket *socket)
void NODE_OT_delete_reconnect(wmOperatorType *ot)
void NODE_OT_clipboard_paste(wmOperatorType *ot)
void snode_set_context(const bContext *C)
static void node_duplicate_reparent_recursive(bNode *node)
static int node_duplicate_exec(bContext *C, wmOperator *op)
static int compo_get_recalc_flags(const bContext *C)
void ED_node_texture_default(const bContext *C, Tex *tex)
static int node_delete_exec(bContext *C, wmOperator *UNUSED(op))
void NODE_OT_duplicate(wmOperatorType *ot)
static void compo_redrawjob(void *cjv)
static int ntree_socket_remove_exec(bContext *C, wmOperator *op)
static void compo_updatejob(void *UNUSED(cjv))
bool ED_node_is_texture(struct SpaceNode *snode)
void snode_dag_update(bContext *C, SpaceNode *snode)
static int node_delete_reconnect_exec(bContext *C, wmOperator *UNUSED(op))
static int ntree_socket_move_exec(bContext *C, wmOperator *op)
static void compo_tag_output_nodes(bNodeTree *nodetree, int recalc_flags)
static int compo_breakjob(void *cjv)
bool composite_node_active(bContext *C)
void NODE_OT_preview_toggle(wmOperatorType *ot)
bool ED_node_is_geometry(struct SpaceNode *snode)
void NODE_OT_output_file_remove_active_socket(wmOperatorType *ot)
void node_link_calculate_multi_input_position(const float socket_x, const float socket_y, const int index, const int total_inputs, float r[2])
static void compo_freejob(void *cjv)
static int node_copy_color_exec(bContext *C, wmOperator *UNUSED(op))
void NODE_OT_clipboard_copy(wmOperatorType *ot)
static bNode * visible_node(SpaceNode *snode, const rctf *rct)
static int node_cryptomatte_add_socket_exec(bContext *C, wmOperator *UNUSED(op))
static int clear_viewer_border_exec(bContext *C, wmOperator *UNUSED(op))
static void viewer_border_corner_to_backdrop(SpaceNode *snode, ARegion *region, int x, int y, int backdrop_width, int backdrop_height, float *fx, float *fy)
static void compo_initjob(void *cjv)
static int ntree_socket_add_exec(bContext *C, wmOperator *op)
static void compo_progressjob(void *cjv, float progress)
void ED_node_set_tree_type(SpaceNode *snode, bNodeTreeType *typeinfo)
static int node_output_file_remove_active_socket_exec(bContext *C, wmOperator *UNUSED(op))
bool ED_node_is_shader(struct SpaceNode *snode)
static int node_resize_modal(bContext *C, wmOperator *op, const wmEvent *event)
int node_render_changed_exec(bContext *C, wmOperator *UNUSED(op))
void NODE_OT_resize(wmOperatorType *ot)
void NODE_OT_output_file_add_socket(wmOperatorType *ot)
bool ED_node_select_check(ListBase *lb)
void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene *scene_owner)
void NODE_OT_read_viewlayers(wmOperatorType *ot)
void NODE_OT_tree_socket_remove(wmOperatorType *ot)
void NODE_OT_mute_toggle(wmOperatorType *ot)
static void node_resize_exit(bContext *C, wmOperator *op, bool cancel)
static int node_preview_toggle_exec(bContext *C, wmOperator *UNUSED(op))
void NODE_OT_cryptomatte_layer_add(wmOperatorType *ot)
void NODE_OT_tree_socket_move(wmOperatorType *ot)
void NODE_OT_node_copy_color(wmOperatorType *ot)
static int node_shader_script_update_exec(bContext *C, wmOperator *op)
void NODE_OT_switch_view_update(wmOperatorType *ot)
static bool node_switch_view_poll(bContext *C)
static void compo_statsdrawjob(void *cjv, const char *UNUSED(str))
void NODE_OT_shader_script_update(wmOperatorType *ot)
void ED_node_composit_default(const bContext *C, struct Scene *sce)
void snode_notify(bContext *C, SpaceNode *snode)
static int node_resize_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int node_output_file_move_active_socket_exec(bContext *C, wmOperator *op)
void NODE_OT_options_toggle(wmOperatorType *ot)
static int node_clipboard_paste_exec(bContext *C, wmOperator *op)
static int node_switch_view_exec(bContext *C, wmOperator *UNUSED(op))
bool node_has_hidden_sockets(bNode *node)
static int viewer_border_exec(bContext *C, wmOperator *op)
void NODE_OT_output_file_move_active_socket(wmOperatorType *ot)
static void node_resize_init(bContext *C, wmOperator *op, const wmEvent *UNUSED(event), bNode *node, int dir)
static const EnumPropertyItem move_direction_items[]
void ED_node_set_active(Main *bmain, bNodeTree *ntree, bNode *node, bool *r_active_texture_changed)
void NODE_OT_render_changed(wmOperatorType *ot)
static int node_clipboard_copy_exec(bContext *C, wmOperator *UNUSED(op))
float node_socket_calculate_height(const bNodeSocket *socket)
void ED_node_shader_default(const bContext *C, ID *id)
static void node_resize_cancel(bContext *C, wmOperator *op)
void NODE_OT_hide_socket_toggle(wmOperatorType *ot)
void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set)
void NODE_OT_cryptomatte_layer_remove(wmOperatorType *ot)
static int node_cryptomatte_remove_socket_exec(bContext *C, wmOperator *UNUSED(op))
static int node_mute_exec(bContext *C, wmOperator *UNUSED(op))
static int node_options_toggle_exec(bContext *C, wmOperator *UNUSED(op))
int node_find_indicated_socket(SpaceNode *snode, bNode **nodep, bNodeSocket **sockp, const float cursor[2], int in_out)
void NODE_OT_tree_socket_add(wmOperatorType *ot)
static int node_output_file_add_socket_exec(bContext *C, wmOperator *op)
void NODE_OT_viewer_border(wmOperatorType *ot)
static bool node_shader_script_update_poll(bContext *C)
void NODE_OT_clear_viewer_border(wmOperatorType *ot)
bool composite_node_editable(bContext *C)
static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
void ED_node_select_all(ListBase *lb, int action)
static bNodeSocket * ntree_get_active_interface_socket(ListBase *lb)
static int node_hide_toggle_exec(bContext *C, wmOperator *UNUSED(op))
bNodeTreeType * ntreeType_Geometry
#define NODE_MULTI_INPUT_LINK_GAP
void node_deselect_all(struct SpaceNode *snode)
bool node_connected_to_output(struct Main *bmain, struct bNodeTree *ntree, struct bNode *node)
bool RE_ReadRenderResult(Scene *scene, Scene *scenode)
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_id_pointer_create(ID *id, PointerRNA *r_ptr)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_int_get(PointerRNA *ptr, const char *name)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
const EnumPropertyItem rna_enum_node_socket_in_out_items[]
Depsgraph * compositor_depsgraph
struct bNodeTree * nodetree
struct bNodeTree * nodetree
struct ImageFormatData im_format
struct ReportList * reports
struct bNodeTree * nodetree
ColorManagedViewSettings view_settings
ColorManagedDisplaySettings display_settings
SpaceNode_Runtime * runtime
struct bNodeTree * edittree
struct bNodeTree * nodetree
struct bNodeTree * nodetree
struct bNodeTree * nodetree
struct bNodeSocket * new_sock
struct bNodeSocket * next
struct bNodeSocket * prev
struct bNodeTree * nodetree
struct bNodeTreePath * prev
bool(* poll)(const struct bContext *C, struct bNodeTreeType *ntreetype)
void(* get_from_context)(const struct bContext *C, struct bNodeTreeType *ntreetype, struct bNodeTree **r_ntree, struct ID **r_id, struct ID **r_from)
void(* progress)(void *, float progress)
int(* test_break)(void *)
void(* update_draw)(void *)
void(* stats_draw)(void *, const char *str)
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
void(* cancel)(struct bContext *, struct wmOperator *)
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
void WM_cursor_modal_set(wmWindow *win, int val)
void WM_cursor_modal_restore(wmWindow *win)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_main_add_notifier(unsigned int type, void *reference)
int WM_operator_name_call(bContext *C, const char *opstring, short context, PointerRNA *properties)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_gesture_box_cancel(bContext *C, wmOperator *op)
int WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
int WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, void *owner, const char *name, int flag, int job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *))
void WM_jobs_timer(wmJob *wm_job, double timestep, unsigned int note, unsigned int endnote)
void WM_operator_properties_border_to_rcti(struct wmOperator *op, rcti *rect)
void WM_operator_properties_gesture_box(wmOperatorType *ot)
void WM_operator_properties_create(PointerRNA *ptr, const char *opstring)
void WM_operator_properties_free(PointerRNA *ptr)
bScreen * WM_window_get_active_screen(const wmWindow *win)