Fixed bug in Tutorial04 in which command buffer was submitted to queue but used framebuffer that was already destroyed.

This commit is contained in:
plapins
2016-05-12 12:09:53 +02:00
parent 68cbd74336
commit 49a1cac9d2
3 changed files with 28 additions and 18 deletions

View File

@@ -49,12 +49,14 @@ namespace ApiWithoutSecrets {
// Struct containing data used during rendering process //
// ************************************************************ //
struct RenderingResourcesData {
VkCommandBuffer CommandBuffer;
VkSemaphore ImageAvailableSemaphore;
VkSemaphore FinishedRenderingSemaphore;
VkFence Fence;
VkFramebuffer Framebuffer;
VkCommandBuffer CommandBuffer;
VkSemaphore ImageAvailableSemaphore;
VkSemaphore FinishedRenderingSemaphore;
VkFence Fence;
RenderingResourcesData() :
Framebuffer( VK_NULL_HANDLE ),
CommandBuffer( VK_NULL_HANDLE ),
ImageAvailableSemaphore( VK_NULL_HANDLE ),
FinishedRenderingSemaphore( VK_NULL_HANDLE ),
@@ -114,8 +116,8 @@ namespace ApiWithoutSecrets {
bool CreateFences();
bool AllocateBufferMemory( VkBuffer buffer, VkDeviceMemory *memory );
bool CommitMemoryChanges( VkBuffer buffer, VkDeviceSize size );
bool RecordCommandBuffer( VkCommandBuffer command_buffer, VkImage image, VkImageView image_view );
Tools::AutoDeleter<VkFramebuffer, PFN_vkDestroyFramebuffer> CreateFramebuffer( VkImageView image_view );
bool RecordCommandBuffer( VkCommandBuffer command_buffer, const ImageParameters &image_parameters, VkFramebuffer &framebuffer );
bool CreateFramebuffer( VkFramebuffer &framebuffer, VkImageView image_view );
void ChildClear() override;
bool ChildOnWindowSizeChanged() override;