charcoal/OpenGLEngine/Scene.h
elipzer 5a10a883fb Camera Class
Currently implemented a 2D camera class that creates an
orthographic projection matrix.

TODO is implementing a 3D camera class and test program.
2018-09-08 00:06:10 -04:00

40 lines
892 B
C++

#pragma once
#include "stdafx.h"
#include <time.h>
#include "Application.h"
class Scene
{
public:
Scene(Application& application)
: m_screen_size(application.get_screen_size()),
m_input_manager(application.get_input_manager()),
m_fps(application.get_fps()) {};
virtual ~Scene() { };
// Called when the scene is ready to be initialized
virtual void init() = 0;
// Called when the scene is going to be used
// Should allocate all graphics memory.
virtual void use() = 0;
// Called when the scene is no longer going to be used
// Should release all graphics memory
virtual void unuse() = 0;
// Called when the frame is being updated
virtual void update(float delta_time, clock_t clock) = 0;
// Called when the frame is being rendered
virtual void render() = 0;
protected:
const ivec2& m_screen_size;
const GLFWInputManager& m_input_manager;
const FPS& m_fps;
};