// Create Framebuffer (Note: VkImageView needs to be kept alive!)
int CreateFrameBuffer(VkDevice device, VkImage images, VkRenderPass renderPass, VkImageView* pView, VkFramebuffer* pFrameBuffer)
{
VkResult res;
VkImageViewCreateInfo viewInfo = {};
viewInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
viewInfo.format = VK_FORMAT_B8G8R8A8_UNORM;
viewInfo.image = images;
viewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
viewInfo.components = { VK_COMPONENT_SWIZZLE_R ,VK_COMPONENT_SWIZZLE_G ,VK_COMPONENT_SWIZZLE_B ,VK_COMPONENT_SWIZZLE_A };
viewInfo.subresourceRange = { VK_IMAGE_ASPECT_COLOR_BIT,0,1,0,1 };
VkImageView view;
res = vkCreateImageView(device, &viewInfo, 0, &view);
if (res != VK_SUCCESS)
return res;
*pView = view;
VkFramebufferCreateInfo frameInfo = {};
frameInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
frameInfo.width = 1280;
frameInfo.height = 720;
frameInfo.layers = 1;
frameInfo.renderPass = renderPass;
frameInfo.pAttachments = &view;
frameInfo.attachmentCount = 1;
VkFramebuffer frameBuffer;
res = vkCreateFramebuffer(device, &frameInfo, 0, &frameBuffer);
//vkDestroyImageView(device, view, 0);
*pFrameBuffer = frameBuffer;
return res;
}