diff options
Diffstat (limited to 'source/blender/alembic')
-rw-r--r-- | source/blender/alembic/intern/abc_exporter.cc | 6 | ||||
-rw-r--r-- | source/blender/alembic/intern/abc_exporter.h | 4 | ||||
-rw-r--r-- | source/blender/alembic/intern/alembic_capi.cc | 7 |
3 files changed, 12 insertions, 5 deletions
diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc index 51e2e7040f9..af6cf655652 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, Depsgraph *depsgraph, +AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, SceneLayer *scene_layer, + Depsgraph *depsgraph, const char *filename, ExportSettings &settings) : m_bmain(bmain) , m_settings(settings) @@ -177,6 +178,7 @@ AbcExporter::AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, , m_shape_sampling_index(0) , m_eval_ctx(eval_ctx) , m_scene(scene) + , m_scene_layer(scene_layer) , m_depsgraph(depsgraph) , m_writer(NULL) {} @@ -655,5 +657,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_graph_update_for_newframe(bmain->eval_ctx, m_depsgraph, bmain, m_scene); + BKE_scene_graph_update_for_newframe(bmain->eval_ctx, m_depsgraph, bmain, m_scene, m_scene_layer); } diff --git a/source/blender/alembic/intern/abc_exporter.h b/source/blender/alembic/intern/abc_exporter.h index d0f3964abd5..816e2db725b 100644 --- a/source/blender/alembic/intern/abc_exporter.h +++ b/source/blender/alembic/intern/abc_exporter.h @@ -95,6 +95,7 @@ class AbcExporter { EvaluationContext *m_eval_ctx; Scene *m_scene; + SceneLayer *m_scene_layer; Depsgraph *m_depsgraph; ArchiveWriter *m_writer; @@ -106,7 +107,8 @@ class AbcExporter { std::vector<AbcObjectWriter *> m_shapes; public: - AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, Depsgraph *depsgraph, + AbcExporter(Main *bmain, EvaluationContext *eval_ctx, Scene *scene, SceneLayer *scene_layer, + Depsgraph *depsgraph, const char *filename, ExportSettings &settings); ~AbcExporter(); diff --git a/source/blender/alembic/intern/alembic_capi.cc b/source/blender/alembic/intern/alembic_capi.cc index d17182a0d65..e4d6357a1be 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; + SceneLayer *scene_layer; Depsgraph *depsgraph; Main *bmain; @@ -264,7 +265,8 @@ 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->depsgraph, data->filename, data->settings); + SceneLayer *scene_layer = data->scene_layer; + AbcExporter exporter(data->bmain, &data->eval_ctx, scene, scene_layer, data->depsgraph, data->filename, data->settings); const int orig_frame = CFRA; @@ -274,7 +276,7 @@ static void export_startjob(void *customdata, short *stop, short *do_update, flo if (CFRA != orig_frame) { CFRA = orig_frame; - BKE_scene_graph_update_for_newframe(data->bmain->eval_ctx, data->depsgraph, data->bmain, scene); + BKE_scene_graph_update_for_newframe(data->bmain->eval_ctx, data->depsgraph, data->bmain, scene, data->scene_layer); } data->export_ok = !data->was_canceled; @@ -316,6 +318,7 @@ bool ABC_export( CTX_data_eval_ctx(C, &job->eval_ctx); job->scene = scene; + job->scene_layer = CTX_data_scene_layer(C); job->depsgraph = CTX_data_depsgraph(C); job->bmain = CTX_data_main(C); job->export_ok = false; |