|
|
|
@ -13,6 +13,7 @@ |
|
|
|
|
|
|
|
|
|
// CHANGELOG
|
|
|
|
|
// (minor and older changes stripped away, please see git history for details)
|
|
|
|
|
// 2018-08-25: Vulkan: Fixed mishandled VkSurfaceCapabilitiesKHR::maxImageCount=0 case.
|
|
|
|
|
// 2018-06-22: Inverted the parameters to ImGui_ImplVulkan_RenderDrawData() to be consistent with other bindings.
|
|
|
|
|
// 2018-06-08: Misc: Extracted imgui_impl_vulkan.cpp/.h away from the old combined GLFW+Vulkan example.
|
|
|
|
|
// 2018-06-08: Vulkan: Use draw_data->DisplayPos and draw_data->DisplaySize to setup projection matrix and clipping rectangle.
|
|
|
|
@ -825,6 +826,9 @@ VkPresentModeKHR ImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_d |
|
|
|
|
ImVector<VkPresentModeKHR> avail_modes; |
|
|
|
|
avail_modes.resize((int)avail_count); |
|
|
|
|
vkGetPhysicalDeviceSurfacePresentModesKHR(physical_device, surface, &avail_count, avail_modes.Data); |
|
|
|
|
//for (uint32_t avail_i = 0; avail_i < avail_count; avail_i++)
|
|
|
|
|
// printf("[vulkan] avail_modes[%d] = %d\n", avail_i, avail_modes[avail_i]);
|
|
|
|
|
|
|
|
|
|
for (int request_i = 0; request_i < request_modes_count; request_i++) |
|
|
|
|
for (uint32_t avail_i = 0; avail_i < avail_count; avail_i++) |
|
|
|
|
if (request_modes[request_i] == avail_modes[avail_i]) |
|
|
|
@ -934,9 +938,9 @@ void ImGui_ImplVulkanH_CreateWindowDataSwapChainAndFramebuffer(VkPhysicalDevice |
|
|
|
|
VkSurfaceCapabilitiesKHR cap; |
|
|
|
|
err = vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device, wd->Surface, &cap); |
|
|
|
|
check_vk_result(err); |
|
|
|
|
if (info.minImageCount < cap.minImageCount) |
|
|
|
|
if (info.minImageCount < cap.minImageCount) |
|
|
|
|
info.minImageCount = cap.minImageCount; |
|
|
|
|
else if (info.minImageCount > cap.maxImageCount) |
|
|
|
|
else if (cap.maxImageCount != 0 && info.minImageCount > cap.maxImageCount) |
|
|
|
|
info.minImageCount = cap.maxImageCount; |
|
|
|
|
|
|
|
|
|
if (cap.currentExtent.width == 0xffffffff) |
|
|
|
|