From 38a1e10cac1663d3d9e55800bb82903fce4b4cc0 Mon Sep 17 00:00:00 2001
From: Joseph Walton-Rivers <joseph@walton-rivers.uk>
Date: Sat, 23 Apr 2022 11:18:57 +0100
Subject: [PATCH] seperate the service API stuff into it's own function to
 improve reablity

---
 demo/demo/main.cpp | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/demo/demo/main.cpp b/demo/demo/main.cpp
index 8a03ad9..30aadf5 100644
--- a/demo/demo/main.cpp
+++ b/demo/demo/main.cpp
@@ -69,19 +69,23 @@ static void test_atlas_api() {
 	auto *atlas = fggl::gfx::ImageAtlas<char>::pack(images);
 }
 
-int main(int argc, const char* argv[]) {
-    fggl::App app( "fggl-demo" );
-
-    // FIXME: janky API(s)
-    auto& locator = fggl::util::ServiceLocator::instance();
+static void setupServiceLocators(fggl::util::ServiceLocator& locator) {
+	// FIXME: janky API(s)
 	auto inputs = locator.supply<fggl::input::Input>(std::make_shared<fggl::input::Input>());
 	auto storage = locator.supply<fggl::data::Storage>(std::make_shared<fggl::data::Storage>());
 
 	locator.supply<fggl::gui::FontLibrary>(std::make_shared<fggl::gui::FontLibrary>());
 	locator.supply<fggl::ecs3::TypeRegistry>(std::make_shared<fggl::ecs3::TypeRegistry>());
+}
+
+int main(int argc, const char* argv[]) {
+    fggl::App app( "fggl-demo" );
+
+	auto& locator = fggl::util::ServiceLocator::instance();
+	setupServiceLocators(locator);
 
     // Would be nice to not take args like this, it messes with lifetimes
-    auto& windowing = app.use<fggl::gfx::ecsGlfwModule>(inputs);
+    auto& windowing = app.use<fggl::gfx::ecsGlfwModule>(locator.get<fggl::input::Input>());
 
     // -- should not be our problem - this is a broken api
     auto window = windowing.createWindow("Demo Game");
-- 
GitLab