Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-11-08 19:19:11 +0300
committerJacques Lucke <jacques@blender.org>2021-11-08 19:19:11 +0300
commit8b56f351e285b07d16f7c5e513b902c489851bef (patch)
tree03fcf043d9ce08f14454fc2af70053d29b74e774
parent33729eaf69c3220ebf791b9260bfca1bb3c5048a (diff)
progress
-rw-r--r--source/blender/editors/space_node/drawnode.cc2
-rw-r--r--source/blender/editors/space_node/node_draw.cc25
2 files changed, 26 insertions, 1 deletions
diff --git a/source/blender/editors/space_node/drawnode.cc b/source/blender/editors/space_node/drawnode.cc
index e336e3abd4d..1c07d472008 100644
--- a/source/blender/editors/space_node/drawnode.cc
+++ b/source/blender/editors/space_node/drawnode.cc
@@ -4353,7 +4353,7 @@ void node_draw_link_bezier(const bContext *C,
}
if (link->flag & NODE_LINK_PORTAL) {
- if (is_fromnode_selected || is_tonode_selected) {
+ if (link->flag & NODE_LINK_DRAGGED || is_fromnode_selected || is_tonode_selected) {
dim_factor = 0.3f;
}
else {
diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index 5fdf816339b..a419127912c 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -2154,6 +2154,30 @@ static void node_draw(const bContext *C,
}
}
+static void draw_portal_link_indicators(bNodeTree *ntree)
+{
+ uint pos = GPU_vertformat_attr_add(immVertexFormat(), "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
+ immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
+ immUniformColor3f(0.8f, 0.3f, 0.3f);
+ GPU_point_size(10);
+ immBeginAtMost(GPU_PRIM_POINTS, 1000);
+ LISTBASE_FOREACH (bNodeLink *, link, &ntree->links) {
+ const bool from_node_selected = link->fromnode != nullptr &&
+ link->fromnode->flag & NODE_SELECT;
+ const bool to_node_selected = link->tonode != nullptr && link->tonode->flag & NODE_SELECT;
+ if (nodeLinkIsPortal(link) && !from_node_selected && !to_node_selected) {
+ if (link->fromsock) {
+ immVertex2f(pos, link->fromsock->locx + 10, link->fromsock->locy);
+ }
+ if (link->tosock) {
+ immVertex2f(pos, link->tosock->locx - 10, link->tosock->locy);
+ }
+ }
+ }
+ immEnd();
+ immUnbindProgram();
+}
+
#define USE_DRAW_TOT_UPDATE
void node_draw_nodetree(const bContext *C,
@@ -2190,6 +2214,7 @@ void node_draw_nodetree(const bContext *C,
/* Node lines. */
GPU_blend(GPU_BLEND_ALPHA);
+ draw_portal_link_indicators(ntree);
nodelink_batch_start(snode);
LISTBASE_FOREACH (bNodeLink *, link, &ntree->links) {