Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-07-09 20:51:08 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-07-09 20:51:08 +0400
commita1d5261951ab621d2874ea24e80c95f1b83b5ac8 (patch)
treeb24b06581bca5e08201a090212572abf5ad4d81d /source/blender/editors/space_node
parent80fa54ab3cfcec7d9ce5976a1b0af1b0c92cdef0 (diff)
fix node drawing glitch where text alignment for output sockets would move the text X axis twice as much as it should have.
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r--source/blender/editors/space_node/drawnode.c27
-rw-r--r--source/blender/editors/space_node/node_draw.c3
2 files changed, 15 insertions, 15 deletions
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 5f82bf3aa51..41b4063a29a 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -216,12 +216,12 @@ static void node_draw_output_default(const bContext *C, uiBlock *block,
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 @@ void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int t
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];
}
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index 65646c855b7..745582c1125 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -1109,7 +1109,8 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
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 */