start template refactor
This commit is contained in:
36
include/utils/Renderer/RendererImpl/RendererImpl.h
Normal file
36
include/utils/Renderer/RendererImpl/RendererImpl.h
Normal file
@@ -0,0 +1,36 @@
|
||||
#ifndef RENDERER_IMPL
|
||||
#define RENDERER_IMPL
|
||||
|
||||
|
||||
#include "pch.hpp"
|
||||
|
||||
|
||||
namespace Archimedes {
|
||||
|
||||
template <typename T>
|
||||
class RendererImpl {
|
||||
|
||||
public:
|
||||
typedef void renderCmd();
|
||||
|
||||
RendererImpl() {};
|
||||
|
||||
~RendererImpl() {};
|
||||
|
||||
bool init(void* p) {
|
||||
return false;
|
||||
};
|
||||
|
||||
void render(std::list<std::function<void()>> cmdList, int& w, int& h) {
|
||||
|
||||
|
||||
for(auto f : cmdList)
|
||||
f();
|
||||
}
|
||||
|
||||
private:
|
||||
T rendererImpl;
|
||||
};
|
||||
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,36 @@
|
||||
#ifndef RENDERER_OPENGL
|
||||
#define RENDERER_OPENGL
|
||||
|
||||
#include "pch.hpp"
|
||||
|
||||
#define GLEW_STATIC
|
||||
#include <GL/glew.h>
|
||||
|
||||
|
||||
namespace Archimedes {
|
||||
|
||||
class RendererOpenGL {
|
||||
|
||||
public:
|
||||
typedef void renderCmd();
|
||||
|
||||
RendererOpenGL() {};
|
||||
~RendererOpenGL() {};
|
||||
|
||||
bool init(void* p) {
|
||||
return glewInit() == GLEW_OK;
|
||||
};
|
||||
|
||||
void render(std::list<std::function<void()>> cmdList, int& w, int& h) {
|
||||
|
||||
glViewport(0, 0, w, h);
|
||||
glClearColor(0.2, 0.2, 0.4, 1);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
for(auto f : cmdList)
|
||||
f();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,41 @@
|
||||
#ifndef RENDERER_SDL3
|
||||
#define RENDERER_SDL3
|
||||
|
||||
#include "pch.hpp"
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
|
||||
namespace Archimedes {
|
||||
|
||||
class RendererSDL3 {
|
||||
|
||||
public:
|
||||
typedef void renderCmd();
|
||||
|
||||
RendererSDL3() {};
|
||||
~RendererSDL3() { SDL_DestroyRenderer(renderer); };
|
||||
|
||||
bool init(void* window) {
|
||||
renderer = SDL_CreateRenderer((SDL_Window*) window, nullptr);
|
||||
SDL_SetRenderVSync(renderer, 1);
|
||||
return renderer != nullptr;
|
||||
};
|
||||
|
||||
void render(std::list<std::function<void()>> cmdList, int& w, int& h) {
|
||||
|
||||
//SDL_SetRenderScale(renderer, w, h);
|
||||
|
||||
SDL_RenderClear(renderer);
|
||||
|
||||
for(auto f : cmdList)
|
||||
f();
|
||||
|
||||
SDL_RenderPresent(renderer);
|
||||
}
|
||||
|
||||
SDL_Renderer* renderer = nullptr;
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user