Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2007-01-09 02:47:03 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2007-01-09 02:47:03 +0300
commitcda359c358082bec1b5c9d91362fd4cf8dc9af97 (patch)
tree53302d2f0f9907401137ca832a378b279e68ee64 /source/blender/blenkernel/intern/cdderivedmesh.c
parentf59f4d73a247e6b80bbb20a3c35b1847e1713fde (diff)
Fix for bug #5606:
Subsurf modifier displays normals wrong with mixed smooth and solid faces.
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index d2b7ecaf881..e17b6da11ef 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -280,7 +280,6 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int))
if(shademodel == GL_FLAT) {
if (nors) {
glNormal3fv(nors);
- nors += 3;
}
else {
/* TODO make this better (cache facenormals as layer?) */
@@ -304,6 +303,8 @@ static void cdDM_drawFacesSolid(DerivedMesh *dm, int (*setMaterial)(int))
PASSVERT(mface->v4);
}
}
+
+ if(nors) nors += 3;
}
glEnd();
@@ -413,7 +414,6 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
if(!(mf->flag&ME_SMOOTH)) {
if (nors) {
glNormal3fv(nors);
- nors += 3;
}
else {
/* TODO make this better (cache facenormals as layer?) */
@@ -457,6 +457,8 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm,
glVertex3fv(mvert->co);
}
glEnd();
+
+ if(nors) nors += 3;
}
}
@@ -496,7 +498,6 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
if (!drawSmooth) {
if (nors) {
glNormal3fv(nors);
- nors += 3;
}
else {
/* TODO make this better (cache facenormals as layer?) */
@@ -541,6 +542,8 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us
glEnd();
}
+
+ if (nors) nors += 3;
}
}