Commit: df6d0aacb3a485d6ef35907e9009cf6b80b6dbb4
Author: Campbell Barton
Date:   Thu Jul 16 21:10:42 2015 +1000
Branches: temp-derivedmesh-looptri
https://developer.blender.org/rBdf6d0aacb3a485d6ef35907e9009cf6b80b6dbb4

Use loop-data for subsurf normals

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

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 b6894a8..4c05367 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1769,7 +1769,7 @@ static void ccgDM_buffer_copy_normal(
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGKey key;
-       const short (*lnors)[4][3] = dm->getTessFaceDataArray(dm, 
CD_TESSLOOPNORMAL);
+       const float (*lnors)[3] = dm->getLoopDataArray(dm, CD_NORMAL);
        int gridSize = ccgSubSurf_getGridSize(ss);
        int gridFaces = gridSize - 1;
        DMFlagMat *faceFlags = ccgdm->faceFlags;
@@ -1784,7 +1784,7 @@ static void ccgDM_buffer_copy_normal(
                CCGFace *f = ccgdm->faceMap[i].face;
                int S, x, y, numVerts = ccgSubSurf_getFaceNumVerts(f);
                int index = 
GET_INT_FROM_POINTER(ccgSubSurf_getFaceFaceHandle(f));
-               const short (*ln)[3] = NULL;
+               const float (*ln)[3] = NULL;
 
                if (faceFlags) {
                        shademodel = (lnors || (faceFlags[index].flag & 
ME_SMOOTH)) ? GL_SMOOTH : GL_FLAT;
@@ -1794,8 +1794,8 @@ static void ccgDM_buffer_copy_normal(
                }
 
                if (lnors) {
-                       ln = *lnors;
-                       lnors += gridFaces * gridFaces * numVerts;
+                       ln = lnors;
+                       lnors += gridFaces * gridFaces * numVerts * 4;
                }
 
                for (S = 0; S < numVerts; S++) {
@@ -1805,10 +1805,10 @@ static void ccgDM_buffer_copy_normal(
                                /* Can't use quad strips here... */
                                for (y = 0; y < gridFaces; y ++) {
                                        for (x = 0; x < gridFaces; x ++) {
-                                               
copy_v3_v3_short(&varray[start], ln[0]);
-                                               copy_v3_v3_short(&varray[start 
+ 4], ln[3]);
-                                               copy_v3_v3_short(&varray[start 
+ 8], ln[2]);
-                                               copy_v3_v3_short(&varray[start 
+ 12], ln[1]);
+                                               
normal_float_to_short_v3(&varray[start + 0],  ln[0]);
+                                               
normal_float_to_short_v3(&varray[start + 4],  ln[3]);
+                                               
normal_float_to_short_v3(&varray[start + 8],  ln[2]);
+                                               
normal_float_to_short_v3(&varray[start + 12], ln[1]);
 
                                                start += 16;
                                                ln += 4;

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

Reply via email to