From 80fa54ab3cfcec7d9ce5976a1b0af1b0c92cdef0 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 9 Jul 2012 16:26:01 +0000 Subject: correction to last commit. aspect doesn't need to be calculated every time. --- source/blender/editors/space_node/drawnode.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 502786e2b3e..5f82bf3aa51 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -946,11 +946,8 @@ static void node_update_frame(const bContext *UNUSED(C), bNodeTree *ntree, bNode node->totr = rect; } -static void node_draw_frame_label(View2D *v2d, bNode *node) +static void node_draw_frame_label(bNode *node, const float aspect) { - const float aspx = (v2d->cur.xmax - v2d->cur.xmin) / (v2d->mask.xmax - v2d->mask.xmin); - const float aspy = (v2d->cur.ymax - v2d->cur.ymin) / (v2d->mask.ymax - v2d->mask.ymin); - /* XXX font id is crap design */ const int fontid = blf_mono_font; NodeFrame *data = (NodeFrame *)node->storage; @@ -960,22 +957,23 @@ static void node_draw_frame_label(View2D *v2d, bNode *node) /* XXX a bit hacky, should use separate align values for x and y */ float width, ascender; float x, y; - const int font_size = data->label_size / aspx; + const int font_size = data->label_size / aspect; BLI_strncpy(label, nodeLabel(node), sizeof(label)); BLF_enable(fontid, BLF_ASPECT); - BLF_aspect(fontid, aspx, aspy, 1.0f); + BLF_aspect(fontid, aspect, aspect, 1.0f); BLF_size(fontid, MIN2(24, font_size), U.dpi); /* clamp otherwise it can suck up a LOT of memory */ /* title color */ UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.8f, 10); width = BLF_width(fontid, label); - ascender = BLF_ascender(fontid) * aspy; + ascender = BLF_ascender(fontid); + /* 'x' doesn't need aspect correction */ x = 0.5f * (rct->xmin + rct->xmax) - 0.5f * width; - y = rct->ymax - NODE_DYS - ascender; + y = rct->ymax - NODE_DYS - (ascender * aspect); BLF_position(fontid, x, y, 0); BLF_draw(fontid, label, BLF_DRAW_STR_DUMMY_MAX); @@ -1032,7 +1030,7 @@ static void node_draw_frame(const bContext *C, ARegion *ar, SpaceNode *snode, bN } /* label */ - node_draw_frame_label(&ar->v2d, node); + node_draw_frame_label(node, snode->aspect); UI_ThemeClearColor(color_id); -- cgit v1.2.3