diff options
Diffstat (limited to 'src/vksetup.h')
| -rw-r--r-- | src/vksetup.h | 40 |
1 files changed, 15 insertions, 25 deletions
diff --git a/src/vksetup.h b/src/vksetup.h index 505bdec..a659136 100644 --- a/src/vksetup.h +++ b/src/vksetup.h @@ -38,8 +38,8 @@ #define SDL_MAIN_HANDLED #define VK_USE_PLATFORM_XCB_KHR -#include <SDL2/SDL.h> -#include <SDL2/SDL_vulkan.h> +#include <SDL3/SDL.h> +#include <SDL3/SDL_vulkan.h> #include <vulkan/vulkan.h> #include <vulkan/vk_enum_string_helper.h> // for string_VkResult @@ -348,8 +348,7 @@ _has_stencil_component(VkFormat format) static VkInstance _vks_create_instance(bool validation_layers_toggle, const char* const validation_layers[], - uint32_t validation_layer_count, - SDL_Window* window) + uint32_t validation_layer_count) { if (validation_layers_toggle && !_vks_check_validation_layer_support(validation_layers, @@ -389,37 +388,29 @@ _vks_create_instance(bool validation_layers_toggle, }; uint32_t sdlExtensionCount = 0; - - if (SDL_Vulkan_GetInstanceExtensions(window, &sdlExtensionCount, NULL) == - SDL_FALSE) { + const char* const* sdlExtensionsBase = SDL_Vulkan_GetInstanceExtensions(&sdlExtensionCount); + if (sdlExtensionsBase == NULL) { vk_log(VK_ERROR, "SDL_Vulkan_GetInstanceExtensions failed: %s\n", SDL_GetError()); abort(); } - // make space for debug extenetion + // Copy pointers into a local array so we can append the debug extension + uint32_t totalExtensionCount = sdlExtensionCount; if (validation_layers_toggle) { - sdlExtensionCount++; + totalExtensionCount++; } - - const char* sdlExtensions[sdlExtensionCount]; - - if (SDL_Vulkan_GetInstanceExtensions( - window, &sdlExtensionCount, sdlExtensions) == SDL_FALSE) { - vk_log(VK_ERROR, - "SDL_Vulkan_GetInstanceExtensions failed: %s\n", - SDL_GetError()); - abort(); + const char* sdlExtensions[totalExtensionCount]; + for (uint32_t i = 0; i < sdlExtensionCount; i++) { + sdlExtensions[i] = sdlExtensionsBase[i]; } - - // add debug extenetion if (validation_layers_toggle) { sdlExtensions[sdlExtensionCount] = VK_EXT_DEBUG_UTILS_EXTENSION_NAME; } vk_log(VK_INFO, "The sdl extensions:\n"); - for (uint32_t i = 0; i < sdlExtensionCount; i++) { + for (uint32_t i = 0; i < totalExtensionCount; i++) { vk_log(VK_INFO, "\t%s\n", sdlExtensions[i]); } @@ -1021,12 +1012,11 @@ vks_create_vulkan_context(vks_context* vk) /* Create vulkan instance */ vk->instance = _vks_create_instance(enable_validation_layers, validation_layers, - validation_layer_count, - vk->window); + validation_layer_count); /* Create render surface */ - if (SDL_Vulkan_CreateSurface(vk->window, vk->instance, &vk->surface) == - SDL_FALSE) { + if (SDL_Vulkan_CreateSurface(vk->window, vk->instance, NULL, &vk->surface) == + false) { vk_log(VK_ERROR, "Failed to create surface\n"); } else { vk_log(VK_INFO, "Vulkan surface created\n"); |
