aboutsummaryrefslogtreecommitdiff
path: root/src/renderer/RSoftwareBackend.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/renderer/RSoftwareBackend.cpp')
-rw-r--r--src/renderer/RSoftwareBackend.cpp16
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;