]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texunit.h
Reimplement Animation using splines
[libs/gl.git] / source / texunit.h
index 0bdb2159ff409beb8383f04444caa1df80a9a117..7cf43a7832b4dc6bb3949685f4f90f09a80c1bbb 100644 (file)
@@ -1,10 +1,3 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2007  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_GL_TEXUNIT_H_
 #define MSP_GL_TEXUNIT_H_
 
@@ -13,24 +6,39 @@ Distributed under the LGPL
 namespace Msp {
 namespace GL {
 
+class TexEnv;
+class TexGen;
 class Texture;
 
+/**
+Keeps track of texture unit related state.  Mostly for internal use.
+*/
 class TexUnit
 {
-public:
-       TexUnit();
-       bool set_texture(const Texture *);
-       const Texture *get_texture() { return texture; }
-       //TexEnv &get_env() { return env; }
-
-       static TexUnit &activate(unsigned);
-       static TexUnit &current();
 private:
+       unsigned index;
+       bool legacy;
        const Texture *texture;
-       //TexEnv env;
+       bool tex_legacy;
 
        static std::vector<TexUnit> units;
        static TexUnit *cur_unit;
+
+       TexUnit();
+
+public:
+       unsigned get_index() const { return index; }
+       bool supports_legacy() const { return legacy; }
+       bool set_texture(const Texture *, bool = true);
+       const Texture *get_texture() const { return texture; }
+       bool get_texture_legacy() const { return tex_legacy; }
+       void bind();
+
+       static unsigned get_n_units();
+       static unsigned get_n_legacy_units();
+       static TexUnit &get_unit(unsigned);
+       static TexUnit &current();
+       static TexUnit *find_unit(const Texture *);
 };
 
 } // namespace GL