Solved crash with;
- linked duplicate mesh - subsurf on - subdiv levels at 0 - new selectmode face + select clipping Also found error in backbface draw when faces were hidden
This commit is contained in:
@@ -4433,18 +4433,19 @@ static int bbs_mesh_solid(Object *ob, int facecol)
|
|||||||
if(dl) dlm= dl->mesh;
|
if(dl) dlm= dl->mesh;
|
||||||
a= 0;
|
a= 0;
|
||||||
|
|
||||||
if(dlm) {
|
if(dlm && dlm->editface) {
|
||||||
|
EditFace *prevefa;
|
||||||
MFace *mface;
|
MFace *mface;
|
||||||
efa= NULL;
|
efa= NULL;
|
||||||
|
|
||||||
|
// tuck original indices in efa->prev
|
||||||
|
for(b=1, efa= G.editMesh->faces.first; efa; efa= efa->next, b++) efa->prev= (EditFace *)(b);
|
||||||
|
|
||||||
for(b=0, mface= dlm->mface; b<dlm->totface; b++, mface++) {
|
for(b=0, mface= dlm->mface; b<dlm->totface; b++, mface++) {
|
||||||
if(mface->v3) {
|
if(mface->v3) {
|
||||||
if(facecol) {
|
if(facecol) {
|
||||||
if( efa != dlm->editface[b] ) {
|
efa= dlm->editface[b];
|
||||||
efa= dlm->editface[b];
|
cpack(index_to_framebuffer((int)efa->prev));
|
||||||
a++;
|
|
||||||
}
|
|
||||||
cpack(index_to_framebuffer(a));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
glBegin(mface->v4?GL_QUADS:GL_TRIANGLES);
|
glBegin(mface->v4?GL_QUADS:GL_TRIANGLES);
|
||||||
@@ -4455,7 +4456,10 @@ static int bbs_mesh_solid(Object *ob, int facecol)
|
|||||||
glEnd();
|
glEnd();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
a++; // the weird constructed loop ends with last drawn color...
|
for (prevefa= NULL, efa= G.editMesh->faces.first; efa; prevefa= efa, efa= efa->next)
|
||||||
|
efa->prev= prevefa;
|
||||||
|
|
||||||
|
a= b+1;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
a= 1;
|
a= 1;
|
||||||
|
|||||||
Reference in New Issue
Block a user