Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/alembic/intern/abc_exporter.cc6
-rw-r--r--source/blender/alembic/intern/abc_exporter.h6
-rw-r--r--source/blender/alembic/intern/alembic_capi.cc5
-rw-r--r--tests/gtests/alembic/abc_export_test.cc20
4 files changed, 25 insertions, 12 deletions
diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index 5635e3a9420..51e2e7040f9 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -168,7 +168,8 @@ static bool export_object(const ExportSettings * const settings, const Base * co
/* ************************************************************************** */
-AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, const char *filename, ExportSettings &settings)
+AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, Depsgraph *depsgraph,
+ const char *filename, ExportSettings &settings)
: m_bmain(bmain)
, m_settings(settings)
, m_filename(filename)
@@ -176,6 +177,7 @@ AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene,
, m_shape_sampling_index(0)
, m_eval_ctx(eval_ctx)
, m_scene(scene)
+ , m_depsgraph(depsgraph)
, m_writer(NULL)
{}
@@ -653,5 +655,5 @@ void AbcExporter::setCurrentFrame(Main *bmain, double t)
{
m_scene->r.cfra = static_cast<int>(t);
m_scene->r.subframe = static_cast<float>(t) - m_scene->r.cfra;
- BKE_scene_update_for_newframe(bmain->eval_ctx, bmain, m_scene);
+ BKE_scene_graph_update_for_newframe(bmain->eval_ctx, m_depsgraph, bmain, m_scene);
}
diff --git a/source/blender/alembic/intern/abc_exporter.h b/source/blender/alembic/intern/abc_exporter.h
index 7e32178bc20..d0f3964abd5 100644
--- a/source/blender/alembic/intern/abc_exporter.h
+++ b/source/blender/alembic/intern/abc_exporter.h
@@ -35,6 +35,7 @@ class AbcTransformWriter;
class ArchiveWriter;
struct EvaluationContext;
+struct Depsgraph;
struct Main;
struct Object;
struct Scene;
@@ -46,6 +47,7 @@ struct ExportSettings {
Scene *scene;
SceneLayer *sl; // Scene layer to export; all its objects will be exported, unless selected_only=true
+ Depsgraph *depsgraph;
SimpleLogger logger;
bool selected_only;
@@ -93,6 +95,7 @@ class AbcExporter {
EvaluationContext *m_eval_ctx;
Scene *m_scene;
+ Depsgraph *m_depsgraph;
ArchiveWriter *m_writer;
@@ -103,7 +106,8 @@ class AbcExporter {
std::vector<AbcObjectWriter *> m_shapes;
public:
- AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, const char *filename, ExportSettings &settings);
+ AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, Depsgraph *depsgraph,
+ const char *filename, ExportSettings &settings);
~AbcExporter();
void operator()(Main *bmain, float &progress, bool &was_canceled);
diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc
index 730a574e649..c8735df21d5 100644
--- a/source/blender/alembic/intern/alembic_capi.cc
+++ b/source/blender/alembic/intern/alembic_capi.cc
@@ -232,6 +232,7 @@ static void find_iobject(const IObject &object, IObject &ret,
struct ExportJobData {
EvaluationContext eval_ctx;
Scene *scene;
+ Depsgraph *depsgraph;
Main *bmain;
char filename[1024];
@@ -263,7 +264,7 @@ static void export_startjob(void *customdata, short *stop, short *do_update, flo
try {
Scene *scene = data->scene;
- AbcExporter exporter(data->bmain, &data->eval_ctx, scene, data->filename, data->settings);
+ AbcExporter exporter(data->bmain, &data->eval_ctx, scene, data->depsgraph, data->filename, data->settings);
const int orig_frame = CFRA;
@@ -315,6 +316,7 @@ bool ABC_export(
CTX_data_eval_ctx(C, &job->eval_ctx);
job->scene = scene;
+ job->depsgraph = CTX_data_depsgraph(C);
job->bmain = CTX_data_main(C);
job->export_ok = false;
BLI_strncpy(job->filename, filepath, 1024);
@@ -336,6 +338,7 @@ bool ABC_export(
* hardcore refactoring. */
new (&job->settings) ExportSettings();
job->settings.scene = job->scene;
+ job->settings.depsgraph = job->depsgraph;
/* Sybren: for now we only export the active scene layer.
* Later in the 2.8 development process this may be replaced by using
diff --git a/tests/gtests/alembic/abc_export_test.cc b/tests/gtests/alembic/abc_export_test.cc
index 6fc976b8a55..b5ef1a194e9 100644
--- a/tests/gtests/alembic/abc_export_test.cc
+++ b/tests/gtests/alembic/abc_export_test.cc
@@ -15,11 +15,11 @@ extern "C" {
class TestableAbcExporter : public AbcExporter {
public:
- TestableAbcExporter(Main *bmain, Scene *scene, const char *filename, ExportSettings &settings)
- : AbcExporter(bmain, &eval_ctx, scene, filename, settings)
+ TestableAbcExporter(Main *bmain, EvaluationContext *eval_ctx,
+ Scene *scene, Depsgraph *depsgraph,
+ const char *filename, ExportSettings &settings)
+ : AbcExporter(bmain, eval_ctx, scene, depsgraph, filename, settings)
{
- /* TODO(sergey): Pass scene layer somehow? */
- DEG_evaluation_context_init(&eval_ctx, DAG_EVAL_VIEWPORT);
}
void getShutterSamples(unsigned int nr_of_samples,
@@ -33,8 +33,6 @@ public:
std::set<double> &frames) {
AbcExporter::getFrameSet(nr_of_samples, frames);
}
-
- EvaluationContext eval_ctx;
};
class AlembicExportTest : public testing::Test
@@ -42,8 +40,9 @@ class AlembicExportTest : public testing::Test
protected:
ExportSettings settings;
Scene scene;
- TestableAbcExporter *exporter;
EvaluationContext eval_ctx;
+ Depsgraph *depsgraph;
+ TestableAbcExporter *exporter;
Main *bmain;
virtual void SetUp()
@@ -57,19 +56,24 @@ protected:
bmain = BKE_main_new();
+ /* TODO(sergey): Pass scene layer somehow? */
+ DEG_evaluation_context_init(&eval_ctx, DAG_EVAL_VIEWPORT);
+ depsgraph = DEG_graph_new();
+
exporter = NULL;
}
virtual void TearDown()
{
BKE_main_free(bmain);
+ DEG_graph_free(depsgraph);
delete exporter;
}
// Call after setting up the settings.
void createExporter()
{
- exporter = new TestableAbcExporter(bmain, &scene, "somefile.abc", settings);
+ exporter = new TestableAbcExporter(bmain, &eval_ctx, &scene, depsgraph, "somefile.abc", settings);
}
};