diff options
| author | fschildt <florian.schildt@protonmail.com> | 2025-09-29 13:20:43 +0200 | 
|---|---|---|
| committer | fschildt <florian.schildt@protonmail.com> | 2025-09-29 13:20:43 +0200 | 
| commit | 9d72ed2d5801b1506158082f08bd0b47e58db17f (patch) | |
| tree | 1fe30ab6dae55db5a3faaac6b8d54f67a31255d3 /src/renderer/RSoftwareBackend.hpp | |
| parent | d793b79dea7d5e19982128528276cf05d6c23b5d (diff) | |
renderer: major refactor; vectors: now aggregates
Diffstat (limited to 'src/renderer/RSoftwareBackend.hpp')
| -rw-r--r-- | src/renderer/RSoftwareBackend.hpp | 41 | 
1 files changed, 41 insertions, 0 deletions
diff --git a/src/renderer/RSoftwareBackend.hpp b/src/renderer/RSoftwareBackend.hpp new file mode 100644 index 0000000..5457c7e --- /dev/null +++ b/src/renderer/RSoftwareBackend.hpp @@ -0,0 +1,41 @@ +#pragma once + +#include <SDL3/SDL.h> +#include <renderer/Renderer.hpp> + + +class RSoftwareBackend { +public: +    struct Canvas { +        uint32_t rshift; +        uint32_t gshift; +        uint32_t bshift; +        uint32_t ashift; +        int32_t w; +        int32_t h; +        uint32_t *pixels; +    }; + + +public: +    RSoftwareBackend(SDL_Window* window, Renderer& renderer); + +    void Draw(); + + +private: +    void ResizeCanvas(int32_t w, int32_t h); +    void SortRenderEntities(); + +    void DrawRectangle(REntity_Rectangle& rect); +    void DrawMonoBitmap(REntity_MonoBitmap& mono_bitmap, Color color); + + +private: +    SDL_Window* m_window{}; +    Renderer& m_renderer; + +    uint32_t m_gltexture_id{}; +    Canvas m_canvas; +}; +  | 
