.. _program_listing_file_Source_Azura_RenderSystem_Inc_Vulkan_VkScopedRenderPass.h: Program Listing for File VkScopedRenderPass.h ============================================= |exhale_lsh| :ref:`Return to documentation for file ` (``Source\Azura\RenderSystem\Inc\Vulkan\VkScopedRenderPass.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include #include "Log/Log.h" #include "Generic/GenericTypes.h" #include "VkScopedImage.h" #include "VkShader.h" namespace Azura { namespace Vulkan { class VkScopedSwapChain; class VkScopedRenderPass { public: VkScopedRenderPass(U32 idx, Memory::Allocator& mainAllocator, Log logger); void Create(VkDevice device, VkCommandPool commandPool, const PipelinePassCreateInfo& createInfo, const Containers::Vector& pipelineBuffers, const Containers::Vector& pipelineBufferImages, const Containers::Vector& allShaders, const VkScopedSwapChain& swapChain); void CreateForSwapChain(VkDevice device, VkCommandPool commandPool, const PipelinePassCreateInfo& createInfo, const Containers::Vector& allShaders, const VkScopedSwapChain& swapChain); VkRenderPass GetRenderPass() const; VkFramebuffer GetFrameBuffer(U32 idx) const; VkCommandBuffer GetCommandBuffer(U32 idx) const; const Containers::Vector& GetPassInputs() const; U32 GetFrameBufferCount() const; VkSemaphore GetRenderSemaphore() const; VkDescriptorSetLayout GetDescriptorSetLayout() const; U32 GetId() const; U32 GetDescriptorSetId() const; void SetDescriptorSetId(U32 id); void Begin(const VkScopedSwapChain& swapChain) const; void End() const; const Containers::Vector& GetShaderStageInfo() const; const Containers::Vector& GetColorBlendAttachments() const; void CleanUp(VkDevice device, VkCommandPool commandPool) const; private: void CreateDescriptorSetLayout(VkDevice device, const PipelinePassCreateInfo& createInfo); Log log_VulkanRenderSystem; U32 m_id; U32 m_descriptorSet{0}; U32 m_numAttachments{0}; VkSemaphore m_beginRenderSemaphore{}; VkDescriptorSetLayout m_descriptorSetLayout; Containers::Vector m_frameBuffers; Containers::Vector m_commandBuffers; Containers::Vector m_inputAttachments; Containers::Vector m_colorBlendAttachments; Containers::Vector m_clearValues; VkRenderPass m_renderPass{}; Containers::Vector m_shaderPipelineInfos; }; } // namespace Vulkan } // namespace Azura