X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fmaterials%2Frenderpass.h;h=de04461af05f3510f96630c23968773ab9ef19bb;hb=6b9338845dfee441cd18ad6c633e4feef8ad14e1;hp=cb378556f27df66f35f0d448bb67ba3de9133c5e;hpb=9549f3401a70ca0359324a3e56e1e334981e5516;p=libs%2Fgl.git diff --git a/source/materials/renderpass.h b/source/materials/renderpass.h index cb378556..de04461a 100644 --- a/source/materials/renderpass.h +++ b/source/materials/renderpass.h @@ -33,6 +33,7 @@ public: private: virtual void init_actions(); + virtual void finish(); static std::string get_shader_name(const std::string &); @@ -78,21 +79,22 @@ private: std::string material_slot; std::vector textures; bool back_faces; + bool receive_shadows; + bool image_based_lighting; public: RenderPass(); private: - void finalize_material(DataFile::Collection *); - void maybe_create_material_shader(DataFile::Collection *); - void ensure_private_shader_data(); + void maybe_create_material_shader(); + void set_material_textures(); public: void set_shader_program(const Program *, const ProgramData *); const Program *get_shader_program() const { return shprog.get(); } const ProgramData *get_shader_data() const { return shdata.get(); } Tag get_slotted_uniform_tag(Tag) const; - void set_material(const Material *, DataFile::Collection * = 0); + void set_material(const Material *); const Material *get_material() const { return material.get(); } const std::string &get_material_slot_name() const { return material_slot; } void set_texture(Tag, const Texture *, const Sampler * = 0); @@ -102,8 +104,14 @@ public: DEPRECATED int get_texture_index(const std::string &) const; void set_back_faces(bool); bool get_back_faces() const { return back_faces; } + void set_receive_shadows(bool); + bool get_receive_shadows() const { return receive_shadows; } + void set_image_based_lighting(bool); + bool get_image_based_lighting() const { return image_based_lighting; } void apply(Renderer &) const; + + void set_debug_name(const std::string &); }; } // namespace GL