namespace Msp::GameView {
-MeshRenderer::MeshRenderer(Game::Handle<Game::Entity> e, Game::Handle<Game::MeshSource> s):
+MeshRenderer::MeshRenderer(Game::Handle<Game::Entity> e, const GL::Object &o):
Component(e),
- source(s),
- object(entity->get_stage().get_resources().get<GL::Object>(source->get_object_name())),
+ object(o),
instance(object)
{ }
#define MSP_GAMEVIEW_MESHRENDERER_H_
#include <msp/game/component.h>
-#include <msp/game/meshsource.h>
#include <msp/gl/objectinstance.h>
#include "mspgameview_api.h"
class MSPGAMEVIEW_API MeshRenderer: public Game::Component
{
private:
- Game::Handle<Game::MeshSource> source;
const GL::Object &object;
GL::ObjectInstance instance;
public:
- MeshRenderer(Game::Handle<Game::Entity>, Game::Handle<Game::MeshSource>);
+ MeshRenderer(Game::Handle<Game::Entity>, const GL::Object &);
GL::ObjectInstance &get_instance() { return instance; }
if(mesh_source && !mesh_renderer)
{
auto i = lower_bound_member(entities, event.entity, &RenderedEntity::entity);
- i = entities.emplace(i, event.entity, Game::Owned<MeshRenderer>(event.entity, mesh_source));
+ const GL::Object &object = stage.get_resources().get<GL::Object>(mesh_source->get_object_name());
+ i = entities.emplace(i, entity, Game::Owned<MeshRenderer>(entity, object));
scene.add(i->mesh_renderer->get_instance());
}
}