48 lines
882 B
C++
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();
|
|
}
|
|
|