diff options
author | Jacques Lucke <jacques@blender.org> | 2020-05-25 13:23:03 +0300 |
---|---|---|
committer | Jacques Lucke <jacques@blender.org> | 2020-05-25 13:23:55 +0300 |
commit | 87e9557cd109dc9a3d52f07b509a340bba4aaf20 (patch) | |
tree | cc37b521e6ec6d085b5fe9c411361fb4cb8385b5 /source/blender | |
parent | 60bed34f165b209dbc7225b433ebe9e81aec2d35 (diff) |
Simulations: pass simulation data block to update function
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_simulation.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/simulation.cc | 7 | ||||
-rw-r--r-- | source/blender/depsgraph/intern/builder/deg_builder_nodes.cc | 5 |
3 files changed, 13 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_simulation.h b/source/blender/blenkernel/BKE_simulation.h index d1cf782e9e5..534ddfe1271 100644 --- a/source/blender/blenkernel/BKE_simulation.h +++ b/source/blender/blenkernel/BKE_simulation.h @@ -27,7 +27,9 @@ struct Depsgraph; void *BKE_simulation_add(struct Main *bmain, const char *name); -void BKE_simulation_data_update(struct Depsgraph *depsgraph, struct Scene *scene); +void BKE_simulation_data_update(struct Depsgraph *depsgraph, + struct Scene *scene, + struct Simulation *simulation); #ifdef __cplusplus } diff --git a/source/blender/blenkernel/intern/simulation.cc b/source/blender/blenkernel/intern/simulation.cc index 50770125a18..d5ba345928b 100644 --- a/source/blender/blenkernel/intern/simulation.cc +++ b/source/blender/blenkernel/intern/simulation.cc @@ -18,6 +18,8 @@ * \ingroup bke */ +#include <iostream> + #include "MEM_guardedalloc.h" #include "DNA_ID.h" @@ -46,6 +48,7 @@ #include "BLT_translation.h" #include "DEG_depsgraph.h" +#include "DEG_depsgraph_query.h" static void simulation_init_data(ID *id) { @@ -122,6 +125,8 @@ void *BKE_simulation_add(Main *bmain, const char *name) return simulation; } -void BKE_simulation_data_update(Depsgraph *UNUSED(depsgraph), Scene *UNUSED(scene)) +void BKE_simulation_data_update(Depsgraph *UNUSED(depsgraph), + Scene *UNUSED(scene), + Simulation *UNUSED(simulation)) { } diff --git a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc index f76af5bdda5..7a562190cfd 100644 --- a/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc +++ b/source/blender/depsgraph/intern/builder/deg_builder_nodes.cc @@ -1766,10 +1766,13 @@ void DepsgraphNodeBuilder::build_simulation(Simulation *simulation) build_animdata(&simulation->id); build_parameters(&simulation->id); + Simulation *simulation_cow = get_cow_datablock(simulation); + Scene *scene_cow = get_cow_datablock(scene_); + add_operation_node(&simulation->id, NodeType::SIMULATION, OperationCode::SIMULATION_EVAL, - function_bind(BKE_simulation_data_update, _1, get_cow_datablock(scene_))); + function_bind(BKE_simulation_data_update, _1, scene_cow, simulation_cow)); } void DepsgraphNodeBuilder::build_scene_sequencer(Scene *scene) |