From d0b2ca8d260ec2a47a81c375579f2f73d826c0df Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Sun, 4 Jan 2026 13:55:05 +0000 Subject: [PATCH] feat: Simplify service registration in ServiceBasedApp by using template parameters --- src/app/service_based_app.cpp | 55 ++++++++++++++++------------------- 1 file changed, 25 insertions(+), 30 deletions(-) diff --git a/src/app/service_based_app.cpp b/src/app/service_based_app.cpp index 2765d0d..dcc11d3 100644 --- a/src/app/service_based_app.cpp +++ b/src/app/service_based_app.cpp @@ -121,62 +121,57 @@ void ServiceBasedApp::RegisterServices() { registry_.RegisterService(eventBus); // Configuration service - auto configService = std::make_shared(); - registry_.RegisterService(configService); + registry_.RegisterService(); // Window service - auto windowService = std::make_shared(eventBus); - registry_.RegisterService(windowService); + registry_.RegisterService(eventBus); // Input service - auto inputService = std::make_shared(eventBus); - registry_.RegisterService(inputService); + registry_.RegisterService(eventBus); // Vulkan device service - auto deviceService = std::make_shared(); - registry_.RegisterService(deviceService); + registry_.RegisterService(); // Swapchain service - auto swapchainService = std::make_shared(deviceService, eventBus); - registry_.RegisterService(swapchainService); + registry_.RegisterService( + registry_.GetService(), eventBus); // Pipeline service - auto pipelineService = std::make_shared(deviceService); - registry_.RegisterService(pipelineService); + registry_.RegisterService( + registry_.GetService()); // Buffer service - auto bufferService = std::make_shared(deviceService); - registry_.RegisterService(bufferService); + registry_.RegisterService( + registry_.GetService()); // Render command service - auto renderCommandService = std::make_shared( - deviceService, swapchainService); - registry_.RegisterService(renderCommandService); + registry_.RegisterService( + registry_.GetService(), + registry_.GetService()); // Graphics service (facade) - auto graphicsService = std::make_shared( - deviceService, swapchainService, pipelineService, bufferService, renderCommandService); - registry_.RegisterService(graphicsService); + registry_.RegisterService( + registry_.GetService(), + registry_.GetService(), + registry_.GetService(), + registry_.GetService(), + registry_.GetService()); // Script service - auto scriptService = std::make_shared(scriptPath_); - registry_.RegisterService(scriptService); + registry_.RegisterService(scriptPath_); // Scene service - auto sceneService = std::make_shared(scriptService); - registry_.RegisterService(sceneService); + registry_.RegisterService( + registry_.GetService()); // Audio service - auto audioService = std::make_shared(); - registry_.RegisterService(audioService); + registry_.RegisterService(); // GUI service - auto guiService = std::make_shared(); - registry_.RegisterService(guiService); + registry_.RegisterService(); // Physics service - auto physicsService = std::make_shared(); - registry_.RegisterService(physicsService); + registry_.RegisterService(); } } // namespace sdl3cpp::app \ No newline at end of file