X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.h;h=8962e63839cc6dd2f68113917396bf3816889056;hb=a1eb8711ba225bb4423868c50369ad5592465171;hp=82c4b5795baafa5a095e1eb126b0b146ba5b5f63;hpb=777f5f37f2d89ef2a787a77d74372b643968740e;p=libs%2Fgl.git diff --git a/source/texunit.h b/source/texunit.h index 82c4b579..8962e638 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -10,9 +10,13 @@ class TexEnv; class TexGen; class Texture; +/** +Keeps track of texture unit related state. Mostly for internal use. +*/ class TexUnit { private: + unsigned index; const Texture *texture; const TexEnv *texenv; const TexGen *texgen[4]; @@ -23,16 +27,20 @@ private: public: TexUnit(); + unsigned get_index() const { return index; } bool set_texture(const Texture *); 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); + void bind(); static unsigned get_n_units(); - static TexUnit &activate(unsigned); + static TexUnit &get_unit(unsigned); static TexUnit ¤t(); + static TexUnit *find_unit(const Texture *); + static TexUnit *find_unit(const TexEnv *); }; } // namespace GL