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 &);
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