diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-07-14 15:27:25 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-07-14 15:36:00 +0300 |
commit | 0918461d61127f5d7e9dd7d81441a77b4bdd962d (patch) | |
tree | 256a28c9b586ab8588797bc3e63dec31f485bff8 /source/blender/blenkernel | |
parent | 2cffd6649b0e9b646bc090e4bba90e9873fb2982 (diff) |
Move from MTFace to MTexPoly w/ texture checks
Part of moving away from MFace.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_DerivedMesh.h | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/editderivedmesh.c | 15 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/subsurf_ccg.c | 9 |
4 files changed, 16 insertions, 18 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 70ae9cda370..984147de3af 100644 --- a/source/blender/blenkernel/BKE_DerivedMesh.h +++ b/source/blender/blenkernel/BKE_DerivedMesh.h @@ -142,7 +142,7 @@ typedef int (*DMCompareDrawOptions)(void *userData, int cur_index, int next_inde typedef void (*DMSetDrawInterpOptions)(void *userData, int index, float t); typedef DMDrawOption (*DMSetDrawOptions)(void *userData, int index); typedef DMDrawOption (*DMSetDrawOptionsMappedTex)(void *userData, int origindex, int mat_nr); -typedef DMDrawOption (*DMSetDrawOptionsTex)(struct MTFace *tface, const bool has_vcol, int matnr); +typedef DMDrawOption (*DMSetDrawOptionsTex)(struct MTexPoly *mtexpoly, const bool has_vcol, int matnr); typedef enum DMDrawFlag { DM_DRAW_USE_COLORS = (1 << 0), diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index d60c5a52dba..b03024c68d0 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -471,7 +471,7 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm, { CDDerivedMesh *cddm = (CDDerivedMesh *) dm; const MFace *mf = DM_get_tessface_data_layer(dm, CD_MFACE); - MTFace *tf = DM_get_tessface_data_layer(dm, CD_MTFACE); + MTexPoly *mtexpoly = DM_get_poly_data_layer(dm, CD_MTEXPOLY); MCol *mcol; int i, orig; int colType, startFace = 0; @@ -539,12 +539,14 @@ static void cdDM_drawFacesTex_common(DerivedMesh *dm, if (i != tottri - 1) next_actualFace = dm->drawObject->triangle_to_mface[i + 1]; + orig = index_mf_to_mpoly ? DM_origindex_mface_mpoly(index_mf_to_mpoly, index_mp_to_orig, actualFace) : ORIGINDEX_NONE; + if (drawParams) { - draw_option = drawParams(use_tface && tf ? &tf[actualFace] : NULL, (mcol != NULL), mf[actualFace].mat_nr); + MTexPoly *tp = (use_tface && mtexpoly && orig != ORIGINDEX_NONE) ? &mtexpoly[orig] : NULL; + draw_option = drawParams(tp, (mcol != NULL), mf[actualFace].mat_nr); } else { if (index_mf_to_mpoly) { - orig = DM_origindex_mface_mpoly(index_mf_to_mpoly, index_mp_to_orig, actualFace); if (orig == ORIGINDEX_NONE) { /* XXX, this is not really correct * it will draw the previous faces context for this one when we don't know its settings. diff --git a/source/blender/blenkernel/intern/editderivedmesh.c b/source/blender/blenkernel/intern/editderivedmesh.c index 63cec629bf3..58f25179c5c 100644 --- a/source/blender/blenkernel/intern/editderivedmesh.c +++ b/source/blender/blenkernel/intern/editderivedmesh.c @@ -833,19 +833,15 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm, for (i = 0; i < em->tottri; i++) { BMLoop **ltri = looptris[i]; MTexPoly *tp = (cd_poly_tex_offset != -1) ? BM_ELEM_CD_GET_VOID_P(ltri[0]->f, cd_poly_tex_offset) : NULL; - MTFace mtf = {{{0}}}; /*unsigned char *cp = NULL;*/ /*UNUSED*/ int drawSmooth = lnors || BM_elem_flag_test(ltri[0]->f, BM_ELEM_SMOOTH); DMDrawOption draw_option; efa = ltri[0]->f; - if (cd_poly_tex_offset != -1) { - ME_MTEXFACE_CPY(&mtf, tp); + if (drawParams) { + draw_option = drawParams(tp, has_vcol, efa->mat_nr); } - - if (drawParams) - draw_option = drawParams(&mtf, has_vcol, efa->mat_nr); else if (drawParamsMapped) draw_option = drawParamsMapped(userData, BM_elem_index_get(efa), efa->mat_nr); else @@ -902,19 +898,14 @@ static void emDM_drawFacesTex_common(DerivedMesh *dm, for (i = 0; i < em->tottri; i++) { BMLoop **ltri = looptris[i]; MTexPoly *tp = (cd_poly_tex_offset != -1) ? BM_ELEM_CD_GET_VOID_P(ltri[0]->f, cd_poly_tex_offset) : NULL; - MTFace mtf = {{{0}}}; /*unsigned char *cp = NULL;*/ /*UNUSED*/ int drawSmooth = lnors || BM_elem_flag_test(ltri[0]->f, BM_ELEM_SMOOTH); DMDrawOption draw_option; efa = ltri[0]->f; - if (cd_poly_tex_offset != -1) { - ME_MTEXFACE_CPY(&mtf, tp); - } - if (drawParams) - draw_option = drawParams(&mtf, has_vcol, efa->mat_nr); + draw_option = drawParams(tp, has_vcol, efa->mat_nr); else if (drawParamsMapped) draw_option = drawParamsMapped(userData, BM_elem_index_get(efa), efa->mat_nr); else diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 3b2cad6e81b..cc680224c31 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -2291,8 +2291,13 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm, gridOffset += gridFaces * gridFaces * numVerts; } - if (drawParams) - draw_option = drawParams(tf, (mcol != NULL), mat_nr); + if (drawParams) { + MTexPoly tpoly; + if (tf) { + ME_MTEXFACE_CPY(&tpoly, tf); + } + draw_option = drawParams(tf ? &tpoly : NULL, (mcol != NULL), mat_nr); + } else if (index != ORIGINDEX_NONE) draw_option = (drawParamsMapped) ? drawParamsMapped(userData, index, mat_nr) : DM_DRAW_OPTION_NORMAL; else |