[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12791] trunk/blender/source/blender: dont draw face dots when solidtex is enabled - added a macro to check this .

Campbell Barton ideasman42 at gmail.com
Wed Dec 5 11:52:14 CET 2007


Revision: 12791
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12791
Author:   campbellbarton
Date:     2007-12-05 11:52:14 +0100 (Wed, 05 Dec 2007)

Log Message:
-----------
dont draw face dots when solidtex is enabled - added a macro to check this.
relax pose was crashing - missing a check.

Modified Paths:
--------------
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/src/drawobject.c
    trunk/blender/source/blender/src/editmesh_mods.c
    trunk/blender/source/blender/src/poseobject.c

Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h	2007-12-05 00:03:39 UTC (rev 12790)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h	2007-12-05 10:52:14 UTC (rev 12791)
@@ -313,8 +313,17 @@
 #define OB_TEXTURE		5
 
 /* this condition has been made more complex since editmode can draw textures */
-#define CHECK_OB_DRAWTEXTURE(vd, dt)	((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || (vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
+#define CHECK_OB_DRAWTEXTURE(vd, dt) \
+	((vd->drawtype==OB_TEXTURE && dt>OB_SOLID) || \
+	(vd->drawtype==OB_SOLID && vd->flag2 & V3D_SOLID_TEX))
 
+#define CHECK_OB_DRAWFACEDOT(sce, vd, dt) \
+	(	(sce->selectmode & SCE_SELECT_FACE) && \
+		(vd->drawtype<=OB_SOLID) && \
+		(((vd->drawtype==OB_SOLID) && (dt>=OB_SOLID) && (vd->flag2 & V3D_SOLID_TEX) && (vd->flag & V3D_ZBUF_SELECT)) == 0) \
+	)
+
+
 /* dtx: flags, char! */
 #define OB_AXIS			2
 #define OB_TEXSPACE		4

Modified: trunk/blender/source/blender/src/drawobject.c
===================================================================
--- trunk/blender/source/blender/src/drawobject.c	2007-12-05 00:03:39 UTC (rev 12790)
+++ trunk/blender/source/blender/src/drawobject.c	2007-12-05 10:52:14 UTC (rev 12791)
@@ -1698,9 +1698,7 @@
 				draw_dm_verts(cageDM, sel, eve_act);
 			}
 			
-			if(	(G.scene->selectmode & SCE_SELECT_FACE) &&
-				(G.vd->drawtype<=OB_SOLID)
-			) {
+			if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
 				glPointSize(fsize);
 				glColor4ubv((GLubyte *)fcol);
 				draw_dm_face_centers(cageDM, sel);
@@ -5329,9 +5327,7 @@
 	if (facecol) {
 		dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(long) 1, 0);
 
-		if(	(G.scene->selectmode & SCE_SELECT_FACE) &&
-			(G.vd->drawtype<=OB_SOLID)
-		) {
+		if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
 			glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
 		
 			bglBegin(GL_POINTS);

Modified: trunk/blender/source/blender/src/editmesh_mods.c
===================================================================
--- trunk/blender/source/blender/src/editmesh_mods.c	2007-12-05 00:03:39 UTC (rev 12790)
+++ trunk/blender/source/blender/src/editmesh_mods.c	2007-12-05 10:52:14 UTC (rev 12791)
@@ -714,7 +714,7 @@
 			}
 		}
 		
-		if(G.scene->selectmode & SCE_SELECT_FACE && (G.vd->drawtype!=OB_TEXTURE)) {
+		if( CHECK_OB_DRAWFACEDOT(G.scene, G.vd, G.obedit->dt) ) {
 			if(efa->fgonf==0) {
 				glPointSize(BIF_GetThemeValuef(TH_FACEDOT_SIZE));
 				BIF_ThemeColor((efa->f & SELECT)?TH_FACE_DOT:TH_WIRE);

Modified: trunk/blender/source/blender/src/poseobject.c
===================================================================
--- trunk/blender/source/blender/src/poseobject.c	2007-12-05 00:03:39 UTC (rev 12790)
+++ trunk/blender/source/blender/src/poseobject.c	2007-12-05 10:52:14 UTC (rev 12791)
@@ -1168,7 +1168,7 @@
 			if(pchan->bone->flag & BONE_SELECTED) {
 				/* do we have an ipo curve? */
 				achan= get_action_channel(act, pchan->name);
-				if(achan->ipo) {
+				if(achan && achan->ipo) {
 					/*calc_ipo(achan->ipo, ctime);*/
 					do_loc += pose_relax_icu(find_ipocurve(achan->ipo, AC_LOC_X), framef, &pchan->loc[0], NULL, NULL);
 					do_loc += pose_relax_icu(find_ipocurve(achan->ipo, AC_LOC_Y), framef, &pchan->loc[1], NULL, NULL);





More information about the Bf-blender-cvs mailing list