diff options
author | Julian Eisel <eiseljulian@gmail.com> | 2015-10-21 12:32:24 +0300 |
---|---|---|
committer | Julian Eisel <eiseljulian@gmail.com> | 2015-10-21 12:54:28 +0300 |
commit | 6ec01dcbf29104a6f323b54f8afb2adfd2163ada (patch) | |
tree | 521b87e62ba8651f8bb3ffc35cc3cabb09342404 /source/blender/blenkernel/intern/cdderivedmesh.c | |
parent | 7c1f329f286f464c77f970204a3b617ce6e56086 (diff) | |
parent | 6bc007610263c879f6bb30b844ba9d9a0fb9433c (diff) |
Merge branch 'master' into wiggly-widgets
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index f94e4ec8187..54ee5c373c6 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -967,7 +967,7 @@ static void cdDM_drawMappedFacesGLSL( int *mat_orig_to_new; int tot_active_mat; GPUBuffer *buffer = NULL; - char *varray; + unsigned char *varray; size_t max_element_size = 0; int tot_loops = 0; @@ -1072,17 +1072,15 @@ static void cdDM_drawMappedFacesGLSL( if (matconv[i].attribs.mcol[b].array) { const MLoopCol *mloopcol = matconv[i].attribs.mcol[b].array; for (j = 0; j < mpoly->totloop; j++) - copy_v4_v4_char((char *)&varray[offset + j * max_element_size], &mloopcol[mpoly->loopstart + j].r); + copy_v4_v4_uchar(&varray[offset + j * max_element_size], &mloopcol[mpoly->loopstart + j].r); offset += sizeof(unsigned char) * 4; } } if (matconv[i].attribs.tottang && matconv[i].attribs.tang.array) { - if (matconv[i].attribs.tface[b].array) { - const float (*looptang)[4] = (const float (*)[4])matconv[i].attribs.tang.array; - for (j = 0; j < mpoly->totloop; j++) - copy_v4_v4((float *)&varray[offset + j * max_element_size], looptang[mpoly->loopstart + j]); - offset += sizeof(float) * 4; - } + const float (*looptang)[4] = (const float (*)[4])matconv[i].attribs.tang.array; + for (j = 0; j < mpoly->totloop; j++) + copy_v4_v4((float *)&varray[offset + j * max_element_size], looptang[mpoly->loopstart + j]); + offset += sizeof(float) * 4; } } @@ -1484,7 +1482,7 @@ static void cdDM_buffer_copy_mcol( for (i = 0; i < totpoly; i++, mpoly++) { for (j = 0; j < mpoly->totloop; j++) { - copy_v3_v3_char((char *)&varray[start], &mloopcol[mpoly->loopstart + j].r); + copy_v3_v3_uchar(&varray[start], &mloopcol[mpoly->loopstart + j].r); start += 3; } } @@ -2609,7 +2607,7 @@ void CDDM_calc_normals_mapping_ex(DerivedMesh *dm, const bool only_face_normals) /* calculate face normals */ BKE_mesh_calc_normals_poly( - cddm->mvert, dm->numVertData, CDDM_get_loops(dm), CDDM_get_polys(dm), + cddm->mvert, NULL, dm->numVertData, CDDM_get_loops(dm), CDDM_get_polys(dm), dm->numLoopData, dm->numPolyData, face_nors, only_face_normals); @@ -2659,7 +2657,7 @@ void CDDM_calc_normals(DerivedMesh *dm) /* we don't want to overwrite any referenced layers */ cddm->mvert = CustomData_duplicate_referenced_layer(&dm->vertData, CD_MVERT, dm->numVertData); - BKE_mesh_calc_normals_poly(cddm->mvert, dm->numVertData, CDDM_get_loops(dm), CDDM_get_polys(dm), + BKE_mesh_calc_normals_poly(cddm->mvert, NULL, dm->numVertData, CDDM_get_loops(dm), CDDM_get_polys(dm), dm->numLoopData, dm->numPolyData, NULL, false); cddm->dm.dirty &= ~DM_DIRTY_NORMALS; @@ -2708,7 +2706,7 @@ void CDDM_calc_loop_normals_spacearr( if (!pnors) { pnors = CustomData_add_layer(pdata, CD_NORMAL, CD_CALLOC, NULL, numPolys); } - BKE_mesh_calc_normals_poly(mverts, numVerts, mloops, mpolys, numLoops, numPolys, pnors, + BKE_mesh_calc_normals_poly(mverts, NULL, numVerts, mloops, mpolys, numLoops, numPolys, pnors, (dm->dirty & DM_DIRTY_NORMALS) ? false : true); dm->dirty &= ~DM_DIRTY_NORMALS; |