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