]> git.tdb.fi Git - libs/gl.git/blobdiff - source/lighting.h
Fix shadowing warnings from older gcc versions
[libs/gl.git] / source / lighting.h
index 931d06d3daf8d2e72aede2af04452b0d0a2e740a..94ccdd5e968170bdca6b4c0dd4230a4643d893fa 100644 (file)
@@ -19,17 +19,36 @@ sources.
 */
 class Lighting: public Bindable<Lighting>
 {
+public:
+       class Loader: public DataFile::ObjectLoader<Lighting>
+       {
+       public:
+               Loader(Lighting &);
+
+       private:
+               void ambient(float, float, float);
+               void fog_color(float, float, float);
+               void fog_density(float);
+               void fog_half_distance(float);
+               void horizon_angle(float);
+               void light(unsigned);
+               void sky_color(float, float, float);
+               void zenith_direction(float, float, float);
+       };
+
 private:
        Color ambient;
        Color sky_color;
-       Vector3 sky_direction;
+       Vector3 zenith_direction;
        Geometry::Angle<float> horizon_angle;
        Color fog_color;
        float fog_density;
        std::vector<const Light *> lights;
+       std::vector<Light *> owned_data;
 
 public:
        Lighting();
+       ~Lighting();
 
        /** Sets the ambient lighting color.  Affects all surfaces in the scene. */
        void set_ambient(const Color &);
@@ -39,9 +58,12 @@ public:
        /** Sets the color of the sky at zenith.  Has no effect without shaders. */
        void set_sky_color(const Color &);
 
-       /** Sets the direction of the sky.  Defaults to positive Z axis.  Has no
+       /** Sets the direction of the zenith.  Defaults to positive Z axis.  Has no
        effect without shaders. */
-       void set_sky_direction(const Vector3 &);
+       void set_zenith_direction(const Vector3 &);
+
+       /// Deprecated alias for set_zenith_direction
+       void set_sky_direction(const Vector3 &d) { set_zenith_direction(d); }
 
        /** Sets the angle where skylight cuts off, counted from the true horizon.
        Has no effect without shaders. */