diff options
Diffstat (limited to 'intern/cycles/blender/sync.h')
-rw-r--r-- | intern/cycles/blender/sync.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/intern/cycles/blender/sync.h b/intern/cycles/blender/sync.h index ae6c2420e55..fbb17bab0c8 100644 --- a/intern/cycles/blender/sync.h +++ b/intern/cycles/blender/sync.h @@ -120,6 +120,11 @@ class BlenderSync { void sync_shaders(BL::Depsgraph &b_depsgraph, BL::SpaceView3D &b_v3d, bool update_all); void sync_nodes(Shader *shader, BL::ShaderNodeTree &b_ntree); + bool scene_attr_needs_recalc(Shader *shader, BL::Depsgraph &b_depsgraph); + void resolve_view_layer_attributes(Shader *shader, + ShaderGraph *graph, + BL::Depsgraph &b_depsgraph); + /* Object */ Object *sync_object(BL::Depsgraph &b_depsgraph, BL::ViewLayer &b_view_layer, @@ -207,13 +212,16 @@ class BlenderSync { bool object_is_geometry(BObjectInfo &b_ob_info); bool object_can_have_geometry(BL::Object &b_ob); bool object_is_light(BL::Object &b_ob); + bool object_is_camera(BL::Object &b_ob); /* variables */ BL::RenderEngine b_engine; BL::BlendData b_data; BL::Scene b_scene; - id_map<void *, Shader> shader_map; + enum ShaderFlags { SHADER_WITH_LAYER_ATTRS }; + + id_map<void *, Shader, ShaderFlags> shader_map; id_map<ObjectKey, Object> object_map; id_map<void *, Procedural> procedural_map; id_map<GeometryKey, Geometry> geometry_map; |