aboutsummaryrefslogtreecommitdiff
path: root/src/games/tetris
diff options
context:
space:
mode:
authorfschildt <florian.schildt@protonmail.com>2025-09-17 15:30:21 +0200
committerfschildt <florian.schildt@protonmail.com>2025-09-17 15:30:21 +0200
commitf28e9c3e03a9f94764b3811f7c4aa01991943fc7 (patch)
tree569850adf97494f5ce31dfe31a4c2703f378a144 /src/games/tetris
parentb46a0d9369fbaa1938f0968ab216bc2d564a9c37 (diff)
switch to software renderer
Diffstat (limited to 'src/games/tetris')
-rw-r--r--src/games/tetris/Board.cpp20
-rw-r--r--src/games/tetris/Tetris.cpp2
-rw-r--r--src/games/tetris/Tetromino.cpp20
-rw-r--r--src/games/tetris/Tetromino.hpp2
4 files changed, 31 insertions, 13 deletions
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<TetrominoId>(tetromino_id));
- render_group.PushRectangle(world_pos, world_dim, color);
+ Color color = Tetromino::GetColor(static_cast<TetrominoId>(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<SDL_Event> &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);