Я пытаюсь получить простой тест работы Вулкана. Я слежу за учебниками LunarG, но столкнулся с проблемой, что vkCreateWin32SurfaceKHR
ничего не делает. А именно, surface
не записывается. Функция vkCreateWin32SurfaceKHR
возвращает 0, поэтому он не сообщает об ошибке. Любая помощь приветствуется.vkCreateWin32SurfaceKHR не записывается на поверхность
// create window
sdlWindow = SDL_CreateWindow(APP_SHORT_NAME, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, 0);
struct SDL_SysWMinfo wmInfo;
SDL_VERSION(&wmInfo.version);
SDL_GetWindowWMInfo(sdlWindow, &wmInfo);
hWnd = wmInfo.info.win.window;
hInstance = GetModuleHandle(NULL);
// create a surface attached to the window
VkWin32SurfaceCreateInfoKHR surface_info = {};
surface_info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
surface_info.pNext = NULL;
surface_info.hinstance = hInstance;
surface_info.hwnd = hWnd;
sanity(!vkCreateWin32SurfaceKHR(inst, &surface_info, NULL, &surface));
«* А именно, поверхность не записывается в. *« Я не вижу, где вы пишете поверхность. –
Также попробуйте включить уровни проверки. Если функция возвращает допустимый код ошибки, вы также получаете сообщение с помощью слоев проверки, в которых намекает, почему произошла ошибка. SDK даже содержит специальный слой для проверки swapchain. –
@NicolBolas Я должен уточнить, что я имею в виду, написав на 'surface', последним параметром функции является выходной параметр. Значение в '& surface' должно быть перезаписано. – Joe