work on renderer
This commit is contained in:
@@ -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
|
||||
'';
|
||||
|
||||
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user