restructure modules. make GuiModules depend on WindowModule

This commit is contained in:
2025-03-31 10:30:55 -05:00
parent d6f769d2dd
commit 22350ed54d
15 changed files with 13 additions and 11 deletions

View File

@@ -2,7 +2,7 @@
#undef GUIMODULE
#include "utils/Module/Module.h"
#include "utils/Window/Window.h"
#include "modules/WindowModule/src/WindowModule.h"
namespace Archimedes {
@@ -11,7 +11,10 @@ namespace Archimedes {
public:
typedef GuiModule* create_t(void*, App*);
GuiModule(void* h, App* a) : Module(h, a) {}
GuiModule(void* h, App* a) : Module(h, a) {
window = new WindowModule(nullptr, a);
deps["WindowModule"] = window;
}
virtual ~GuiModule() { if(window) delete window; }
virtual void onLoad() = 0;
virtual void run() = 0;
@@ -20,7 +23,7 @@ namespace Archimedes {
void createWindow() { window = new Window(); }
protected:
Window* window;
WindowModule* window;
//Renderer* renderer;
};
}

View File

@@ -1,6 +1,6 @@
#include "WindowModule.h"
WindowModule::WindowModule(void* h, Archimedes::App& a) : Module(h, a) {
WindowModule::WindowModule(void* h, Archimedes::App* a) : Module(h, a) {
name = "Window";
}
@@ -17,7 +17,7 @@ void WindowModule::onLoad() {
void WindowModule::run() {
if(window->shouldClose()) {
app.end();
app->end();
}
window->doFrame();

View File

@@ -5,7 +5,7 @@
class WindowModule : public Archimedes::Module {
public:
WindowModule(void*, Archimedes::App&);
WindowModule(void*, Archimedes::App*);
~WindowModule();
@@ -19,8 +19,7 @@ class WindowModule : public Archimedes::Module {
};
extern "C" {
Archimedes::Module* create(void* handle, Archimedes::App& app) {
return new WindowModule(handle, app);
}
}
#ifndef WINDOW_STATIC
#define MODULE_TYPE WindowModule
#include "endModule.h"
#endif