[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42672] trunk/blender/source/blender/ editors/interface: Fix #29569: region expander widget drawing poorly antialiased.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Dec 16 23:01:05 CET 2011


Revision: 42672
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42672
Author:   blendix
Date:     2011-12-16 22:00:53 +0000 (Fri, 16 Dec 2011)
Log Message:
-----------
Fix #29569: region expander widget drawing poorly antialiased.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_draw.c
    trunk/blender/source/blender/editors/interface/interface_intern.h
    trunk/blender/source/blender/editors/interface/interface_widgets.c

Modified: trunk/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_draw.c	2011-12-16 20:35:06 UTC (rev 42671)
+++ trunk/blender/source/blender/editors/interface/interface_draw.c	2011-12-16 22:00:53 UTC (rev 42672)
@@ -389,17 +389,7 @@
 		glEnable( GL_BLEND );
 	}
 	
-	/* solid part */
-	uiDrawBox(GL_POLYGON, minx, miny, maxx, maxy, rad);
-	
-	/* set antialias line */
-	glEnable( GL_LINE_SMOOTH );
-	glEnable( GL_BLEND );
-	
-	uiDrawBox(GL_LINE_LOOP, minx, miny, maxx, maxy, rad);
-	
-	glDisable( GL_BLEND );
-	glDisable( GL_LINE_SMOOTH );
+	ui_draw_anti_roundbox(GL_POLYGON, minx, miny, maxx, maxy, rad);
 }
 
 

Modified: trunk/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_intern.h	2011-12-16 20:35:06 UTC (rev 42671)
+++ trunk/blender/source/blender/editors/interface/interface_intern.h	2011-12-16 22:00:53 UTC (rev 42672)
@@ -462,6 +462,7 @@
 
 /* interface_widgets.c */
 void ui_draw_anti_tria(float x1, float y1, float x2, float y2, float x3, float y3);
+void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy, float rad);
 void ui_draw_menu_back(struct uiStyle *style, uiBlock *block, rcti *rect);
 void ui_draw_search_back(struct uiStyle *style, uiBlock *block, rcti *rect);
 int ui_link_bezier_points(rcti *rect, float coord_array[][2], int resol);

Modified: trunk/blender/source/blender/editors/interface/interface_widgets.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_widgets.c	2011-12-16 20:35:06 UTC (rev 42671)
+++ trunk/blender/source/blender/editors/interface/interface_widgets.c	2011-12-16 22:00:53 UTC (rev 42672)
@@ -200,7 +200,25 @@
 
 	glDisableClientState(GL_VERTEX_ARRAY);
 	glDisable(GL_BLEND);
+}
+
+void ui_draw_anti_roundbox(int mode, float minx, float miny, float maxx, float maxy, float rad)
+{
+	float color[4];
+	int j;
 	
+	glEnable(GL_BLEND);
+	glGetFloatv(GL_CURRENT_COLOR, color);
+	color[3] *= 0.125f;
+	glColor4fv(color);
+	
+	for(j=0; j<8; j++) {
+		glTranslatef(1.0f * jit[j][0], 1.0f * jit[j][1], 0.0f);
+		uiDrawBox(mode, minx, miny, maxx, maxy, rad);
+		glTranslatef(-1.0f * jit[j][0], -1.0f * jit[j][1], 0.0f);
+	}
+
+	glDisable(GL_BLEND);
 }
 
 static void widget_init(uiWidgetBase *wtb)




More information about the Bf-blender-cvs mailing list