5#ifndef VK_PASSRESOURCE_H
6#define VK_PASSRESOURCE_H
19 std::vector<vk::DescriptorSet>& outDescriptorSets);
bool createDescriptorSetsAndLayouts(uint32_t frameIdx, std::vector< vk::DescriptorSetLayout > &outLayouts, std::vector< vk::DescriptorSet > &outDescriptorSets)
void markAllDescriptorSetsNeedRecreate()
std::vector< uint8_t > m_needRecreate
void markAllDescriptorSetsDirty()
vk::DescriptorSet getDescriptorSet(uint32_t frameIdx, uint32_t setIndex)
std::unordered_map< TextureElement, size_t > m_textureViewHashes
void checkTextureViewHash()
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