[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48762] trunk/blender/source/blender: fix node drawing glitch where text alignment for output sockets would move the text X axis twice as much as it should have .

Campbell Barton ideasman42 at gmail.com
Mon Jul 9 18:51:09 CEST 2012


Revision: 48762
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48762
Author:   campbellbarton
Date:     2012-07-09 16:51:08 +0000 (Mon, 09 Jul 2012)
Log Message:
-----------
fix node drawing glitch where text alignment for output sockets would move the text X axis twice as much as it should have.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_node/node_draw.c
    trunk/blender/source/blender/makesdna/DNA_space_types.h

Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/drawnode.c	2012-07-09 16:26:01 UTC (rev 48761)
+++ trunk/blender/source/blender/editors/space_node/drawnode.c	2012-07-09 16:51:08 UTC (rev 48762)
@@ -216,12 +216,12 @@
 	int ofs = 0;
 	const char *ui_name = IFACE_(name);
 	UI_ThemeColor(TH_TEXT);
-	slen = snode->aspect * UI_GetStringWidth(ui_name);
+	slen = snode->aspect_sqrt * UI_GetStringWidth(ui_name);
 	while (slen > node->width) {
 		ofs++;
-		slen = snode->aspect * UI_GetStringWidth(ui_name + ofs);
+		slen = snode->aspect_sqrt * UI_GetStringWidth(ui_name + ofs);
 	}
-	uiDefBut(block, LABEL, 0, ui_name + ofs, (short)(sock->locx - 15.0f - slen), (short)(sock->locy - 9.0f),
+	uiDefBut(block, LABEL, 0, ui_name + ofs, (short)(sock->locx - (15.0f * snode->aspect_sqrt) - slen), (short)(sock->locy - 9.0f),
 	         (short)(node->width - NODE_DY), NODE_DY,  NULL, 0, 0, 0, 0, "");
 }
 
@@ -3178,17 +3178,16 @@
 		
 		drawarrow = (link->tonode && (link->tonode->type == NODE_REROUTE)) && (link->fromnode && (link->fromnode->type == NODE_REROUTE));
 		if (drawarrow) {
-			// draw arrow in line segment LINK_ARROW
-			float dx, dy, len;
-			dx = coord_array[LINK_ARROW][0]-coord_array[LINK_ARROW-1][0];
-			dy = coord_array[LINK_ARROW][1]-coord_array[LINK_ARROW-1][1];
-			len = sqrtf(dx*dx+dy*dy);
-			dx = dx /len*ARROW_SIZE;
-			dy = dy /len*ARROW_SIZE;
-			arrow1[0] = coord_array[LINK_ARROW][0]-dx+dy;
-			arrow1[1] = coord_array[LINK_ARROW][1]-dy-dx;
-			arrow2[0] = coord_array[LINK_ARROW][0]-dx-dy;
-			arrow2[1] = coord_array[LINK_ARROW][1]-dy+dx;
+			/* draw arrow in line segment LINK_ARROW */
+			float d_xy[2], len;
+
+			sub_v2_v2v2(d_xy, coord_array[LINK_ARROW], coord_array[LINK_ARROW - 1]);
+			len = len_v2(d_xy);
+			mul_v2_fl(d_xy, 1.0f / (len * ARROW_SIZE));
+			arrow1[0] = coord_array[LINK_ARROW][0] - d_xy[0] + d_xy[1];
+			arrow1[1] = coord_array[LINK_ARROW][1] - d_xy[1] - d_xy[0];
+			arrow2[0] = coord_array[LINK_ARROW][0] - d_xy[0] - d_xy[1];
+			arrow2[1] = coord_array[LINK_ARROW][1] - d_xy[1] + d_xy[0];
 			arrow[0] = coord_array[LINK_ARROW][0];
 			arrow[1] = coord_array[LINK_ARROW][1];
 		}

Modified: trunk/blender/source/blender/editors/space_node/node_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_draw.c	2012-07-09 16:26:01 UTC (rev 48761)
+++ trunk/blender/source/blender/editors/space_node/node_draw.c	2012-07-09 16:51:08 UTC (rev 48762)
@@ -1109,7 +1109,8 @@
 	glEnable(GL_MAP1_VERTEX_3);
 
 	/* aspect+font, set each time */
-	snode->aspect= (v2d->cur.xmax - v2d->cur.xmin)/((float)ar->winx);
+	snode->aspect = (v2d->cur.xmax - v2d->cur.xmin) / ((float)ar->winx);
+	snode->aspect_sqrt = sqrtf(snode->aspect);
 	// XXX snode->curfont= uiSetCurFont_ext(snode->aspect);
 
 	/* grid */

Modified: trunk/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-07-09 16:26:01 UTC (rev 48761)
+++ trunk/blender/source/blender/makesdna/DNA_space_types.h	2012-07-09 16:51:08 UTC (rev 48762)
@@ -856,10 +856,10 @@
 	
 	struct ID *id, *from;       /* context, no need to save in file? well... pinning... */
 	short flag, pad1;           /* menunr: browse id block in header */
-	float aspect;
+	float aspect, aspect_sqrt;
 	
 	float xof, yof;     /* offset for drawing the backdrop */
-	float zoom, padf;   /* zoom for backdrop */
+	float zoom;   /* zoom for backdrop */
 	float mx, my;       /* mousepos for drawing socketless link */
 	
 	struct bNodeTree *nodetree, *edittree;




More information about the Bf-blender-cvs mailing list