#pragma once #include "stdafx.h" #include #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; };