X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Funiformblock.h;h=08eaa9b857e3dcbc1c8de08e7a129433dbc6b0ee;hb=1b23728908f5ec9beb08b2b70737c3903745fddc;hp=bc0b933b01666f3a8e4df77fb1e179f1a8123652;hpb=3af09f06e9f69532e5adfe6bcd9a7b2d1aea6d5b;p=libs%2Fgl.git diff --git a/source/core/uniformblock.h b/source/core/uniformblock.h index bc0b933b..08eaa9b8 100644 --- a/source/core/uniformblock.h +++ b/source/core/uniformblock.h @@ -3,8 +3,9 @@ #include #include +#include #include "bufferable.h" -#include "program.h" +#include "reflectdata.h" #include "vector.h" namespace Msp { @@ -26,8 +27,7 @@ protected: public: virtual ~UniformBlock() { } - virtual void attach(const Program::UniformInfo &, const Uniform &) = 0; - virtual void apply(int) const = 0; + virtual void attach(const ReflectData::UniformInfo &, const Uniform &) = 0; }; /** Stores uniforms for the default uniform block. Uniforms are associated @@ -40,9 +40,9 @@ private: public: DefaultUniformBlock(); - virtual void attach(const Program::UniformInfo &, const Uniform &); + virtual void attach(const ReflectData::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 +53,17 @@ class BufferBackedUniformBlock: public UniformBlock, public Bufferable private: unsigned size; std::vector 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; + void attach(const ReflectData::UniformInfo &, const Uniform &); }; } // namespace GL