Files
Archimedes/modules/WindowModule/src/WindowModule.cpp
2025-04-19 15:08:39 -05:00

48 lines
882 B
C++

#include "WindowModule.h"
WindowModule::~WindowModule() {
if(app) {
if(renderer) {
renderer->getCmdList().clear();
delete renderer;
}
if(window) {
delete window;
}
}
}
void WindowModule::onLoad() {
window = new Archimedes::Window([this](Archimedes::Event* e){
app->emitEvent(e);
});
renderer = new Archimedes::Renderer();
window->setRenderer(renderer);
//renderer = window->getRenderer();
if(!renderer->init()) {
std::cout << "Renderer init failed!\n";
std::abort();
}
}
void WindowModule::run() {
if(window->shouldClose()) {
app->end();
}
for(auto e : window->getWindowImpl().data.eventList) {
app->emitEvent(e);
}
window->getWindowImpl().data.eventList.clear();
window->doFrame();
}