Revision: 21883 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21883 Author: joeedh Date: 2009-07-25 16:13:26 +0200 (Sat, 25 Jul 2009)
Log Message: ----------- assorted uv fixes Modified Paths: -------------- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c Modified: branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c =================================================================== --- branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c 2009-07-25 14:09:15 UTC (rev 21882) +++ branches/bmesh/blender/source/blender/blenkernel/intern/editderivedbmesh.c 2009-07-25 14:13:26 UTC (rev 21883) @@ -724,12 +724,13 @@ BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL) BMINDEX_SET(eve, i++); + glBegin(GL_TRIANGLES); for (i=0; i<em->tottri; i++) { BMLoop **ls = em->looptris[i]; MTexPoly *tp= CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY); MTFace mtf = {0}; unsigned char *cp= NULL; - int drawSmooth= BM_TestHFlag(ls[0]->f->head.data, BM_SMOOTH); + int drawSmooth= BM_TestHFlag(ls[0]->f, BM_SMOOTH); int flag; efa = ls[0]->f; @@ -757,8 +758,6 @@ glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT); } - - glBegin(GL_TRIANGLES); if (!drawSmooth) { glNormal3fv(bmdm->faceNos[i]); @@ -780,22 +779,22 @@ glTexCoord2fv(luv[0]->uv); glColor3ub(lcol[0]->r, lcol[0]->g, lcol[0]->b); - glVertex3fv(vertexCos[BMINDEX_GET(ls[0]->v)]); glNormal3fv(vertexNos[BMINDEX_GET(ls[0]->v)]); + glVertex3fv(vertexCos[BMINDEX_GET(ls[0]->v)]); glTexCoord2fv(luv[1]->uv); glColor3ub(lcol[1]->r, lcol[1]->g, lcol[1]->b); - glVertex3fv(vertexCos[BMINDEX_GET(ls[1]->v)]); glNormal3fv(vertexNos[BMINDEX_GET(ls[1]->v)]); + glVertex3fv(vertexCos[BMINDEX_GET(ls[1]->v)]); glTexCoord2fv(luv[2]->uv); glColor3ub(lcol[2]->r, lcol[2]->g, lcol[2]->b); - glVertex3fv(vertexCos[BMINDEX_GET(ls[2]->v)]); glNormal3fv(vertexNos[BMINDEX_GET(ls[2]->v)]); + glVertex3fv(vertexCos[BMINDEX_GET(ls[2]->v)]); } - glEnd(); } } + glEnd(); } else { i = 0; BM_ITER(eve, &iter, bm, BM_VERTS_OF_MESH, NULL) @@ -806,7 +805,7 @@ MTexPoly *tp= CustomData_bmesh_get(&bm->pdata, ls[0]->f->head.data, CD_MTEXPOLY); MTFace mtf = {0}; unsigned char *cp= NULL; - int drawSmooth= BM_TestHFlag(ls[0]->f->head.data, BM_SMOOTH); + int drawSmooth= BM_TestHFlag(ls[0]->f, BM_SMOOTH); int flag; efa = ls[0]->f; @@ -834,7 +833,6 @@ glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT); } - glBegin(GL_TRIANGLES); if (!drawSmooth) { glNormal3fv(efa->no); @@ -857,98 +855,23 @@ glTexCoord2fv(luv[0]->uv); glColor3ub(lcol[0]->r, lcol[0]->g, lcol[0]->b); - glVertex3fv(ls[0]->v->co); glNormal3fv(ls[0]->v->no); + glVertex3fv(ls[0]->v->co); glTexCoord2fv(luv[1]->uv); glColor3ub(lcol[1]->r, lcol[1]->g, lcol[1]->b); - glVertex3fv(ls[1]->v->co); glNormal3fv(ls[1]->v->no); + glVertex3fv(ls[1]->v->co); glTexCoord2fv(luv[2]->uv); glColor3ub(lcol[2]->r, lcol[2]->g, lcol[2]->b); - glVertex3fv(ls[2]->v->co); glNormal3fv(ls[2]->v->no); + glVertex3fv(ls[2]->v->co); } glEnd(); } } } -#if 0 - else { - for (i=0,efa= bm->faces.first; efa; i++,efa= efa->next) { - MTFace *tf= CustomData_bm_get(&bm->pdata, efa->data, CD_MTFACE); - MCol *mcol= CustomData_bm_get(&bm->pdata, efa->data, CD_MCOL); - unsigned char *cp= NULL; - int drawSmooth= (efa->flag & ME_SMOOTH); - int flag; - - if(drawParams) - flag= drawParams(tf, mcol, efa->mat_nr); - else if(drawParamsMapped) - flag= drawParamsMapped(userData, i); - else - flag= 1; - - if(flag != 0) { /* flag 0 == the face is hidden or invisible */ - /* we always want smooth here since otherwise vertex colors dont interpolate */ - if (mcol) { - if (flag==1) { - cp= (unsigned char*)mcol; - } - } else { - glShadeModel(drawSmooth?GL_SMOOTH:GL_FLAT); - } - - glBegin(efa->v4?GL_QUADS:GL_TRIANGLES); - if (!drawSmooth) { - glNormal3fv(efa->n); - - if(tf) glTexCoord2fv(tf->uv[0]); - if(cp) glColor3ub(cp[3], cp[2], cp[1]); - glVertex3fv(efa->v1->co); - - if(tf) glTexCoord2fv(tf->uv[1]); - if(cp) glColor3ub(cp[7], cp[6], cp[5]); - glVertex3fv(efa->v2->co); - - if(tf) glTexCoord2fv(tf->uv[2]); - if(cp) glColor3ub(cp[11], cp[10], cp[9]); - glVertex3fv(efa->v3->co); - - if(efa->v4) { - if(tf) glTexCoord2fv(tf->uv[3]); - if(cp) glColor3ub(cp[15], cp[14], cp[13]); - glVertex3fv(efa->v4->co); - } - } else { - if(tf) glTexCoord2fv(tf->uv[0]); - if(cp) glColor3ub(cp[3], cp[2], cp[1]); - glNormal3fv(efa->v1->no); - glVertex3fv(efa->v1->co); - - if(tf) glTexCoord2fv(tf->uv[1]); - if(cp) glColor3ub(cp[7], cp[6], cp[5]); - glNormal3fv(efa->v2->no); - glVertex3fv(efa->v2->co); - - if(tf) glTexCoord2fv(tf->uv[2]); - if(cp) glColor3ub(cp[11], cp[10], cp[9]); - glNormal3fv(efa->v3->no); - glVertex3fv(efa->v3->co); - - if(efa->v4) { - if(tf) glTexCoord2fv(tf->uv[3]); - if(cp) glColor3ub(cp[15], cp[14], cp[13]); - glNormal3fv(efa->v4->no); - glVertex3fv(efa->v4->co); - } - } - glEnd(); - } - } - } -#endif } static void bmDM_drawFacesTex(DerivedMesh *dm, int (*setDrawOptions)(MTFace *tface, int has_vcol, int matnr)) Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c =================================================================== --- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c 2009-07-25 14:09:15 UTC (rev 21882) +++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_construct.c 2009-07-25 14:13:26 UTC (rev 21883) @@ -537,6 +537,7 @@ which much be either a BMVert, BMEdge, or BMFace, converted to mesh flags. */ + int BMFlags_To_MEFlags(void *element) { BMHeader *h = element; int f = 0; @@ -551,9 +552,9 @@ if (h->flag & BM_SEAM) f |= ME_SEAM; if (h->flag & BM_SHARP) f |= ME_SHARP; if (BM_Wire_Edge(NULL, element)) f |= ME_LOOSEEDGE; + f |= ME_EDGEDRAW; } else if (h->type == BM_VERT) { if (h->flag & BM_SELECT) f |= BM_SELECT; - if (h->flag & BM_HIDDEN) f |= ME_HIDE; } return f; Modified: branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c =================================================================== --- branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c 2009-07-25 14:09:15 UTC (rev 21882) +++ branches/bmesh/blender/source/blender/bmesh/operators/mesh_conv.c 2009-07-25 14:13:26 UTC (rev 21883) @@ -164,8 +164,8 @@ BMIter iter, liter; int i, j, ototvert, totloop, numTex, numCol; - numTex = CustomData_number_of_layers(&me->pdata, CD_MLOOPUV); - numCol = CustomData_number_of_layers(&me->ldata, CD_MLOOPCOL); + numTex = CustomData_number_of_layers(&bm->pdata, CD_MTEXPOLY); + numCol = CustomData_number_of_layers(&bm->ldata, CD_MLOOPCOL); bmtess = BM_Copy_Mesh(bm); BMO_CallOpf(bmtess, "makefgon trifan=%i", 0); Modified: branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c =================================================================== --- branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c 2009-07-25 14:09:15 UTC (rev 21882) +++ branches/bmesh/blender/source/blender/editors/space_view3d/drawmesh.c 2009-07-25 14:13:26 UTC (rev 21883) @@ -432,6 +432,7 @@ if (mpoly && mpoly->flag&ME_HIDE) return 0; + memset(&mtf, 0, sizeof(mtf)); if (tpoly) { mtf.flag = tpoly->flag; mtf.tpage = tpoly->tpage; @@ -441,7 +442,7 @@ mtf.unwrap = tpoly->unwrap; } - return draw_tface__set_draw(&mtf, CustomData_has_layer(&me->ldata, CD_MLOOPUV), matnr); + return draw_tface__set_draw(&mtf, CustomData_has_layer(&me->ldata, CD_MLOOPCOL), matnr); } static int draw_em_tf_mapped__set_draw(void *userData, int index) @@ -456,9 +457,11 @@ return 0; tpoly = CustomData_bmesh_get(&em->bm->pdata, efa->head.data, CD_MTEXPOLY); - has_vcol = CustomData_has_layer(&em->bm->ldata, CD_MLOOPUV); + has_vcol = CustomData_has_layer(&em->bm->ldata, CD_MLOOPCOL); matnr = efa->mat_nr; + memset(&mtf, 0, sizeof(mtf)); + if (tpoly) { mtf.flag = tpoly->flag; mtf.tpage = tpoly->tpage; Modified: branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c =================================================================== --- branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c 2009-07-25 14:09:15 UTC (rev 21882) +++ branches/bmesh/blender/source/blender/editors/uvedit/uvedit_ops.c 2009-07-25 14:13:26 UTC (rev 21883) @@ -116,7 +116,8 @@ /* ensure we have a uv layer */ if(!CustomData_has_layer(&em->bm->pdata, CD_MTEXPOLY)) { - BM_add_data_layer(em->bm, &em->bm->pdata, CD_MTFACE); + BM_add_data_layer(em->bm, &em->bm->pdata, CD_MTEXPOLY); + BM_add_data_layer(em->bm, &em->bm->ldata, CD_MLOOPUV); update= 1; } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs