]> git.tdb.fi Git - libs/game.git/blobdiff - source/gameview/renderer.cpp
Convert components to buffered where appropriate
[libs/game.git] / source / gameview / renderer.cpp
index 068aa09221a6647021e51df8c3cfb5f6e095c72b..5ddfec18fa3b3ae5d136e1def3c0dd5a092d2035 100644 (file)
@@ -15,13 +15,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);
 }