mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-11-03 09:14:36 +00:00
Properly upgrade a window to Vulkan when creating a Vulkan renderer
This commit is contained in:
@@ -1726,7 +1726,6 @@ static VkResult VULKAN_CreateDeviceResources(SDL_Renderer *renderer, SDL_Propert
|
||||
VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME,
|
||||
};
|
||||
VULKAN_RenderData *rendererData = (VULKAN_RenderData *)renderer->internal;
|
||||
SDL_VideoDevice *device = SDL_GetVideoDevice();
|
||||
VkResult result = VK_SUCCESS;
|
||||
PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = NULL;
|
||||
bool createDebug = SDL_GetHintBoolean(SDL_HINT_RENDER_VULKAN_DEBUG, false);
|
||||
@@ -1736,7 +1735,7 @@ static VkResult VULKAN_CreateDeviceResources(SDL_Renderer *renderer, SDL_Propert
|
||||
SDL_LogDebug(SDL_LOG_CATEGORY_RENDER, "SDL_Vulkan_LoadLibrary failed" );
|
||||
return VK_ERROR_UNKNOWN;
|
||||
}
|
||||
vkGetInstanceProcAddr = device ? (PFN_vkGetInstanceProcAddr)device->vulkan_config.vkGetInstanceProcAddr : NULL;
|
||||
vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr)SDL_Vulkan_GetVkGetInstanceProcAddr();
|
||||
if(!vkGetInstanceProcAddr) {
|
||||
SDL_LogDebug(SDL_LOG_CATEGORY_RENDER, "vkGetInstanceProcAddr is NULL" );
|
||||
return VK_ERROR_UNKNOWN;
|
||||
@@ -1811,7 +1810,7 @@ static VkResult VULKAN_CreateDeviceResources(SDL_Renderer *renderer, SDL_Propert
|
||||
if (rendererData->surface) {
|
||||
rendererData->surface_external = true;
|
||||
} else {
|
||||
if (!device->Vulkan_CreateSurface || !device->Vulkan_CreateSurface(device, renderer->window, rendererData->instance, NULL, &rendererData->surface)) {
|
||||
if (!SDL_Vulkan_CreateSurface(renderer->window, rendererData->instance, NULL, &rendererData->surface)) {
|
||||
VULKAN_DestroyAll(renderer);
|
||||
SET_ERROR_MESSAGE("Vulkan_CreateSurface() failed");
|
||||
return VK_ERROR_UNKNOWN;
|
||||
|
||||
Reference in New Issue
Block a user