shadow_map::shadow_map(const window& wnd, const glm::mat4& vp, size_t sz) : m_shader(), m_buffer(sz, sz), m_size(sz), m_transform(vp) { m_screen = wnd.render_size(); m_shader.compile("data/shader/shadow.vs", GL_VERTEX_SHADER); m_shader.compile("data/shader/shadow.fs", GL_FRAGMENT_SHADER); m_shader.link(); m_shader.declare_uniform("M"); m_shader.declare_uniform("VP"); m_buffer.attach_depth(GL_DEPTH_COMPONENT24); m_buffer.finish(); }