#ifndef WINDOW_H #define WINDOW_H #include "WindowEvents.h" #include "utils/Renderer/Renderer.h" #include "WindowGLFW/WindowGLFW.h" namespace Archimedes { class Window { public: Window(const std::function& sendEventFn) : window(this, sendEventFn) {} ~Window() {} bool shouldClose() { return window.shouldClose(); } void getSize(int& w, int& h) { window.getSize(w, h); } void doFrame() { window.pollEvents(); renderer->render(); window.doFrame(); } Renderer* getRenderer() { return renderer; } void setRenderer(Renderer* r) { renderer = r; } WindowImpl& getWindowImpl() { return window; } private: Renderer* renderer; WindowImpl window; }; } #endif