diff options
| author | fschildt <florian.schildt@protonmail.com> | 2025-09-29 13:20:43 +0200 |
|---|---|---|
| committer | fschildt <florian.schildt@protonmail.com> | 2025-09-29 13:20:43 +0200 |
| commit | 9d72ed2d5801b1506158082f08bd0b47e58db17f (patch) | |
| tree | 1fe30ab6dae55db5a3faaac6b8d54f67a31255d3 /src/games | |
| parent | d793b79dea7d5e19982128528276cf05d6c23b5d (diff) | |
renderer: major refactor; vectors: now aggregates
Diffstat (limited to 'src/games')
| -rw-r--r-- | src/games/Game.cpp | 8 | ||||
| -rw-r--r-- | src/games/Game.hpp | 3 | ||||
| -rw-r--r-- | src/games/minesweeper/Minesweeper.cpp | 32 | ||||
| -rw-r--r-- | src/games/minesweeper/Minesweeper.hpp | 9 | ||||
| -rw-r--r-- | src/games/snake/Snake.cpp | 16 | ||||
| -rw-r--r-- | src/games/snake/Snake.hpp | 6 | ||||
| -rw-r--r-- | src/games/tetris/Board.cpp | 8 | ||||
| -rw-r--r-- | src/games/tetris/Board.hpp | 3 | ||||
| -rw-r--r-- | src/games/tetris/Tetris.cpp | 45 | ||||
| -rw-r--r-- | src/games/tetris/Tetris.hpp | 4 | ||||
| -rw-r--r-- | src/games/tetris/Tetromino.cpp | 12 | ||||
| -rw-r--r-- | src/games/tetris/Tetromino.hpp | 5 |
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: |
