summaryrefslogtreecommitdiffstats
path: root/src/vksetup.h
diff options
context:
space:
mode:
authorgrm <grm@eyesin.space>2026-03-14 02:29:15 +0200
committergrm <grm@eyesin.space>2026-03-14 02:29:15 +0200
commit650e5afde271d22b3653832daf339e1bd09a10d6 (patch)
treecc5e536b0150de1109daa43a055547d2266e60dd /src/vksetup.h
parent20e64711ce2a09b657fb79d59cb824e9e34d2b07 (diff)
downloadcgame-650e5afde271d22b3653832daf339e1bd09a10d6.tar.gz
cgame-650e5afde271d22b3653832daf339e1bd09a10d6.tar.bz2
cgame-650e5afde271d22b3653832daf339e1bd09a10d6.zip
Migrate to imgui 1.92.6 and SDL3HEADmaster
Diffstat (limited to 'src/vksetup.h')
-rw-r--r--src/vksetup.h40
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");