]> git.tdb.fi Git - libs/gl.git/blobdiff - source/uniform.h
Add Uniform* classes to store uniform data of Programs
[libs/gl.git] / source / uniform.h
diff --git a/source/uniform.h b/source/uniform.h
new file mode 100644 (file)
index 0000000..33b80e9
--- /dev/null
@@ -0,0 +1,82 @@
+/* $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_
+
+namespace Msp {
+namespace GL {
+
+class Program;
+
+class Uniform
+{
+protected:
+       Uniform() { }
+public:
+       virtual void apply(int) const =0;
+};
+
+
+class Uniform1i: public Uniform
+{
+private:
+       int v;
+
+public:
+       Uniform1i(int v_);
+       virtual void apply(int index) const;
+};
+
+
+class Uniform1f: public Uniform
+{
+private:
+       float v;
+
+public:
+       Uniform1f(float v_);
+       virtual void apply(int index) const;
+};
+
+
+class Uniform2f: public Uniform
+{
+private:
+       float v[2];
+
+public:
+       Uniform2f(float v0, float v1);
+       virtual void apply(int index) const;
+};
+
+
+class Uniform3f: public Uniform
+{
+private:
+       float v[3];
+
+public:
+       Uniform3f(float v0, float v1, float v2);
+       virtual void apply(int index) const;
+};
+
+
+class Uniform4f: public Uniform
+{
+private:
+       float v[4];
+
+public:
+       Uniform4f(float v0, float v1, float v2, float v3);
+       virtual void apply(int index) const;
+};
+
+} // namespace GL
+} // namespace Msp
+
+#endif