Commit: 72c7e12a5d04a18f80f8083b2709985e9a96adee
Author: Campbell Barton
Date:   Wed Jul 15 12:42:41 2015 +1000
Branches: master
https://developer.blender.org/rB72c7e12a5d04a18f80f8083b2709985e9a96adee

DerivedMesh: minor changes to callback use

- use void instead of float for array arg (cast in the switch statement)
- remove unused args
- use const for poly-mapping and user_data args

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

M       source/blender/blenkernel/BKE_DerivedMesh.h
M       source/blender/blenkernel/intern/cdderivedmesh.c
M       source/blender/blenkernel/intern/subsurf_ccg.c
M       source/blender/gpu/GPU_buffers.h

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

diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h 
b/source/blender/blenkernel/BKE_DerivedMesh.h
index 881b233..c8bd7e9 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -464,7 +464,8 @@ struct DerivedMesh {
                                   bool (*setFace)(void *userData, int index), 
void *userData);
 
        struct GPUDrawObject *(*gpuObjectNew)(DerivedMesh *dm);
-       void (*copy_gpu_data)(DerivedMesh *dm, int type, float *varray, int 
*mat_orig_to_new, void *user_data);
+       void (*copy_gpu_data)(DerivedMesh *dm, int type, void *varray_p,
+                             const int *mat_orig_to_new, const void 
*user_data);
 
        /** Release reference to the DerivedMesh. This function decides 
internally
         * if the DerivedMesh will be freed, or cached for later use. */
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c 
b/source/blender/blenkernel/intern/cdderivedmesh.c
index b493931..90d2fa7 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -1342,12 +1342,13 @@ static void cdDM_drawMappedEdges(DerivedMesh *dm, 
DMSetDrawOptions setDrawOption
        glEnd();
 }
 
-static void cdDM_buffer_copy_triangles(DerivedMesh *dm, float *varray_, int 
*mat_orig_to_new, void *UNUSED(user))
+static void cdDM_buffer_copy_triangles(
+        DerivedMesh *dm, unsigned int *varray,
+        const int *mat_orig_to_new)
 {
        GPUBufferMaterial *gpumat;
        MFace *f;
        int i, start, totface, findex = 0;
-       unsigned int *varray = (unsigned int *)varray_;
 
        f = dm->getTessFaceArray(dm);
 
@@ -1377,7 +1378,8 @@ static void cdDM_buffer_copy_triangles(DerivedMesh *dm, 
float *varray_, int *mat
        }
 }
 
