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
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
'';

View File

@@ -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<void(Archimedes::Event*)> 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<std::function<void(Archimedes::Event*)>> eventFuncs;
Archimedes::Window* window = nullptr;
Archimedes::Renderer* renderer = nullptr;
Archimedes::WindowGLFW* window = nullptr;
Archimedes::RendererOpenGL* renderer = nullptr;
};