Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-05-27 16:42:48 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-05-27 16:42:48 +0400
commit083115c5e790d5c6e87a7a4a42daea70da1ded1b (patch)
tree75314e71ff24b7de4a8508e76662b3afbc3e5ddf /source/blender/blenkernel/intern/key.c
parente51ee75e826846d44dcbb7028ee44e8f3e7b6858 (diff)
bmesh optimization: use offsets for deform-vert lookups to avoid customdata layer lookups within loops.
Diffstat (limited to 'source/blender/blenkernel/intern/key.c')
-rw-r--r--source/blender/blenkernel/intern/key.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c
index 74bf36adc6e..dfa5fcff94c 100644
--- a/source/blender/blenkernel/intern/key.c
+++ b/source/blender/blenkernel/intern/key.c
@@ -1067,12 +1067,10 @@ static float *get_weights_array(Object *ob, char *vgroup)
weights = MEM_callocN(totvert * sizeof(float), "weights");
if (em) {
+ const int cd_dvert_offset = CustomData_get_offset(&em->bm->vdata, CD_MDEFORMVERT);
BM_ITER_MESH_INDEX (eve, &iter, em->bm, BM_VERTS_OF_MESH, i) {
- dvert = CustomData_bmesh_get(&em->bm->vdata, eve->head.data, CD_MDEFORMVERT);
-
- if (dvert) {
- weights[i] = defvert_find_weight(dvert, defgrp_index);
- }
+ dvert = BM_ELEM_CD_GET_VOID_P(eve, cd_dvert_offset);
+ weights[i] = defvert_find_weight(dvert, defgrp_index);
}
}
else {