]> git.tdb.fi Git - libs/gl.git/blobdiff - source/effects/shadowmap.h
Use persistent cameras in effects
[libs/gl.git] / source / effects / shadowmap.h
index 7dab9eb965a6e9266156437741bc40854133c37e..d7b4eef970160f34503bb51ed23096991a4035f7 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef MSP_GL_SHADOWMAP_H_
 #define MSP_GL_SHADOWMAP_H_
 
+#include "camera.h"
 #include "effect.h"
 #include "framebuffer.h"
 #include "programdata.h"
@@ -12,10 +13,9 @@ namespace GL {
 
 class Light;
 class Resources;
-class Scene;
 
 /**
-Creates shadows on a Scene through a shadow map texture.  In the preparation
+Creates shadows on a renderable through a shadow map texture.  In the setup
 phase, the scene is rendered to a depth texture from the point of view of the
 lightsource.  This texture is then used in the rendering phase together with
 texture coordinate generation to determine whether each fragment is lit.
@@ -26,6 +26,7 @@ private:
        unsigned size;
        const Light &light;
        Framebuffer fbo;
+       Camera shadow_camera;
        Matrix shadow_matrix;
        Texture2D depth_buf;
        const Sampler &sampler;
@@ -60,7 +61,7 @@ public:
        virtual void setup_frame(Renderer &);
        virtual void finish_frame();
 
-       virtual void render(Renderer &, const Tag & = Tag()) const;
+       virtual void render(Renderer &, Tag = Tag()) const;
 };
 
 } // namespace GL