[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