aboutsummaryrefslogtreecommitdiff
path: root/src/games
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/games
parentd793b79dea7d5e19982128528276cf05d6c23b5d (diff)
renderer: major refactor; vectors: now aggregates
Diffstat (limited to 'src/games')
-rw-r--r--src/games/Game.cpp8
-rw-r--r--src/games/Game.hpp3
-rw-r--r--src/games/minesweeper/Minesweeper.cpp32
-rw-r--r--src/games/minesweeper/Minesweeper.hpp9
-rw-r--r--src/games/snake/Snake.cpp16
-rw-r--r--src/games/snake/Snake.hpp6
-rw-r--r--src/games/tetris/Board.cpp8
-rw-r--r--src/games/tetris/Board.hpp3
-rw-r--r--src/games/tetris/Tetris.cpp45
-rw-r--r--src/games/tetris/Tetris.hpp4
-rw-r--r--src/games/tetris/Tetromino.cpp12
-rw-r--r--src/games/tetris/Tetromino.hpp5
12 files changed, 72 insertions, 79 deletions
diff --git a/src/games/Game.cpp b/src/games/Game.cpp
index 4f7b7a6..5619c8a 100644
--- a/src/games/Game.cpp
+++ b/src/games/Game.cpp
@@ -9,7 +9,7 @@
std::unique_ptr<Game>
-Game::Select(GameType type, RenderGroup& render_group)
+Game::Select(GameType type)
{
switch (type) {
case NO_GAME: {
@@ -17,15 +17,15 @@ Game::Select(GameType type, RenderGroup& render_group)
} break;
case TETRIS: {
- return std::make_unique<Tetris>(render_group);
+ return std::make_unique<Tetris>();
} break;
case SNAKE: {
- return std::make_unique<Snake>(render_group);
+ return std::make_unique<Snake>();
} break;
case MINESWEEPER: {
- return std::make_unique<Minesweeper>(render_group);
+ return std::make_unique<Minesweeper>();
} break;
InvalidDefaultCase;
diff --git a/src/games/Game.hpp b/src/games/Game.hpp
index b09b618..2156b7e 100644
--- a/src/games/Game.hpp
+++ b/src/games/Game.hpp
@@ -4,7 +4,6 @@
#include <SDL3/SDL.h>
#include <memory>
#include <vector>
-#include <renderer/RenderGroup.hpp>
struct SDL_Window;
@@ -17,7 +16,7 @@ public:
MINESWEEPER
};
- static std::unique_ptr<Game> Select(GameType type, RenderGroup& render_group);
+ static std::unique_ptr<Game> Select(GameType type);
Game() = default;
virtual ~Game();
diff --git a/src/games/minesweeper/Minesweeper.cpp b/src/games/minesweeper/Minesweeper.cpp
index 2174ab8..8e27eb3 100644
--- a/src/games/minesweeper/Minesweeper.cpp
+++ b/src/games/minesweeper/Minesweeper.cpp
@@ -1,5 +1,7 @@
-#include <renderer/RenderGroup.hpp>
#include <games/minesweeper/Minesweeper.hpp>
+#include <renderer/Renderer.hpp>
+
+#include <imgui.h>
#include <algorithm>
#include <random>
@@ -7,8 +9,7 @@
// Todo: winning condition (maybe: total_cells - uncovered_cells = mine_count)
-Minesweeper::Minesweeper(RenderGroup& render_group)
- : m_render_group {render_group}
+Minesweeper::Minesweeper()
{
m_font.Init("fonts/dejavu_ttf/DejaVuSansMono.ttf", 16);
for (uint32_t i = 0; i < m_digit_glyphs.size(); ++i) {
@@ -112,9 +113,8 @@ Minesweeper::InitAdjacentMineCounters()
bool
Minesweeper::Update(std::vector<SDL_Event>& events)
{
- Color clear_color = {0.3f, 0.2f, 0.3f};
- m_render_group.SetCameraSize(4.0f, 3.0f);
- m_render_group.Clear(clear_color);
+ g_renderer.SetCameraSize(4.0f, 3.0f);
+ g_renderer.Clear({0.3f, 0.2f, 0.3f});
for (SDL_Event &event : events) {
if (m_run_state == exit) {
@@ -171,8 +171,8 @@ Minesweeper::ProcessEventDuringResume(SDL_Event &event)
} break;
case SDL_EVENT_MOUSE_BUTTON_DOWN: {
- V2F32 click_screen_pos = {event.button.x, (float)m_render_group.m_ScreenHeight -1 - event.button.y};
- V2F32 click_view_pos = ScreenPosToViewPos(click_screen_pos, m_render_group);
+ V2F32 click_screen_pos = {event.button.x, (float)g_renderer.m_screen_h-1 - event.button.y};
+ V2F32 click_view_pos = ScreenPosToViewPos(click_screen_pos);
float x_adjusted = click_view_pos.x - m_grid_pos.x;
float y_adjusted = click_view_pos.y - m_grid_pos.y;
@@ -285,12 +285,12 @@ Minesweeper::IsMine(int32_t x, int32_t y)
}
V2F32
-Minesweeper::ScreenPosToViewPos(V2F32 screen_pos, RenderGroup &render_group)
+Minesweeper::ScreenPosToViewPos(V2F32 screen_pos)
{
// e.g. [0, 1024] -> [0, 1] -> [0, 4]
// e.g. [0, 768] -> [0, 1] -> [0, 3]
- float screen_width = (float)render_group.m_ScreenWidth;
- float screen_height = (float)render_group.m_ScreenHeight;
+ float screen_width = (float)g_renderer.m_screen_w;
+ float screen_height = (float)g_renderer.m_screen_h;
V2F32 view_pos;
view_pos.x = (screen_pos.x / screen_width) * m_world_width;
@@ -381,7 +381,7 @@ Minesweeper::DrawBoard()
bool is_mine = IsMine(x, y);
if (is_covered) {
- m_render_group.PushRectangle(cell_rect, 0.0f, covered_cell_color);
+ g_renderer.PushRectangle(cell_rect, 0.0f, covered_cell_color);
if (is_flagged) {
@@ -396,7 +396,7 @@ Minesweeper::DrawBoard()
flag_pos.x + flag_size.x,
flag_pos.y + flag_size.y,
};
- m_render_group.PushRectangle(flag_rect, flag_pos.z, flag_color);
+ g_renderer.PushRectangle(flag_rect, flag_pos.z, flag_color);
}
}
else {
@@ -412,10 +412,10 @@ Minesweeper::DrawBoard()
mine_pos.x + m_cell_inner_size.x,
mine_pos.y + m_cell_inner_size.y,
};
- m_render_group.PushRectangle(mine_rect, mine_pos.z, mine_color);
+ g_renderer.PushRectangle(mine_rect, mine_pos.z, mine_color);
}
else {
- m_render_group.PushRectangle(cell_rect, 0.0f, uncovered_cell_color);
+ g_renderer.PushRectangle(cell_rect, 0.0f, uncovered_cell_color);
// Todo: Figure out how to scale this properly.
// 256.0f is a random number that just works for now.
@@ -425,7 +425,7 @@ Minesweeper::DrawBoard()
256.0f
};
size_t mine_count_val = (size_t)m_adjacent_mine_counts[y*m_grid_width + x];
- m_render_group.PushBitmap(
+ g_renderer.PushMonoBitmap(
mine_count_pos,
m_digit_glyphs[mine_count_val].bitmap.width,
m_digit_glyphs[mine_count_val].bitmap.height,
diff --git a/src/games/minesweeper/Minesweeper.hpp b/src/games/minesweeper/Minesweeper.hpp
index b89743e..b90f4a3 100644
--- a/src/games/minesweeper/Minesweeper.hpp
+++ b/src/games/minesweeper/Minesweeper.hpp
@@ -1,8 +1,7 @@
#pragma once
-#include "imgui.h"
-#include "renderer/RenderGroup.hpp"
#include <games/Game.hpp>
+#include <basic/math.hpp>
#include <common/Font.hpp>
#include <array>
@@ -38,7 +37,7 @@ public:
};
public:
- Minesweeper(RenderGroup& render_group);
+ Minesweeper();
~Minesweeper() = default;
bool Update(std::vector<SDL_Event>& events) override;
@@ -61,7 +60,7 @@ private:
bool IsMine(int32_t x, int32_t y);
- V2F32 ScreenPosToViewPos(V2F32 screen_pos, RenderGroup& render_group);
+ V2F32 ScreenPosToViewPos(V2F32 screen_pos);
private:
@@ -78,8 +77,6 @@ private:
private:
- RenderGroup& m_render_group;
-
RunState m_run_state = start_menu;
Difficulty m_difficulty = beginner;
diff --git a/src/games/snake/Snake.cpp b/src/games/snake/Snake.cpp
index aa8cedf..a5fd76c 100644
--- a/src/games/snake/Snake.cpp
+++ b/src/games/snake/Snake.cpp
@@ -1,9 +1,9 @@
+#include "renderer/Renderer.hpp"
#include <games/snake/Snake.hpp>
#include <imgui.h>
-Snake::Snake(RenderGroup& render_group)
- : m_RenderGroup{render_group}
+Snake::Snake()
{
m_IsPaused = false;
m_IsRunning = true;
@@ -46,8 +46,8 @@ bool Snake::Update(std::vector<SDL_Event> &events) {
Color clear_color = {0.3f, 0.3f, 0.3f, 1.0f};
- m_RenderGroup.SetCameraSize(4.0f, 3.0f);
- m_RenderGroup.Clear(clear_color);
+ g_renderer.SetCameraSize(4.0f, 3.0f);
+ g_renderer.Clear(clear_color);
for (SDL_Event &event : events) {
@@ -277,7 +277,7 @@ void Snake::Draw() {
map_world_pos.y + map_world_dim.y
};
Color bg_color = {0.0f, 0.0f, 0.0f, 1.0f};
- m_RenderGroup.PushRectangle(map_world_rect, map_world_pos.z, bg_color);
+ g_renderer.PushRectangle(map_world_rect, map_world_pos.z, bg_color);
/* draw snake */
@@ -306,7 +306,7 @@ void Snake::Draw() {
};
Color color = {0.3f, 0.3f, 0.3f, 1.0f};
- m_RenderGroup.PushRectangle(world_rect, world_pos.z, color);
+ g_renderer.PushRectangle(world_rect, world_pos.z, color);
tail++;
}
tail = 0;
@@ -334,7 +334,7 @@ void Snake::Draw() {
};
Color color = {0.3f, 0.3f, 0.3f, 1.0f};
- m_RenderGroup.PushRectangle(world_rect, world_pos.z, color);
+ g_renderer.PushRectangle(world_rect, world_pos.z, color);
tail++;
}
@@ -353,7 +353,7 @@ void Snake::Draw() {
pos.y + dim.y
};
Color color = {0.3f, 0.6f, 0.4f, 1.0f};
- m_RenderGroup.PushRectangle(rect, pos.z, color);
+ g_renderer.PushRectangle(rect, pos.z, color);
}
void Snake::DoImgui() {
diff --git a/src/games/snake/Snake.hpp b/src/games/snake/Snake.hpp
index ef1fd34..1223cbe 100644
--- a/src/games/snake/Snake.hpp
+++ b/src/games/snake/Snake.hpp
@@ -1,7 +1,7 @@
#pragma once
-#include <renderer/RenderGroup.hpp>
#include <games/Game.hpp>
+#include <basic/math.hpp>
#include <random>
@@ -17,7 +17,7 @@ public:
public:
- Snake(RenderGroup& render_group);
+ Snake();
bool Update(std::vector<SDL_Event> &events) override;
@@ -37,8 +37,6 @@ private:
static constexpr int32_t MAX_MAP_WIDTH = 16;
static constexpr int32_t MAX_MAP_HEIGHT = 16;
- RenderGroup& m_RenderGroup;
-
bool m_IsPaused;
bool m_IsRunning;
diff --git a/src/games/tetris/Board.cpp b/src/games/tetris/Board.cpp
index ab70cd5..dd83cb1 100644
--- a/src/games/tetris/Board.cpp
+++ b/src/games/tetris/Board.cpp
@@ -1,6 +1,6 @@
-#include <renderer/RenderGroup.hpp>
#include <games/tetris/Tetromino.hpp>
#include <games/tetris/Board.hpp>
+#include <renderer/Renderer.hpp>
Board::Board() {
for (int y = 0; y < 2; y++) {
@@ -78,7 +78,7 @@ int32_t Board::ClearRows(int32_t y0) {
return rows_cleared;
}
-void Board::Draw(int32_t level, RenderGroup& render_group) {
+void Board::Draw(int32_t level) {
float world_width = 4.0f;
float world_height = 3.0f;
float tetromino_size_with_border = world_height / 20.0f;
@@ -107,7 +107,7 @@ void Board::Draw(int32_t level, RenderGroup& render_group) {
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);
+ g_renderer.PushRectangle(bg_world_rect, bg_world_pos.z, bg_color);
// tetromino parts
@@ -137,7 +137,7 @@ void Board::Draw(int32_t level, RenderGroup& render_group) {
Color color = Tetromino::GetColor(tetromino_id);
- render_group.PushRectangle(world_rect, world_pos.z, color);
+ g_renderer.PushRectangle(world_rect, world_pos.z, color);
}
}
}
diff --git a/src/games/tetris/Board.hpp b/src/games/tetris/Board.hpp
index 0019a7f..f841e2f 100644
--- a/src/games/tetris/Board.hpp
+++ b/src/games/tetris/Board.hpp
@@ -1,7 +1,6 @@
#pragma once
#include <basic/defs.hpp>
-#include <renderer/RenderGroup.hpp>
class Tetromino;
@@ -15,7 +14,7 @@ public:
Board();
int32_t PlaceTetromino(Tetromino &tetromino);
- void Draw(int32_t level, RenderGroup& render_group);
+ void Draw(int32_t level);
private:
diff --git a/src/games/tetris/Tetris.cpp b/src/games/tetris/Tetris.cpp
index 331e8a6..a8004f3 100644
--- a/src/games/tetris/Tetris.cpp
+++ b/src/games/tetris/Tetris.cpp
@@ -1,7 +1,9 @@
#include <games/tetris/Tetromino.hpp>
+#include <games/tetris/Tetris.hpp>
+#include <renderer/Renderer.hpp>
+
#include <SDL3/SDL_events.h>
#include <SDL3/SDL_timer.h>
-#include <games/tetris/Tetris.hpp>
#include <imgui.h>
#include <fstream>
@@ -9,8 +11,7 @@
// Todo: change to new font scaling api in imgui first
// Todo: test text with hardcoded gap + dummy to ensure it gets placed as expected
-Tetris::Tetris(RenderGroup& m_RenderGroup) :
- m_RenderGroup(m_RenderGroup),
+Tetris::Tetris() :
m_ActiveTetromino(m_Board),
m_NextTetromino(m_Board)
{
@@ -37,8 +38,8 @@ void Tetris::Restart() {
bool Tetris::Update(std::vector<SDL_Event> &events) {
Color clear_color = {0.2f, 0.2f, 0.2f, 1.0f};
- m_RenderGroup.SetCameraSize(4.0f, 3.0f);
- m_RenderGroup.Clear(clear_color);
+ g_renderer.SetCameraSize(4.0f, 3.0f);
+ g_renderer.Clear(clear_color);
if (m_RunningState == TetrisRunningState::Restart) {
Restart();
@@ -213,8 +214,8 @@ void Tetris::HandleGameOver() {
}
void Tetris::Draw() {
- m_Board.Draw(m_Level, m_RenderGroup);
- m_ActiveTetromino.Draw(m_RenderGroup);
+ m_Board.Draw(m_Level);
+ m_ActiveTetromino.Draw();
DrawNextTetromino();
DrawStatistics();
@@ -260,7 +261,7 @@ void Tetris::DrawGameOverMenu() {
void Tetris::DrawLineCounter() {
V2F32 view_pos = {0.5f, 2.6f};
- ImVec2 screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_pos);
+ ImVec2 screen_pos = g_renderer.ViewPosToScreenPosImGui(view_pos);
ImGui::SetNextWindowPos(screen_pos);
ImGui::Begin("TetrisLines", nullptr, s_DefaultImGuiWindowFlags);
@@ -273,33 +274,33 @@ void Tetris::DrawStatistics() {
V2F32 view_advance = {0.0f, 0.2f};
V2F32 view_text_title_pos = view_tetrominoes_pos + V2F32(0.02f, 0.4f);
- ImVec2 screen_text_title_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_text_title_pos);
+ ImVec2 screen_text_title_pos = g_renderer.ViewPosToScreenPosImGui(view_text_title_pos);
V2F32 view_text_pos = view_tetrominoes_pos + V2F32(0.4f, 0.16f);
V2F32 view_text_gap = {0.0f, 0.124f};
- ImVec2 screen_text_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_text_pos);
- ImVec2 screen_text_gap = m_RenderGroup.ViewSizeToScreenSizeImGui(view_text_gap);
+ ImVec2 screen_text_pos = g_renderer.ViewPosToScreenPosImGui(view_text_pos);
+ ImVec2 screen_text_gap = g_renderer.ViewSizeToScreenSizeImGui(view_text_gap);
- Tetromino::Draw(Tetromino::t_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::t_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::j_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::j_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::z_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::z_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::o_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::o_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::s_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::s_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::l_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::l_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
- Tetromino::Draw(Tetromino::i_piece, 0, view_tetrominoes_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(Tetromino::i_piece, 0, view_tetrominoes_pos, 0.5f);
view_tetrominoes_pos.y -= view_advance.y;
@@ -332,7 +333,7 @@ void Tetris::DrawStatistics() {
void Tetris::DrawScore() {
V2F32 view_pos = {3.0f, 2.2f};
- ImVec2 screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_pos);
+ ImVec2 screen_pos = g_renderer.ViewPosToScreenPosImGui(view_pos);
ImGui::SetNextWindowPos(screen_pos);
ImGui::Begin("TetrisScore", nullptr, s_DefaultImGuiWindowFlags);
@@ -343,7 +344,7 @@ void Tetris::DrawScore() {
void Tetris::DrawNextTetromino() {
V2F32 text_view_pos = {3.0f, 1.8f};
- ImVec2 text_screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(text_view_pos);
+ ImVec2 text_screen_pos = g_renderer.ViewPosToScreenPosImGui(text_view_pos);
ImGui::SetNextWindowPos(text_screen_pos);
ImGui::Begin("TetrisNextTetromino", nullptr, s_DefaultImGuiWindowFlags);
@@ -352,12 +353,12 @@ void Tetris::DrawNextTetromino() {
V2F32 tetromino_view_pos = {3.0, 1.4f};
- Tetromino::Draw(m_NextTetromino.GetId(), 0, tetromino_view_pos, 0.5f, m_RenderGroup);
+ Tetromino::Draw(m_NextTetromino.GetId(), 0, tetromino_view_pos, 0.5f);
}
void Tetris::DrawLevel() {
V2F32 view_pos = {3.0f, 1.2f};
- ImVec2 screen_pos = m_RenderGroup.ViewPosToScreenPosImGui(view_pos);
+ ImVec2 screen_pos = g_renderer.ViewPosToScreenPosImGui(view_pos);
ImGui::SetNextWindowPos(screen_pos);
ImGui::Begin("TetrisLevel", nullptr, s_DefaultImGuiWindowFlags);
diff --git a/src/games/tetris/Tetris.hpp b/src/games/tetris/Tetris.hpp
index f4a8caf..828f2e5 100644
--- a/src/games/tetris/Tetris.hpp
+++ b/src/games/tetris/Tetris.hpp
@@ -4,7 +4,6 @@
#include <games/Game.hpp>
#include <games/tetris/Tetromino.hpp>
#include <games/tetris/Board.hpp>
-#include <renderer/RenderGroup.hpp>
enum class TetrisRunningState {
Resume,
@@ -17,7 +16,7 @@ enum class TetrisRunningState {
class Tetris : public Game {
public:
- Tetris(RenderGroup& render_group);
+ Tetris();
bool Update(std::vector<SDL_Event> &events) override;
void HandleTetrominoPlacement();
@@ -45,7 +44,6 @@ private:
private:
- RenderGroup& m_RenderGroup;
TetrisRunningState m_RunningState = TetrisRunningState::Resume;
float m_DtInSecondsRemaining = 0.0f;
diff --git a/src/games/tetris/Tetromino.cpp b/src/games/tetris/Tetromino.cpp
index a77fa57..94343c0 100644
--- a/src/games/tetris/Tetromino.cpp
+++ b/src/games/tetris/Tetromino.cpp
@@ -1,6 +1,8 @@
#include <games/tetris/Tetromino.hpp>
+#include <renderer/Renderer.hpp>
+
#include <random>
-#include <stdlib.h>
+#include <cstdlib>
// layout of a left_aligned_bitmap: xxxx000000000000
// layout of a board_bitmap is 111xxxxxxxxxx111
@@ -119,7 +121,7 @@ bool Tetromino::MaybeMoveDown() {
return false;
}
-void Tetromino::Draw(RenderGroup &render_group) const {
+void Tetromino::Draw() const {
float world_width = 4.0f;
float world_height = 3.0f;
float tetromino_size_with_border = world_height / 20.0f;
@@ -132,7 +134,7 @@ void Tetromino::Draw(RenderGroup &render_group) const {
y0 * tetromino_size_with_border
};
- Tetromino::Draw(m_Id, m_Ori, world_pos, 1.0f, render_group);
+ Tetromino::Draw(m_Id, m_Ori, world_pos, 1.0f);
}
bool Tetromino::IsCollisionWithBoard(TetrominoId id, BoardPos pos, int32_t ori, uint16_t *board_bitmap) {
@@ -175,7 +177,7 @@ Color Tetromino::GetColor(TetrominoId id) {
return color;
}
-void Tetromino::Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale, RenderGroup &render_group) {
+void Tetromino::Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale) {
int32_t id_ = static_cast<int32_t>(id);
float world_height = 3.0f;
@@ -209,7 +211,7 @@ void Tetromino::Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale, Render
Color color = GetColor(id);
- render_group.PushRectangle(world_rect, world_pos.z, color);
+ g_renderer.PushRectangle(world_rect, world_pos.z, color);
}
}
}
diff --git a/src/games/tetris/Tetromino.hpp b/src/games/tetris/Tetromino.hpp
index 0f97821..ecc986b 100644
--- a/src/games/tetris/Tetromino.hpp
+++ b/src/games/tetris/Tetromino.hpp
@@ -2,7 +2,6 @@
#include <basic/defs.hpp>
#include <basic/math.hpp>
-#include <renderer/RenderGroup.hpp>
#include <games/tetris/Board.hpp>
@@ -46,14 +45,14 @@ public:
void MaybeMoveHorizontally(TetrominoDirection direction);
void MaybeRotate(TetrominoRotation rotation);
- void Draw(RenderGroup &render_group) const;
+ void Draw() const;
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 Color GetColor(TetrominoId id);
- static void Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale, RenderGroup &render_group);
+ static void Draw(TetrominoId id, int32_t ori, V2F32 pos, float scale);
private: