]> git.tdb.fi Git - libs/gl.git/blobdiff - source/materials/renderpass.h
Redesign Light to only have a single color
[libs/gl.git] / source / materials / renderpass.h
index 8a69ad12afcc5397739781e91242a8f79cfecc59..46fb7a3535a0bb51a2417e190e3cf3f3dd5a809e 100644 (file)
@@ -24,12 +24,16 @@ class RenderPass
 public:
        class Loader: public DataFile::CollectionObjectLoader<RenderPass>
        {
+       private:
+               static ActionMap shared_actions;
+
        public:
                Loader(RenderPass &);
                Loader(RenderPass &, Collection &);
 
        private:
-               void init();
+               virtual void init_actions();
+               virtual void finish();
 
                static std::string get_shader_name(const std::string &);
 
@@ -75,14 +79,14 @@ private:
        std::string material_slot;
        std::vector<TextureSlot> textures;
        bool back_faces;
+       bool receive_shadows;
 
 public:
        RenderPass();
 
 private:
-       void finalize_material(DataFile::Collection *);
        void maybe_create_material_shader(DataFile::Collection *);
-       void ensure_private_shader_data();
+       void set_material_textures();
 
 public:
        void set_shader_program(const Program *, const ProgramData *);
@@ -99,6 +103,8 @@ 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 apply(Renderer &) const;
 };