]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/uniformblock.h
Make VertexFormat capable of storing type information
[libs/gl.git] / source / core / uniformblock.h
index 5a037edb4b5e53323e32bddf7a1fbf44f4353581..18b651c7b4e498c12f2bdccba4c190dbe5c30663 100644 (file)
@@ -27,7 +27,6 @@ public:
        virtual ~UniformBlock() { }
 
        virtual void attach(const Program::UniformInfo &, const Uniform &) = 0;
-       virtual void apply(int) const = 0;
 };
 
 /** Stores uniforms for the default uniform block.  Uniforms are associated
@@ -35,14 +34,14 @@ with locations, as returned by Program::get_uniform_location. */
 class DefaultUniformBlock: public UniformBlock
 {
 private:
-       std::map<int, const Uniform *> uniforms;
+       std::vector<const Uniform *> uniforms;
 
 public:
        DefaultUniformBlock();
 
        virtual void attach(const Program::UniformInfo &, const Uniform &);
        void attach(int, const Uniform &);
-       virtual void apply(int) const;
+       void apply() const;
 };
 
 /** Stores uniforms for a buffer-backed uniform block.  Uniform values are
@@ -53,21 +52,17 @@ class BufferBackedUniformBlock: public UniformBlock, public Bufferable
 private:
        unsigned size;
        std::vector<char> data;
-       mutable BufferRange *buf_range;
 
 public:
        BufferBackedUniformBlock(unsigned);
-       virtual ~BufferBackedUniformBlock();
 
-private:
        virtual unsigned get_data_size() const { return size; }
+private:
        virtual const void *get_data_pointer() const { return &data[0]; }
        virtual unsigned get_alignment() const;
-       virtual void location_changed(Buffer *, unsigned, unsigned) const;
 
 public:
        void attach(const Program::UniformInfo &, const Uniform &);
-       virtual void apply(int) const;
 };
 
 } // namespace GL