diff options
Diffstat (limited to 'intern/cycles/blender/blender_sync.h')
-rw-r--r-- | intern/cycles/blender/blender_sync.h | 47 |
1 files changed, 25 insertions, 22 deletions
diff --git a/intern/cycles/blender/blender_sync.h b/intern/cycles/blender/blender_sync.h index e7b71ae9310..c4dd17714be 100644 --- a/intern/cycles/blender/blender_sync.h +++ b/intern/cycles/blender/blender_sync.h @@ -43,6 +43,7 @@ class Mesh; class Object; class ParticleSystem; class Scene; +class ViewLayer; class Shader; class ShaderGraph; class ShaderNode; @@ -51,6 +52,7 @@ class BlenderSync { public: BlenderSync(BL::RenderEngine& b_engine, BL::BlendData& b_data, + BL::Depsgraph& b_graph, BL::Scene& b_scene, Scene *scene, bool preview, @@ -65,9 +67,9 @@ public: int width, int height, void **python_thread_state, const char *layer = 0); - void sync_render_layers(BL::SpaceView3D& b_v3d, const char *layer); - array<Pass> sync_render_passes(BL::RenderLayer& b_rlay, - BL::SceneRenderLayer& b_srlay, + void sync_view_layers(BL::SpaceView3D& b_v3d, const char *layer); + array<Pass> sync_render_passes(BL::RenderLayer& b_render_layer, + BL::ViewLayer& b_view_layer, const SessionParams &session_params); void sync_integrator(); void sync_camera(BL::RenderSettings& b_render, @@ -77,8 +79,8 @@ public: void sync_view(BL::SpaceView3D& b_v3d, BL::RegionView3D& b_rv3d, int width, int height); - inline int get_layer_samples() { return render_layer.samples; } - inline int get_layer_bound_samples() { return render_layer.bound_samples; } + inline int get_layer_samples() { return view_layer.samples; } + inline int get_layer_bound_samples() { return view_layer.bound_samples; } /* get parameters */ static SceneParams get_scene_params(BL::Scene& b_scene, @@ -113,16 +115,16 @@ private: void sync_curve_settings(); void sync_nodes(Shader *shader, BL::ShaderNodeTree& b_ntree); - Mesh *sync_mesh(BL::Object& b_ob, bool object_updated, bool hide_tris); + Mesh *sync_mesh(BL::Object& b_ob, + BL::Object& b_ob_instance, + bool object_updated, + bool hide_tris); void sync_curves(Mesh *mesh, BL::Mesh& b_mesh, BL::Object& b_ob, bool motion, int time_index = 0); - Object *sync_object(BL::Object& b_parent, - int persistent_id[OBJECT_PERSISTENT_ID_SIZE], - BL::DupliObject& b_dupli_ob, - Transform& tfm, + Object *sync_object(BL::Depsgraph::duplis_iterator& b_dupli_iter, uint layer_flag, float motion_time, bool hide_tris, @@ -131,7 +133,8 @@ private: void sync_light(BL::Object& b_parent, int persistent_id[OBJECT_PERSISTENT_ID_SIZE], BL::Object& b_ob, - BL::DupliObject& b_dupli_ob, + BL::Object& b_ob_instance, + int random_id, Transform& tfm, bool *use_portal); void sync_background_light(bool use_portal); @@ -160,7 +163,9 @@ private: /* variables */ BL::RenderEngine b_engine; BL::BlendData b_data; + BL::Depsgraph b_depsgraph; BL::Scene b_scene; + BL::ViewLayer b_view_layer; id_map<void*, Shader> shader_map; id_map<ObjectKey, Object> object_map; @@ -182,31 +187,29 @@ private: struct RenderLayerInfo { RenderLayerInfo() - : scene_layer(0), layer(0), + : view_layer(0), layer(0), holdout_layer(0), exclude_layer(0), material_override(PointerRNA_NULL), use_background_shader(true), use_background_ao(true), use_surfaces(true), use_hair(true), - use_viewport_visibility(false), samples(0), bound_samples(false) {} string name; - uint scene_layer; - uint layer; - uint holdout_layer; - uint exclude_layer; - BL::Material material_override; + uint view_layer; + uint layer; /* This can be safely removed from Cycles. */ + uint holdout_layer; /* This can be safely removed from Cycles. */ + uint exclude_layer; /* This can be safely removed from Cycles. */ + BL::Material material_override; /* This can be safely removed from Cycles. */ bool use_background_shader; bool use_background_ao; bool use_surfaces; bool use_hair; - bool use_viewport_visibility; - int samples; - bool bound_samples; - } render_layer; + int samples; /* This can be safely removed from Cycles. */ + bool bound_samples; /* This can be safely removed from Cycles. */ + } view_layer; Progress &progress; }; |