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:
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c38
1 files changed, 4 insertions, 34 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 3dda6933eab..02de0ce1d40 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -2163,38 +2163,6 @@ static void editbmesh_calc_modifiers(Scene *scene, Object *ob, BMEditMesh *em, D
MEM_freeN(deformedVerts);
}
-static void clear_mesh_caches(Object *ob)
-{
- Mesh *me = ob->data;
-
- /* also serves as signal to remake texspace */
- if (ob->bb) {
- MEM_freeN(ob->bb);
- ob->bb = NULL;
- }
- if (me->bb) {
- MEM_freeN(me->bb);
- me->bb = NULL;
- }
-
- BKE_displist_free(&ob->disp);
-
- if (ob->derivedFinal) {
- ob->derivedFinal->needsFree = 1;
- ob->derivedFinal->release(ob->derivedFinal);
- ob->derivedFinal = NULL;
- }
- if (ob->derivedDeform) {
- ob->derivedDeform->needsFree = 1;
- ob->derivedDeform->release(ob->derivedDeform);
- ob->derivedDeform = NULL;
- }
-
- if (ob->sculpt) {
- BKE_object_sculpt_modifiers_changed(ob);
- }
-}
-
static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask,
int build_shapekey_layers)
{
@@ -2205,7 +2173,8 @@ static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask,
BLI_assert(ob->type == OB_MESH);
- clear_mesh_caches(ob);
+ BKE_object_free_derived_caches(ob);
+ BKE_object_sculpt_modifiers_changed(ob);
mesh_calc_modifiers(scene, ob, NULL, &ob->derivedDeform,
&ob->derivedFinal, 0, 1,
@@ -2226,7 +2195,8 @@ static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask,
static void editbmesh_build_data(Scene *scene, Object *obedit, BMEditMesh *em, CustomDataMask dataMask)
{
- clear_mesh_caches(obedit);
+ BKE_object_free_derived_caches(obedit);
+ BKE_object_sculpt_modifiers_changed(obedit);
if (em->derivedFinal) {
if (em->derivedFinal != em->derivedCage) {