add RendererSDL3
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
|
||||
#include "pch.hpp"
|
||||
#include "RendererOpenGL/RendererOpenGL.h"
|
||||
#include "RendererSDL3/RendererSDL3.h"
|
||||
|
||||
namespace Archimedes {
|
||||
class Renderer {
|
||||
@@ -10,9 +11,11 @@ namespace Archimedes {
|
||||
public:
|
||||
int w, h;
|
||||
|
||||
Renderer(void* p = nullptr) : ptr(p) {}
|
||||
|
||||
~Renderer() {}
|
||||
|
||||
bool init() { return r.init(); }
|
||||
bool init() { return r.init(ptr); }
|
||||
|
||||
void render() {
|
||||
r.render(rc, w, h);
|
||||
@@ -22,9 +25,12 @@ namespace Archimedes {
|
||||
return rc;
|
||||
}
|
||||
|
||||
RendererImpl& getRendererImpl() { return r; }
|
||||
|
||||
private:
|
||||
std::list<std::function<void()>> rc;
|
||||
RendererImpl r;
|
||||
void* ptr;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace Archimedes {
|
||||
RendererOpenGL() {};
|
||||
~RendererOpenGL() {};
|
||||
|
||||
bool init() {
|
||||
bool init(void* p) {
|
||||
return glewInit() == GLEW_OK;
|
||||
};
|
||||
|
||||
|
||||
49
include/utils/Renderer/RendererSDL3/RendererSDL3.h
Normal file
49
include/utils/Renderer/RendererSDL3/RendererSDL3.h
Normal file
@@ -0,0 +1,49 @@
|
||||
#if RENDERER == 2
|
||||
|
||||
#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;
|
||||
};
|
||||
|
||||
typedef RendererSDL3 RendererImpl;
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user