X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexunit.h;h=8bcb5f023059cf9ef3ea76e61e3a2a976da5fc8d;hb=6fd9b09f47ff6a07bd5ca7f9e8887db3486bfcb1;hp=1b616505ac5d2ea3d6f90cfc54ea5ee9cf6c4ded;hpb=50e504e2171295d5922ddf87b358e0024db3ce40;p=libs%2Fgl.git diff --git a/source/texunit.h b/source/texunit.h index 1b616505..8bcb5f02 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,25 +7,35 @@ namespace Msp { namespace GL { class TexEnv; +class TexGen; class Texture; class TexUnit { +private: + unsigned index; + const Texture *texture; + 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 TexUnit &activate(unsigned); + static unsigned get_n_units(); + static TexUnit &get_unit(unsigned); static TexUnit ¤t(); -private: - const Texture *texture; - const TexEnv *texenv; - - static std::vector units; - static TexUnit *cur_unit; }; } // namespace GL