diff --git a/include/renderer_vk/renderer_vk.hpp b/include/renderer_vk/renderer_vk.hpp index 36ad17b3..0e98213c 100644 --- a/include/renderer_vk/renderer_vk.hpp +++ b/include/renderer_vk/renderer_vk.hpp @@ -8,6 +8,8 @@ class RendererVK final : public Renderer { vk::PhysicalDevice physicalDevice = {}; vk::UniqueDevice device = {}; + vk::UniqueSurfaceKHR surface = {}; + vk::UniqueDebugUtilsMessengerEXT debugMessenger; public: diff --git a/src/core/renderer_vk/renderer_vk.cpp b/src/core/renderer_vk/renderer_vk.cpp index c3c642e3..304ab73b 100644 --- a/src/core/renderer_vk/renderer_vk.cpp +++ b/src/core/renderer_vk/renderer_vk.cpp @@ -35,7 +35,7 @@ void RendererVK::initGraphicsContext(SDL_Window* window) { #if defined(__APPLE__) VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME, #endif - VK_EXT_DEBUG_UTILS_EXTENSION_NAME, + VK_EXT_DEBUG_UTILS_EXTENSION_NAME, }); #if defined(__APPLE__) @@ -131,8 +131,11 @@ void RendererVK::initGraphicsContext(SDL_Window* window) { // Initialize device-specific function pointers VULKAN_HPP_DEFAULT_DISPATCHER.init(device.get()); - VkSurfaceKHR surface; - SDL_Vulkan_CreateSurface(window, instance.get(), &surface); + if (VkSurfaceKHR newSurface; SDL_Vulkan_CreateSurface(window, instance.get(), &newSurface)) { + surface.reset(newSurface); + } else { + Helpers::warn("Error creating Vulkan surface"); + } } void RendererVK::clearBuffer(u32 startAddress, u32 endAddress, u32 value, u32 control) {} diff --git a/src/emulator.cpp b/src/emulator.cpp index 26780852..438f4b52 100644 --- a/src/emulator.cpp +++ b/src/emulator.cpp @@ -57,7 +57,7 @@ Emulator::Emulator() window = SDL_CreateWindow("Alber", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_VULKAN); if (window == nullptr) { - // Helpers::panic("Window creation failed: %s", SDL_GetError()); + Helpers::warn("Window creation failed: %s", SDL_GetError()); } } #endif