[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30454] branches/soc-2010-jwilkins/source/ blender: * matcap mode was not properly respecting the object maximum draw type setting

Jason Wilkins Jason.A.Wilkins at gmail.com
Sun Jul 18 03:58:15 CEST 2010


Revision: 30454
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30454
Author:   jwilkins
Date:     2010-07-18 03:58:14 +0200 (Sun, 18 Jul 2010)

Log Message:
-----------
* matcap mode was not properly respecting the object maximum draw type setting
* loading an old file updates the object maximum draw type setting from textured to matcap (assumes you mean to keep a lower setting)

Modified Paths:
--------------
    branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_blender.h
    branches/soc-2010-jwilkins/source/blender/blenkernel/intern/exotic.c
    branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c
    branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c
    branches/soc-2010-jwilkins/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2010-jwilkins/source/blender/gpu/intern/gpu_draw.c

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_blender.h
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_blender.h	2010-07-18 01:51:14 UTC (rev 30453)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_blender.h	2010-07-18 01:58:14 UTC (rev 30454)
@@ -45,7 +45,7 @@
 struct Main;
 
 #define BLENDER_VERSION			252
-#define BLENDER_SUBVERSION		6 // XXX: this shouldn't be merged with trunk, this is so Sculpt branch can detect old files
+#define BLENDER_SUBVERSION		8 // XXX: this shouldn't be merged with trunk, this is so Sculpt branch can detect old files
 
 #define BLENDER_MINVERSION		250
 #define BLENDER_MINSUBVERSION	0

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/exotic.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/exotic.c	2010-07-18 01:51:14 UTC (rev 30453)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/exotic.c	2010-07-18 01:58:14 UTC (rev 30454)
@@ -4062,7 +4062,7 @@
 	
 						ob->type= OB_MESH;
 	
-						ob->dt= OB_TEXTURE;
+						ob->dt= OB_MATCAP;
 
 						ob->trackflag= OB_POSY;
 						ob->upflag= OB_POSZ;

Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c	2010-07-18 01:51:14 UTC (rev 30453)
+++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c	2010-07-18 01:58:14 UTC (rev 30454)
@@ -1025,7 +1025,7 @@
 	unit_m4(ob->constinv);
 	unit_m4(ob->parentinv);
 	unit_m4(ob->obmat);
-	ob->dt= OB_TEXTURE;
+	ob->dt= OB_MATCAP;
 	ob->empty_drawtype= OB_ARROWS;
 	ob->empty_drawsize= 1.0;
 

Modified: branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c	2010-07-18 01:51:14 UTC (rev 30453)
+++ branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c	2010-07-18 01:58:14 UTC (rev 30454)
@@ -11051,6 +11051,17 @@
 		}
 	}
 
+	/* MatCaps */
+	if (main->versionfile < 252 || (main->versionfile == 252 && main->subversionfile < 8)) {
+		Object *ob;
+		for (ob=main->object.first; ob; ob=ob->id.next) {
+			/* If max drawtype is textured then assume user won't mind if we bump it up to use MatCaps, */
+			/* Otherwise, assume that if max drawtype is less than textured then user doesn't want to use MatCaps */
+			if (ob->dt == OB_TEXTURE)
+				ob->dt = OB_MATCAP;
+		}
+	}
+
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
 	/* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */
 

Modified: branches/soc-2010-jwilkins/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/editors/space_view3d/drawobject.c	2010-07-18 01:51:14 UTC (rev 30453)
+++ branches/soc-2010-jwilkins/source/blender/editors/space_view3d/drawobject.c	2010-07-18 01:58:14 UTC (rev 30454)
@@ -120,7 +120,7 @@
 		return 1;
 
 	/* if its drawing textures with zbuf sel, then dont draw dots */
-	if(dt==OB_TEXTURE && ELEM(vd->drawtype, OB_TEXTURE, OB_MATCAP))
+	if(ELEM(dt, OB_TEXTURE, OB_MATCAP) && ELEM(vd->drawtype, OB_TEXTURE, OB_MATCAP))
 		return 0;
 
 	if(vd->drawtype>=OB_SOLID && vd->flag2 & V3D_SOLID_TEX)
@@ -209,7 +209,7 @@
 	if(ob==OBACT && (ob && ob->mode & OB_MODE_WEIGHT_PAINT))
 		return 0;
 	
-	return ((v3d->drawtype == OB_MATCAP) || (scene->gm.matmode == GAME_MAT_GLSL)) && (dt >= OB_SHADED);
+	return ((dt == OB_MATCAP) || (scene->gm.matmode == GAME_MAT_GLSL)) && (dt >= OB_SHADED);
 }
 
 static int check_material_alpha(Base *base, Mesh *me, int glsl)

Modified: branches/soc-2010-jwilkins/source/blender/gpu/intern/gpu_draw.c
===================================================================
--- branches/soc-2010-jwilkins/source/blender/gpu/intern/gpu_draw.c	2010-07-18 01:51:14 UTC (rev 30453)
+++ branches/soc-2010-jwilkins/source/blender/gpu/intern/gpu_draw.c	2010-07-18 01:58:14 UTC (rev 30454)
@@ -947,7 +947,7 @@
 		GMS.blendmode= GMS.blendmode_fixed;
 	}
 
-	if (v3d->drawtype!=OB_MATCAP) {
+	if (MIN2(v3d->drawtype, ob->dt) != OB_MATCAP) {
 		/* no materials assigned? */
 		if(ob->totcol==0) {
 			GMS.matbuf[0][0][0]= (defmaterial.ref+defmaterial.emit)*defmaterial.r;





More information about the Bf-blender-cvs mailing list