[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