[Bf-blender-cvs] [f456131] temp-derivedmesh-looptri: Fix for subsurf using MCol instead of MLoopCol
Campbell Barton
noreply at git.blender.org
Thu Jul 16 12:40:01 CEST 2015
Commit: f456131666b8feb5dff4daeab59ebb6a75a0f783
Author: Campbell Barton
Date: Thu Jul 16 20:35:16 2015 +1000
Branches: temp-derivedmesh-looptri
https://developer.blender.org/rBf456131666b8feb5dff4daeab59ebb6a75a0f783
Fix for subsurf using MCol instead of MLoopCol
===================================================================
M source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index 023c355..5f2fabc 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -2619,8 +2619,8 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
CCGSubSurf *ss = ccgdm->ss;
CCGKey key;
- int colType = CD_TEXTURE_MLOOPCOL;
- MCol *mcol = dm->getTessFaceDataArray(dm, colType);
+ int colType;
+ const MLoopCol *mloopcol;
MTFace *tf = DM_get_tessface_data_layer(dm, CD_MTFACE);
DMFlagMat *faceFlags = ccgdm->faceFlags;
DMDrawOption draw_option;
@@ -2635,13 +2635,15 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
CCG_key_top_level(&key, ss);
ccgdm_pbvh_update(ccgdm);
- if (!mcol) {
+ colType = CD_TEXTURE_MLOOPCOL;
+ mloopcol = dm->getLoopDataArray(dm, colType);
+ if (!mloopcol) {
colType = CD_PREVIEW_MCOL;
- mcol = dm->getTessFaceDataArray(dm, colType);
+ mloopcol = dm->getLoopDataArray(dm, colType);
}
- if (!mcol) {
- colType = CD_MCOL;
- mcol = dm->getTessFaceDataArray(dm, colType);
+ if (!mloopcol) {
+ colType = CD_MLOOPCOL;
+ mloopcol = dm->getLoopDataArray(dm, colType);
}
GPU_vertex_setup(dm);
@@ -2651,7 +2653,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
GPU_texpaint_uv_setup(dm);
else
GPU_uv_setup(dm);
- if (mcol) {
+ if (mloopcol) {
GPU_color_setup(dm, colType);
}
@@ -2697,7 +2699,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
ME_MTEXFACE_CPY(&tpoly, tf + actualFace);
}
- draw_option = drawParams((use_tface && tf) ? &tpoly : NULL, (mcol != NULL), mat_nr);
+ draw_option = drawParams((use_tface && tf) ? &tpoly : NULL, (mloopcol != NULL), mat_nr);
}
else if (index != ORIGINDEX_NONE)
draw_option = (drawParamsMapped) ? drawParamsMapped(userData, index, mat_nr) : DM_DRAW_OPTION_NORMAL;
@@ -2720,7 +2722,7 @@ static void ccgDM_drawFacesTex_common(DerivedMesh *dm,
tot_drawn += facequads * 6;
if (tot_drawn) {
- if (mcol && draw_option != DM_DRAW_OPTION_NO_MCOL)
+ if (mloopcol && draw_option != DM_DRAW_OPTION_NO_MCOL)
GPU_color_switch(1);
else
GPU_color_switch(0);
More information about the Bf-blender-cvs
mailing list