diff options
Diffstat (limited to 'src/renderer/Renderer.cpp')
| -rw-r--r-- | src/renderer/Renderer.cpp | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/src/renderer/Renderer.cpp b/src/renderer/Renderer.cpp index 4e449ba..956c488 100644 --- a/src/renderer/Renderer.cpp +++ b/src/renderer/Renderer.cpp @@ -13,16 +13,10 @@ Renderer g_renderer; void Renderer::Init(SDL_Window* window) { + m_window = window; m_render_entities.reserve(1024); m_sort_entries.reserve(1024); - - m_backend = std::make_unique<RSoftwareBackend>(window, *this); -} - -void -Renderer::Draw() -{ - m_backend->Draw(); + m_backend = std::make_unique<RSoftwareBackend>(*this); } void @@ -30,12 +24,16 @@ Renderer::Reset() { m_render_entities.clear(); m_sort_entries.clear(); - m_render_entities.reserve(1024); - m_sort_entries.reserve(1024); SetCameraSize(0.0f, 0.0f); } void +Renderer::Draw() +{ + m_backend->Draw(); +} + +void Renderer::SetScreenSize(int32_t w, int32_t h) { m_screen_w = w; @@ -66,7 +64,13 @@ Renderer::WorldYToScreenY(float world_y) void Renderer::Clear(Color color) { - m_clear_color = color; + Rectangle rect = { + 0.0f, + 0.0f, + m_camera_w, + m_camera_h + }; + PushRectangle(rect, color, -1.0f); } void @@ -74,37 +78,48 @@ Renderer::PushAlphaBitmap(AlphaBitmap& bitmap, V3F32 pos, Color color) { m_render_entities.emplace_back(REntity{.bitmap{ REntityType_AlphaBitmap, - pos, bitmap, + pos, color }}); m_sort_entries.emplace_back(pos.z, m_render_entities.size()-1); } void -Renderer::PushRectangle(Rectangle rect, float z, Color color) +Renderer::PushRectangle(Rectangle rect, Color color, float z) { m_render_entities.emplace_back(REntity{.rect{ REntityType_Rectangle, rect, - z, color }}); m_sort_entries.emplace_back(z, m_render_entities.size()-1); } void -Renderer::PushCircle(Circle circle, float z, Color color) +Renderer::PushCircle(Circle circle, Color color, float z) { m_render_entities.emplace_back(REntity{.circle{ REntityType_Circle, circle, - z, color }}); m_sort_entries.emplace_back(z, m_render_entities.size()-1); } +void +Renderer::PushText(std::u32string& text, Font& font, V3F32 pos, Color color) +{ + m_render_entities.emplace_back(REntity{.text{ + REntityType_Text, + text, + font, + pos, + color + }}); + m_sort_entries.emplace_back(pos.z, m_render_entities.size()-1); +} + /* temporary helper functions (from old RGroup api) */ |
