diff --git a/src/services/impl/graphics_service.cpp b/src/services/impl/graphics_service.cpp index 5da8588..10cc7cc 100644 --- a/src/services/impl/graphics_service.cpp +++ b/src/services/impl/graphics_service.cpp @@ -54,7 +54,9 @@ void GraphicsService::InitializeDevice(SDL_Window* window, const GraphicsConfig& } // Device service handles device initialization - deviceService_->Initialize(window, config); + deviceService_->Initialize(config.deviceExtensions, config.enableValidationLayers); + deviceService_->CreateSurface(window); + deviceService_->CreateLogicalDevice(); } void GraphicsService::InitializeSwapchain() { diff --git a/src/services/impl/vulkan_device_service.cpp b/src/services/impl/vulkan_device_service.cpp index 8aa4e0a..f530b87 100644 --- a/src/services/impl/vulkan_device_service.cpp +++ b/src/services/impl/vulkan_device_service.cpp @@ -41,7 +41,9 @@ void VulkanDeviceService::CreateSurface(SDL_Window* window) { throw std::invalid_argument("Window cannot be null"); } - CreateSurfaceInternal(window); + if (!SDL_Vulkan_CreateSurface(window, instance_, nullptr, &surface_)) { + throw std::runtime_error("Failed to create Vulkan surface"); + } } void VulkanDeviceService::CreateInstance(const std::vector& requiredExtensions) {