diff options
author | JAROWMR <jarorutjes07@gmail.com> | 2024-12-18 21:14:17 +0100 |
---|---|---|
committer | JAROWMR <jarorutjes07@gmail.com> | 2024-12-18 21:14:17 +0100 |
commit | 6d333439fa955d2da69dac72ec2470e1bfc2e63d (patch) | |
tree | a58ae1644abc5e931fad1899d25a87e9e6a6bd3e /src/crepe/system/RenderSystem.cpp | |
parent | 3855044ad97a41ca71b0d3ea2240f4eee93cc86f (diff) | |
parent | 4dd30ea92296892c9a9bd94787531d6a1319d8ac (diff) |
Merge branch 'jaro/collision-system-handeling' of github.com:lonkaars/crepe into jaro/collision-system-handeling
Diffstat (limited to 'src/crepe/system/RenderSystem.cpp')
-rw-r--r-- | src/crepe/system/RenderSystem.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp index 7c48d10..d76a122 100644 --- a/src/crepe/system/RenderSystem.cpp +++ b/src/crepe/system/RenderSystem.cpp @@ -2,13 +2,16 @@ #include <cassert> #include <cmath> #include <functional> +#include <optional> #include <stdexcept> #include <vector> #include "../api/Camera.h" #include "../api/ParticleEmitter.h" #include "../api/Sprite.h" +#include "../api/Text.h" #include "../api/Transform.h" +#include "../facade/Font.h" #include "../facade/SDLContext.h" #include "../facade/Texture.h" #include "../manager/ComponentManager.h" @@ -121,8 +124,14 @@ void RenderSystem::render() { this->update_camera(); 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> 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) { if (!sprite.active) continue; const Transform & transform @@ -135,3 +144,18 @@ void RenderSystem::render() { this->render_normal(sprite, transform); } } +void RenderSystem::render_text(Text & text, const Transform & tm) { + SDLContext & ctx = this->mediator.sdl_context; + + if (!text.font.has_value()) { + text.font.emplace(ctx.get_font_from_name(text.font_family)); + } + + ResourceManager & resource_manager = this->mediator.resource_manager; + + if (!text.font.has_value()) { + return; + } + const Asset & font_asset = text.font.value(); + const Font & res = resource_manager.get<Font>(font_asset); +} |