44 lines
837 B
C++
44 lines
837 B
C++
#include "WindowModule.h"
|
|
|
|
WindowModule::~WindowModule() {
|
|
if(layers)
|
|
delete layers;
|
|
if(renderer)
|
|
delete renderer;
|
|
if(window)
|
|
delete window;
|
|
}
|
|
|
|
void WindowModule::onLoad() {
|
|
|
|
window = new Archimedes::Window();
|
|
|
|
renderer = new Archimedes::Renderer();
|
|
|
|
window->setRenderer(renderer);
|
|
|
|
//renderer = window->getRenderer();
|
|
|
|
layers = new Archimedes::Layerstack();
|
|
|
|
if(!renderer->init()) {
|
|
std::cout << "Renderer init failed!\n";
|
|
std::abort();
|
|
}
|
|
|
|
renderer->getCmdList().push_back([this](){ layers->renderAll(); });
|
|
|
|
data["window"] = window->getWindowImpl().getWindow();
|
|
data["renderCmdList"] = &renderer->getCmdList();
|
|
}
|
|
|
|
void WindowModule::run() {
|
|
|
|
if(window->shouldClose()) {
|
|
app->end();
|
|
}
|
|
|
|
window->doFrame();
|
|
}
|
|
|