From 874a8a1115596b10af0f90e3444260e3837a9f46 Mon Sep 17 00:00:00 2001 From: Nathan Date: Tue, 10 Feb 2026 13:50:44 -0600 Subject: [PATCH] work on renderer --- ExampleModules.nix | 3 +++ modules/WindowModule/WindowModule.h | 18 ++++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ExampleModules.nix b/ExampleModules.nix index d091e1a..136c929 100644 --- a/ExampleModules.nix +++ b/ExampleModules.nix @@ -190,6 +190,7 @@ glew glm nlohmann_json + curl ]; buildPhase = '' @@ -202,6 +203,8 @@ -fpic -shared \ -I include -I . \ -lEGL -lglfw -lGLEW \ + $(curl-config --cflags) \ + $(curl-config --libs) \ -Wall \ -o $name ''; diff --git a/modules/WindowModule/WindowModule.h b/modules/WindowModule/WindowModule.h index 86ea2f8..c97c273 100644 --- a/modules/WindowModule/WindowModule.h +++ b/modules/WindowModule/WindowModule.h @@ -3,10 +3,8 @@ #include "Archimedes.h" -#include "utils/Renderer/Renderer.h" -#include "utils/Window/Window.h" - -static_assert(!(WINDOW == 1 && RENDERER == 2), "Window and Renderer are incompatible!\n"); +#include "utils/Renderer/RendererImpl/RendererOpenGL/RendererOpenGL.h" +#include "utils/Window/WindowImpl/WindowGLFW/WindowGLFW.h" class WindowModule : public Archimedes::Module { @@ -30,7 +28,7 @@ class WindowModule : public Archimedes::Module { Archimedes::Window* aquireWindow() { if(!window) { - window = new Archimedes::Window([this](Archimedes::Event* e) { + window = new Archimedes::WindowGLFW([this](Archimedes::Event* e) { for(std::function f : eventFuncs) f(e); app->emitEvent(e); @@ -39,15 +37,15 @@ class WindowModule : public Archimedes::Module { window->setRenderer(renderer); - if(!renderer->init(window->getWindowImpl().getWindow())) { + if(!renderer->init()) { std::cout << "Renderer init failed!\n"; std::abort(); } } windowRefs++; -#if RENDERER == 1 - window->getWindowImpl().restoreContext(); +#ifdef RENDERER_OPENGL + window->getWindowImpl()->restoreContext(); #endif return window; } @@ -73,8 +71,8 @@ class WindowModule : public Archimedes::Module { std::list> eventFuncs; - Archimedes::Window* window = nullptr; - Archimedes::Renderer* renderer = nullptr; + Archimedes::WindowGLFW* window = nullptr; + Archimedes::RendererOpenGL* renderer = nullptr; };