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