aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system/RenderSystem.cpp
diff options
context:
space:
mode:
authorWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-12-17 13:22:34 +0100
committerWBoerenkamps <wrj.boerenkamps@student.avans.nl>2024-12-17 13:22:34 +0100
commitb99f5fc0f52fdd4ec96be844e643060503a8860b (patch)
treedbf0efa56ad98debbb2aa288866ec4a1fbf80d55 /src/crepe/system/RenderSystem.cpp
parent3b5b5258b0f46a3492a7fd777908dfb01e15417b (diff)
text now working with optional
Diffstat (limited to 'src/crepe/system/RenderSystem.cpp')
-rw-r--r--src/crepe/system/RenderSystem.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 5aa00b5..18f6393 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -2,6 +2,7 @@
#include <cassert>
#include <cmath>
#include <functional>
+#include <optional>
#include <stdexcept>
#include <vector>
@@ -22,6 +23,7 @@
using namespace crepe;
using namespace std;
+
void RenderSystem::clear_screen() {
SDLContext & ctx = this->mediator.sdl_context;
ctx.clear_screen();
@@ -124,9 +126,11 @@ void RenderSystem::render() {
RefVector<Sprite> sprites = mgr.get_components_by_type<Sprite>();
ResourceManager & resource_manager = this->mediator.resource_manager;
RefVector<Sprite> sorted_sprites = this->sort(sprites);
- RefVector<Text> texts = mgr.get_components_by_type<Text>();
- for(const Text& text : texts){
- const Font & res = resource_manager.get<Font>(text.font);
+ RefVector<Text> text_components = mgr.get_components_by_type<Text>();
+ for(Text& text : text_components){
+ const Transform & transform
+ = mgr.get_components_by_id<Transform>(text.game_object_id).front().get();
+ this->render_text(text,transform);
}
for (const Sprite & sprite : sorted_sprites) {
@@ -143,4 +147,22 @@ void RenderSystem::render() {
}
+
}
+void RenderSystem::render_text(Text & text, const Transform & tm) {
+ SDLContext & ctx = this->mediator.sdl_context;
+
+ // Check if font is available in text
+ if (!text.font.has_value()) {
+ }
+
+ ResourceManager & resource_manager = this->mediator.resource_manager;
+
+ if (text.font.has_value()) {
+ const Asset& font_asset = text.font.value();
+ const Font & res = resource_manager.get<Font>(font_asset);
+ }
+}
+
+
+