[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