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

This commit is contained in:
Brecht Van Lommel
2010-02-06 17:04:13 +00:00
parent d3afaa20be
commit 53a3b64601
2 changed files with 17 additions and 13 deletions

View File

@@ -414,15 +414,17 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm,
}
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(GL_FLAT);
glShadeModel((mface->flag & ME_SMOOTH)? GL_SMOOTH: GL_FLAT);
BLI_pbvh_draw(cddm->pbvh, partial_redraw_planes, face_nors);
glShadeModel(GL_FLAT);
}
return;
}

View File

@@ -1240,13 +1240,15 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)
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(GL_FLAT);
glShadeModel((faceFlags[0] & ME_SMOOTH)? GL_SMOOTH: GL_FLAT);
BLI_pbvh_draw(ccgdm->pbvh, partial_redraw_planes, NULL);
glShadeModel(GL_FLAT);
}
return;
}