[Bf-blender-cvs] [b2d37c35d06] master: Node Editor: Skip socket drawing on low zoom

Erik noreply at git.blender.org
Thu Nov 18 21:21:43 CET 2021


Commit: b2d37c35d068ee9a58f9d92936b286178feaf0fc
Author: Erik
Date:   Thu Nov 18 21:21:10 2021 +0100
Branches: master
https://developer.blender.org/rBb2d37c35d068ee9a58f9d92936b286178feaf0fc

Node Editor: Skip socket drawing on low zoom

Socket drawing can be heavy with many nodes.
This patch skips drawing them on scale < 0.2
when they are barely visible anyway.

Differential Revision: https://developer.blender.org/D13255

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

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

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

diff --git a/source/blender/editors/space_node/node_draw.cc b/source/blender/editors/space_node/node_draw.cc
index b2c16280c58..bf3a9ba0c52 100644
--- a/source/blender/editors/space_node/node_draw.cc
+++ b/source/blender/editors/space_node/node_draw.cc
@@ -1842,7 +1842,13 @@ static void node_draw_basis(const bContext *C,
     UI_draw_roundbox_4fv(&rect, false, BASIS_RAD, color_outline);
   }
 
-  node_draw_sockets(v2d, C, ntree, node, true, false);
+  float scale;
+  UI_view2d_scale_get(v2d, &scale, nullptr);
+
+  /* Skip slow socket drawing if zoom is small. */
+  if (scale > 0.2f) {
+    node_draw_sockets(v2d, C, ntree, node, true, false);
+  }
 
   /* Preview. */
   bNodeInstanceHash *previews = (bNodeInstanceHash *)CTX_data_pointer_get(C, "node_previews").data;



More information about the Bf-blender-cvs mailing list