[Bf-blender-cvs] [f065d25] alembic_pointcache: A couple of fixes for changed Blender functions and the new EvaluationContext needed for evaluating the scene during baking.

Lukas Tönne noreply at git.blender.org
Thu Oct 16 16:54:24 CEST 2014


Commit: f065d2565315435b8aaf2a7ee5308b61c7c0edc5
Author: Lukas Tönne
Date:   Thu Oct 16 16:42:40 2014 +0200
Branches: alembic_pointcache
https://developer.blender.org/rBf065d2565315435b8aaf2a7ee5308b61c7c0edc5

A couple of fixes for changed Blender functions and the new
EvaluationContext needed for evaluating the scene during baking.

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

M	source/blender/editors/physics/physics_pointcache.c
M	source/blender/pointcache/PTC_api.cpp
M	source/blender/pointcache/PTC_api.h
M	source/blender/pointcache/intern/export.cpp
M	source/blender/pointcache/intern/export.h
M	source/blender/pointcache/util/util_path.cpp

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

diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c
index a26721e..5c7a27a 100644
--- a/source/blender/editors/physics/physics_pointcache.c
+++ b/source/blender/editors/physics/physics_pointcache.c
@@ -109,7 +109,7 @@ static void ptcache_export_startjob(void *customdata, short *stop, short *do_upd
 	/* XXX where to get this from? */
 	start_frame = scene->r.sfra;
 	end_frame = scene->r.efra;
-	PTC_bake(data->bmain, scene, data->writer, start_frame, end_frame, stop, do_update, progress);
+	PTC_bake(data->bmain, scene, &data->eval_ctx, data->writer, start_frame, end_frame, stop, do_update, progress);
 	
 	*do_update = true;
 	*stop = 0;
diff --git a/source/blender/pointcache/PTC_api.cpp b/source/blender/pointcache/PTC_api.cpp
index 1769e8c..dd458e4 100644
--- a/source/blender/pointcache/PTC_api.cpp
+++ b/source/blender/pointcache/PTC_api.cpp
@@ -69,11 +69,11 @@ void PTC_write_sample(struct PTCWriter *_writer)
 	writer->write_sample();
 }
 
-void PTC_bake(struct Main *bmain, struct Scene *scene, struct PTCWriter *_writer, int start_frame, int end_frame,
+void PTC_bake(struct Main *bmain, struct Scene *scene, struct EvaluationContext *evalctx, struct PTCWriter *_writer, int start_frame, int end_frame,
               short *stop, short *do_update, float *progress)
 {
 	PTC::Writer *writer = (PTC::Writer *)_writer;
-	PTC::Exporter exporter(bmain, scene, stop, do_update, progress);
+	PTC::Exporter exporter(bmain, scene, evalctx, stop, do_update, progress);
 	exporter.bake(writer, start_frame, end_frame);
 }
 
diff --git a/source/blender/pointcache/PTC_api.h b/source/blender/pointcache/PTC_api.h
index 72d3bab..42eb84a 100644
--- a/source/blender/pointcache/PTC_api.h
+++ b/source/blender/pointcache/PTC_api.h
@@ -27,6 +27,7 @@ extern "C" {
 
 struct Main;
 struct Scene;
+struct EvaluationContext;
 struct PointCache;
 struct PointerRNA;
 
@@ -44,7 +45,7 @@ struct PTCReader;
 void PTC_validate(struct PointCache *cache, int framenr);
 void PTC_invalidate(struct PointCache *cache);
 
-void PTC_bake(struct Main *bmain, struct Scene *scene, struct PTCWriter *writer, int start_frame, int end_frame,
+void PTC_bake(struct Main *bmain, struct Scene *scene, struct EvaluationContext *evalctx, struct PTCWriter *writer, int start_frame, int end_frame,
               short *stop, short *do_update, float *progress);
 
 
diff --git a/source/blender/pointcache/intern/export.cpp b/source/blender/pointcache/intern/export.cpp
index f21294d..57125f8 100644
--- a/source/blender/pointcache/intern/export.cpp
+++ b/source/blender/pointcache/intern/export.cpp
@@ -29,9 +29,10 @@ extern "C" {
 
 namespace PTC {
 
-Exporter::Exporter(Main *bmain, Scene *scene, short *stop, short *do_update, float *progress) :
+Exporter::Exporter(Main *bmain, Scene *scene, EvaluationContext *evalctx, short *stop, short *do_update, float *progress) :
     m_bmain(bmain),
     m_scene(scene),
+    m_evalctx(evalctx),
     m_stop(stop),
     m_do_update(do_update),
     m_progress(progress)
@@ -46,7 +47,7 @@ void Exporter::bake(Writer *writer, int start_frame, int end_frame)
 
 	for (int cfra = start_frame; cfra <= end_frame; ++cfra) {
 		m_scene->r.cfra = cfra;
-		BKE_scene_update_for_newframe(m_bmain, m_scene, m_scene->lay);
+		BKE_scene_update_for_newframe(m_evalctx, m_bmain, m_scene, m_scene->lay);
 
 		writer->write_sample();
 
diff --git a/source/blender/pointcache/intern/export.h b/source/blender/pointcache/intern/export.h
index 0fd0360..34736b2 100644
--- a/source/blender/pointcache/intern/export.h
+++ b/source/blender/pointcache/intern/export.h
@@ -23,6 +23,7 @@
 
 struct Main;
 struct Scene;
+struct EvaluationContext;
 
 namespace PTC {
 
@@ -31,7 +32,7 @@ class Writer;
 class Exporter
 {
 public:
-	Exporter(Main *bmain, Scene *scene, short *stop, short *do_update, float *progress);
+	Exporter(Main *bmain, Scene *scene, EvaluationContext *evalctx, short *stop, short *do_update, float *progress);
 	
 	void bake(Writer *writer, int start_frame, int end_frame);
 
@@ -44,6 +45,7 @@ private:
 	
 	Main *m_bmain;
 	Scene *m_scene;
+	EvaluationContext *m_evalctx;
 	
 	short *m_stop;
 	short *m_do_update;
diff --git a/source/blender/pointcache/util/util_path.cpp b/source/blender/pointcache/util/util_path.cpp
index e45f552..4605d25 100644
--- a/source/blender/pointcache/util/util_path.cpp
+++ b/source/blender/pointcache/util/util_path.cpp
@@ -58,7 +58,7 @@ static int ptc_path(char *filename, const char *path, ID *id, bool is_external,
 	else {
 		/* use the temp path. this is weak but better then not using point cache at all */
 		/* temporary directory is assumed to exist and ALWAYS has a trailing slash */
-		BLI_snprintf(filename, FILE_MAX, "%s" PTC_DIRECTORY, BLI_temporary_dir());
+		BLI_snprintf(filename, FILE_MAX, "%s" PTC_DIRECTORY, BLI_temp_dir_session());
 	}
 	
 	return BLI_add_slash(filename); /* new strlen() */




More information about the Bf-blender-cvs mailing list