work on layers

This commit is contained in:
2025-04-08 11:47:24 -05:00
parent fbfa13a742
commit 3a797fb19a
10 changed files with 183 additions and 87 deletions

View File

@@ -1,26 +1,33 @@
#include "WindowModule.h"
WindowModule::~WindowModule() {
if(window)
delete window;
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();
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();
}

View File

@@ -11,6 +11,7 @@
#include "utils/Window/Window.h"
#include "utils/Renderer/Renderer.h"
#include "utils/Layers/Layerstack.h"
class WindowModule : public Archimedes::Module {
@@ -27,12 +28,16 @@ class WindowModule : public Archimedes::Module {
void onLoad();
//interface for other modules
std::string sayHello() { return "Call from TestImgui!"; }
Archimedes::Window* getWindow() { return window; }
Archimedes::Renderer* getRenderer() { return renderer; }
Archimedes::Layerstack* getLayerstack() { return layers; }
private:
Archimedes::Window* window;
Archimedes::Renderer* renderer;
Archimedes::Layerstack* layers;
};