1 #ifndef MSP_GAMEVIEW_RENDERER_H_
2 #define MSP_GAMEVIEW_RENDERER_H_
4 #include <msp/game/camera.h>
5 #include <msp/game/eventobserver.h>
6 #include <msp/game/events.h>
7 #include <msp/game/owned.h>
8 #include <msp/game/system.h>
9 #include <msp/gl/camera.h>
10 #include <msp/gl/sequence.h>
11 #include <msp/gl/simplescene.h>
12 #include <msp/gl/view.h>
14 namespace Msp::GameView {
18 class Renderer: public Game::System
23 Game::Handle<Game::Entity> entity;
24 Game::Owned<MeshRenderer> mesh_renderer;
28 Game::EventObserver event_observer;
29 std::vector<RenderedEntity> entities;
30 GL::SimpleScene scene;
31 Game::Handle<Game::Camera> active_camera;
33 std::string current_seq_name;
34 std::unique_ptr<GL::Sequence> sequence;
37 Renderer(Game::Stage &, GL::View &);
41 void entity_created(const Game::Events::EntityCreated &);
42 void entity_destroyed(const Game::Events::EntityDestroyed &);
43 void camera_changed(const Game::Events::CameraChanged &);
46 void tick(Time::TimeDelta) override;
49 } // namespace Msp::GameView