]> git.tdb.fi Git - libs/game.git/blobdiff - source/gameview/renderer.cpp
Add an include which is now necessary
[libs/game.git] / source / gameview / renderer.cpp
index 068aa09221a6647021e51df8c3cfb5f6e095c72b..ef8f99567c03e221adddfec167803b3719955e74 100644 (file)
@@ -4,6 +4,7 @@
 #include <msp/game/stage.h>
 #include <msp/game/transform.h>
 #include <msp/gl/sequencebuilder.h>
+#include <msp/gl/sequencetemplate.h>
 #include "meshrenderer.h"
 
 using namespace std;
@@ -15,13 +16,15 @@ Renderer::Renderer(Game::Stage &s, GL::View &v):
        view(v),
        event_observer(s.get_event_bus())
 {
+       declare_dependency<Game::Transform>(READ_FRESH);
+       declare_dependency<Game::Camera>(READ_FRESH);
+       declare_dependency<MeshRenderer>(WRITE);
+
        event_observer.observe<Game::Events::EntityCreated>([this](auto &e){ entity_created(e); });
        event_observer.observe<Game::Events::EntityDestroyed>([this](auto &e){ entity_destroyed(e); });
        event_observer.observe<Game::Events::CameraChanged>([this](auto &e){ camera_changed(e); });
 
-       stage.iterate_objects<Game::Entity>([this](auto &e){ entity_created({ Game::Handle<Game::Entity>::from_object(&e) }); });
-       if(Game::Handle<Game::Camera> ac = stage.get_active_camera())
-               camera_changed({ ac });
+       stage.synthesize_initial_events(event_observer);
 
        view.set_camera(&gl_camera);
 }