{
EditMeshDerivedMesh *emdm= (EditMeshDerivedMesh*) dm;
EditFace *efa;
- int i, draw;
+ int i, draw, flush;
const int skip_normals= !glIsEnabled(GL_LIGHTING); /* could be passed as an arg */
/* GL_ZERO is used to detect if drawing has started or not */
}
}
- if (draw==2) {
+ flush= (draw==2);
+ if (!skip_normals && !flush && efa->next)
+ flush|= efa->mat_nr != efa->next->mat_nr;
+
+ if (flush) {
glEnd();
poly_prev= GL_ZERO; /* force glBegin */
}
}
+ flush= (draw==2);
+ if (!skip_normals && !flush && efa->next)
+ flush|= efa->mat_nr != efa->next->mat_nr;
- if (draw==2) {
+ if (flush) {
glEnd();
poly_prev= GL_ZERO; /* force glBegin */
cp= (unsigned char*)mcol;
}
}
- else {
- glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
- }
glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
if (!drawSmooth) {
cp= (unsigned char*)mcol;
}
}
- else {
- glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT);
- }
glBegin(efa->v4?GL_QUADS:GL_TRIANGLES);
if (!drawSmooth) {
}
}
}
+
+ glShadeModel(GL_FLAT);
}
static void emDM_drawFacesTex(