90bac19849
Finally got a 3D cube to be rendered. While doing it, fixed a bug in MeshFactory that caused it to allocate the incorrect amount of memory for each mesh.
59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
#include "MyApplication.h"
|
|
|
|
MyApplication::MyApplication(int width, int height)
|
|
: Application(width, height), m_basic_scene(*this), m_simple_2d_scene(*this), m_simple_3d_scene(*this), m_simple_cube_scene(*this)
|
|
{}
|
|
|
|
void MyApplication::init()
|
|
{
|
|
m_basic_scene.init();
|
|
m_simple_2d_scene.init();
|
|
m_simple_3d_scene.init();
|
|
m_simple_cube_scene.init();
|
|
|
|
m_p_current_scene = &m_basic_scene;
|
|
m_p_current_scene->use();
|
|
}
|
|
|
|
void MyApplication::update(float delta_time, clock_t clock)
|
|
{
|
|
if (m_glfw_input_manager.is_key_pressed(GLFW_KEY_1))
|
|
{
|
|
swap_scene(&m_basic_scene);
|
|
}
|
|
else if (m_glfw_input_manager.is_key_pressed(GLFW_KEY_2))
|
|
{
|
|
swap_scene(&m_simple_2d_scene);
|
|
}
|
|
else if (m_glfw_input_manager.is_key_pressed(GLFW_KEY_3))
|
|
{
|
|
swap_scene(&m_simple_3d_scene);
|
|
}
|
|
else if (m_glfw_input_manager.is_key_pressed(GLFW_KEY_4))
|
|
{
|
|
swap_scene(&m_simple_cube_scene);
|
|
}
|
|
m_p_current_scene->update(delta_time, clock);
|
|
}
|
|
|
|
void MyApplication::render()
|
|
{
|
|
m_p_current_scene->render();
|
|
}
|
|
|
|
void MyApplication::close()
|
|
{
|
|
m_p_current_scene->unuse();
|
|
}
|
|
|
|
void MyApplication::swap_scene(Scene* scene)
|
|
{
|
|
if (m_p_current_scene != scene)
|
|
{
|
|
m_p_current_scene->unuse();
|
|
m_p_current_scene = scene;
|
|
m_p_current_scene->use();
|
|
}
|
|
}
|
|
|