[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28669] trunk/blender/source/blender/ editors/space_view3d/drawobject.c: bugfix [#22281] Edit mode face selection dots gone from textured viewport mode

Campbell Barton ideasman42 at gmail.com
Sat May 8 19:54:29 CEST 2010


Revision: 28669
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28669
Author:   campbellbarton
Date:     2010-05-08 19:54:29 +0200 (Sat, 08 May 2010)

Log Message:
-----------
bugfix [#22281] Edit mode face selection dots gone from textured viewport mode
tweaked the logic for drawing face dots

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/drawobject.c

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-05-08 16:36:28 UTC (rev 28668)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-05-08 17:54:29 UTC (rev 28669)
@@ -105,13 +105,6 @@
 ((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \
 	(vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
 
-#define CHECK_OB_DRAWFACEDOT(sce, vd, dt) \
-(	(sce->toolsettings->selectmode & SCE_SELECT_FACE) && \
-	(vd->drawtype<=OB_SOLID) && \
-	(G.f & G_BACKBUFSEL)==0 && \
-	(((vd->drawtype==OB_SOLID) && (dt>=OB_SOLID) && (vd->flag2 & V3D_SOLID_TEX) && (vd->flag & V3D_ZBUF_SELECT)) == 0) \
-	)
-
 static void draw_bounding_volume(Scene *scene, Object *ob);
 
 static void drawcube_size(float size);
@@ -119,7 +112,27 @@
 static void draw_empty_sphere(float size);
 static void draw_empty_cone(float size);
 
+static int check_ob_drawface_dot(Scene *sce, View3D *vd, char dt)
+{
+	if((sce->toolsettings->selectmode & SCE_SELECT_FACE) == 0)
+		return 0;
 
+	if(G.f & G_BACKBUFSEL)
+		return 0;
+
+	if((vd->flag & V3D_ZBUF_SELECT) == 0)
+		return 1;
+
+	/* if its drawing textures with zbuf sel, then dont draw dots */
+	if(dt==OB_TEXTURE && vd->drawtype==OB_TEXTURE)
+		return 0;
+
+	if(vd->drawtype>=OB_SOLID && vd->flag2 & V3D_SOLID_TEX)
+		return 0;
+
+	return 1;
+}
+
 /* ************* only use while object drawing **************
  * or after running ED_view3d_init_mats_rv3d
  * */
@@ -1980,7 +1993,7 @@
 				draw_dm_verts(cageDM, sel, eve_act);
 			}
 			
-			if( CHECK_OB_DRAWFACEDOT(scene, v3d, obedit->dt) ) {
+			if(check_ob_drawface_dot(scene, v3d, obedit->dt)) {
 				glPointSize(fsize);
 				glColor4ubv((GLubyte *)fcol);
 				draw_dm_face_centers(cageDM, sel);
@@ -6293,7 +6306,7 @@
 	if (facecol) {
 		dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0);
 
-		if( CHECK_OB_DRAWFACEDOT(scene, v3d, ob->dt) ) {
+		if(check_ob_drawface_dot(scene, v3d, ob->dt)) {
 			glPointSize(UI_GetThemeValuef(TH_FACEDOT_SIZE));
 		
 			bglBegin(GL_POINTS);





More information about the Bf-blender-cvs mailing list