This class helps to bind pipeline and bind buffer. Only instanced during Render(). More...
#include <Renderer.h>
Public Member Functions | |
| RenderBehaveBuilder (Renderer *renderer, uint32_t currentFrame, uint32_t currentImage) | |
| Constructor Function. Bind pipeline and all buffer type descriptor set. | |
| virtual | ~RenderBehaveBuilder ()=default |
| Destructor Function. | |
| virtual std::shared_ptr< RendererSubPass > & | GetStatisticsRendererPass () |
| Get RenderPass in statistics. @reutrn Return RenderPass. | |
| void | Recording (const std::string &caption) const |
| Recording all this behaves does. | |
| void | EndRecording () const |
| End recording all this behaveS does. | |
| std::future< VkCommandBuffer > | Async (std::function< void(const VkCommandBuffer &cmdBuffer)> func) const |
| Async Commands. | |
| void | Await (std::function< void(const VkCommandBuffer &cmdBuffer)> func) const |
| Await Async Commands. | |
| void | Wait (std::future< VkCommandBuffer > &futureCmdBuffer) const |
| Wait for merge secondary commandBuffers. | |
| void | Wait (std::vector< std::future< VkCommandBuffer > > &futureCmdBuffers) const |
| Wait for merge secondary commandBuffer. | |
| virtual void | BindPipeline (const std::string &materialName, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Bind the pipeline created by CreatePipeline(). Called on RenderBehaveBuilder instanced. | |
| virtual void | BindPipeline (VkPipeline pipeline, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Bind the pipeline created by CreatePipeline(). Called on RenderBehaveBuilder instanced. | |
| virtual void | BindPipelineAsync (const std::string &materialName, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Bind the pipeline created by CreatePipeline() Async. Called on RenderBehaveBuilder instanced. | |
| void | SetViewPort (const VkCommandBuffer &cmdBuffer=VK_NULL_HANDLE) const |
| DynamicState Set Viewport and Scissor. | |
| void | SetViewPortAsync () const |
| DynamicState Set Viewport and Scissor Async. | |
| virtual void | BindDescriptorSet (const DescriptorSetInfo &infos, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Binding DescriptorSet with DescriptorSetInfo. For Binding a Renderer DescriptorSet. | |
| virtual void | BindDescriptorSet (const DescriptorSetInfo &infos, const std::string &name, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Binding DescriptorSet with DescriptorSetInfo and name. For Binding a Material DescriptorSet. | |
| virtual void | BindDescriptorSetAsync (const DescriptorSetInfo &infos, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Binding DescriptorSet with DescriptorSetInfo Async. For Binding a Renderer DescriptorSet. | |
| virtual void | BindDescriptorSetAsync (const DescriptorSetInfo &infos, const std::string &name, VkPipelineBindPoint bindPoint=VK_PIPELINE_BIND_POINT_GRAPHICS) |
| Binding DescriptorSet with DescriptorSetInfo and name Async. For Binding a Material DescriptorSet. | |
| void | RunDGC (VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const |
| Run DGC Buffer. | |
| void | RunDGCAsync () const |
| Run DGC Buffer Async. | |
| void | PreprocessDGC_NV (VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const |
| Preprocess Device Generated CommandsBuffer. | |
| void | PreprocessDGCAsync_NV () const |
| Preprocess Device Generated CommandsBuffer Async. | |
| void | ExecuteDGC_NV (const VkCommandBuffer &cmdBuffer=VK_NULL_HANDLE) const |
| Execute Device Generated CommandsBuffer. | |
| void | ExecuteDGCAsync_NV () const |
| Execute Device Generated CommandsBuffer Async. | |
| void | DrawFullScreenTriangle (const VkCommandBuffer &cmdBuffer=VK_NULL_HANDLE) const |
| Draw a Triangle full screen. | |
| void | DrawFullScreenTriangleAsync () const |
| Draw a Triangle full screen Async. | |
| template<typename T , typename F > | |
| void | UpdatePushConstant (F func, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Update local push constant buffer. | |
| template<typename T , typename F > | |
| void | UpdatePushConstantAsync (F func) |
| Update local push constant buffer Async. | |
| template<typename T , typename F > | |
| void | UpdateUniformBuffer (uint32_t set, uint32_t binding, F func) |
| Update a local buffer. | |
| template<typename T , typename F > | |
| void | UpdateStorageBuffer (uint32_t set, uint32_t binding, F func) |
| Update a local buffer. | |
| template<typename T > | |
| void | UpdatePushConstant (void *data, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const |
| Update local push constant buffer. | |
| template<typename T > | |
| void | UpdatePushConstantAsync (void *data) const |
| Update local push constant buffer Async. | |
| void | UpdateUniformBuffer (uint32_t set, uint32_t binding, void *data) const |
| Update a local buffer. | |
| void | UpdateStorageBuffer (uint32_t set, uint32_t binding, void *data, uint64_t size=VK_WHOLE_SIZE, uint64_t offset=0) const |
| Update a local buffer. | |
| void | UpdateStorageBuffer (uint32_t set, uint32_t binding, std::shared_ptr< VulkanBuffer > buffer) const |
| Update a local buffer. | |
| void | UpdateAccelerationStructure (uint32_t set, uint32_t binding, const VkAccelerationStructureKHR &accel) const |
| Update AccelerationStructure in descriptorSet. | |
| virtual void | BeginNextSubPass (const std::string &subPassName) |
| End a preview sub pass and stat next sub pass. | |
| void | BeginNextSubPassAsync (const std::string &subPassName) |
| End a preview sub pass and stat next sub pass. | |
| virtual void | BeginRenderPass () |
| Begin this Renderer's RenderPass. | |
| void | BeginRenderPassAsync () |
| Begin this Renderer's RenderPass Async. | |
| virtual void | EndRenderPass () |
| End this Renderer's RenderPass. | |
| virtual void | AddBarriers (VulkanImage *image, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Image Barrier from compute queue to this graphic queue. | |
| virtual void | ReleaseBarriers (VulkanImage *image, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Image Barrier from this graphic queue to compute queue. | |
| virtual void | InternalBarriers (VulkanImage *image, VkAccessFlags srcAccessMask=VK_ACCESS_SHADER_WRITE_BIT, VkAccessFlags dstAccessMask=VK_ACCESS_SHADER_READ_BIT, VkPipelineStageFlags srcStageMask=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VkPipelineStageFlags dstStageMask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Image Barrier from this queue to this queue. | |
| virtual void | AddBarriers (VkBuffer buffer, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Buffer Barrier from compute queue to this graphic queue. | |
| virtual void | ReleaseBarriers (VkBuffer buffer, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t srcQueueFamilyIndex=VulkanRenderBackend::GetState().m_ComputeQueueFamily, uint32_t dstQueueFamilyIndex=VulkanRenderBackend::GetState().m_GraphicQueueFamily, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Buffer Barrier from this graphic queue to compute queue. | |
| virtual void | InternalBarriers (VkBuffer buffer, VkAccessFlags srcAccessMask=VK_ACCESS_SHADER_WRITE_BIT, VkAccessFlags dstAccessMask=VK_ACCESS_SHADER_READ_BIT, VkPipelineStageFlags srcStageMask=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VkPipelineStageFlags dstStageMask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Buffer Barrier from this queue to this queue. | |
| virtual void | InternalBarriers (VkAccessFlags srcAccessMask=VK_ACCESS_SHADER_WRITE_BIT, VkAccessFlags dstAccessMask=VK_ACCESS_SHADER_READ_BIT, VkPipelineStageFlags srcStageMask=VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, VkPipelineStageFlags dstStageMask=VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) |
| Add a Memory Barrier from this queue to this queue. | |
| void | InternalRegionBarrier (VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkCommandBuffer cmdBuffer=VK_NULL_HANDLE) const |
| Add a memory Barrier. | |
| void | InternalRegionBarrierAsync (VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask) const |
| Add a memory Barrier. | |
| uint32_t | GetSubPassIndex () const |
| Get current subPass index in renderPass. | |
Public Attributes | |
| Renderer * | m_Renderer |
| Specific Renderer pointer. Passed while this class instanced. | |
| uint32_t | m_CurrentFrame |
| Current frame index. Passed while this class instanced. | |
| uint32_t | m_CurrentImage |
| Current frame index. Passed while this class instanced. | |
| uint32_t | m_SubPassIndex = 0 |
| Current subPass Index. | |
| VkCommandBuffer | m_CommandBuffer |
| Current CommandBuffer. | |
| std::shared_ptr< RendererSubPass > | m_HandledSubPass |
| Handled Sub pass. | |
| std::shared_ptr< VulkanDeviceGeneratedCommandsNV > | m_HandledDGCData |
| Current subPass DGCData. | |
This class helps to bind pipeline and bind buffer. Only instanced during Render().
Definition at line 984 of file Renderer.h.