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 set_mode(TexEnvMode);
void set_color(const Color &);
TexEnvMode get_mode() const { return mode; }
const Color &get_color() const { return color; }
- void bind() const;
+ void bind() const { bind_to(0); }
+ void bind_to(unsigned) const;
- static const TexEnv *current();
- static void unbind();
+ static const TexEnv *current(unsigned = 0);
+ static void unbind() { unbind_from(0); }
+ static void unbind_from(unsigned);
};
} // namespace GL