-static void cdDM_buffer_copy_vertex(DerivedMesh *dm, float *varray, int 
*UNUSED(mat_orig_to_new), void *UNUSED(user))
+static void cdDM_buffer_copy_vertex(
+        DerivedMesh *dm, float *varray)
 {
        MVert *mvert;
        MFace *f;
@@ -1412,13 +1414,13 @@ static void cdDM_buffer_copy_vertex(DerivedMesh *dm, 
float *varray, int *UNUSED(
        }
 }
 
-static void cdDM_buffer_copy_normal(DerivedMesh *dm, float *varray_, int 
*UNUSED(mat_orig_to_new), void *UNUSED(user))
+static void cdDM_buffer_copy_normal(
+        DerivedMesh *dm, short *varray)
 {
        int i, totface;
        int start;
        float f_no[3];
 
-       short *varray = (short *)varray_;
        const float *nors = dm->getTessFaceDataArray(dm, CD_NORMAL);
        short (*tlnors)[4][3] = dm->getTessFaceDataArray(dm, CD_TESSLOOPNORMAL);
        MVert *mvert = dm->getVertArray(dm);
@@ -1486,7 +1488,8 @@ static void cdDM_buffer_copy_normal(DerivedMesh *dm, 
float *varray_, int *UNUSED
        }
 }
 
-static void cdDM_buffer_copy_uv(DerivedMesh *dm, float *varray, int 
*UNUSED(mat_orig_to_new), void *UNUSED(user))
+static void cdDM_buffer_copy_uv(
+        DerivedMesh *dm, float *varray)
 {
        int start;
        int i, totface;
@@ -1516,7 +1519,8 @@ static void cdDM_buffer_copy_uv(DerivedMesh *dm, float 
*varray, int *UNUSED(mat_
 }
 
 
-static void cdDM_buffer_copy_uv_texpaint(DerivedMesh *dm, float *varray, int 
*UNUSED(mat_orig_to_new), void *UNUSED(user))
+static void cdDM_buffer_copy_uv_texpaint(
+        DerivedMesh *dm, float *varray)
 {
        int start;
        int i, totface;
@@ -1566,7 +1570,7 @@ static void cdDM_buffer_copy_uv_texpaint(DerivedMesh *dm, 
float *varray, int *UN
 }
 
 
-static void copy_mcol_uc3(unsigned char *v, unsigned char *col)
+static void copy_mcol_uc3(unsigned char *v, const unsigned char *col)
 {
        v[0] = col[3];
        v[1] = col[2];
@@ -1574,11 +1578,12 @@ static void copy_mcol_uc3(unsigned char *v, unsigned 
char *col)
 }
 
 /* treat varray_ as an array of MCol, four MCol's per face */
-static void cdDM_buffer_copy_mcol(DerivedMesh *dm, float *varray_, int 
*UNUSED(mat_orig_to_new), void *user)
+static void cdDM_buffer_copy_mcol(
+        DerivedMesh *dm, unsigned char *varray,
+        const void *user_data)
 {
        int i, totface, start;
-       unsigned char *varray = (unsigned char *)varray_;
-       unsigned char *mcol = (unsigned char *)user;
+       const unsigned char *mcol = user_data;
        MFace *f = dm->getTessFaceArray(dm);
 
        totface = dm->getNumTessFaces(dm);
@@ -1598,10 +1603,10 @@ static void cdDM_buffer_copy_mcol(DerivedMesh *dm, 
float *varray_, int *UNUSED(m
        }
 }
 
-static void cdDM_buffer_copy_edge(DerivedMesh *dm, float *varray_, int 
*UNUSED(mat_orig_to_new), void *UNUSED(user))
+static void cdDM_buffer_copy_edge(
+        DerivedMesh *dm, unsigned int *varray)
 {
        MEdge *medge, *medge_base;
-       unsigned int *varray = (unsigned int *)varray_;
        int i, totedge, iloose, inorm, iloosehidden, inormhidden;
        int tot_loose_hidden = 0, tot_loose = 0;
        int tot_hidden = 0, tot = 0;
@@ -1658,7 +1663,8 @@ static void cdDM_buffer_copy_edge(DerivedMesh *dm, float 
*varray_, int *UNUSED(m
        dm->drawObject->tot_edge_drawn = tot;
 }
 
-static void cdDM_buffer_copy_uvedge(DerivedMesh *dm, float *varray, int 
*UNUSED(mat_orig_to_new), void *UNUSED(user))
+static void cdDM_buffer_copy_uvedge(
+        DerivedMesh *dm, float *varray)
 {
        MTFace *tf = DM_get_tessface_data_layer(dm, CD_MTFACE);
        int i, j = 0;
@@ -1693,33 +1699,34 @@ static void cdDM_buffer_copy_uvedge(DerivedMesh *dm, 
float *varray, int *UNUSED(
 }
 
 static void cdDM_copy_gpu_data(
-        DerivedMesh *dm, int type, float *varray,
-        int *mat_orig_to_new, void *user_data)
+        DerivedMesh *dm, int type, void *varray_p,
+        const int *mat_orig_to_new, const void *user_data)
 {
+       /* 'varray_p' cast is redundant but include for self-documentation */
        switch (type) {
                case GPU_BUFFER_VERTEX:
-                       cdDM_buffer_copy_vertex(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_vertex(dm, (float *)varray_p);
                        break;
                case GPU_BUFFER_NORMAL:
-                       cdDM_buffer_copy_normal(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_normal(dm, (short *)varray_p);
                        break;
                case GPU_BUFFER_COLOR:
-                       cdDM_buffer_copy_mcol(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_mcol(dm, (unsigned char *)varray_p, 
user_data);
                        break;
                case GPU_BUFFER_UV:
-                       cdDM_buffer_copy_uv(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_uv(dm, (float *)varray_p);
                        break;
                case GPU_BUFFER_UV_TEXPAINT:
-                       cdDM_buffer_copy_uv_texpaint(dm, varray, 
mat_orig_to_new, user_data);
+                       cdDM_buffer_copy_uv_texpaint(dm, (float *)varray_p);
                        break;
                case GPU_BUFFER_EDGE:
-                       cdDM_buffer_copy_edge(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_edge(dm, (unsigned int *)varray_p);
                        break;
                case GPU_BUFFER_UVEDGE:
-                       cdDM_buffer_copy_uvedge(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_uvedge(dm, (float *)varray_p);
                        break;
                case GPU_BUFFER_TRIANGLES:
-                       cdDM_buffer_copy_triangles(dm, varray, mat_orig_to_new, 
user_data);
+                       cdDM_buffer_copy_triangles(dm, (unsigned int 
*)varray_p, mat_orig_to_new);
                        break;
                default:
                        break;
@@ -2135,8 +2142,8 @@ static CDDerivedMesh *cdDM_create(const char *desc)
        dm->drawMappedFacesGLSL = cdDM_drawMappedFacesGLSL;
        dm->drawMappedFacesMat = cdDM_drawMappedFacesMat;
 
-       dm->copy_gpu_data = cdDM_copy_gpu_data;
        dm->gpuObjectNew = cdDM_GPUobject_new;
+       dm->copy_gpu_data = cdDM_copy_gpu_data;
 
        dm->foreachMappedVert = cdDM_foreachMappedVert;
        dm->foreachMappedEdge = cdDM_foreachMappedEdge;
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c 
b/source/blender/blenkernel/intern/subsurf_ccg.c
index dae5395..74e5ce0 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1763,13 +1763,12 @@ static void ccgDM_glNormalFast(float *a, float *b, 
float *c, float *d)
 }
 
 /* Only used by non-editmesh types */
-static void ccgDM_buffer_copy_normal(DerivedMesh *dm, float *varray_,
-                                    int *UNUSED(mat_orig_to_new), void 
*UNUSED(user_data))
+static void ccgDM_buffer_copy_normal(
+        DerivedMesh *dm, short *varray)
 {
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGKey key;
-       short *varray = (short *)varray_;
        short (*lnors)[4][3] = dm->getTessFaceDataArray(dm, CD_TESSLOOPNORMAL);
        int gridSize = ccgSubSurf_getGridSize(ss);
        int gridFaces = gridSize - 1;
@@ -1858,14 +1857,14 @@ static void ccgDM_buffer_copy_normal(DerivedMesh *dm, 
float *varray_,
 }
 
 /* Only used by non-editmesh types */
-static void ccgDM_buffer_copy_triangles(DerivedMesh *dm, float *varray_,
-                                        int *mat_orig_to_new, void 
*UNUSED(user_data))
+static void ccgDM_buffer_copy_triangles(
+        DerivedMesh *dm, unsigned int *varray,
+        const int *mat_orig_to_new)
 {
        GPUBufferMaterial *gpumat;
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGKey key;
-       unsigned int *varray = (unsigned int *)varray_;
        int gridSize = ccgSubSurf_getGridSize(ss);
        int gridFaces = gridSize - 1;
        DMFlagMat *faceFlags = ccgdm->faceFlags;
@@ -1911,9 +1910,10 @@ static void ccgDM_buffer_copy_triangles(DerivedMesh *dm, 
float *varray_,
 
 
 /* Only used by non-editmesh types */
-static void ccgDM_buffer_copy_vertex(DerivedMesh *dm, float *varray,
-                                      int *UNUSED(mat_orig_to_new), void 
*UNUSED(user_data))
+static void ccgDM_buffer_copy_vertex(
+        DerivedMesh *dm, void *varray_p)
 {
+       float *varray = varray_p;
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGKey key;
@@ -1950,7 +1950,7 @@ static void ccgDM_buffer_copy_vertex(DerivedMesh *dm, 
float *varray,
        }
 }
 
-static void copy_mcol_uc3(unsigned char *v, unsigned char *col)
+static void copy_mcol_uc3(unsigned char *v, const unsigned char *col)
 {
        v[0] = col[3];
        v[1] = col[2];
@@ -1958,14 +1958,14 @@ static void copy_mcol_uc3(unsigned char *v, unsigned 
char *col)
 }
 
 /* Only used by non-editmesh types */
-static void ccgDM_buffer_copy_color(DerivedMesh *dm, float *varray_,
-                                      int *UNUSED(mat_orig_to_new), void 
*user_data)
+static void ccgDM_buffer_copy_color(
+        DerivedMesh *dm, unsigned char *varray,
+        const void *user_data)
 {
        CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm;
        CCGSubSurf *ss = ccgdm->ss;
        CCGKey key;
-       unsigned char *varray = (unsigned char *)var

@@ Diff output truncated at 10240 characters. @@

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

Reply via email to