From f28e9c3e03a9f94764b3811f7c4aa01991943fc7 Mon Sep 17 00:00:00 2001 From: fschildt Date: Wed, 17 Sep 2025 15:30:21 +0200 Subject: switch to software renderer --- src/games/tetris/Board.cpp | 20 ++++++++++++++++---- src/games/tetris/Tetris.cpp | 2 +- src/games/tetris/Tetromino.cpp | 20 +++++++++++++------- src/games/tetris/Tetromino.hpp | 2 +- 4 files changed, 31 insertions(+), 13 deletions(-) (limited to 'src/games/tetris') diff --git a/src/games/tetris/Board.cpp b/src/games/tetris/Board.cpp index 9dff135..2230ee5 100644 --- a/src/games/tetris/Board.cpp +++ b/src/games/tetris/Board.cpp @@ -106,8 +106,14 @@ void Board::Draw(int32_t level, RenderGroup& render_group) { tetromino_size_with_border * 10, tetromino_size_with_border * 20 }; - V3F32 bg_color = {0.0f, 0.0f, 0.0f}; - render_group.PushRectangle(bg_world_pos, bg_world_dim, bg_color); + RectF32 bg_world_rect = { + bg_world_pos.x, + bg_world_pos.y, + bg_world_pos.x + bg_world_dim.x, + bg_world_pos.y + bg_world_dim.y, + }; + Color bg_color = {0.0f, 0.0f, 0.0f, 1.0f}; + render_group.PushRectangle(bg_world_rect, bg_world_pos.z, bg_color); // tetromino parts @@ -128,10 +134,16 @@ void Board::Draw(int32_t level, RenderGroup& render_group) { 1.0f }; V2F32 world_dim = local_dim; + RectF32 world_rect = { + world_pos.x, + world_pos.y, + world_pos.x + world_dim.x, + world_pos.y + world_dim.y, + }; - V3F32 color = Tetromino::GetColor(static_cast(tetromino_id)); - render_group.PushRectangle(world_pos, world_dim, color); + Color color = Tetromino::GetColor(static_cast(tetromino_id)); + render_group.PushRectangle(world_rect, world_pos.z, color); } } } diff --git a/src/games/tetris/Tetris.cpp b/src/games/tetris/Tetris.cpp index e776fb0..24881a8 100644 --- a/src/games/tetris/Tetris.cpp +++ b/src/games/tetris/Tetris.cpp @@ -35,7 +35,7 @@ void Tetris::Restart() { } bool Tetris::Update(std::vector &events, RenderGroup &render_group) { - V3F32 clear_color = V3F32(0.2f, 0.2f, 0.2f); + Color clear_color = {0.2f, 0.2f, 0.2f, 1.0f}; render_group.SetCameraSize(4.0f, 3.0f); render_group.Clear(clear_color); diff --git a/src/games/tetris/Tetromino.cpp b/src/games/tetris/Tetromino.cpp index 577a869..78ac68d 100644 --- a/src/games/tetris/Tetromino.cpp +++ b/src/games/tetris/Tetromino.cpp @@ -153,24 +153,24 @@ void Tetromino::GetBitmap(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *b *dest = *src >> pos.x; } -V3F32 Tetromino::GetColor(TetrominoId id) { +Color Tetromino::GetColor(TetrominoId id) { using enum TetrominoId; - V3F32 color; + Color color; switch (id) { case TETROMINO_I: case TETROMINO_O: case TETROMINO_T: { - color = V3F32(0.8f, 0.8f, 0.8f); + color = {0.8f, 0.8f, 0.8f, 1.0f}; } break; case TETROMINO_J: case TETROMINO_S: { - color = V3F32(0.8f, 0.2f, 0.2f); + color = {0.8f, 0.2f, 0.2f, 1.0f}; } break; default: { - color = V3F32(0.2f, 0.4f, 0.2f); + color = {0.2f, 0.4f, 0.2f, 1.0f}; } } return color; @@ -201,10 +201,16 @@ void Tetromino::Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale, Render 1.0f }; V2F32 world_dim = local_dim; + RectF32 world_rect = { + world_pos.x, + world_pos.y, + world_pos.x + world_dim.x, + world_pos.y + world_dim.y, + }; - V3F32 color = GetColor(id); - render_group.PushRectangle(world_pos, world_dim, color); + Color color = GetColor(id); + render_group.PushRectangle(world_rect, world_pos.z, color); } } } diff --git a/src/games/tetris/Tetromino.hpp b/src/games/tetris/Tetromino.hpp index c3ceeff..d6d99c6 100644 --- a/src/games/tetris/Tetromino.hpp +++ b/src/games/tetris/Tetromino.hpp @@ -42,7 +42,7 @@ public: public: static bool IsCollisionWithBoard(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *board_bitmap); static void GetBitmap(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *bitmap); - static V3F32 GetColor(TetrominoId id); + static Color GetColor(TetrominoId id); static void Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale, RenderGroup &render_group); -- cgit v1.2.3