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