#ifndef MSP_GL_TEXENV_H_
#define MSP_GL_TEXENV_H_
+#include "color.h"
+#include "gl.h"
+
namespace Msp {
namespace GL {
class TexEnv
{
+private:
+ enum ParameterMask
+ {
+ MODE = 1,
+ COLOR = 2
+ };
+
+ TexEnvMode mode;
+ Color color;
+
+public:
+ TexEnv();
+
+ static const TexEnv &default_object();
+
+private:
+ void update_parameter(int) const;
+
public:
- void mode(TexEnvMode);
- void color(float, float, float, float);
+ 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