From: Mikko Rasa Date: Sat, 21 Jan 2023 18:39:20 +0000 (+0200) Subject: Have MeshRenderer's constructor take a GL::Object X-Git-Url: https://git.tdb.fi/?a=commitdiff_plain;h=8f1655e655e42218ffef2885b707ca48d01cab47;p=libs%2Fgame.git Have MeshRenderer's constructor take a GL::Object --- diff --git a/source/gameview/meshrenderer.cpp b/source/gameview/meshrenderer.cpp index c29aeed..34fd6a7 100644 --- a/source/gameview/meshrenderer.cpp +++ b/source/gameview/meshrenderer.cpp @@ -4,10 +4,9 @@ namespace Msp::GameView { -MeshRenderer::MeshRenderer(Game::Handle e, Game::Handle s): +MeshRenderer::MeshRenderer(Game::Handle e, const GL::Object &o): Component(e), - source(s), - object(entity->get_stage().get_resources().get(source->get_object_name())), + object(o), instance(object) { } diff --git a/source/gameview/meshrenderer.h b/source/gameview/meshrenderer.h index f5e9548..2bed53f 100644 --- a/source/gameview/meshrenderer.h +++ b/source/gameview/meshrenderer.h @@ -2,7 +2,6 @@ #define MSP_GAMEVIEW_MESHRENDERER_H_ #include -#include #include #include "mspgameview_api.h" @@ -11,12 +10,11 @@ namespace Msp::GameView { class MSPGAMEVIEW_API MeshRenderer: public Game::Component { private: - Game::Handle source; const GL::Object &object; GL::ObjectInstance instance; public: - MeshRenderer(Game::Handle, Game::Handle); + MeshRenderer(Game::Handle, const GL::Object &); GL::ObjectInstance &get_instance() { return instance; } diff --git a/source/gameview/renderer.cpp b/source/gameview/renderer.cpp index ef8f995..cef857d 100644 --- a/source/gameview/renderer.cpp +++ b/source/gameview/renderer.cpp @@ -39,7 +39,8 @@ void Renderer::entity_created(const Game::Events::EntityCreated &event) if(mesh_source && !mesh_renderer) { auto i = lower_bound_member(entities, event.entity, &RenderedEntity::entity); - i = entities.emplace(i, event.entity, Game::Owned(event.entity, mesh_source)); + const GL::Object &object = stage.get_resources().get(mesh_source->get_object_name()); + i = entities.emplace(i, entity, Game::Owned(entity, object)); scene.add(i->mesh_renderer->get_instance()); } }