diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-19 14:40:20 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-19 14:40:20 +0400 |
commit | f4609acedc79ed57af8a6a30917214a1176fc175 (patch) | |
tree | ed68a8925527cf84b637f1b769ac3685b901c580 /source/blender/modifiers/intern/MOD_shapekey.c | |
parent | 965d2fd4267a6c6554c8532de1b92832fa4b0226 (diff) |
optimization: avoid memcpy with shake key vertex array.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_shapekey.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_shapekey.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/source/blender/modifiers/intern/MOD_shapekey.c b/source/blender/modifiers/intern/MOD_shapekey.c index 697ccdc49a4..fef4c7ccedb 100644 --- a/source/blender/modifiers/intern/MOD_shapekey.c +++ b/source/blender/modifiers/intern/MOD_shapekey.c @@ -55,17 +55,12 @@ static void deformVerts(ModifierData *md, Object *ob, ModifierApplyFlag UNUSED(flag)) { Key *key = BKE_key_from_object(ob); - float (*deformedVerts)[3]; if (key && key->block.first) { int deformedVerts_tot; - deformedVerts = (float(*)[3])BKE_key_evaluate_object(md->scene, ob, &deformedVerts_tot); - if (deformedVerts) { - if (numVerts == deformedVerts_tot) { - memcpy(vertexCos, deformedVerts, sizeof(float) * 3 * numVerts); - } - MEM_freeN(deformedVerts); - } + BKE_key_evaluate_object_ex(md->scene, ob, &deformedVerts_tot, + (float *)vertexCos, sizeof(*vertexCos) * numVerts); + } } |