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>2018-10-10 04:01:05 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-10-10 04:01:05 +0300
commit44f478bb1a8f74d8d32d5028d5186133f5abc21c (patch)
tree8fbb07a11c35c4b5ed67cd688886d8ee1c52e708 /source/blender/blenkernel/intern/crazyspace.c
parent8c470e26d25eab0133e42c187b09066b69e4f60c (diff)
Modifier: remove derived-mesh for sculpt crazy-space
Diffstat (limited to 'source/blender/blenkernel/intern/crazyspace.c')
-rw-r--r--source/blender/blenkernel/intern/crazyspace.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/crazyspace.c b/source/blender/blenkernel/intern/crazyspace.c
index bfb6fbd897c..354cc4926f1 100644
--- a/source/blender/blenkernel/intern/crazyspace.c
+++ b/source/blender/blenkernel/intern/crazyspace.c
@@ -316,14 +316,14 @@ int BKE_sculpt_get_first_deform_matrices(
Object *ob, float (**deformmats)[3][3], float (**deformcos)[3])
{
ModifierData *md;
- DerivedMesh *dm;
+ Mesh *me_eval;
int a, numVerts = 0;
float (*defmats)[3][3] = NULL, (*deformedVerts)[3] = NULL;
MultiresModifierData *mmd = get_multires_modifier(scene, ob, 0);
const bool has_multires = mmd != NULL && mmd->sculptlvl > 0;
int numleft = 0;
VirtualModifierData virtualModifierData;
- ModifierEvalContext mectx = {depsgraph, ob, 0};
+ const ModifierEvalContext mectx = {depsgraph, ob, 0};
if (has_multires) {
*deformmats = NULL;
@@ -331,7 +331,7 @@ int BKE_sculpt_get_first_deform_matrices(
return numleft;
}
- dm = NULL;
+ me_eval = NULL;
md = modifiers_getVirtualModifierList(ob, &virtualModifierData);
for (; md; md = md->next) {
@@ -341,8 +341,8 @@ int BKE_sculpt_get_first_deform_matrices(
if (mti->type == eModifierTypeType_OnlyDeform) {
if (!defmats) {
- Mesh *me = (Mesh *)ob->data;
- dm = mesh_create_derived(me, NULL);
+ Mesh *me = ob->data;
+ me_eval = BKE_mesh_copy_for_eval(me, true);
deformedVerts = BKE_mesh_vertexCos_get(me, &numVerts);
defmats = MEM_callocN(sizeof(*defmats) * numVerts, "defmats");
@@ -351,7 +351,7 @@ int BKE_sculpt_get_first_deform_matrices(
}
if (mti->deformMatrices) {
- modifier_deformMatrices_DM_deprecated(md, &mectx, dm, deformedVerts, defmats, numVerts);
+ mti->deformMatrices(md, &mectx, me_eval, deformedVerts, defmats, numVerts);
}
else break;
}
@@ -366,8 +366,9 @@ int BKE_sculpt_get_first_deform_matrices(
numleft++;
}
- if (dm)
- dm->release(dm);
+ if (me_eval) {
+ BKE_id_free(NULL, me_eval);
+ }
*deformmats = defmats;
*deformcos = deformedVerts;
@@ -389,7 +390,7 @@ void BKE_crazyspace_build_sculpt(struct Depsgraph *depsgraph, Scene *scene, Obje
int i, deformed = 0;
VirtualModifierData virtualModifierData;
ModifierData *md = modifiers_getVirtualModifierList(ob, &virtualModifierData);
- ModifierEvalContext mectx = {depsgraph, ob, 0};
+ const ModifierEvalContext mectx = {depsgraph, ob, 0};
Mesh *me = (Mesh *)ob->data;
for (; md; md = md->next) {