diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-07-15 05:42:41 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-07-15 05:42:41 +0300 |
commit | 72c7e12a5d04a18f80f8083b2709985e9a96adee (patch) | |
tree | 2eaabda6199a1b9006163b1eae0e969b0e688d89 /source/blender | |
parent | 7407ed7637da4148127cfb5e7a4de6dab01c5b1c (diff) |
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
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_DerivedMesh.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 57 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/subsurf_ccg.c | 53 | ||||
-rw-r--r-- | source/blender/gpu/GPU_buffers.h | 4 |
4 files changed, 62 insertions, 55 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h index 881b233dc3c..c8bd7e99310 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 b493931b025..90d2fa7ea7b 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 dae53955f20..74e5ce0e60e 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 *)varray_; - unsigned char *mcol = (unsigned char *)user_data; + const unsigned char *mcol = user_data; int gridSize = ccgSubSurf_getGridSize(ss); int gridFaces = gridSize - 1; int i, totface = ccgSubSurf_getNumFaces(ss); @@ -1995,9 +1995,10 @@ static void ccgDM_buffer_copy_color(DerivedMesh *dm, float *varray_, } } -static void ccgDM_buffer_copy_uv(DerivedMesh *dm, float *varray, - int *UNUSED(mat_orig_to_new), void *UNUSED(user_data)) +static void ccgDM_buffer_copy_uv( + DerivedMesh *dm, void *varray_p) { + float *varray = varray_p; CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm; CCGSubSurf *ss = ccgdm->ss; CCGKey key; @@ -2029,7 +2030,8 @@ static void ccgDM_buffer_copy_uv(DerivedMesh *dm, float *varray, } } -static void ccgDM_buffer_copy_uv_texpaint(DerivedMesh *dm, float *varray, int *UNUSED(mat_orig_to_new), void *UNUSED(user)) +static void ccgDM_buffer_copy_uv_texpaint( + DerivedMesh *dm, float *varray) { CCGDerivedMesh *ccgdm = (CCGDerivedMesh *) dm; CCGSubSurf *ss = ccgdm->ss; @@ -2095,27 +2097,28 @@ static void ccgDM_buffer_copy_uv_texpaint(DerivedMesh *dm, float *varray, int *U } static void ccgDM_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: - ccgDM_buffer_copy_vertex(dm, varray, mat_orig_to_new, NULL); + ccgDM_buffer_copy_vertex(dm, (float *)varray_p); break; case GPU_BUFFER_NORMAL: - ccgDM_buffer_copy_normal(dm, varray, mat_orig_to_new, NULL); + ccgDM_buffer_copy_normal(dm, (short *)varray_p); break; case GPU_BUFFER_UV: - ccgDM_buffer_copy_uv(dm, varray, mat_orig_to_new, NULL); + ccgDM_buffer_copy_uv(dm, (float *)varray_p); break; case GPU_BUFFER_UV_TEXPAINT: - ccgDM_buffer_copy_uv_texpaint(dm, varray, mat_orig_to_new, NULL); + ccgDM_buffer_copy_uv_texpaint(dm, (float *)varray_p); break; case GPU_BUFFER_COLOR: - ccgDM_buffer_copy_color(dm, varray, mat_orig_to_new, user_data); + ccgDM_buffer_copy_color(dm, (unsigned char *)varray_p, user_data); break; case GPU_BUFFER_TRIANGLES: - ccgDM_buffer_copy_triangles(dm, varray, mat_orig_to_new, NULL); + ccgDM_buffer_copy_triangles(dm, (unsigned int *)varray_p, mat_orig_to_new); break; default: break; diff --git a/source/blender/gpu/GPU_buffers.h b/source/blender/gpu/GPU_buffers.h index 07b9c60d101..dafc9ac84ed 100644 --- a/source/blender/gpu/GPU_buffers.h +++ b/source/blender/gpu/GPU_buffers.h @@ -48,10 +48,6 @@ struct GSet; struct GPUVertPointLink; struct PBVH; -typedef void (*GPUBufferCopyFunc)(DerivedMesh *dm, float *varray, int *index, - int *mat_orig_to_new, void *user_data); - - typedef struct GPUBuffer { int size; /* in bytes */ void *pointer; /* used with vertex arrays */ |