charcoal/CharcoalBuiltin/LitShadowedScene.cpp

52 lines
991 B
C++
Raw Normal View History

2018-09-18 20:55:32 +00:00
#include "LitShadowedScene.h"
#include <charcoal/deps.h>
#include <charcoal/Util.h>
#include <charcoal/MeshFactory.h>
2018-09-18 20:55:32 +00:00
#include "GLUtil.h"
namespace charcoal
{
namespace builtin
{
2018-09-19 07:52:42 +00:00
namespace litshadowed
2018-09-18 20:55:32 +00:00
{
2018-09-19 07:52:42 +00:00
void Scene::init()
2018-09-18 20:55:32 +00:00
{
2018-09-19 07:52:42 +00:00
for (auto iter = m_batches.begin(); iter != m_batches.end(); ++iter)
{
Batch& batch = *iter;
batch.init();
add_prerenderable(&batch);
}
2018-09-18 20:55:32 +00:00
}
2018-09-19 07:52:42 +00:00
void Scene::use()
{
// TODO: move to glutil
glEnable(GL_DEPTH_TEST);
glDepthFunc(GL_LESS);
}
2018-09-18 20:55:32 +00:00
2018-09-19 07:52:42 +00:00
void Scene::unuse()
{
2018-09-18 20:55:32 +00:00
2018-09-19 07:52:42 +00:00
}
2018-09-18 20:55:32 +00:00
2018-09-19 07:52:42 +00:00
void Scene::render()
2018-09-18 20:55:32 +00:00
{
2018-09-19 07:52:42 +00:00
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();
}
2018-09-18 20:55:32 +00:00
}
}
}
}