X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.h;h=f3f95e7e422b2179ffea94f6d9c3834891ea8bc9;hb=f1b12c992db974c679d85ae6ec22cd318199d0d5;hp=93f6dd085e80497450aae252c9dda4618211eccd;hpb=706d49dc7ca9b3969f6f79db16b0cc02576f3de3;p=libs%2Fgl.git diff --git a/source/texunit.h b/source/texunit.h index 93f6dd08..f3f95e7e 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -10,31 +10,30 @@ 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]; static std::vector units; static TexUnit *cur_unit; -public: TexUnit(); +public: 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 *); }; } // namespace GL