diff options
| author | fschildt <florian.schildt@protonmail.com> | 2025-11-24 19:55:42 +0100 |
|---|---|---|
| committer | fschildt <florian.schildt@protonmail.com> | 2025-11-24 19:55:42 +0100 |
| commit | e4584401ad865afb5a0fec8b7cab67794490a10d (patch) | |
| tree | 6e13bfdac6b2687be6f3c180132e2a57ee71891d /src/games/minesweeper | |
| parent | feb4bc8cbc66ba928319ddb2cc1bf48010487863 (diff) | |
rendering: refactor z-based sorting/drawing
Diffstat (limited to 'src/games/minesweeper')
| -rw-r--r-- | src/games/minesweeper/Minesweeper.cpp | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/src/games/minesweeper/Minesweeper.cpp b/src/games/minesweeper/Minesweeper.cpp index ae019c4..5cc3215 100644 --- a/src/games/minesweeper/Minesweeper.cpp +++ b/src/games/minesweeper/Minesweeper.cpp @@ -331,6 +331,7 @@ Minesweeper::ScreenPosToViewPos(V2F32 screen_pos) void Minesweeper::DrawBoard() { + uint32_t z = 1; Color covered_cell_color {0.6f, 0.6f, 0.6f}; Color uncovered_cell_color {0.4f, 0.4f, 0.4f}; Color mine_color {0.8f, 0.2f, 0.2f}; @@ -363,10 +364,9 @@ Minesweeper::DrawBoard() if (is_flagged) { - V3F32 flag_pos = { + V2F32 flag_pos = { cell_pos.x + flag_offset.x, cell_pos.y + flag_offset.y, - 1.0f }; Rectangle flag_rect = { flag_pos.x, @@ -374,15 +374,14 @@ Minesweeper::DrawBoard() flag_pos.x + flag_size.x, flag_pos.y + flag_size.y, }; - g_renderer.PushRectangle(flag_rect, flag_color, flag_pos.z); + g_renderer.PushRectangle(flag_rect, flag_color, z); } } else { if (is_mine) { - V3F32 mine_pos = { + V2F32 mine_pos = { cell_pos.x, cell_pos.y, - 1.0f }; Rectangle mine_rect = { mine_pos.x, @@ -390,21 +389,20 @@ Minesweeper::DrawBoard() mine_pos.x + m_cell_inner_size.x, mine_pos.y + m_cell_inner_size.y, }; - g_renderer.PushRectangle(mine_rect, mine_color, mine_pos.z); + g_renderer.PushRectangle(mine_rect, mine_color, z); } else { g_renderer.PushRectangle(cell_rect, uncovered_cell_color, 0.0f); - V3F32 mine_count_pos = { + V2F32 mine_count_pos = { cell_pos.x, cell_pos.y, - 1.0f }; int32_t mine_count = m_adjacent_mine_counts[y*m_grid_width + x]; if (mine_count > 0) { Color color = s_mine_count_colors[mine_count-1]; Glyph& glyph = m_font.GetGlyph('0' + (char32_t)mine_count); - g_renderer.PushAlphaBitmap(glyph.bitmap, mine_count_pos, color); + g_renderer.PushAlphaBitmap(glyph.bitmap, mine_count_pos, color, z); } } } |
