]> git.tdb.fi Git - libs/gl.git/blobdiff - source/light.h
Better state tracking for bound objects
[libs/gl.git] / source / light.h
index cf9ab8a1acb69cdbec2cdfead4ad2580e66f40e7..1c6a52272f56db8597103093c99a3050602fa7b3 100644 (file)
@@ -11,6 +11,17 @@ namespace GL {
 class Light
 {
 private:
+       enum ParameterMask
+       {
+               DIFFUSE = 1,
+               SPECULAR = 2,
+               POSITION = 4,
+               SPOT_DIR = 8,
+               SPOT_EXP = 16,
+               SPOT_CUTOFF = 32,
+               ATTENUATION = 64
+       };
+
        Color diffuse;
        Color specular;
        Vector4 position;
@@ -22,6 +33,10 @@ private:
 public:
        Light();
 
+private:
+       void update_parameter(int, int = -1) const;
+
+public:
        void set_diffuse(const Color &c);
        void set_specular(const Color &c);
        const Color &get_diffuse() const { return diffuse; }