#include "LitShadowedScene.h" #include "stdafx.h" #include "Util.h" #include "GLUtil.h" #include "MeshFactory.h" namespace charcoal { namespace builtin { void LitShadowedScene::init() { for (auto iter = m_batches.begin(); iter != m_batches.end(); ++iter) { LitShadowedBatch& batch = *iter; batch.init(); add_prerenderable(&batch); } } void LitShadowedScene::use() { // TODO: move to glutil glEnable(GL_DEPTH_TEST); glDepthFunc(GL_LESS); } void LitShadowedScene::unuse() { } void LitShadowedScene::render() { glutil::clear_screen(); m_shader_program.use(); glutil::uniform_matrix(0, m_p_camera->get_world_to_view_matrix()); glutil::uniform_vec3(4, m_p_camera->get_position()); glutil::uniform_uint(5, (unsigned int)m_lights.size()); glutil::uniform_lights(6, m_lights); for (auto iter = m_batches.begin(); iter != m_batches.end(); ++iter) { iter->render(); } } } }