Commit: 660deeb9ca0f2c55be6c5458f225d033cc6f83d4
Author: Campbell Barton
Date:   Thu Jul 16 21:06:12 2015 +1000
Branches: temp-derivedmesh-looptri
https://developer.blender.org/rB660deeb9ca0f2c55be6c5458f225d033cc6f83d4

use loop-data for subsurf uv's

===================================================================

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 5a7c4bc..b6894a8 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1998,7 +1998,7 @@ static void ccgDM_buffer_copy_uv(
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGKey key;
-       MTFace *tf = DM_get_tessface_data_layer(dm, CD_MTFACE);
+       MLoopUV *mloopuv = DM_get_loop_data_layer(dm, CD_MLOOPUV);
        int gridSize = ccgSubSurf_getGridSize(ss);
        int gridFaces = gridSize - 1;
        int i, totface = ccgSubSurf_getNumFaces(ss);
@@ -2013,12 +2013,12 @@ static void ccgDM_buffer_copy_uv(
                for (S = 0; S < numVerts; S++) {
                        for (y = 0; y < gridFaces; y++) {
                                for (x = 0; x < gridFaces; x++) {
-                                       copy_v2_v2(&varray[start], tf->uv[0]);
-                                       copy_v2_v2(&varray[start + 2], 
tf->uv[3]);
-                                       copy_v2_v2(&varray[start + 4], 
tf->uv[2]);
-                                       copy_v2_v2(&varray[start + 6], 
tf->uv[1]);
+                                       copy_v2_v2(&varray[start + 0], 
mloopuv[0].uv);
+                                       copy_v2_v2(&varray[start + 2], 
mloopuv[3].uv);
+                                       copy_v2_v2(&varray[start + 4], 
mloopuv[2].uv);
+                                       copy_v2_v2(&varray[start + 6], 
mloopuv[1].uv);
 
-                                       tf++;
+                                       mloopuv += 4;
                                        start += 8;
                                }
                        }
@@ -2038,22 +2038,22 @@ static void ccgDM_buffer_copy_uv_texpaint(
        int start = 0;
        DMFlagMat *faceFlags = ccgdm->faceFlags;
        int totmaterial = dm->totmat;
-       MTFace **mtface_base;
-       MTFace *stencil_base;
+       MLoopUV **mloopuv_base;
+       MLoopUV  *stencil_base;
        int stencil;
 
        CCG_key_top_level(&key, ss);
 
        /* should have been checked for before, reassert */
-       BLI_assert(DM_get_tessface_data_layer(dm, CD_MTFACE));
-       mtface_base = MEM_mallocN(totmaterial * sizeof(*mtface_base), 
"texslots");
+       BLI_assert(DM_get_loop_data_layer(dm, CD_MLOOPUV));
+       mloopuv_base = MEM_mallocN(totmaterial * sizeof(*mloopuv_base), 
"texslots");
 
        for (i = 0; i < totmaterial; i++) {
-               mtface_base[i] = DM_paint_uvlayer_active_get(dm, i);
+               mloopuv_base[i] = DM_paint_uvlayer_active_get_mloopuv(dm, i);
        }
 
-       stencil = CustomData_get_stencil_layer(&dm->faceData, CD_MTFACE);
-       stencil_base = CustomData_get_layer_n(&dm->faceData, CD_MTFACE, 
stencil);
+       stencil = CustomData_get_stencil_layer(&dm->loopData, CD_MLOOPUV);
+       stencil_base = CustomData_get_layer_n(&dm->loopData, CD_MLOOPUV, 
stencil);
 
        start = 0;
 
@@ -2073,23 +2073,23 @@ static void ccgDM_buffer_copy_uv_texpaint(
                for (S = 0; S < numVerts; S++) {
                        for (y = 0; y < gridFaces; y++) {
                                for (x = 0; x < gridFaces; x++) {
-                                       /* divide by 16, gives us current tface 
*/
-                                       unsigned int i_tf = start / 16;
-                                       copy_v2_v2(&varray[start], 
mtface_base[matnr][i_tf].uv[0]);
-                                       copy_v2_v2(&varray[start + 2], 
stencil_base[i_tf].uv[0]);
-                                       copy_v2_v2(&varray[start + 4], 
mtface_base[matnr][i_tf].uv[3]);
-                                       copy_v2_v2(&varray[start + 6], 
stencil_base[i_tf].uv[3]);
-                                       copy_v2_v2(&varray[start + 8], 
mtface_base[matnr][i_tf].uv[2]);
-                                       copy_v2_v2(&varray[start + 10], 
stencil_base[i_tf].uv[2]);
-                                       copy_v2_v2(&varray[start + 12], 
mtface_base[matnr][i_tf].uv[1]);
-                                       copy_v2_v2(&varray[start + 14], 
stencil_base[i_tf].uv[1]);
+                                       /* divide by 4, gives us current 
loop-index */
+                                       unsigned int i_ml = start / 4;
+                                       copy_v2_v2(&varray[start + 0],  
mloopuv_base[matnr][i_ml + 0].uv);
+                                       copy_v2_v2(&varray[start + 2],         
stencil_base[i_ml + 0].uv);
+                                       copy_v2_v2(&varray[start + 4],  
mloopuv_base[matnr][i_ml + 3].uv);
+                                       copy_v2_v2(&varray[start + 6],         
stencil_base[i_ml + 3].uv);
+                                       copy_v2_v2(&varray[start + 8],  
mloopuv_base[matnr][i_ml + 2].uv);
+                                       copy_v2_v2(&varray[start + 10],        
stencil_base[i_ml + 2].uv);
+                                       copy_v2_v2(&varray[start + 12], 
mloopuv_base[matnr][i_ml + 1].uv);
+                                       copy_v2_v2(&varray[start + 14],        
stencil_base[i_ml + 1].uv);
                                        start += 16;
                                }
                        }
                }
        }
 
-       MEM_freeN(mtface_base);
+       MEM_freeN(mloopuv_base);
 }
 
 static void ccgDM_copy_gpu_data(

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to