From: Jean-Philippe Bruyère Date: Wed, 8 Aug 2018 07:53:32 +0000 (+0200) Subject: dont exess src or dest texture size for region in copy operation X-Git-Url: https://git.osiis.dedyn.io/?a=commitdiff_plain;h=012ca283a29bca6dd6b828406fe490ff356484f1;p=jp%2Fvkhelpers.git dont exess src or dest texture size for region in copy operation --- diff --git a/src/vkh_presenter.c b/src/vkh_presenter.c index 7f21d05..d50754d 100644 --- a/src/vkh_presenter.c +++ b/src/vkh_presenter.c @@ -23,6 +23,14 @@ #include "vkh_device.h" #include "vkh_image.h" +#ifndef MIN +# define MIN(a,b) (((a) < (b)) ? (a) : (b)) +#endif + +#ifndef MAX +# define MAX(a,b) (((a) > (b)) ? (a) : (b)) +#endif + void _swapchain_create (VkhPresenter r); void _swapchain_destroy (VkhPresenter r); void _init_phy_surface (VkhPresenter r, VkFormat preferedFormat, VkPresentModeKHR presentMode); @@ -100,6 +108,8 @@ bool vkh_presenter_draw (VkhPresenter r) { void vkh_presenter_build_blit_cmd (VkhPresenter r, VkImage blitSource, uint32_t width, uint32_t height){ + uint32_t w = MIN(width, r->width), h = MIN(height, r->height); + for (int32_t i = 0; i < r->imgCount; ++i) { VkImage bltDstImage = r->ScBuffers[i]->image; @@ -119,7 +129,7 @@ void vkh_presenter_build_blit_cmd (VkhPresenter r, VkImage blitSource, uint32_t .dstSubresource = {VK_IMAGE_ASPECT_COLOR_BIT, 0, 0, 1}, .srcOffset = {}, .dstOffset = {0,0,0}, - .extent = {width, height,1}}; + .extent = {w, h,1}}; vkCmdCopyImage(cb, blitSource, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, bltDstImage, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, 1, &cregion);