]> git.tdb.fi Git - libs/game.git/blobdiff - source/gameview/renderer.h
Decorate things which constitute the public API of the library
[libs/game.git] / source / gameview / renderer.h
index 4e90a7445f9058ad3539bea4e930a1822c2cd56b..ca45b21b7657c113b30ff1ffb3cf86ef4d5f7067 100644 (file)
 #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;
@@ -29,6 +39,8 @@ public:
        ~Renderer();
 
 private:
+       void entity_created(const Game::Events::EntityCreated &);
+       void entity_destroyed(const Game::Events::EntityDestroyed &);
        void camera_changed(const Game::Events::CameraChanged &);
 
 public: