add function for checking swapchain
This commit is contained in:
parent
5c2a3ab5ef
commit
65ac576cb0
14
vulkan.d
14
vulkan.d
@ -2719,6 +2719,20 @@ CreateSwapchain(Vulkan* vk)
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
CheckAndRecreateSwapchain(Vulkan* vk)
|
||||||
|
{
|
||||||
|
VkResult result = vkGetSwapchainStatusKHR(vk.device, vk.swapchain);
|
||||||
|
if (result == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
|
{
|
||||||
|
RecreateSwapchain(vk);
|
||||||
|
}
|
||||||
|
else if (result != VK_SUBOPTIMAL_KHR)
|
||||||
|
{
|
||||||
|
VkCheckA("BeginFrame failure: vkAcquireNextImageKHR error", result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
RecreateSwapchain(Vulkan* vk)
|
RecreateSwapchain(Vulkan* vk)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -66,6 +66,7 @@ PFN_vkCreateImage vkCreateImage = null;
|
|||||||
PFN_vkCreateImageView vkCreateImageView = null;
|
PFN_vkCreateImageView vkCreateImageView = null;
|
||||||
PFN_vkCreateBufferView vkCreateBufferView = null;
|
PFN_vkCreateBufferView vkCreateBufferView = null;
|
||||||
PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = null;
|
PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = null;
|
||||||
|
PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = null;
|
||||||
PFN_vkGetDeviceQueue vkGetDeviceQueue = null;
|
PFN_vkGetDeviceQueue vkGetDeviceQueue = null;
|
||||||
PFN_vkCreateSemaphore vkCreateSemaphore = null;
|
PFN_vkCreateSemaphore vkCreateSemaphore = null;
|
||||||
PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = null;
|
PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = null;
|
||||||
@ -169,6 +170,7 @@ LoadDeviceFunctions(Vulkan* vk)
|
|||||||
vkQueueSubmit2 = cast(PFN_vkQueueSubmit2KHR)vkGetDeviceProcAddr(vk.device, "vkQueueSubmit2KHR");
|
vkQueueSubmit2 = cast(PFN_vkQueueSubmit2KHR)vkGetDeviceProcAddr(vk.device, "vkQueueSubmit2KHR");
|
||||||
vkCreateBufferView = cast(PFN_vkCreateBufferView)vkGetDeviceProcAddr(vk.device, "vkCreateBufferView");
|
vkCreateBufferView = cast(PFN_vkCreateBufferView)vkGetDeviceProcAddr(vk.device, "vkCreateBufferView");
|
||||||
vkGetSwapchainImagesKHR = cast(PFN_vkGetSwapchainImagesKHR)vkGetDeviceProcAddr(vk.device, "vkGetSwapchainImagesKHR");
|
vkGetSwapchainImagesKHR = cast(PFN_vkGetSwapchainImagesKHR)vkGetDeviceProcAddr(vk.device, "vkGetSwapchainImagesKHR");
|
||||||
|
vkGetSwapchainStatusKHR = cast(PFN_vkGetSwapchainStatusKHR)vkGetDeviceProcAddr(vk.device, "vkGetSwapchainStatusKHR");
|
||||||
vkGetDeviceQueue = cast(PFN_vkGetDeviceQueue)vkGetDeviceProcAddr(vk.device, "vkGetDeviceQueue");
|
vkGetDeviceQueue = cast(PFN_vkGetDeviceQueue)vkGetDeviceProcAddr(vk.device, "vkGetDeviceQueue");
|
||||||
vkCreateSemaphore = cast(PFN_vkCreateSemaphore)vkGetDeviceProcAddr(vk.device, "vkCreateSemaphore");
|
vkCreateSemaphore = cast(PFN_vkCreateSemaphore)vkGetDeviceProcAddr(vk.device, "vkCreateSemaphore");
|
||||||
vkAllocateCommandBuffers = cast(PFN_vkAllocateCommandBuffers)vkGetDeviceProcAddr(vk.device, "vkAllocateCommandBuffers");
|
vkAllocateCommandBuffers = cast(PFN_vkAllocateCommandBuffers)vkGetDeviceProcAddr(vk.device, "vkAllocateCommandBuffers");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user