SpiecsEngine
 
Loading...
Searching...
No Matches

◆ AddStorageTexture()

Renderer::DescriptorSetBuilder & Spices::Renderer::DescriptorSetBuilder::AddStorageTexture ( uint32_t set,
uint32_t binding,
VkShaderStageFlags stageFlags,
const std::vector< std::string > & textureNames,
VkFormat format = VK_FORMAT_R8G8B8A8_UNORM,
TextureType type = TextureType::Texture2D )

Add the storage texture set binding to descriptor set layout.

Parameters
[in]setWhich set this texture wil use.
[in]bindingWhich binding this texture wil use.
[in]stageFlagsWhich buffer stage this buffer will use.
[in]textureNamesAll Texture's Name.
[in]formatTexture Format, used in init.
[in]typeTexture's type, used in init.
Returns
Returns this reference.

fill in imageInfos.

Registy descriptor and add binging to it.

fill in imageInfos.

Registy descriptor and add binging to it.

Definition at line 1661 of file Renderer.cpp.

1669 {
1671
1675 for (size_t i = 0; i < textureNames.size(); i++)
1676 {
1677 RendererResourceCreateInfo info;
1678 info.name = textureNames[i];
1679 info.type = type;
1680 info.width = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.width;
1681 info.height = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.height;
1682 info.description.samples = VK_SAMPLE_COUNT_1_BIT;
1683 info.description.format = format;
1684 info.usage = VK_IMAGE_USAGE_STORAGE_BIT;
1685
1686 VkDescriptorImageInfo* imageInfo = m_Renderer->m_RendererResourcePool->AccessResource(info);
1687 imageInfo->imageLayout = VK_IMAGE_LAYOUT_GENERAL;
1688
1689 m_ImageInfos[set][binding].push_back(*imageInfo);
1690 }
1691
1695 const auto descriptorSet = DescriptorSetManager::Registry(m_DescriptorSetId, set);
1696 descriptorSet->AddBinding(binding, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, stageFlags, static_cast<uint32_t>(textureNames.size()));
1697
1698 return *this;
1699 }
#define SPICES_PROFILE_ZONE
static std::shared_ptr< VulkanDescriptorSet > Registry(const String2 &name, uint32_t set)
Registry a VulkanDescriptorSet, create one if find none.
std::unordered_map< uint32_t, std::unordered_map< uint32_t, std::vector< VkDescriptorImageInfo > > > m_ImageInfos
DescriptorSet Image type binging info. [set] - [binding] - [info].
Definition Renderer.h:742
String2 m_DescriptorSetId
The Descriptor Set Manager ID descriptorSet belongs to.
Definition Renderer.h:730
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
Definition Renderer.h:720
std::shared_ptr< RendererResourcePool > m_RendererResourcePool
RendererResourcePool, Passed by instanced.
Definition Renderer.h:2007
std::shared_ptr< VulkanDevice > m_Device
VulkanDevice , Passed by instanced.
Definition Renderer.h:2002

References m_DescriptorSetId.