[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29441] trunk/blender/source/blender/ editors/space_node/node_draw.c: Don't draw nodes that are out of the view
Matt Ebb
matt at mke3.net
Mon Jun 14 09:02:12 CEST 2010
Revision: 29441
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29441
Author: broken
Date: 2010-06-14 09:02:11 +0200 (Mon, 14 Jun 2010)
Log Message:
-----------
Don't draw nodes that are out of the view
speeds up node editor fairly considerably on a complex comp
Modified Paths:
--------------
trunk/blender/source/blender/editors/space_node/node_draw.c
Modified: trunk/blender/source/blender/editors/space_node/node_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_draw.c 2010-06-14 03:52:10 UTC (rev 29440)
+++ trunk/blender/source/blender/editors/space_node/node_draw.c 2010-06-14 07:02:11 UTC (rev 29441)
@@ -626,13 +626,7 @@
}
}
-// if(GPU_type_matches(GPU_DEVICE_NVIDIA, GPU_OS_MAC, GPU_DRIVER_OFFICIAL)) { XXX
-// float zoomx= curarea->winx/(float)(G.v2d->cur.xmax-G.v2d->cur.xmin);
-// float zoomy= curarea->winy/(float)(G.v2d->cur.ymax-G.v2d->cur.ymin);
-// glPixelZoom(zoomx*xscale, zoomy*yscale);
-// }
-// else
- glPixelZoom(xscale, yscale);
+ glPixelZoom(xscale, yscale);
glEnable(GL_BLEND);
glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_ALPHA ); /* premul graphics */
@@ -661,6 +655,19 @@
bNodeTree *ntree = snode->nodetree;
PointerRNA ptr;
+ /* hurmf... another candidate for callback, have to see how this works first */
+ if(node->id && node->block && snode->treetype==NTREE_SHADER)
+ nodeShaderSynchronizeID(node, 0);
+
+ /* skip if out of view */
+ if (node->totr.xmax < ar->v2d.cur.xmin || node->totr.xmin > ar->v2d.cur.xmax ||
+ node->totr.ymax < ar->v2d.cur.ymin || node->totr.ymin > ar->v2d.cur.ymax) {
+
+ uiEndBlock(C, node->block);
+ node->block= NULL;
+ return;
+ }
+
uiSetRoundBox(15-4);
ui_dropshadow(rct, BASIS_RAD, snode->aspect, node->flag & SELECT);
@@ -761,10 +768,6 @@
node_draw_mute_line(v2d, snode, node);
- /* hurmf... another candidate for callback, have to see how this works first */
- if(node->id && node->block && snode->treetype==NTREE_SHADER)
- nodeShaderSynchronizeID(node, 0);
-
/* socket inputs, buttons */
for(sock= node->inputs.first; sock; sock= sock->next) {
if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL))) {
More information about the Bf-blender-cvs
mailing list