]> git.tdb.fi Git - libs/gl.git/blobdiff - source/texunit.h
Add functions for setting arrays of 2x2 and 3x3 matrix uniforms
[libs/gl.git] / source / texunit.h
index 8bcb5f023059cf9ef3ea76e61e3a2a976da5fc8d..7cf43a7832b4dc6bb3949685f4f90f09a80c1bbb 100644 (file)
@@ -10,32 +10,35 @@ class TexEnv;
 class TexGen;
 class Texture;
 
+/**
+Keeps track of texture unit related state.  Mostly for internal use.
+*/
 class TexUnit
 {
 private:
        unsigned index;
+       bool legacy;
        const Texture *texture;
-       const TexEnv *texenv;
-       const TexGen *texgen[4];
+       bool tex_legacy;
 
        static std::vector<TexUnit> units;
        static TexUnit *cur_unit;
 
-public:
        TexUnit();
 
+public:
        unsigned get_index() const { return index; }
-       bool set_texture(const Texture *);
+       bool supports_legacy() const { return legacy; }
+       bool set_texture(const Texture *, bool = true);
        const Texture *get_texture() const { return texture; }
-       bool set_texenv(const TexEnv *);
-       const TexEnv *get_texenv() const { return texenv; }
-       bool set_texgen(unsigned, const TexGen *);
-       const TexGen *get_texgen(unsigned);
+       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