X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ftexunit.h;h=0bba15d6a48fc86ccfe945351b04190f95fef73f;hp=1a4111e6e52569b53bbb003d452aed90c333a2a9;hb=3d8438922e24b787587d0c8f1883c5567a4af573;hpb=7e9e15a12fb398798f2719545cc8553354c1e389 diff --git a/source/texunit.h b/source/texunit.h index 1a4111e6..0bba15d6 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007-2008 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_TEXUNIT_H_ #define MSP_GL_TEXUNIT_H_ @@ -14,28 +7,36 @@ namespace Msp { namespace GL { 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; static std::vector units; static TexUnit *cur_unit; -public: TexUnit(); +public: + unsigned get_index() const { return index; } + bool supports_legacy() const { return legacy; } 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 unsigned get_n_legacy_units(); + static TexUnit &get_unit(unsigned); static TexUnit ¤t(); + static TexUnit *find_unit(const Texture *); }; } // namespace GL