]> git.tdb.fi Git - libs/gl.git/blob - source/texenv.h
55a12f306ed2e33850b9b73788c1a122d69052a7
[libs/gl.git] / source / texenv.h
1 #ifndef MSP_GL_TEXENV_H_
2 #define MSP_GL_TEXENV_H_
3
4 #include "color.h"
5 #include "gl.h"
6
7 namespace Msp {
8 namespace GL {
9
10 enum TexEnvMode
11 {
12         REPLACE  = GL_REPLACE,
13         MODULATE = GL_MODULATE,
14         DECAL    = GL_DECAL,
15         BLEND    = GL_BLEND,
16         ADD      = GL_ADD,
17         COMBINE  = GL_COMBINE
18 };
19
20 class TexEnv
21 {
22 private:
23         TexEnvMode mode;
24         Color color;
25
26 public:
27         TexEnv();
28
29         static const TexEnv &default_object();
30
31         void set_mode(TexEnvMode);
32         void set_color(const Color &);
33         TexEnvMode get_mode() const { return mode; }
34         const Color &get_color() const { return color; }
35         void bind() const { bind_to(0); }
36         void bind_to(unsigned) const;
37
38         static const TexEnv *current(unsigned = 0);
39         static void unbind() { unbind_from(0); }
40         static void unbind_from(unsigned);
41 };
42
43 } // namespace GL
44 } // namespace Msp
45
46 #endif