From f1857fc2d4ddec71b3f0395903f8446cf96b8d0c Mon Sep 17 00:00:00 2001 From: heavydemon21 Date: Tue, 22 Oct 2024 15:37:00 +0200 Subject: fixed everything and can now work with new compiler, example rendering and made it work with component manager --- src/crepe/RenderSystem.cpp | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 src/crepe/RenderSystem.cpp (limited to 'src/crepe/RenderSystem.cpp') 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 +#include +#include + +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> sprites = mgr.get_components_by_type(); + std::vector> transforms = mgr.get_components_by_type(); + + 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(); + +} -- cgit v1.2.3