diff options
author | Omar Emara <mail@OmarEmara.dev> | 2021-11-02 19:33:25 +0300 |
---|---|---|
committer | Omar Emara <mail@OmarEmara.dev> | 2021-11-02 19:33:25 +0300 |
commit | 27621490c22ab9e1d7ccf6984b3f7b1c118c0dd1 (patch) | |
tree | 4a8576c1af33cbf8ff34db08e762e87094b7a2bc /source/blender/editors | |
parent | 12bf4adbe3afb353834232a3d0e5d7c96eb40cb1 (diff) | |
parent | 980bc5a707551f6db18deeeb29c5f59f7a7c98bc (diff) |
Merge branch 'blender-v3.0-release'
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_node/drawnode.cc | 18 | ||||
-rw-r--r-- | source/blender/editors/space_node/node_draw.cc | 23 | ||||
-rw-r--r-- | source/blender/editors/space_node/node_intern.h | 12 |
3 files changed, 32 insertions, 21 deletions
diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc index 24f5decacdf..83b7c119b62 100644 --- a/source/blender/editors/space_node/drawnode.cc +++ b/source/blender/editors/space_node/drawnode.cc @@ -4268,7 +4268,8 @@ static void nodelink_batch_add_link(const SpaceNode *snode, } /* don't do shadows if th_col3 is -1. */ -void node_draw_link_bezier(const View2D *v2d, +void node_draw_link_bezier(const bContext *C, + const View2D *v2d, const SpaceNode *snode, const bNodeLink *link, int th_col1, @@ -4310,18 +4311,21 @@ void node_draw_link_bezier(const View2D *v2d, snode->overlay.flag & SN_OVERLAY_SHOW_WIRE_COLORS && ((link->fromsock == nullptr || link->fromsock->typeinfo->type >= 0) && (link->tosock == nullptr || link->tosock->typeinfo->type >= 0))) { + PointerRNA from_node_ptr, to_node_ptr; + RNA_pointer_create((ID *)snode->edittree, &RNA_Node, link->fromnode, &from_node_ptr); + RNA_pointer_create((ID *)snode->edittree, &RNA_Node, link->tonode, &to_node_ptr); if (link->fromsock) { - copy_v4_v4(colors[1], std_node_socket_colors[link->fromsock->typeinfo->type]); + node_socket_color_get(C, snode->edittree, &from_node_ptr, link->fromsock, colors[1]); } else { - copy_v4_v4(colors[1], std_node_socket_colors[link->tosock->typeinfo->type]); + node_socket_color_get(C, snode->edittree, &to_node_ptr, link->tosock, colors[1]); } if (link->tosock) { - copy_v4_v4(colors[2], std_node_socket_colors[link->tosock->typeinfo->type]); + node_socket_color_get(C, snode->edittree, &to_node_ptr, link->tosock, colors[2]); } else { - copy_v4_v4(colors[2], std_node_socket_colors[link->fromsock->typeinfo->type]); + node_socket_color_get(C, snode->edittree, &from_node_ptr, link->fromsock, colors[2]); } } else { @@ -4392,7 +4396,7 @@ void node_draw_link_bezier(const View2D *v2d, } /* NOTE: this is used for fake links in groups too. */ -void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) +void node_draw_link(const bContext *C, View2D *v2d, SpaceNode *snode, bNodeLink *link) { int th_col1 = TH_WIRE_INNER, th_col2 = TH_WIRE_INNER, th_col3 = TH_WIRE; @@ -4436,7 +4440,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link) } } - node_draw_link_bezier(v2d, snode, link, th_col1, th_col2, th_col3); + node_draw_link_bezier(C, v2d, snode, link, th_col1, th_col2, th_col3); } void ED_node_draw_snap(View2D *v2d, const float cent[2], float size, NodeBorder border, uint pos) diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc index a6496294f96..f76c29ef0d9 100644 --- a/source/blender/editors/space_node/node_draw.cc +++ b/source/blender/editors/space_node/node_draw.cc @@ -725,12 +725,15 @@ int node_get_colorid(bNode *node) } } -static void node_draw_mute_line(const View2D *v2d, const SpaceNode *snode, const bNode *node) +static void node_draw_mute_line(const bContext *C, + const View2D *v2d, + const SpaceNode *snode, + const bNode *node) { GPU_blend(GPU_BLEND_ALPHA); LISTBASE_FOREACH (const bNodeLink *, link, &node->internal_links) { - node_draw_link_bezier(v2d, snode, link, TH_WIRE_INNER, TH_WIRE_INNER, TH_WIRE); + node_draw_link_bezier(C, v2d, snode, link, TH_WIRE_INNER, TH_WIRE_INNER, TH_WIRE); } GPU_blend(GPU_BLEND_NONE); @@ -825,13 +828,13 @@ static void node_socket_outline_color_get(const bool selected, /* Usual convention here would be node_socket_get_color(), but that's already used (for setting a * color property socket). */ void node_socket_color_get( - bContext *C, bNodeTree *ntree, PointerRNA *node_ptr, bNodeSocket *sock, float r_color[4]) + const bContext *C, bNodeTree *ntree, PointerRNA *node_ptr, bNodeSocket *sock, float r_color[4]) { PointerRNA ptr; BLI_assert(RNA_struct_is_a(node_ptr->type, &RNA_Node)); RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, sock, &ptr); - sock->typeinfo->draw_color(C, &ptr, node_ptr, r_color); + sock->typeinfo->draw_color((bContext *)C, &ptr, node_ptr, r_color); } struct SocketTooltipData { @@ -1049,7 +1052,7 @@ static void node_socket_draw_nested(const bContext *C, float color[4]; float outline_color[4]; - node_socket_color_get((bContext *)C, ntree, node_ptr, sock, color); + node_socket_color_get(C, ntree, node_ptr, sock, color); node_socket_outline_color_get(selected, sock->type, outline_color); node_socket_draw(sock, @@ -1464,7 +1467,7 @@ void node_draw_sockets(const View2D *v2d, float color[4]; float outline_color[4]; - node_socket_color_get((bContext *)C, ntree, &node_ptr, socket, color); + node_socket_color_get(C, ntree, &node_ptr, socket, color); node_socket_outline_color_get(selected, socket->type, outline_color); node_socket_draw_multi_input(color, outline_color, width, height, socket->locx, socket->locy); @@ -1762,7 +1765,7 @@ static void node_draw_basis(const bContext *C, /* Wire across the node when muted/disabled. */ if (node->flag & NODE_MUTED) { - node_draw_mute_line(v2d, snode, node); + node_draw_mute_line(C, v2d, snode, node); } /* Body. */ @@ -1891,7 +1894,7 @@ static void node_draw_hidden(const bContext *C, /* Wire across the node when muted/disabled. */ if (node->flag & NODE_MUTED) { - node_draw_mute_line(v2d, snode, node); + node_draw_mute_line(C, v2d, snode, node); } /* Body. */ @@ -2202,7 +2205,7 @@ void node_draw_nodetree(const bContext *C, LISTBASE_FOREACH (bNodeLink *, link, &ntree->links) { if (!nodeLinkIsHidden(link)) { - node_draw_link(®ion->v2d, snode, link); + node_draw_link(C, ®ion->v2d, snode, link); } } nodelink_batch_end(snode); @@ -2387,7 +2390,7 @@ void node_draw_space(const bContext *C, ARegion *region) GPU_line_smooth(true); LISTBASE_FOREACH (bNodeLinkDrag *, nldrag, &snode->runtime->linkdrag) { LISTBASE_FOREACH (LinkData *, linkdata, &nldrag->links) { - node_draw_link(v2d, snode, (bNodeLink *)linkdata->data); + node_draw_link(C, v2d, snode, (bNodeLink *)linkdata->data); } } GPU_line_smooth(false); diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h index c0d50e753ff..383fe5afdf9 100644 --- a/source/blender/editors/space_node/node_intern.h +++ b/source/blender/editors/space_node/node_intern.h @@ -121,7 +121,7 @@ void node_draw_sockets(const struct View2D *v2d, void node_update_default(const struct bContext *C, struct bNodeTree *ntree, struct bNode *node); int node_select_area_default(struct bNode *node, int x, int y); int node_tweak_area_default(struct bNode *node, int x, int y); -void node_socket_color_get(struct bContext *C, +void node_socket_color_get(const struct bContext *C, struct bNodeTree *ntree, struct PointerRNA *node_ptr, struct bNodeSocket *sock, @@ -186,8 +186,12 @@ void NODE_OT_backimage_sample(struct wmOperatorType *ot); void nodelink_batch_start(struct SpaceNode *snode); void nodelink_batch_end(struct SpaceNode *snode); -void node_draw_link(struct View2D *v2d, struct SpaceNode *snode, struct bNodeLink *link); -void node_draw_link_bezier(const struct View2D *v2d, +void node_draw_link(const struct bContext *C, + struct View2D *v2d, + struct SpaceNode *snode, + struct bNodeLink *link); +void node_draw_link_bezier(const struct bContext *C, + const struct View2D *v2d, const struct SpaceNode *snode, const struct bNodeLink *link, int th_col1, @@ -348,4 +352,4 @@ extern const char *node_context_dir[]; namespace blender::ed::space_node { Vector<ui::ContextPathItem> context_path_for_space_node(const bContext &C); } -#endif
\ No newline at end of file +#endif |