[Bf-blender-cvs] [8b56f351e28] temp-link-portals: progress

Jacques Lucke noreply at git.blender.org
Mon Nov 8 18:48:49 CET 2021


Commit: 8b56f351e285b07d16f7c5e513b902c489851bef
Author: Jacques Lucke
Date:   Mon Nov 8 17:19:11 2021 +0100
Branches: temp-link-portals
https://developer.blender.org/rB8b56f351e285b07d16f7c5e513b902c489851bef

progress

===================================================================

M	source/blender/editors/space_node/drawnode.cc
M	source/blender/editors/space_node/node_draw.cc

===================================================================

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) {



More information about the Bf-blender-cvs mailing list