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:
authorSergey Sharybin <sergey.vfx@gmail.com>2017-11-09 13:20:17 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2017-11-09 13:20:17 +0300
commitd325e6f0e845d710abe4847a57be8e30920911a9 (patch)
tree13138d409459bbe7e223833a8f6a5000437585e6 /source/blender/alembic
parentc99481b6320a77e4793c812403f7d37dfc2d5ced (diff)
Depsgraph: Make dependency graph to be built from scene layer
This is a final step of having proper ownership. Now selecting different layers in the "top bar" will actually do what this is expected to do. Surely, there are still things to be done under the hood, that will happen in a less intrusive way.
Diffstat (limited to 'source/blender/alembic')
-rw-r--r--source/blender/alembic/intern/abc_exporter.cc6
-rw-r--r--source/blender/alembic/intern/abc_exporter.h4
-rw-r--r--source/blender/alembic/intern/alembic_capi.cc7
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;