diff options
author | Germano Cavalcante <germano.costa@ig.com.br> | 2021-06-22 15:06:33 +0300 |
---|---|---|
committer | Germano Cavalcante <germano.costa@ig.com.br> | 2021-06-22 15:06:33 +0300 |
commit | e3bdb189a777d5509c49c6ec13c82007bd587439 (patch) | |
tree | f5b81a1a2cc89af967c7a6fed0068ca4a0043855 /source/blender/blenkernel | |
parent | ab063db34d60bdda6a683b13cef36d93ad6e760f (diff) |
Cleanup: split BKE_object_batch_cache_dirty_tag
Create a more specialized function `BKE_object_data_batch_cache_dirty_tag`
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/object_update.c | 47 |
2 files changed, 28 insertions, 20 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 604bf0548c3..b0b1657c162 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -377,6 +377,7 @@ void BKE_object_runtime_reset_on_copy(struct Object *object, const int flag); void BKE_object_runtime_free_data(struct Object *object); void BKE_object_batch_cache_dirty_tag(struct Object *ob); +void BKE_object_data_batch_cache_dirty_tag(struct ID *object_data); /* this function returns a superset of the scenes selection based on relationships */ diff --git a/source/blender/blenkernel/intern/object_update.c b/source/blender/blenkernel/intern/object_update.c index e6909127503..b1afd968bdc 100644 --- a/source/blender/blenkernel/intern/object_update.c +++ b/source/blender/blenkernel/intern/object_update.c @@ -349,38 +349,45 @@ void BKE_object_eval_uber_transform(Depsgraph *depsgraph, Object *object) BKE_object_eval_proxy_copy(depsgraph, object); } -void BKE_object_batch_cache_dirty_tag(Object *ob) +void BKE_object_data_batch_cache_dirty_tag(ID *object_data) { - switch (ob->type) { - case OB_MESH: - BKE_mesh_batch_cache_dirty_tag(ob->data, BKE_MESH_BATCH_DIRTY_ALL); + switch (GS(object_data->name)) { + case ID_ME: + BKE_mesh_batch_cache_dirty_tag((struct Mesh *)object_data, BKE_MESH_BATCH_DIRTY_ALL); break; - case OB_LATTICE: - BKE_lattice_batch_cache_dirty_tag(ob->data, BKE_LATTICE_BATCH_DIRTY_ALL); + case ID_LT: + BKE_lattice_batch_cache_dirty_tag((struct Lattice *)object_data, + BKE_LATTICE_BATCH_DIRTY_ALL); break; - case OB_CURVE: - case OB_FONT: - case OB_SURF: - BKE_curve_batch_cache_dirty_tag(ob->data, BKE_CURVE_BATCH_DIRTY_ALL); + case ID_CU: + BKE_curve_batch_cache_dirty_tag((struct Curve *)object_data, BKE_CURVE_BATCH_DIRTY_ALL); break; - case OB_MBALL: - BKE_mball_batch_cache_dirty_tag(ob->data, BKE_MBALL_BATCH_DIRTY_ALL); + case ID_MB: + BKE_mball_batch_cache_dirty_tag((struct MetaBall *)object_data, BKE_MBALL_BATCH_DIRTY_ALL); break; - case OB_GPENCIL: - BKE_gpencil_batch_cache_dirty_tag(ob->data); + case ID_GD: + BKE_gpencil_batch_cache_dirty_tag((struct bGPdata *)object_data); break; - case OB_HAIR: - BKE_hair_batch_cache_dirty_tag(ob->data, BKE_HAIR_BATCH_DIRTY_ALL); + case ID_HA: + BKE_hair_batch_cache_dirty_tag((struct Hair *)object_data, BKE_HAIR_BATCH_DIRTY_ALL); break; - case OB_POINTCLOUD: - BKE_pointcloud_batch_cache_dirty_tag(ob->data, BKE_POINTCLOUD_BATCH_DIRTY_ALL); + case ID_PT: + BKE_pointcloud_batch_cache_dirty_tag((struct PointCloud *)object_data, + BKE_POINTCLOUD_BATCH_DIRTY_ALL); break; - case OB_VOLUME: - BKE_volume_batch_cache_dirty_tag(ob->data, BKE_VOLUME_BATCH_DIRTY_ALL); + case ID_VO: + BKE_volume_batch_cache_dirty_tag((struct Volume *)object_data, BKE_VOLUME_BATCH_DIRTY_ALL); + break; + default: break; } } +void BKE_object_batch_cache_dirty_tag(Object *ob) +{ + BKE_object_data_batch_cache_dirty_tag(ob->data); +} + void BKE_object_eval_uber_data(Depsgraph *depsgraph, Scene *scene, Object *ob) { DEG_debug_print_eval(depsgraph, __func__, ob->id.name, ob); |