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