]> git.tdb.fi Git - libs/gl.git/blobdiff - source/shadowmap.h
Allow access to ShadowMap's texture and matrix from outside
[libs/gl.git] / source / shadowmap.h
index 658b59a91a58a196b92063bc283f80686cdc26e8..fe36fca0e5bac9e6e7eff35f3a33065d9fb3d85e 100644 (file)
@@ -24,14 +24,14 @@ class ShadowMap: public Effect
 private:
        unsigned size;
        const Light &light;
-       mutable Framebuffer fbo;
-       mutable Matrix shadow_matrix;
+       Framebuffer fbo;
+       Matrix shadow_matrix;
        Texture2D depth_buf;
        Vector3 target;
        float radius;
        float depth_bias;
        mutable ProgramData shdata;
-       mutable bool rendered;
+       bool rendered;
 
 public:
        ShadowMap(unsigned, Renderable &, const Light &);
@@ -52,10 +52,13 @@ public:
        thin objects from casting shadows on nearby sufraces. */
        void set_depth_bias(float);
 
-       virtual void setup_frame() const;
-       virtual void finish_frame() const;
+       const Texture2D &get_depth_texture() const { return depth_buf; }
+       const Matrix &get_shadow_matrix() const { return shadow_matrix; }
 
-       virtual void render(Renderer &, const Tag &) const;
+       virtual void setup_frame(Renderer &);
+       virtual void finish_frame();
+
+       virtual void render(Renderer &, const Tag & = Tag()) const;
 };
 
 } // namespace GL