SpiecsEngine
 
Loading...
Searching...
No Matches

◆ AddInputAttachment() [2/2]

template<typename T >
Renderer::RendererPassBuilder & Spices::Renderer::RendererPassBuilder::AddInputAttachment ( const std::string & attachmentName,
const TextureType & type,
T func )

Instance a VkAttachmentDescription.

Write in data.

Parameters
[inattachmentDescription VkAttachmentDescription.

Instance a VkClearValue.

Instance a RendererResourceCreateInfo.

Instance a VkAttachmentReference.

Definition at line 2978 of file Renderer.h.

2983 {
2985
2989 VkAttachmentDescription attachmentDescription{};
2990 attachmentDescription.format = m_Renderer->m_Device->GetSwapChainSupport().format.format;
2991 attachmentDescription.samples = VK_SAMPLE_COUNT_1_BIT;
2992 attachmentDescription.loadOp = VK_ATTACHMENT_LOAD_OP_LOAD;
2993 attachmentDescription.storeOp = VK_ATTACHMENT_STORE_OP_STORE;
2994 attachmentDescription.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
2995 attachmentDescription.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
2996 attachmentDescription.initialLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
2997 attachmentDescription.finalLayout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
2998
3003 func(attachmentDescription);
3004
3008 VkClearValue clearValue{};
3009 clearValue.color = { 0.0f, 0.0f, 0.0f, 1.0f };
3010
3014 RendererResourceCreateInfo Info;
3015 Info.name = attachmentName;
3016 Info.type = type;
3017 Info.description = attachmentDescription;
3018 Info.width = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.width;
3019 Info.height = m_Renderer->m_Device->GetSwapChainSupport().surfaceSize.height;
3020
3021 const VkImageView& view = m_Renderer->m_RendererResourcePool->AccessResource(Info)->imageView;
3022
3023 const uint32_t index = m_Renderer->m_Pass->AddAttachment(attachmentName, attachmentDescription, clearValue, 1, view); /*todo: layer config */
3024
3028 VkAttachmentReference attachmentRef{};
3029 attachmentRef.attachment = index;
3030 attachmentRef.layout = attachmentDescription.finalLayout;
3031
3032 m_HandledRendererSubPass->AddInputAttachmentReference(attachmentRef);
3033
3034 return *this;
3035 }
#define SPICES_PROFILE_ZONE
std::shared_ptr< RendererSubPass > m_HandledRendererSubPass
Handled Sub pass.
Definition Renderer.h:512
Renderer * m_Renderer
Specific Renderer pointer. Passed while this class instanced.
Definition Renderer.h:507
std::shared_ptr< RendererPass > m_Pass
RendererPass.
Definition Renderer.h:2012
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 Spices::RendererResourceCreateInfo::height, m_Renderer, Spices::RendererResourceCreateInfo::name, Spices::RendererResourceCreateInfo::type, and Spices::RendererResourceCreateInfo::width.