diff options
Diffstat (limited to 'src/renderer/Renderer.hpp')
| -rw-r--r-- | src/renderer/Renderer.hpp | 37 | 
1 files changed, 26 insertions, 11 deletions
diff --git a/src/renderer/Renderer.hpp b/src/renderer/Renderer.hpp index a3e0f98..24d4b71 100644 --- a/src/renderer/Renderer.hpp +++ b/src/renderer/Renderer.hpp @@ -5,22 +5,37 @@  #include <SDL3/SDL.h>  #include <SDL3/SDL_video.h> -#include <memory> +struct RCanvas { +    uint32_t rshift; +    uint32_t gshift; +    uint32_t bshift; +    uint32_t ashift; +    int32_t w; +    int32_t h; +    uint32_t *pixels; +}; +  class Renderer {  public: -    enum Api { -        API_OPENGL -    }; +    Renderer(SDL_Window *window); -    Renderer() = default; -    static std::unique_ptr<Renderer> Select(Api api, SDL_Window *window); +    bool Init(); +    void ResizeCanvas(int32_t w, int32_t h); +    void Draw(RenderGroup &render_group); -public: -    virtual ~Renderer() = 0; -    virtual bool Init() = 0; -    virtual void Draw(RenderGroup &render_group) = 0; -    virtual void Present() = 0; +private: +    void DrawRectangle(RenderGroup& rgroup, REntity_Rectangle& rect); +    void DrawMonoBitmap(REntity_Bitmap& bitmap, Color color); + +    int32_t WorldXToScreenX(RenderGroup& rgroup, float x); +    int32_t WorldYToScreenY(RenderGroup& rgroup, float y); + + +private: +    SDL_Window *m_Window; +    uint32_t m_GlTexId; +    RCanvas m_Canvas;  };  | 
