X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftexunit.h;h=7cf43a7832b4dc6bb3949685f4f90f09a80c1bbb;hp=05952a2207b57ae015be531b4995dcfd12ee1345;hb=025016d7628be9c43b20999325dcbaae5cb3c3b8;hpb=126161d1d44ab9503bc747d24a07b7b9d15e527a diff --git a/source/texunit.h b/source/texunit.h index 05952a22..7cf43a78 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -10,34 +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 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 ¤t(); static TexUnit *find_unit(const Texture *); - static TexUnit *find_unit(const TexEnv *); }; } // namespace GL