X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Funiform.h;h=72a1bd2c074121625136015e0af845807347d6d3;hb=5172d32d67595ea0b70184fadcfcb8e023cccbc8;hp=e6b4ca3a0ffa1dd7c97a2959d44dcd929aa9fa79;hpb=61f90f1680884b02e783d2d419f9326e5d6f397b;p=libs%2Fgl.git diff --git a/source/uniform.h b/source/uniform.h index e6b4ca3a..72a1bd2c 100644 --- a/source/uniform.h +++ b/source/uniform.h @@ -1,7 +1,7 @@ /* $Id$ This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions +Copyright © 2007-2008, 2010-2011 Mikko Rasa, Mikkosoft Productions Distributed under the LGPL */ @@ -17,10 +17,14 @@ class Uniform { protected: Uniform() { } +private: + Uniform(const Uniform &); + Uniform &operator=(const Uniform &); public: virtual ~Uniform() { } virtual void apply(int) const =0; + virtual Uniform *clone() const =0; }; @@ -31,7 +35,9 @@ private: public: Uniform1i(int v_); + virtual void apply(int index) const; + virtual Uniform1i *clone() const; }; @@ -42,7 +48,9 @@ private: public: Uniform1f(float v_); + virtual void apply(int index) const; + virtual Uniform1f *clone() const; }; @@ -53,7 +61,9 @@ private: public: Uniform2f(float v0, float v1); + virtual void apply(int index) const; + virtual Uniform2f *clone() const; }; @@ -64,7 +74,9 @@ private: public: Uniform3f(float v0, float v1, float v2); + virtual void apply(int index) const; + virtual Uniform3f *clone() const; }; @@ -75,7 +87,22 @@ private: public: Uniform4f(float v0, float v1, float v2, float v3); + + virtual void apply(int index) const; + virtual Uniform4f *clone() const; +}; + + +class UniformMatrix4x4f: public Uniform +{ +private: + float v[16]; + +public: + UniformMatrix4x4f(const float *); + virtual void apply(int index) const; + virtual UniformMatrix4x4f *clone() const; }; } // namespace GL