28 lines
692 B
C++
28 lines
692 B
C++
// Renderer abstraction (minimal scaffold)
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
#include <SDL3/SDL.h>
|
|
|
|
namespace renderer {
|
|
|
|
class Renderer {
|
|
public:
|
|
virtual ~Renderer() = default;
|
|
|
|
// Create/destroy textures
|
|
virtual SDL_Texture* createTextureFromSurface(SDL_Surface* surf) = 0;
|
|
virtual void destroyTexture(SDL_Texture* tex) = 0;
|
|
|
|
// Draw operations (minimal)
|
|
virtual void copy(SDL_Texture* tex, const SDL_Rect* src, const SDL_Rect* dst) = 0;
|
|
virtual void clear(const SDL_Color& color) = 0;
|
|
virtual void present() = 0;
|
|
};
|
|
|
|
// Factory helper implemented by SDL-specific backend
|
|
std::unique_ptr<Renderer> MakeSDLRenderer(SDL_Renderer* rdr);
|
|
|
|
} // namespace renderer
|
|
|