diff options
| author | fschildt <florian.schildt@protonmail.com> | 2025-11-25 06:21:26 +0100 |
|---|---|---|
| committer | fschildt <florian.schildt@protonmail.com> | 2025-11-25 06:21:26 +0100 |
| commit | 3f95bc6b463f629c620ba5811ca3ce53ed9c03a2 (patch) | |
| tree | 8e2637270472b3ff787f95b24c9567d0c4d3df2b /src/renderer/RSoftwareBackend.cpp | |
| parent | 746819470de51c4f7331b64980f3da9bfb750a12 (diff) | |
add MemoryManager, enhance cmake,compile.sh
Diffstat (limited to 'src/renderer/RSoftwareBackend.cpp')
| -rw-r--r-- | src/renderer/RSoftwareBackend.cpp | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/renderer/RSoftwareBackend.cpp b/src/renderer/RSoftwareBackend.cpp index f4f31f3..927fc92 100644 --- a/src/renderer/RSoftwareBackend.cpp +++ b/src/renderer/RSoftwareBackend.cpp @@ -1,3 +1,4 @@ +#include "common/MemoryManager.hpp" #include "renderer/Renderer.hpp" #include <renderer/RSoftwareBackend.hpp> @@ -39,8 +40,8 @@ RSoftwareBackend::Draw() SortRenderEntities(); - for (RZBuffEntry& entry : m_renderer.m_z_buff) { - REntity& entity = m_renderer.m_render_entities[entry.entity_index]; + for (auto& sort_entry : m_renderer.m_sort_entries) { + REntity& entity = m_renderer.m_render_entities[sort_entry.entity_index]; switch (entity.type) { case REntityType_Rectangle: { DrawRectangle(entity.rect); @@ -51,7 +52,7 @@ RSoftwareBackend::Draw() } break; case REntityType_Text: { - DrawText(entity.text); + DrawFrameString32(entity.string32); }; break; case REntityType_Circle: { @@ -93,9 +94,9 @@ RSoftwareBackend::Resize(int32_t w, int32_t h) void RSoftwareBackend::SortRenderEntities() { - auto& z_buff = m_renderer.m_z_buff; + auto& z_buff = m_renderer.m_sort_entries; std::sort(z_buff.begin(), z_buff.end(), - [](const RZBuffEntry& e1, const RZBuffEntry& e2) { + [](const RSortEntry& e1, const RSortEntry& e2) { return e1.z < e2.z; }); } @@ -218,11 +219,12 @@ RSoftwareBackend::DrawAlphaBitmap(REntity_AlphaBitmap& entity) } void -RSoftwareBackend::DrawText(REntity_Text& entity) +RSoftwareBackend::DrawFrameString32(REntity_String32& entity) { int32_t xscreen = m_renderer.WorldXToScreenX(entity.pos.x); int32_t yscreen = m_renderer.WorldYToScreenY(entity.pos.y); - for (char32_t ch : entity.text) { + std::u32string& str = MemoryManager::GetString32(entity.id); + for (char32_t ch : str) { Glyph& glyph = entity.font.GetGlyph(ch); int32_t x = xscreen + glyph.xoff; |
