attempt at fixing resizing issues
This commit is contained in:
parent
5813c70ef9
commit
e3050a8ec9
@ -266,11 +266,8 @@ b32 _FinishFrame()
|
||||
};
|
||||
|
||||
result = vkQueuePresentKHR(renderer.vk.queues.graphics_queue, &present_info);
|
||||
if (result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_SUBOPTIMAL_KHR || renderer.resize_requested)
|
||||
{
|
||||
renderer.resize_requested = false;
|
||||
if (result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_SUBOPTIMAL_KHR || renderer.pending.resized)
|
||||
ResizeSwapchain();
|
||||
}
|
||||
else if (result != VK_SUCCESS)
|
||||
{
|
||||
Printf("vkQueuePresentKHR failure: %s", VkResultStr(result));
|
||||
@ -285,9 +282,9 @@ b32 _FinishFrame()
|
||||
|
||||
static void _SetRenderResolution(u32 x, u32 y)
|
||||
{
|
||||
renderer.vk.sc.extent.width = x;
|
||||
renderer.vk.sc.extent.height = y;
|
||||
renderer.resize_requested = true;
|
||||
renderer.pending.render_width = x;
|
||||
renderer.pending.render_height = y;
|
||||
renderer.pending.resized = true;
|
||||
}
|
||||
|
||||
|
||||
@ -308,10 +305,13 @@ static void ResizeSwapchain()
|
||||
|
||||
DestroyDrawImages();
|
||||
|
||||
renderer.vk.sc.extent.width = renderer.pending.render_width;
|
||||
renderer.vk.sc.extent.height = renderer.pending.render_height;
|
||||
|
||||
Assert(CreateSwapchain(), "Unable to recreate swapchain");
|
||||
Assert(CreateDrawImages(), "Unable to recreate draw images");
|
||||
|
||||
renderer.resize_requested = false;
|
||||
renderer.pending.resized = false;
|
||||
}
|
||||
|
||||
// UTIL
|
||||
|
||||
@ -251,10 +251,16 @@ typedef struct {
|
||||
#endif
|
||||
} Vulkan_t;
|
||||
|
||||
typedef struct {
|
||||
u16 render_width;
|
||||
u16 render_height;
|
||||
b8 resized;
|
||||
} PendingUpdates;
|
||||
|
||||
typedef struct {
|
||||
Vulkan_t vk;
|
||||
FrameState frame_state;
|
||||
b32 resize_requested;
|
||||
PendingUpdates pending;
|
||||
Arena *arena;
|
||||
Arena *perm_arena;
|
||||
} Renderer_t;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user