diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2004-10-12 19:15:10 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2004-10-12 19:15:10 +0400 |
commit | 42ecc3c56dcaa07b877d3ddfcd95e16e334df3b8 (patch) | |
tree | 3e617b6595d64b69a7864f6a32aa401e44ab529c /source/blender/src/drawobject.c | |
parent | 3a2d57856bc471278213e239881becb5af8f2da1 (diff) |
Face selection in uv face select mode, with hidden faces, was broken:
there was no check for hidden tfaces in backbuffer draw.
Diffstat (limited to 'source/blender/src/drawobject.c')
-rw-r--r-- | source/blender/src/drawobject.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c index afdec9c74d1..041b3b151da 100644 --- a/source/blender/src/drawobject.c +++ b/source/blender/src/drawobject.c @@ -4529,25 +4529,28 @@ static int bbs_mesh_solid(Object *ob, int facecol) Mesh *me= ob->data; MVert *mvert; MFace *mface; - int a, totface; + TFace *tface; + int a, totface, hastface, i; mvert= me->mvert; mface= me->mface; + tface= me->tface; + hastface = (me->tface != NULL); totface= me->totface; glBegin(GL_QUADS); glmode= GL_QUADS; - for(a=0; a<totface; a++, mface++) { + for(a=0; a<totface; a++, mface++, tface++) { if(mface->v3) { - - if(mface->v4) {if(glmode==GL_TRIANGLES) {glmode= GL_QUADS; glEnd(); glBegin(GL_QUADS);}} - else {if(glmode==GL_QUADS) {glmode= GL_TRIANGLES; glEnd(); glBegin(GL_TRIANGLES);}} - if(facecol) { - int i= index_to_framebuffer(a+1); + if(hastface && tface->flag & TF_HIDE) continue; + i= index_to_framebuffer(a+1); cpack(i); } + + if(mface->v4) {if(glmode==GL_TRIANGLES) {glmode= GL_QUADS; glEnd(); glBegin(GL_QUADS);}} + else {if(glmode==GL_QUADS) {glmode= GL_TRIANGLES; glEnd(); glBegin(GL_TRIANGLES);}} glVertex3fv( (mvert+mface->v1)->co ); glVertex3fv( (mvert+mface->v2)->co ); |