move utils to include. utils implimentations should be headers
This commit is contained in:
10
include/utils/Renderer/Renderer.cpp
Normal file
10
include/utils/Renderer/Renderer.cpp
Normal file
@@ -0,0 +1,10 @@
|
||||
#include "Renderer.h"
|
||||
|
||||
#include "pch.hpp"
|
||||
|
||||
namespace Archimedes {
|
||||
|
||||
void Renderer::render() {
|
||||
r.render(rc, w, h);
|
||||
}
|
||||
}
|
||||
28
include/utils/Renderer/Renderer.h
Normal file
28
include/utils/Renderer/Renderer.h
Normal file
@@ -0,0 +1,28 @@
|
||||
#ifndef RENDERER_H
|
||||
#define RENDERER_H
|
||||
|
||||
|
||||
#include "RendererOpenGL/RendererOpenGL.h"
|
||||
|
||||
namespace Archimedes {
|
||||
class Renderer {
|
||||
|
||||
public:
|
||||
int w, h;
|
||||
typedef void renderCmd();
|
||||
|
||||
~Renderer() {}
|
||||
|
||||
void init() { r.init(); }
|
||||
|
||||
void render();
|
||||
|
||||
void addRenderCmd(renderCmd* cmd) { rc.push_back(cmd); }
|
||||
|
||||
private:
|
||||
std::list<renderCmd*> rc;
|
||||
RendererImpl r;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
39
include/utils/Renderer/RendererOpenGL/RendererOpenGL.h
Normal file
39
include/utils/Renderer/RendererOpenGL/RendererOpenGL.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifdef RENDERER_OPENGL
|
||||
#undef RENDERER_OPENGL
|
||||
|
||||
#include "pch.hpp"
|
||||
|
||||
#define GLEW_STATIC
|
||||
#include <GL/glew.h>
|
||||
|
||||
|
||||
namespace Archimedes {
|
||||
|
||||
class RendererOpenGL {
|
||||
|
||||
public:
|
||||
typedef void renderCmd();
|
||||
|
||||
RendererOpenGL() {};
|
||||
~RendererOpenGL() {};
|
||||
|
||||
void init() { glewInit(); };
|
||||
|
||||
void render(std::list<renderCmd*> cmdList, int& w, int& h) {
|
||||
|
||||
glViewport(0, 0, w, h);
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
for(auto* f : cmdList)
|
||||
f();
|
||||
cmdList.clear();
|
||||
}
|
||||
};
|
||||
|
||||
typedef RendererOpenGL RendererImpl;
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user