aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/system
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
parent3b5b5258b0f46a3492a7fd777908dfb01e15417b (diff)
text now working with optional
Diffstat (limited to 'src/crepe/system')
-rw-r--r--src/crepe/system/RenderSystem.cpp28
-rw-r--r--src/crepe/system/RenderSystem.h10
2 files changed, 33 insertions, 5 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);
+ }
+}
+
+
+
diff --git a/src/crepe/system/RenderSystem.h b/src/crepe/system/RenderSystem.h
index fc7b46e..56a0553 100644
--- a/src/crepe/system/RenderSystem.h
+++ b/src/crepe/system/RenderSystem.h
@@ -10,7 +10,7 @@ namespace crepe {
class Camera;
class Sprite;
class Transform;
-
+class Text;
/**
* \brief Manages rendering operations for all game objects.
*
@@ -50,7 +50,13 @@ private:
* \return true if particles have been rendered
*/
bool render_particle(const Sprite & sprite, const double & scale);
-
+ /**
+ * \brief Renders all Text components
+ *
+ * \param text The text component to be rendered.
+ * \param tm the Transform component that holds the position,rotation and scale
+ */
+ void render_text(Text & text, const Transform & tm);
/**
* \brief renders a sprite with a Transform component on the screen
*