diff options
Diffstat (limited to 'source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc')
-rw-r--r-- | source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc index 855dd4821ce..2f45ea45197 100644 --- a/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc +++ b/source/blender/depsgraph/intern/eval/deg_eval_runtime_backup_object.cc @@ -129,6 +129,17 @@ void ObjectRuntimeBackup::restore_to_object(Object *object) } } } + else if (ELEM(object->type, OB_HAIR, OB_POINTCLOUD, OB_VOLUME)) { + if (object->id.recalc & ID_RECALC_GEOMETRY) { + /* Free evaluated caches. */ + object->data = data_orig; + BKE_object_free_derived_caches(object); + } + else { + object->data = object->runtime.data_eval; + } + } + object->base_flag = base_flag; object->base_local_view_bits = base_local_view_bits; /* Restore modifier's runtime data. |