diff options
author | Liam <byteslice@airmail.cc> | 2024-01-18 17:44:13 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2024-01-31 17:27:21 +0100 |
commit | 9bdf09bd768f73073e9d1cbc65febfd7f7955db3 (patch) | |
tree | 7d29d4c4f61f4c0272056af2370a2c75a769f7d6 /src/video_core/renderer_vulkan/present/window_adapt_pass.h | |
parent | renderer_opengl: split up blit screen resources into antialias and window adapt passes (diff) | |
download | yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.tar yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.tar.gz yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.tar.bz2 yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.tar.lz yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.tar.xz yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.tar.zst yuzu-9bdf09bd768f73073e9d1cbc65febfd7f7955db3.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/present/window_adapt_pass.h')
-rw-r--r-- | src/video_core/renderer_vulkan/present/window_adapt_pass.h | 29 |
1 files changed, 8 insertions, 21 deletions
diff --git a/src/video_core/renderer_vulkan/present/window_adapt_pass.h b/src/video_core/renderer_vulkan/present/window_adapt_pass.h index 5309233a2..0e2edfc31 100644 --- a/src/video_core/renderer_vulkan/present/window_adapt_pass.h +++ b/src/video_core/renderer_vulkan/present/window_adapt_pass.h @@ -3,6 +3,8 @@ #pragma once +#include <list> + #include "common/math_util.h" #include "video_core/vulkan_common/vulkan_wrapper.h" @@ -18,54 +20,39 @@ namespace Vulkan { class Device; struct Frame; -class MemoryAllocator; +class Layer; class Scheduler; +class RasterizerVulkan; class WindowAdaptPass final { public: - explicit WindowAdaptPass(const Device& device, const MemoryAllocator& memory_allocator, - size_t num_images, VkFormat frame_format, vk::Sampler&& sampler, + explicit WindowAdaptPass(const Device& device, VkFormat frame_format, vk::Sampler&& sampler, vk::ShaderModule&& fragment_shader); ~WindowAdaptPass(); - void Draw(Scheduler& scheduler, size_t image_index, VkImageView src_image_view, - VkExtent2D src_image_extent, const Common::Rectangle<f32>& crop_rect, + void Draw(RasterizerVulkan& rasterizer, Scheduler& scheduler, size_t image_index, + std::list<Layer>& layers, std::span<const Tegra::FramebufferConfig> configs, const Layout::FramebufferLayout& layout, Frame* dst); + VkDescriptorSetLayout GetDescriptorSetLayout(); VkRenderPass GetRenderPass(); private: - struct BufferData; - - void SetUniformData(BufferData& data, const Layout::FramebufferLayout& layout) const; - void SetVertexData(BufferData& data, const Layout::FramebufferLayout& layout, - const Common::Rectangle<f32>& crop_rect) const; - void UpdateDescriptorSet(size_t image_index, VkImageView image_view); - void ConfigureLayout(size_t image_index, VkImageView image_view, - const Layout::FramebufferLayout& layout, - const Common::Rectangle<f32>& crop_rect); - - void CreateDescriptorPool(size_t num_images); void CreateDescriptorSetLayout(); - void CreateDescriptorSets(size_t num_images); void CreatePipelineLayout(); void CreateVertexShader(); void CreateRenderPass(VkFormat frame_format); void CreatePipeline(); - void CreateBuffer(const MemoryAllocator& memory_allocator); private: const Device& device; - vk::DescriptorPool descriptor_pool; vk::DescriptorSetLayout descriptor_set_layout; - vk::DescriptorSets descriptor_sets; vk::PipelineLayout pipeline_layout; vk::Sampler sampler; vk::ShaderModule vertex_shader; vk::ShaderModule fragment_shader; vk::RenderPass render_pass; vk::Pipeline pipeline; - vk::Buffer buffer; }; } // namespace Vulkan |