#pragma once #include "stdafx.h" #include "vec2.h" #include "GLFWInputManager.h" #include "FPS.h" using namespace egm; // TODO: Close without rendering next frame. class Application { public: Application(); virtual ~Application(); int run(); protected: // Called on initialization of the application (called by base_init) virtual void init() = 0; virtual void update(float delta_time, clock_t clock) = 0; virtual void render() = 0; // Called on closing of the application (called before base_close) virtual void close(); GLFWwindow* m_p_window; GLFWInputManager m_glfw_input_manager; FPS m_fps; private: void base_init(); void base_close(); };