[Bf-blender-cvs] [9d62e6e782a] master: UI: don't draw outline when it's not calculated

Campbell Barton noreply at git.blender.org
Thu Jan 11 03:15:44 CET 2018


Commit: 9d62e6e782addd16323bd95ed70f86fcb077fd84
Author: Campbell Barton
Date:   Thu Jan 11 13:20:08 2018 +1100
Branches: master
https://developer.blender.org/rB9d62e6e782addd16323bd95ed70f86fcb077fd84

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.

===================================================================

M	source/blender/editors/interface/interface_widgets.c

===================================================================

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)) {



More information about the Bf-blender-cvs mailing list