diff options
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; +}; + |
