summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/present/window_adapt_pass.h
diff options
context:
space:
mode:
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.h29
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