[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26646] trunk/blender/source/blender/ blenkernel/intern: Fix part of #20468: material changes when switch to sculpt mode.

Brecht Van Lommel brecht at blender.org
Sat Feb 6 18:04:13 CET 2010


Revision: 26646
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26646
Author:   blendix
Date:     2010-02-06 18:04:13 +0100 (Sat, 06 Feb 2010)

Log Message:
-----------
Fix part of #20468: material changes when switch to sculpt mode.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c

Modified: trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2010-02-06 16:39:44 UTC (rev 26645)
+++ trunk/blender/source/blender/blenkernel/intern/cdderivedmesh.c	2010-02-06 17:04:13 UTC (rev 26646)
@@ -414,16 +414,18 @@
 }
 
 	if(cddm->pbvh) {
-		float (*face_nors)[3] = CustomData_get_layer(&dm->faceData, CD_NORMAL);
+		if(dm->numFaceData) {
+			float (*face_nors)[3] = CustomData_get_layer(&dm->faceData, CD_NORMAL);
 
-		/* should be per face */
-		if(dm->numFaceData && mface->flag & ME_SMOOTH)
-			glShadeModel(GL_SMOOTH);
+			/* should be per face */
+			if(!setMaterial(mface->mat_nr+1, NULL))
+				return;
 
-		BLI_pbvh_draw(cddm->pbvh, partial_redraw_planes, face_nors);
+			glShadeModel((mface->flag & ME_SMOOTH)? GL_SMOOTH: GL_FLAT);
+			BLI_pbvh_draw(cddm->pbvh, partial_redraw_planes, face_nors);
+			glShadeModel(GL_FLAT);
+		}
 
-		glShadeModel(GL_FLAT);
-
 		return;
 	}
 

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2010-02-06 16:39:44 UTC (rev 26645)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2010-02-06 17:04:13 UTC (rev 26646)
@@ -1240,14 +1240,16 @@
 			MEM_freeN(faces);
 		}
 
-		/* should be per face */
-		if(faceFlags && faceFlags[0] & ME_SMOOTH)
-			glShadeModel(GL_SMOOTH);
+		if(dm->numFaceData) {
+			/* should be per face */
+			if(!setMaterial(faceFlags[1], NULL))
+				return;
 
-		BLI_pbvh_draw(ccgdm->pbvh, partial_redraw_planes, NULL);
+			glShadeModel((faceFlags[0] & ME_SMOOTH)? GL_SMOOTH: GL_FLAT);
+			BLI_pbvh_draw(ccgdm->pbvh, partial_redraw_planes, NULL);
+			glShadeModel(GL_FLAT);
+		}
 
-		glShadeModel(GL_FLAT);
-
 		return;
 	}
 





More information about the Bf-blender-cvs mailing list