X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Ftexenv.h;h=61f700854b50030e43297b96310aa106622a36fb;hb=126161d1d44ab9503bc747d24a07b7b9d15e527a;hp=6d0eba9f2026f802408c342577f845a582d870a4;hpb=f098a871fc6dc7b61a5aca5581fa327e4124c036;p=libs%2Fgl.git diff --git a/source/texenv.h b/source/texenv.h index 6d0eba9f..61f70085 100644 --- a/source/texenv.h +++ b/source/texenv.h @@ -1,13 +1,9 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_TEXENV_H_ #define MSP_GL_TEXENV_H_ +#include "color.h" +#include "gl.h" + namespace Msp { namespace GL { @@ -23,9 +19,35 @@ enum TexEnvMode class TexEnv { +private: + enum ParameterMask + { + MODE = 1, + COLOR = 2 + }; + + TexEnvMode mode; + Color color; + public: - void mode(TexEnvMode); - void color(float, float, float, float); + TexEnv(); + + static const TexEnv &default_object(); + +private: + void update_parameter(int) const; + +public: + void set_mode(TexEnvMode); + void set_color(const Color &); + TexEnvMode get_mode() const { return mode; } + const Color &get_color() const { return color; } + void bind() const { bind_to(0); } + void bind_to(unsigned) const; + + static const TexEnv *current(unsigned = 0); + static void unbind() { unbind_from(0); } + static void unbind_from(unsigned); }; } // namespace GL