]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/sky.h
Split the Light class into subclasses by light type
[libs/gl.git] / source / effects / sky.h
index 5cc7bdaa668a6d6935be713f890f9c20991fc891..782aef1ceb1d0b0faa2c5e58a6407118834b0457 100644 (file)
@@ -2,15 +2,14 @@
 #define MSP_GL_SKY_H_
 
 #include "effect.h"
-#include "framebuffer.h"
 #include "programdata.h"
 #include "rendertarget.h"
 
 namespace Msp {
 namespace GL {
 
+class DirectionalLight;
 class Mesh;
-class Light;
 class Program;
 
 /**
@@ -41,7 +40,8 @@ public:
        };
 
 private:
-       const Light &sun;
+       Planet planet;
+       DirectionalLight &sun;
        RenderTarget transmittance_lookup;
        const Program &transmittance_shprog;
        bool transmittance_lookup_dirty;
@@ -52,17 +52,22 @@ private:
        const Sampler &sampler;
        const Sampler &wrap_sampler;
        mutable ProgramData shdata;
+       float view_height;
        bool rendered;
 
 public:
-       Sky(Resources &, Renderable &, const Light &);
+       Sky(Renderable &, DirectionalLight &);
 
        void set_planet(const Planet &);
        void set_view_height(float);
 
+       Color get_transmittance(const Vector3 &);
+
        virtual void setup_frame(Renderer &);
        virtual void finish_frame();
        virtual void render(Renderer &, Tag = Tag()) const;
+
+       virtual void set_debug_name(const std::string &);
 };
 
 } // namespace GL