50 lines
955 B
C++
50 lines
955 B
C++
#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
|