diff options
author | Erik <ecke101@gmail.com> | 2021-11-18 23:21:10 +0300 |
---|---|---|
committer | Erik <ecke101@gmail.com> | 2021-11-18 23:21:10 +0300 |
commit | b2d37c35d068ee9a58f9d92936b286178feaf0fc (patch) | |
tree | 0cb8c30c870a1bd64f024d35a2b45979646ebf93 /source/blender/editors/space_node | |
parent | 167ee8f2c7baf5ca4869aceaa275bd704b802b73 (diff) |
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
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/node_draw.cc | 8 |
1 files changed, 7 insertions, 1 deletions
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; |