aboutsummaryrefslogtreecommitdiff
path: root/src/renderer/RSoftwareBackend.hpp
diff options
context:
space:
mode:
authorfschildt <florian.schildt@protonmail.com>2025-09-29 13:20:43 +0200
committerfschildt <florian.schildt@protonmail.com>2025-09-29 13:20:43 +0200
commit9d72ed2d5801b1506158082f08bd0b47e58db17f (patch)
tree1fe30ab6dae55db5a3faaac6b8d54f67a31255d3 /src/renderer/RSoftwareBackend.hpp
parentd793b79dea7d5e19982128528276cf05d6c23b5d (diff)
renderer: major refactor; vectors: now aggregates
Diffstat (limited to 'src/renderer/RSoftwareBackend.hpp')
-rw-r--r--src/renderer/RSoftwareBackend.hpp41
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;
+};
+