namespace Msp {
namespace GL {
-ShadowMap::ShadowMap(unsigned w, unsigned h, Renderable &r, const Lighting *l):
- Effect(r),
+ShadowMap::ShadowMap(unsigned w, unsigned h, Renderable &c, const Lighting *l):
+ Effect(c),
width(w),
height(h),
lighting(l),
fbo.attach(DEPTH_ATTACHMENT, depth_buf, 0);
set_darkness(1.0f);
- for(unsigned i=0; i<4; ++i)
+ for(unsigned i=0; i<6; ++i)
{
string base = format("shadows[%d]", i);
shdata.uniform(base+".type", 0);
shdata.uniform_array("shd_world_matrix", 1, &dummy_matrix);
}
-ShadowMap::ShadowMap(unsigned s, Renderable &r, const DirectionalLight &l, Renderable &c):
- ShadowMap(s, s, r, 0)
+ShadowMap::ShadowMap(unsigned s, Renderable &c, const DirectionalLight &l, Renderable &sc):
+ ShadowMap(s, s, c, 0)
{
- add_light(l, s, c);
+ add_light(l, s, sc);
}
ShadowMap::ShadowMap(unsigned w, unsigned h, Renderable &r, const Lighting &l):
return;
rendered = true;
- renderable.setup_frame(renderer);
+ content.setup_frame(renderer);
for(const ShadowedLight &l: lights)
l.shadow_caster->setup_frame(renderer);
renderer.set_scissor(&light.region);
renderer.set_camera(v.camera);
- renderer.render(*light.shadow_caster, (v.face>0 ? "noclear" : ""));
+ light.shadow_caster->render(renderer, (v.face>0 ? "noclear" : ""));
}
}
if(rendered)
{
rendered = false;
- renderable.finish_frame();
+ content.finish_frame();
}
}
void ShadowMap::render(Renderer &renderer, Tag tag) const
{
- if(!enabled_methods.count(tag))
- return renderer.render(renderable, tag);
+ if(!is_enabled_for_method(tag))
+ return content.render(renderer, tag);
Renderer::Push _push_rend(renderer);
renderer.set_texture("shadow_map", &depth_buf, &sampler);
renderer.add_shader_data(shdata);
- renderer.render(renderable, tag);
+ content.render(renderer, tag);
}
void ShadowMap::set_debug_name(const string &name)