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