From b99f5fc0f52fdd4ec96be844e643060503a8860b Mon Sep 17 00:00:00 2001 From: WBoerenkamps Date: Tue, 17 Dec 2024 13:22:34 +0100 Subject: text now working with optional --- src/crepe/system/RenderSystem.cpp | 28 +++++++++++++++++++++++++--- src/crepe/system/RenderSystem.h | 10 ++++++++-- 2 files changed, 33 insertions(+), 5 deletions(-) (limited to 'src/crepe/system') 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 #include #include +#include #include #include @@ -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 sprites = mgr.get_components_by_type(); ResourceManager & resource_manager = this->mediator.resource_manager; RefVector sorted_sprites = this->sort(sprites); - RefVector texts = mgr.get_components_by_type(); - for(const Text& text : texts){ - const Font & res = resource_manager.get(text.font); + RefVector text_components = mgr.get_components_by_type(); + for(Text& text : text_components){ + const Transform & transform + = mgr.get_components_by_id(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_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 * -- cgit v1.2.3