diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-01-11 05:20:08 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-01-11 05:23:55 +0300 |
commit | 9d62e6e782addd16323bd95ed70f86fcb077fd84 (patch) | |
tree | 951538475c5b0be91d5b06e1acbd4863b6793480 | |
parent | 25b794a39d8cff87b6df2338d020e8d4ba90eeef (diff) |
UI: don't draw outline when it's not calculated
Outline drawing was running even when there were no verts to draw.
Causes an assert in 2.8.
-rw-r--r-- | source/blender/editors/interface/interface_widgets.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index 39ee8e2885d..b25e1130c60 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -685,6 +685,7 @@ static void widgetbase_draw(uiWidgetBase *wtb, uiWidgetColors *wcol) /* backdrop non AA */ if (wtb->draw_inner) { + BLI_assert(wtb->totvert != 0); if (wcol->shaded == 0) { if (wcol->alpha_check) { float inner_v_half[WIDGET_SIZE_MAX][2]; @@ -764,6 +765,7 @@ static void widgetbase_draw(uiWidgetBase *wtb, uiWidgetColors *wcol) /* for each AA step */ if (wtb->draw_outline) { + BLI_assert(wtb->totvert != 0); float triangle_strip[WIDGET_SIZE_MAX * 2 + 2][2]; /* + 2 because the last pair is wrapped */ float triangle_strip_emboss[WIDGET_SIZE_MAX * 2][2]; /* only for emboss */ @@ -2680,6 +2682,10 @@ static void widget_numbut_draw(uiWidgetColors *wcol, rcti *rect, int state, int if (!emboss) { round_box_edges(&wtb, roundboxalign, rect, rad); } + else { + wtb.draw_inner = false; + wtb.draw_outline = false; + } /* decoration */ if (!(state & UI_STATE_TEXT_INPUT)) { |