vulkan +glfw 创建Win32Surface
//创建失败
glfwInit();
glfwInitHint(GLFW_CLIENT_API,GLFW_NO_API);
context = glfwCreateWindow(1200,750,"vulkantest",nullptr,nullptr);
VkResult result = glfwCreateWindowSurface(instance,context,nullptr,&surface) ;
// result 的值是-1000000001 -- VK_ERROR_NATIVE_WINDOW_IN_USE_KHR
//surface = 0
//创建成功
glfwInit();
glfwInitHint(GLFW_CLIENT_API,GLFW_NO_API);
context = glfwCreateWindow(1200,750,"vulkantest",nullptr,nullptr);
HWND hWnd =glfwGetWin32Window(context);
Win32SurfaceCreateInfoKHR info;
info.setHinstance (instance).setHwnd(hWnd);
surface = context.createWin32SurfaceKHR(info);
//surface 创建成功
其他代码完全相同的情况下 glfwCreateWindowSurface 失败 , createWin32SurfaceKHR成功, 就想问下 能推断失败的原因吗
原因可能是一个windows窗口已有一个交换链的情况下,你还想创建一个交换链就会报这个错。因为只允许一个窗口一个。
所以要么销毁之前的交换链,要么将现在这个提交给之前的交换链的参数中
应该不是这个原因, 如果真是存在一个交换链, 那么使用createWin32SurfaceKHR 创建应该也不能成功才是