X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.h;h=05952a2207b57ae015be531b4995dcfd12ee1345;hb=27fe0982fc18d1f5f9efe942e18c42f508268f34;hp=0bdb2159ff409beb8383f04444caa1df80a9a117;hpb=f098a871fc6dc7b61a5aca5581fa327e4124c036;p=libs%2Fgl.git diff --git a/source/texunit.h b/source/texunit.h index 0bdb2159..05952a22 100644 --- a/source/texunit.h +++ b/source/texunit.h @@ -1,10 +1,3 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_TEXUNIT_H_ #define MSP_GL_TEXUNIT_H_ @@ -13,24 +6,38 @@ Distributed under the LGPL namespace Msp { namespace GL { +class TexEnv; +class TexGen; class Texture; 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; + const TexEnv *texenv; + const TexGen *texgen[4]; static std::vector units; static TexUnit *cur_unit; + +public: + TexUnit(); + + 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 &get_unit(unsigned); + static TexUnit ¤t(); + static TexUnit *find_unit(const Texture *); + static TexUnit *find_unit(const TexEnv *); }; } // namespace GL