[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