private:
unsigned size;
const Light &light;
- mutable Framebuffer fbo;
- mutable Matrix light_matrix;
- mutable Matrix view_matrix;
- 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, const Renderable &, const Light &);
+ ShadowMap(unsigned, Renderable &, const Light &);
/** Sets the ShadowMap target point and radius. The transformation matrix is
computed so that a sphere with the specified parameters will be completely
thin objects from casting shadows on nearby sufraces. */
void set_depth_bias(float);
- virtual void setup_frame() const;
- virtual void finish_frame() const;
+ virtual void setup_frame(Renderer &);
+ virtual void finish_frame();
- virtual void render(Renderer &, const Tag &) const;
+ virtual void render(Renderer &, const Tag & = Tag()) const;
};
} // namespace GL