vk_blit_screen: Add public CreateFramebuffer method
This commit is contained in:
		@@ -278,6 +278,20 @@ VkSemaphore VKBlitScreen::DrawToSwapchain(const Tegra::FramebufferConfig& frameb
 | 
			
		||||
    return Draw(framebuffer, *framebuffers[image_index], layout, render_area, use_accelerated);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
vk::Framebuffer VKBlitScreen::CreateFramebuffer(const VkImageView& image_view, VkExtent2D extent) {
 | 
			
		||||
    return device.GetLogical().CreateFramebuffer(VkFramebufferCreateInfo{
 | 
			
		||||
        .sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
 | 
			
		||||
        .pNext = nullptr,
 | 
			
		||||
        .flags = 0,
 | 
			
		||||
        .renderPass = *renderpass,
 | 
			
		||||
        .attachmentCount = 1,
 | 
			
		||||
        .pAttachments = &image_view,
 | 
			
		||||
        .width = extent.width,
 | 
			
		||||
        .height = extent.height,
 | 
			
		||||
        .layers = 1,
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void VKBlitScreen::CreateStaticResources() {
 | 
			
		||||
    CreateShaders();
 | 
			
		||||
    CreateSemaphores();
 | 
			
		||||
@@ -621,22 +635,9 @@ void VKBlitScreen::CreateFramebuffers() {
 | 
			
		||||
    const VkExtent2D size{swapchain.GetSize()};
 | 
			
		||||
    framebuffers.resize(image_count);
 | 
			
		||||
 | 
			
		||||
    VkFramebufferCreateInfo ci{
 | 
			
		||||
        .sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
 | 
			
		||||
        .pNext = nullptr,
 | 
			
		||||
        .flags = 0,
 | 
			
		||||
        .renderPass = *renderpass,
 | 
			
		||||
        .attachmentCount = 1,
 | 
			
		||||
        .pAttachments = nullptr,
 | 
			
		||||
        .width = size.width,
 | 
			
		||||
        .height = size.height,
 | 
			
		||||
        .layers = 1,
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    for (std::size_t i = 0; i < image_count; ++i) {
 | 
			
		||||
        const VkImageView image_view{swapchain.GetImageViewIndex(i)};
 | 
			
		||||
        ci.pAttachments = &image_view;
 | 
			
		||||
        framebuffers[i] = device.GetLogical().CreateFramebuffer(ci);
 | 
			
		||||
        framebuffers[i] = CreateFramebuffer(image_view, size);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -63,6 +63,9 @@ public:
 | 
			
		||||
    [[nodiscard]] VkSemaphore DrawToSwapchain(const Tegra::FramebufferConfig& framebuffer,
 | 
			
		||||
                                              bool use_accelerated);
 | 
			
		||||
 | 
			
		||||
    [[nodiscard]] vk::Framebuffer CreateFramebuffer(const VkImageView& image_view,
 | 
			
		||||
                                                    VkExtent2D extent);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    struct BufferData;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user