FCT
载入中...
搜索中...
未找到
VK_PassResource.h
浏览该文件的文档.
1//
2// Created by Administrator on 2025/4/14.
3//
4#include "./PassResource.h"
5#ifndef VK_PASSRESOURCE_H
6#define VK_PASSRESOURCE_H
7namespace FCT
8{
10 public:
12 void addConstBuffer(RHI::ConstBuffer* buffer) override;
13 void addSampler(Sampler* sampler, SamplerElement element) override;
14 void addTexture(Image* texture, TextureElement element) override;
15 void setTexture(Image* texture, TextureElement element) override;
17 void markDescriptorSetDirty(uint32_t frameIdx);
18 bool createDescriptorSetsAndLayouts(uint32_t frameIdx, std::vector<vk::DescriptorSetLayout>& outLayouts,
19 std::vector<vk::DescriptorSet>& outDescriptorSets);
20 void create() override;
21 void updateDescriptorSetsIfNeeded(uint32_t frameIdx);
22 vk::DescriptorSet getDescriptorSet(uint32_t frameIdx, uint32_t setIndex);
24 bool recreateDescriptorSetsIfNeeded(uint32_t frameIdx);
25 void update() override;
26 void bind(RHI::CommandBuffer* cmdBuf, RHI::Pipeline* pipeline) override;
28 protected:
30 std::vector<std::vector<vk::DescriptorSet>> m_descriptorSets;
31 std::vector<uint8_t> m_dirtyFlags;
32 std::vector<uint8_t> m_needRecreate;
33 std::vector<vk::DescriptorSetLayout> m_descriptorSetLayouts;
34 std::unordered_map<TextureElement,size_t> m_textureViewHashes;
35 };
36}
37#endif //VK_PASSRESOURCE_H
bool createDescriptorSetsAndLayouts(uint32_t frameIdx, std::vector< vk::DescriptorSetLayout > &outLayouts, std::vector< vk::DescriptorSet > &outDescriptorSets)
std::vector< uint8_t > m_needRecreate
vk::DescriptorSet getDescriptorSet(uint32_t frameIdx, uint32_t setIndex)
std::unordered_map< TextureElement, size_t > m_textureViewHashes
void updateDescriptorSetsIfNeeded(uint32_t frameIdx)
VK_PassResource(VK_Context *ctx)
void bind(RHI::CommandBuffer *cmdBuf, RHI::Pipeline *pipeline) override
void setTexture(Image *texture, TextureElement element) override
void markDescriptorSetDirty(uint32_t frameIdx)
std::vector< vk::DescriptorSetLayout > m_descriptorSetLayouts
std::vector< uint8_t > m_dirtyFlags
void addConstBuffer(RHI::ConstBuffer *buffer) override
bool recreateDescriptorSetsIfNeeded(uint32_t frameIdx)
std::vector< std::vector< vk::DescriptorSet > > m_descriptorSets
void addTexture(Image *texture, TextureElement element) override
void addSampler(Sampler *sampler, SamplerElement element) override