]> git.tdb.fi Git - libs/gl.git/blobdiff - source/lighting.h
Rework ProgramData to do less unnecessary work
[libs/gl.git] / source / lighting.h
index 76c241e9fa5c46e0ff6aefbcd17ef4dadfc81bdc..063bbf2b4eb5a5f81bb75a6931ba5833d603b377 100644 (file)
@@ -1,17 +1,12 @@
-/* $Id$
-
-This file is part of libmspgl
-Copyright © 2008  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
 #ifndef MSP_GL_LIGHTING_H_
 #define MSP_GL_LIGHTING_H_
 
 #include <vector>
+#include <msp/geometry/angle.h>
 #include "bindable.h"
 #include "color.h"
 #include "gl.h"
+#include "programdata.h"
 
 namespace Msp {
 namespace GL {
@@ -25,6 +20,9 @@ class Lighting: public Bindable<Lighting>
 {
 private:
        Color ambient;
+       Color sky_color;
+       Vector3 sky_direction;
+       Geometry::Angle<float> horizon_angle;
        std::vector<const Light *> lights;
 
 public:
@@ -33,8 +31,14 @@ public:
        void set_ambient(const Color &);
        const Color &get_ambient() const { return ambient; }
 
+       void set_sky_color(const Color &);
+       void set_sky_direction(const Vector3 &);
+       void set_horizon_angle(const Geometry::Angle<float> &);
+
        void attach(unsigned, const Light &);
        void detach(unsigned);
+
+       void update_shader_data(ProgramData &, const Matrix &) const;
        void bind() const;
 
        static void unbind();