调用SDL_Vulkan_GetInstanceExtensions报"Invalid Window"错误,求解决思路
SDL3调用SDL_Vulkan_GetInstanceExtensions返回"Invalid Window"错误排查
我一直尝试解决这个问题但毫无头绪。程序流程为初始化SDL3、加载默认库、创建带有SDL_WINDOW_VULKAN标识的窗口,随后查询所需扩展。调用SDL_Vulkan_GetInstanceExtensions时,SDL_GetError返回"Invalid Window"错误。我确认窗口不为NULL且能正常显示,但仍无法解决问题。已尝试printf调试、检查SDL错误信息、排查链接器、查阅文档等方法,均未找到解决方案,附上代码寻求帮助:
#include <stdlib.h> #include <stdio.h> #include <vulkan/vulkan.h> #include <cglm/cglm.h> #include <vk_mem_alloc.h> #include <time.h> #define SDL_MAIN_HANDLED #include <SDL3/SDL.h> #include <SDL3/SDL_vulkan.h> typedef struct Window_T { SDL_Window* window; VkExtent2D size; char* name; VkSurfaceKHR surface; } Window; int main(void) { printf("Hello, World!\n"); SDL_Init(SDL_INIT_VIDEO); printf("ERROR INIT: %s\n", SDL_GetError()); SDL_Vulkan_LoadLibrary(NULL); printf("ERROR LOAD: %s\n", SDL_GetError()); Window window; //createWindow(&window, 800, 600, "Hello from SDL3"); window.window = SDL_CreateWindow("Hello, SDL3!", 800, 600, SDL_WINDOW_VULKAN); printf("ERROR MAKE: %s\n", SDL_GetError()); Uint32 sdl_required_extension_count; const char* const* sdl_required_extensions = SDL_Vulkan_GetInstanceExtensions(&sdl_required_extension_count); printf("SDL_REQUIRED_EXTENSION_COUNT: %d\n", sdl_required_extension_count); printf("ERROR: %s\n", SDL_GetError()); SDL_DestroyWindow(window.window); return 0; }
内容的提问来源于stack exchange,提问作者Ozone
相关产品推荐
相关产品推荐

