[Bf-blender-cvs] [c5e2a8fbbde] temp-test-point-cloud-simulation-depsgraph-integration: add runtime field to Simulation

Jacques Lucke noreply at git.blender.org
Thu Apr 16 13:04:40 CEST 2020


Commit: c5e2a8fbbdecf589cb883b5ee8b4455605f57413
Author: Jacques Lucke
Date:   Thu Apr 16 13:04:33 2020 +0200
Branches: temp-test-point-cloud-simulation-depsgraph-integration
https://developer.blender.org/rBc5e2a8fbbdecf589cb883b5ee8b4455605f57413

add runtime field to Simulation

===================================================================

M	source/blender/blenkernel/intern/simulation.cc
M	source/blender/blenloader/intern/readfile.c
M	source/blender/makesdna/DNA_simulation_types.h

===================================================================

diff --git a/source/blender/blenkernel/intern/simulation.cc b/source/blender/blenkernel/intern/simulation.cc
index e463c3cb8bb..59a9f578e09 100644
--- a/source/blender/blenkernel/intern/simulation.cc
+++ b/source/blender/blenkernel/intern/simulation.cc
@@ -47,6 +47,9 @@
 #include "DEG_depsgraph.h"
 #include "DEG_depsgraph_query.h"
 
+struct SimulationRuntime {
+};
+
 static void simulation_init_data(ID *id)
 {
   Simulation *simulation = (Simulation *)id;
@@ -69,6 +72,8 @@ static void simulation_copy_data(Main *bmain, ID *id_dst, const ID *id_src, cons
                    (ID **)&simulation_dst->nodetree,
                    flag_private_id_data);
   }
+
+  simulation_dst->runtime = nullptr;
 }
 
 static void simulation_make_local(Main *bmain, ID *id, const int flags)
@@ -87,6 +92,11 @@ static void simulation_free_data(ID *id)
     MEM_freeN(simulation->nodetree);
     simulation->nodetree = nullptr;
   }
+
+  if (simulation->runtime) {
+    delete simulation->runtime;
+    simulation->runtime = nullptr;
+  }
 }
 
 void *BKE_simulation_add(Main *bmain, const char *name)
@@ -118,7 +128,12 @@ IDTypeInfo IDType_ID_SIM = {
 
 void BKE_simulation_eval(Depsgraph *depsgraph, Simulation *simulation, Scene *scene)
 {
-  int current_frame = scene->r.cfra;
-  float current_subframe = scene->r.subframe;
-  printf("Output simulation state at frame %d + %f\n", current_frame, current_subframe);
+  Simulation *simulation_orig = (Simulation *)DEG_get_original_id(&simulation->id);
+  if (simulation_orig->runtime == nullptr) {
+    simulation_orig->runtime = new SimulationRuntime();
+  }
+  SimulationRuntime &sim_runtime = *(SimulationRuntime *)simulation_orig->runtime;
+
+  int output_scene_frame = scene->r.cfra;
+  float output_scene_subframe = scene->r.subframe;
 }
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c
index 0ce04d81778..c00bc272a38 100644
--- a/source/blender/blenloader/intern/readfile.c
+++ b/source/blender/blenloader/intern/readfile.c
@@ -9194,6 +9194,7 @@ static void direct_link_simulation(FileData *fd, Simulation *simulation)
 {
   simulation->adt = newdataadr(fd, simulation->adt);
   direct_link_animdata(fd, simulation->adt);
+  simulation->runtime = NULL;
 }
 
 /** \} */
diff --git a/source/blender/makesdna/DNA_simulation_types.h b/source/blender/makesdna/DNA_simulation_types.h
index 113c301bb9e..5665bfed258 100644
--- a/source/blender/makesdna/DNA_simulation_types.h
+++ b/source/blender/makesdna/DNA_simulation_types.h
@@ -31,6 +31,8 @@ typedef struct Simulation {
 
   int flag;
   int _pad1[1];
+
+  void *runtime;
 } Simulation;
 
 /* Simulation.flag */



More information about the Bf-blender-cvs mailing list