X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.h;h=f3f95e7e422b2179ffea94f6d9c3834891ea8bc9;hb=f1b12c992db974c679d85ae6ec22cd318199d0d5;hp=5aec5b31127d032c3cf2da87ba5ba646e04d0643;hpb=84bc56b96c21c831104a22e0cbd0f3b72ab5d8c3;p=libs%2Fgl.git diff --git a/source/texunit.h b/source/texunit.h index 5aec5b31..f3f95e7e 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -6,24 +6,34 @@ namespace Msp { namespace GL { +class TexEnv; +class TexGen; class Texture; +/** +Keeps track of texture unit related state. Mostly for internal use. +*/ class TexUnit { -public: - TexUnit(); - bool set_texture(const Texture *); - const Texture *get_texture() { return texture; } - //TexEnv &get_env() { return env; } - - static TexUnit &activate(unsigned); - static TexUnit ¤t(); private: + unsigned index; const Texture *texture; - //TexEnv env; static std::vector units; static TexUnit *cur_unit; + + TexUnit(); + +public: + unsigned get_index() const { return index; } + bool set_texture(const Texture *); + const Texture *get_texture() const { return texture; } + void bind(); + + static unsigned get_n_units(); + static TexUnit &get_unit(unsigned); + static TexUnit ¤t(); + static TexUnit *find_unit(const Texture *); }; } // namespace GL