diff options
Diffstat (limited to 'source/blender/blenkernel/intern/displist.c')
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index fa1d61bbf02..13a832e2e3d 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -137,6 +137,14 @@ DispListMesh *displistmesh_copy(DispListMesh *odlm) return ndlm; } +DispListMesh *displistmesh_copyShared(DispListMesh *odlm) +{ + DispListMesh *ndlm= MEM_dupallocN(odlm); + ndlm->dontFreeNors = ndlm->dontFreeOther = ndlm->dontFreeVerts = 1; + + return ndlm; +} + void displistmesh_to_mesh(DispListMesh *dlm, Mesh *me) { if (dlm->totvert>MESH_MAX_VERTS) { @@ -718,7 +726,7 @@ void mesh_create_shadedColors(Object *ob, int onlyForMesh, unsigned int **col1_r } else { dm = mesh_get_derived_final(ob, &dmNeedsFree); } - dlm= dm->convertToDispListMesh(dm); + dlm= dm->convertToDispListMesh(dm, 1); col1 = MEM_mallocN(sizeof(*col1)*dlm->totface*4, "col1"); if (col2_r && (me->flag & ME_TWOSIDED)) { |