parent
9e22fe7b0d
commit
d6b61a0952
3 changed files with 66 additions and 0 deletions
|
|
@ -686,11 +686,33 @@ public:
|
||||||
updateUniformBuffers();
|
updateUniformBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
If the window has been resized, we need to recreate the storage image and it's descriptor
|
||||||
|
*/
|
||||||
|
void handleResize()
|
||||||
|
{
|
||||||
|
// Delete allocated resources
|
||||||
|
vkDestroyImageView(device, storageImage.view, nullptr);
|
||||||
|
vkDestroyImage(device, storageImage.image, nullptr);
|
||||||
|
vkFreeMemory(device, storageImage.memory, nullptr);
|
||||||
|
// Recreate image
|
||||||
|
createStorageImage();
|
||||||
|
// Update descriptor
|
||||||
|
VkDescriptorImageInfo storageImageDescriptor{ VK_NULL_HANDLE, storageImage.view, VK_IMAGE_LAYOUT_GENERAL };
|
||||||
|
VkWriteDescriptorSet resultImageWrite = vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, &storageImageDescriptor);
|
||||||
|
vkUpdateDescriptorSets(device, 1, &resultImageWrite, 0, VK_NULL_HANDLE);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Command buffer generation
|
Command buffer generation
|
||||||
*/
|
*/
|
||||||
void buildCommandBuffers()
|
void buildCommandBuffers()
|
||||||
{
|
{
|
||||||
|
if (resized)
|
||||||
|
{
|
||||||
|
handleResize();
|
||||||
|
}
|
||||||
|
|
||||||
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
|
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
|
||||||
|
|
||||||
VkImageSubresourceRange subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
|
VkImageSubresourceRange subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
|
||||||
|
|
|
||||||
|
|
@ -680,11 +680,33 @@ public:
|
||||||
updateUniformBuffers();
|
updateUniformBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
If the window has been resized, we need to recreate the storage image and it's descriptor
|
||||||
|
*/
|
||||||
|
void handleResize()
|
||||||
|
{
|
||||||
|
// Delete allocated resources
|
||||||
|
vkDestroyImageView(device, storageImage.view, nullptr);
|
||||||
|
vkDestroyImage(device, storageImage.image, nullptr);
|
||||||
|
vkFreeMemory(device, storageImage.memory, nullptr);
|
||||||
|
// Recreate image
|
||||||
|
createStorageImage();
|
||||||
|
// Update descriptor
|
||||||
|
VkDescriptorImageInfo storageImageDescriptor{ VK_NULL_HANDLE, storageImage.view, VK_IMAGE_LAYOUT_GENERAL };
|
||||||
|
VkWriteDescriptorSet resultImageWrite = vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, &storageImageDescriptor);
|
||||||
|
vkUpdateDescriptorSets(device, 1, &resultImageWrite, 0, VK_NULL_HANDLE);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Command buffer generation
|
Command buffer generation
|
||||||
*/
|
*/
|
||||||
void buildCommandBuffers()
|
void buildCommandBuffers()
|
||||||
{
|
{
|
||||||
|
if (resized)
|
||||||
|
{
|
||||||
|
handleResize();
|
||||||
|
}
|
||||||
|
|
||||||
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
|
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
|
||||||
|
|
||||||
VkImageSubresourceRange subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
|
VkImageSubresourceRange subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
|
||||||
|
|
|
||||||
|
|
@ -679,11 +679,33 @@ public:
|
||||||
updateUniformBuffers();
|
updateUniformBuffers();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
If the window has been resized, we need to recreate the storage image and it's descriptor
|
||||||
|
*/
|
||||||
|
void handleResize()
|
||||||
|
{
|
||||||
|
// Delete allocated resources
|
||||||
|
vkDestroyImageView(device, storageImage.view, nullptr);
|
||||||
|
vkDestroyImage(device, storageImage.image, nullptr);
|
||||||
|
vkFreeMemory(device, storageImage.memory, nullptr);
|
||||||
|
// Recreate image
|
||||||
|
createStorageImage();
|
||||||
|
// Update descriptor
|
||||||
|
VkDescriptorImageInfo storageImageDescriptor{ VK_NULL_HANDLE, storageImage.view, VK_IMAGE_LAYOUT_GENERAL };
|
||||||
|
VkWriteDescriptorSet resultImageWrite = vks::initializers::writeDescriptorSet(descriptorSet, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1, &storageImageDescriptor);
|
||||||
|
vkUpdateDescriptorSets(device, 1, &resultImageWrite, 0, VK_NULL_HANDLE);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Command buffer generation
|
Command buffer generation
|
||||||
*/
|
*/
|
||||||
void buildCommandBuffers()
|
void buildCommandBuffers()
|
||||||
{
|
{
|
||||||
|
if (resized)
|
||||||
|
{
|
||||||
|
handleResize();
|
||||||
|
}
|
||||||
|
|
||||||
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
|
VkCommandBufferBeginInfo cmdBufInfo = vks::initializers::commandBufferBeginInfo();
|
||||||
|
|
||||||
VkImageSubresourceRange subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
|
VkImageSubresourceRange subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT, 0, 1, 0, 1 };
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue