work on renderer

This commit is contained in:
2026-02-10 13:50:44 -06:00
parent e4d84686c4
commit 874a8a1115
2 changed files with 11 additions and 10 deletions

View File

@@ -190,6 +190,7 @@
glew glew
glm glm
nlohmann_json nlohmann_json
curl
]; ];
buildPhase = '' buildPhase = ''
@@ -202,6 +203,8 @@
-fpic -shared \ -fpic -shared \
-I include -I . \ -I include -I . \
-lEGL -lglfw -lGLEW \ -lEGL -lglfw -lGLEW \
$(curl-config --cflags) \
$(curl-config --libs) \
-Wall \ -Wall \
-o $name -o $name
''; '';

View File

@@ -3,10 +3,8 @@
#include "Archimedes.h" #include "Archimedes.h"
#include "utils/Renderer/Renderer.h" #include "utils/Renderer/RendererImpl/RendererOpenGL/RendererOpenGL.h"
#include "utils/Window/Window.h" #include "utils/Window/WindowImpl/WindowGLFW/WindowGLFW.h"
static_assert(!(WINDOW == 1 && RENDERER == 2), "Window and Renderer are incompatible!\n");
class WindowModule : public Archimedes::Module { class WindowModule : public Archimedes::Module {
@@ -30,7 +28,7 @@ class WindowModule : public Archimedes::Module {
Archimedes::Window* aquireWindow() { Archimedes::Window* aquireWindow() {
if(!window) { if(!window) {
window = new Archimedes::Window([this](Archimedes::Event* e) { window = new Archimedes::WindowGLFW([this](Archimedes::Event* e) {
for(std::function<void(Archimedes::Event*)> f : eventFuncs) for(std::function<void(Archimedes::Event*)> f : eventFuncs)
f(e); f(e);
app->emitEvent(e); app->emitEvent(e);
@@ -39,15 +37,15 @@ class WindowModule : public Archimedes::Module {
window->setRenderer(renderer); window->setRenderer(renderer);
if(!renderer->init(window->getWindowImpl().getWindow())) { if(!renderer->init()) {
std::cout << "Renderer init failed!\n"; std::cout << "Renderer init failed!\n";
std::abort(); std::abort();
} }
} }
windowRefs++; windowRefs++;
#if RENDERER == 1 #ifdef RENDERER_OPENGL
window->getWindowImpl().restoreContext(); window->getWindowImpl()->restoreContext();
#endif #endif
return window; return window;
} }
@@ -73,8 +71,8 @@ class WindowModule : public Archimedes::Module {
std::list<std::function<void(Archimedes::Event*)>> eventFuncs; std::list<std::function<void(Archimedes::Event*)>> eventFuncs;
Archimedes::Window* window = nullptr; Archimedes::WindowGLFW* window = nullptr;
Archimedes::Renderer* renderer = nullptr; Archimedes::RendererOpenGL* renderer = nullptr;
}; };