From 63bcd54e0e0ea64cfef5950568b4253d5dae5c1e Mon Sep 17 00:00:00 2001 From: heavydemon21 Date: Sun, 8 Dec 2024 14:29:25 +0100 Subject: removed singleton from SDLContext, problem now is cannot call functionalities in the constructor sprite and animator and texture because it can only be filled at rendersystem call --- src/crepe/system/RenderSystem.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'src/crepe/system/RenderSystem.cpp') diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp index 26f2c85..d81d8dd 100644 --- a/src/crepe/system/RenderSystem.cpp +++ b/src/crepe/system/RenderSystem.cpp @@ -11,6 +11,9 @@ #include "../api/Transform.h" #include "../facade/SDLContext.h" #include "../manager/ComponentManager.h" +#include "api/Texture.h" +#include "manager/ResourceManager.h" +#include "util/Log.h" #include "RenderSystem.h" @@ -62,6 +65,7 @@ RefVector RenderSystem::sort(RefVector & objs) const { } void RenderSystem::update() { + dbg_trace(); this->clear_screen(); this->render(); this->present_screen(); @@ -72,6 +76,8 @@ bool RenderSystem::render_particle(const Sprite & sprite, const SDLContext::Came ComponentManager & mgr = this->mediator.component_manager; SDLContext & ctx = this->mediator.sdl_context; + ResourceManager & resource_manager = this->mediator.resource_manager; + Texture & res = resource_manager.get(sprite.source); vector> emitters = mgr.get_components_by_id(sprite.game_object_id); @@ -88,6 +94,7 @@ bool RenderSystem::render_particle(const Sprite & sprite, const SDLContext::Came ctx.draw(SDLContext::RenderContext{ .sprite = sprite, + .texture = res, .cam = cam, .pos = p.position, .angle = p.angle, @@ -100,8 +107,12 @@ bool RenderSystem::render_particle(const Sprite & sprite, const SDLContext::Came void RenderSystem::render_normal(const Sprite & sprite, const SDLContext::CameraValues & cam, const Transform & tm) { SDLContext & ctx = this->mediator.sdl_context; + ResourceManager & resource_manager = this->mediator.resource_manager; + Texture & res = resource_manager.get(sprite.source); + ctx.draw(SDLContext::RenderContext{ .sprite = sprite, + .texture = res, .cam = cam, .pos = tm.position, .angle = tm.rotation, -- cgit v1.2.3