X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Funiform.h;h=97a4e9ddf212074eb1e0c093d7cfddcabe40e187;hp=33b80e938287b5ea70017b1a67b0e5b1609ce34d;hb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;hpb=85e83ace47e5a9a8ae7263886255dd81afc69278 diff --git a/source/uniform.h b/source/uniform.h index 33b80e93..97a4e9dd 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,8 +10,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; }; @@ -29,7 +28,9 @@ private: public: Uniform1i(int v_); + virtual void apply(int index) const; + virtual Uniform1i *clone() const; }; @@ -40,7 +41,9 @@ private: public: Uniform1f(float v_); + virtual void apply(int index) const; + virtual Uniform1f *clone() const; }; @@ -51,7 +54,9 @@ private: public: Uniform2f(float v0, float v1); + virtual void apply(int index) const; + virtual Uniform2f *clone() const; }; @@ -62,7 +67,9 @@ private: public: Uniform3f(float v0, float v1, float v2); + virtual void apply(int index) const; + virtual Uniform3f *clone() const; }; @@ -73,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