X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Funiform.h;h=70db91dfe0d93fbb8e19eff6a2494214258d37e9;hb=4acc43935d3b19bae688e89ed42119e326a26f2d;hp=e6b4ca3a0ffa1dd7c97a2959d44dcd929aa9fa79;hpb=61f90f1680884b02e783d2d419f9326e5d6f397b;p=libs%2Fgl.git diff --git a/source/uniform.h b/source/uniform.h index e6b4ca3a..70db91df 100644 --- a/source/uniform.h +++ b/source/uniform.h @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_UNIFORM_H_ #define MSP_GL_UNIFORM_H_ @@ -17,10 +10,14 @@ class Uniform { protected: Uniform() { } +private: + Uniform(const Uniform &); + Uniform &operator=(const Uniform &); public: virtual ~Uniform() { } - virtual void apply(int) const =0; + virtual void apply(int) const = 0; + virtual Uniform *clone() const = 0; }; @@ -31,7 +28,9 @@ private: public: Uniform1i(int v_); + virtual void apply(int index) const; + virtual Uniform1i *clone() const; }; @@ -42,7 +41,9 @@ private: public: Uniform1f(float v_); + virtual void apply(int index) const; + virtual Uniform1f *clone() const; }; @@ -53,7 +54,9 @@ private: public: Uniform2f(float v0, float v1); + virtual void apply(int index) const; + virtual Uniform2f *clone() const; }; @@ -64,7 +67,9 @@ private: public: Uniform3f(float v0, float v1, float v2); + virtual void apply(int index) const; + virtual Uniform3f *clone() const; }; @@ -75,7 +80,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