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:
authorTon Roosendaal <ton@blender.org>2004-11-05 15:58:12 +0300
committerTon Roosendaal <ton@blender.org>2004-11-05 15:58:12 +0300
commitb169abb4cfd675ccf1eed2bcb441797d06fa3abc (patch)
tree3e5d0198cd45afc3da7abda854d477cbe324ceda /source/blender/src/drawobject.c
parent5ffb4cb338b42a339720b730de0f2564abe50723 (diff)
Bug fix #1678
Deformed meshes (by armature for example) didn't get drawn correctly for vertex paint, weightpaint, UV faceselect. Was OK in 2.34 :) Additional to that I found out vertex paint doesn't correctly use the 'Area' option, when a mesh was deformed. That was an oldie. Plus; made tooltips for 'Area' and 'Normals' in Paint Panel clear.
Diffstat (limited to 'source/blender/src/drawobject.c')
-rw-r--r--source/blender/src/drawobject.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/source/blender/src/drawobject.c b/source/blender/src/drawobject.c
index 4184026acbb..4a5b54d25fc 100644
--- a/source/blender/src/drawobject.c
+++ b/source/blender/src/drawobject.c
@@ -4600,6 +4600,8 @@ static int bbs_mesh_solid(Object *ob, int facecol)
MVert *mvert;
MFace *mface;
TFace *tface;
+ DispList *dl;
+ float *extverts=NULL;
int a, totface, hastface, i;
mvert= me->mvert;
@@ -4607,6 +4609,9 @@ static int bbs_mesh_solid(Object *ob, int facecol)
tface= me->tface;
hastface = (me->tface != NULL);
totface= me->totface;
+
+ dl= find_displist(&ob->disp, DL_VERTS);
+ if(dl) extverts= dl->verts;
glBegin(GL_QUADS);
glmode= GL_QUADS;
@@ -4622,10 +4627,18 @@ static int bbs_mesh_solid(Object *ob, int facecol)
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 );
- glVertex3fv( (mvert+mface->v3)->co );
- if(mface->v4) glVertex3fv( (mvert+mface->v4)->co );
+ if(extverts) {
+ glVertex3fv( extverts+3*mface->v1 );
+ glVertex3fv( extverts+3*mface->v2 );
+ glVertex3fv( extverts+3*mface->v3 );
+ if(mface->v4) glVertex3fv( extverts+3*mface->v4 );
+ }
+ else {
+ glVertex3fv( (mvert+mface->v1)->co );
+ glVertex3fv( (mvert+mface->v2)->co );
+ glVertex3fv( (mvert+mface->v3)->co );
+ if(mface->v4) glVertex3fv( (mvert+mface->v4)->co );
+ }
}
}
glEnd();