X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.h;h=6bd2f82d43511e933c02e719251a9b7b20197a6b;hb=ed7ca8892daceebb963950945fed5e75bd96a8a1;hp=8f0af01fe44560b75300e756d524fbcded3ff8d5;hpb=f14435e58bfa0fa697a06ba9a454bb30cd37d9d8;p=libs%2Fgl.git diff --git a/source/texunit.h b/source/texunit.h index 8f0af01f..6bd2f82d 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -7,28 +7,33 @@ namespace Msp { namespace GL { class TexEnv; +class TexGen; class Texture; +/** +Keeps track of texture unit related state. Intended for internal use. +*/ class TexUnit { private: + unsigned index; const Texture *texture; - const TexEnv *texenv; 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; } + 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