diff options
author | jaroWMR <jarorutjes07@gmail.com> | 2024-10-23 19:57:44 +0200 |
---|---|---|
committer | jaroWMR <jarorutjes07@gmail.com> | 2024-10-23 19:57:44 +0200 |
commit | edbb6c892299e3b7f93638abcc9e55b2cfce2358 (patch) | |
tree | d9c306af19636f5c757397ec1c1a157a93c12f0c /src/crepe/RenderSystem.cpp | |
parent | 1b96c6e3c57b9d1dc5fb02cbd24b625d7f7f5b05 (diff) | |
parent | eaa05e7a981b0f581f5393882e4753d9294a3dba (diff) |
merge with niels/rendering
Diffstat (limited to 'src/crepe/RenderSystem.cpp')
-rw-r--r-- | src/crepe/RenderSystem.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/crepe/RenderSystem.cpp b/src/crepe/RenderSystem.cpp new file mode 100644 index 0000000..6aae3bb --- /dev/null +++ b/src/crepe/RenderSystem.cpp @@ -0,0 +1,41 @@ + + +#include "RenderSystem.h" +#include "ComponentManager.h" +#include "SdlContext.h" +#include "api/Sprite.h" +#include "api/Transform.h" +#include "util/log.h" +#include <cstddef> +#include <functional> +#include <vector> + +using namespace crepe; +using namespace crepe::api; + +RenderSystem::RenderSystem() { dbg_trace(); } + +RenderSystem::~RenderSystem() { dbg_trace(); } + +RenderSystem& RenderSystem::get_instance(){ + static RenderSystem instance; + return instance; +} + +void RenderSystem::update() { + + ComponentManager& mgr = ComponentManager::get_instance(); + + std::vector<std::reference_wrapper<Sprite>> sprites = mgr.get_components_by_type<Sprite>(); + std::vector<std::reference_wrapper<Transform>> transforms = mgr.get_components_by_type<Transform>(); + + SdlContext& render = SdlContext::get_instance(); + render.clear_screen(); + + for (size_t i = 0; i < sprites.size(); ++i) { + render.draw(sprites[i].get(), transforms[i].get()); + } + + render.present_screen(); + +} |