#include <msp/gl/sequence.h>
#include <msp/gl/simplescene.h>
#include <msp/gl/view.h>
+#include "mspgameview_api.h"
namespace Msp::GameView {
-class Renderer: public Game::System
+class MeshRenderer;
+
+class MSPGAMEVIEW_API Renderer: public Game::System
{
private:
+ struct RenderedEntity
+ {
+ Game::Handle<Game::Entity> entity;
+ Game::Owned<MeshRenderer> mesh_renderer;
+ };
+
GL::View &view;
Game::EventObserver event_observer;
+ std::vector<RenderedEntity> entities;
GL::SimpleScene scene;
Game::Handle<Game::Camera> active_camera;
GL::Camera gl_camera;
~Renderer();
private:
+ void entity_created(const Game::Events::EntityCreated &);
+ void entity_destroyed(const Game::Events::EntityDestroyed &);
void camera_changed(const Game::Events::CameraChanged &);
public: