FCT
载入中...
搜索中...
未找到
VK_PassGroup.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/3/26.
3//
4
5#include "./PassGroup.h"
6#ifndef VK_PASSGROUP_H
7#define VK_PASSGROUP_H
8
9namespace FCT
10{
11 class VK_Context;
12 namespace RHI
13 {
22 class VK_PassGroup : public PassGroup {
23 public:
25 //uint32_t getImageIndex(FCT::Image* image);
26 void create();
27 vk::RenderPass getRenderPass() const { return m_renderPass; }
28 uint32_t getPassIndex(Pass* pass);
29 void beginSubmit(CommandBuffer* cmdBuf) override;
30 void endSubmit(CommandBuffer* cmdBuf) override;
31 void nextPass(CommandBuffer* cmdBuf) override;
32 private:
33 void collectSubpasses();
34 void collectAttachments();
35 void collectImageViews();
36 uint32_t toPassForDependencies(Pass* pass);
37 //std::map<FCT::Image*,uint32_t> m_imageIndices;
38 //std::map<uint32_t,AttachmentSlot> m_attachmentSlots;
39 std::map<uint32_t,AttachmentSlot> m_targetAttachments;
40 std::map<Pass*,uint32_t> m_passIndices;
41 std::vector<vk::AttachmentDescription> m_attachments;
42 std::vector<vk::SubpassDescription> m_subpasses;
43 std::vector<vk::ImageView> m_framebufferViews;
45 vk::RenderPassCreateInfo m_createInfo;
46 vk::RenderPass m_renderPass;
48 vk::RenderPassBeginInfo m_beginInfo;
49 vk::FramebufferCreateInfo m_framebufferInfo;
50 //vk::Framebuffer m_framebuffer;
51 std::vector<vk::ClearValue> m_clearValues;
52 std::unordered_map<RHI::CommandBuffer*,vk::Framebuffer> m_framebuffers;
53 std::map<uint32_t, AttachmentSlot> m_depthAttachments;
55
56 //std::vector<FCT::Image*> m_targets;
57 };
58 }
59}
60
61
62#endif //VK_PASSGROUP_H
std::unordered_map< RHI::CommandBuffer *, vk::Framebuffer > m_framebuffers
std::map< Pass *, uint32_t > m_passIndices
uint32_t getPassIndex(Pass *pass)
vk::FramebufferCreateInfo m_framebufferInfo
void nextPass(CommandBuffer *cmdBuf) override
开始下一个pass的 提交
std::vector< vk::SubpassDescription > m_subpasses
std::vector< vk::AttachmentDescription > m_attachments
vk::RenderPass getRenderPass() const
vk::RenderPassBeginInfo m_beginInfo
void beginSubmit(CommandBuffer *cmdBuf) override
vk::RenderPassCreateInfo m_createInfo
std::map< uint32_t, AttachmentSlot > m_depthAttachments
void endSubmit(CommandBuffer *cmdBuf) override
uint32_t toPassForDependencies(Pass *pass)
std::map< uint32_t, AttachmentSlot > m_targetAttachments
std::vector< vk::ImageView > m_framebufferViews
std::vector< vk::ClearValue > m_clearValues
AttachmentSlot(FCT::Image *image, ImageUsage usage, uint32_t slot)