|
| VulkanCommandBuffer (const VulkanQueue &queue, bool begin_recording=false, bool is_primary=true) |
|
| VulkanCommandBuffer (const VulkanCommandBuffer &other)=delete |
|
| VulkanCommandBuffer (VulkanCommandBuffer &&other) noexcept=delete |
|
VulkanCommandBuffer & | operator= (const VulkanCommandBuffer &other)=delete |
|
VulkanCommandBuffer & | operator= (VulkanCommandBuffer &&other) noexcept=delete |
|
void | begin () const override |
| Sets the command buffer to recording state, allowing it to receive commands that should be transmitted to the CommandQueue.
|
|
void | begin (const VulkanRenderPass &render_pass) const |
| Begins the command buffer as a secondary command buffer that inherits the state of renderPass .
|
|
void | end () const override |
| Ends the recording of the command buffer.
|
|
bool | isRecording () const noexcept override |
| Checks if the command buffer is recording.
|
|
bool | isSecondary () const noexcept override |
| Checks if the command buffer is a secondary command buffer.
|
|
void | transfer (IVulkanBuffer &source, IVulkanBuffer &target, unsigned source_element, unsigned target_element, unsigned elements) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (IVulkanImage &source, IVulkanBuffer &target, unsigned first_subresource, unsigned target_element, unsigned subresources) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (IVulkanBuffer &source, IVulkanImage &target, unsigned source_element, unsigned first_subresource, unsigned elements) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (IVulkanImage &source, IVulkanImage &target, unsigned source_subresource, unsigned target_subresource, unsigned subresources) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IVulkanBuffer > source, IVulkanBuffer &target, unsigned source_element, unsigned target_element, unsigned elements) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IVulkanBuffer > source, IVulkanImage &target, unsigned source_element, unsigned first_subresource, unsigned elements) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IVulkanImage > source, IVulkanImage &target, unsigned first_subresource, unsigned target_element, unsigned subresources) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IVulkanImage > source, IVulkanBuffer &target, unsigned first_subresource, unsigned target_element, unsigned subresources) const override |
| Performs a buffer to buffer transfer from source to target .
|
|
void | use (const VulkanPipelineState &pipeline) const noexcept override |
| Sets the pipeline to be used for subsequent draw calls.
|
|
void | bind (const VulkanDescriptorSet &descriptor_set) const override |
| Sets the pipeline to be used for subsequent draw calls.
|
|
void | bind (const VulkanDescriptorSet &descriptor_set, const VulkanPipelineState &pipeline) const noexcept override |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
void | bind (const IVulkanIndexBuffer &index_buffer) const noexcept override |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
void | bind (const IVulkanVertexBuffer &vertex_buffer) const noexcept override |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
void | draw (unsigned vertices, unsigned instances, unsigned first_vertex, unsigned first_instance) const noexcept override |
| Draw a number of vertices from the currently bound vertex buffer.
|
|
void | draw (const IVulkanVertexBuffer &vertex_buffer, unsigned instances, unsigned first_vertex, unsigned first_instance) const noexcept override |
| Draw a number of vertices from the currently bound vertex buffer.
|
|
void | drawIndexed (unsigned indices, unsigned instances, unsigned first_index, int vertex_offset, unsigned first_instance) const noexcept override |
| Draws the currently bound vertex buffer with a set of indices from the currently bound index buffer.
|
|
void | drawIndexed (const IVulkanIndexBuffer &index_buffer, unsigned instances, unsigned first_index, int vertex_offset, unsigned first_instance) const noexcept override |
| Draws the currently bound vertex buffer with a set of indices from the currently bound index buffer.
|
|
void | drawIndexed (const IVulkanVertexBuffer &vertex_buffer, const IVulkanIndexBuffer &index_buffer, unsigned instances, unsigned first_index, int vertex_offset, unsigned first_instance) const noexcept override |
| Draws the currently bound vertex buffer with a set of indices from the currently bound index buffer.
|
|
void | dispatch () const noexcept override |
| Executes a compute shader.
|
|
void | execute (std::shared_ptr< const VulkanCommandBuffer > command_buffer) const override |
| Executes a secondary command buffer.
|
|
void | execute (const std::vector< std::shared_ptr< const VulkanCommandBuffer > > &command_buffers) const override |
| Executes a secondary command buffer.
|
|
void | pushConstants (const VulkanPushConstantsLayout &layout, const void *const memory) const noexcept override |
| Pushes a block of memory into the push constants backing memory.
|
|
void | setViewport (const IViewport *viewport) const noexcept override |
| Sets the viewport to use for subsequent draw calls.
|
|
void | setViewports (std::span< const IViewport * > viewports) const noexcept override |
| Sets the viewports to use for subsequent draw calls.
|
|
void | setScissor (const IScissor *scissor) const noexcept override |
| Sets the scissor to use for subsequent draw calls.
|
|
void | setScissors (std::span< const IScissor * > scissors) const noexcept override |
| Sets the scissors to use for subsequent draw calls.
|
|
void | setBlendFactors (const math::Vector4< float > &blend_factors) const noexcept override |
| Sets the blend factors to use for subsequent draw calls.
|
|
void | setStencilRef (unsigned stencil_ref) const noexcept override |
| Sets the stencil reference value to use for subsequent draw calls.
|
|
void | releaseSharedState () const override |
| Called by the parent command queue to signal that the command buffer should release it's shared state.
|
|
Public Member Functions inherited from spark::render::CommandBuffer< VulkanCommandBuffer, IVulkanBuffer, IVulkanVertexBuffer, IVulkanIndexBuffer, IVulkanImage, VulkanPipelineState > |
virtual void | transfer (buffer_type &source, buffer_type &target, unsigned source_element, unsigned target_element, unsigned elements) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (image_type &source, buffer_type &target, unsigned first_subresource, unsigned target_element, unsigned subresources) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (buffer_type &source, image_type &target, unsigned source_element, unsigned first_subresource, unsigned elements) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (image_type &source, image_type &target, unsigned source_subresource, unsigned target_subresource, unsigned subresources) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (std::shared_ptr< buffer_type > source, buffer_type &target, unsigned source_element, unsigned target_element, unsigned elements) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (std::shared_ptr< buffer_type > source, image_type &target, unsigned source_element, unsigned first_subresource, unsigned elements) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (std::shared_ptr< image_type > source, image_type &target, unsigned first_subresource, unsigned target_element, unsigned subresources) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | transfer (std::shared_ptr< image_type > source, buffer_type &target, unsigned int first_subresource, unsigned int target_element, unsigned int subresources) const=0 |
| Performs a buffer to buffer transfer from source to target .
|
|
virtual void | use (const pipeline_type &pipeline) const noexcept=0 |
| Sets the pipeline to be used for subsequent draw calls.
|
|
virtual void | bind (const descriptor_set_type &descriptor_set) const=0 |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
virtual void | bind (const descriptor_set_type &descriptor_set, const pipeline_type &pipeline) const noexcept=0 |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
virtual void | bind (const index_buffer_type &index_buffer) const noexcept=0 |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
virtual void | bind (const vertex_buffer_type &vertex_buffer) const noexcept=0 |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
virtual void | draw (const vertex_buffer_type &vertex_buffer, unsigned instances, unsigned first_vertex, unsigned first_instance) const noexcept=0 |
| Draw a number of vertices from the currently bound vertex buffer.
|
|
virtual void | drawIndexed (const index_buffer_type &index_buffer, unsigned instances, unsigned first_index, int vertex_offset, unsigned first_instance) const noexcept=0 |
| Draws the currently bound vertex buffer with a set of indices from the currently bound index buffer.
|
|
virtual void | drawIndexed (const vertex_buffer_type &vertex_buffer, const index_buffer_type &index_buffer, unsigned instances, unsigned first_index, int vertex_offset, unsigned first_instance) const noexcept=0 |
| Draws the currently bound vertex buffer with a set of indices from the currently bound index buffer.
|
|
virtual void | execute (std::shared_ptr< const command_buffer_type > command_buffer) const=0 |
| Executes a secondary command buffer.
|
|
virtual void | execute (const std::vector< std::shared_ptr< const command_buffer_type > > &command_buffers) const=0 |
| Executes a secondary command buffer.
|
|
virtual void | pushConstants (const push_constants_layout_type &layout, const void *const memory) const noexcept=0 |
| Pushes a block of memory into the push constants backing memory.
|
|
Public Member Functions inherited from spark::render::ICommandBuffer |
void | transfer (IBuffer &source, IBuffer &target, unsigned int source_element=0, unsigned int target_element=0, unsigned int elements=1) const |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IBuffer > source, IBuffer &target, unsigned int source_element=0, unsigned int target_element=0, unsigned int elements=1) const |
| Performs a buffer to buffer transfer from source to target .
|
|
void | transfer (IBuffer &source, IImage &target, unsigned int source_element=0, unsigned int first_subresource=0, unsigned int elements=1) const |
| Performs a buffer to image transfer from source to target .
|
|
void | transfer (std::shared_ptr< IBuffer > source, IImage &target, unsigned int source_element=0, unsigned int first_subresource=0, unsigned int elements=1) const |
| Performs a buffer to image transfer from source to target .
|
|
void | transfer (IImage &source, IImage &target, unsigned int source_subresource=0, unsigned int target_subresource=0, unsigned int subresources=1) const |
| Performs an image to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IImage > source, IImage &target, unsigned int source_subresource=0, unsigned int target_subresource=0, unsigned int subresources=1) const |
| Performs an image to buffer transfer from source to target .
|
|
void | transfer (IImage &source, IBuffer &target, unsigned int first_subresource=0, unsigned int target_element=0, unsigned int subresources=1) const |
| Performs an image to buffer transfer from source to target .
|
|
void | transfer (std::shared_ptr< IImage > source, IBuffer &target, unsigned int first_subresource=0, unsigned int target_element=0, unsigned int subresources=1) const |
| Performs an image to buffer transfer from source to target .
|
|
void | use (const IPipeline &pipeline) const noexcept |
| Sets the pipeline to be used for subsequent draw calls.
|
|
void | bind (const IDescriptorSet &descriptor_set) const |
| Binds the descriptor_set to the last pipeline used by the command buffer.
|
|
void | bind (const IDescriptorSet &descriptor_set, const IPipeline &pipeline) const noexcept |
| Binds the descriptor_set to the pipeline .
|
|
void | bind (const IVertexBuffer &vertex_buffer) const noexcept |
| Binds the vertex_buffer to the pipeline.
|
|
void | bind (const IIndexBuffer &index_buffer) const noexcept |
| Binds the index_buffer to the pipeline.
|
|
void | draw (unsigned int vertices, unsigned int instances=1, unsigned int first_vertex=0, unsigned int first_instance=0) const noexcept |
| Draw a number of vertices from the currently bound vertex buffer.
|
|
void | draw (const IVertexBuffer &vertex_buffer, unsigned int instances=1, unsigned int first_vertex=0, unsigned int first_instance=0) const noexcept |
| Draw all vertices from the provided IVertexBuffer in vertex_buffer .
|
|
void | drawIndexed (unsigned int indices, unsigned int instances=1, unsigned int first_index=0, int vertex_offset=0, unsigned int first_instance=0) const noexcept |
| Draws the currently bound vertex buffer with a set of indices from the currently bound index buffer.
|
|
void | drawIndexed (const IIndexBuffer &index_buffer, unsigned int instances=1, unsigned int first_index=0, int vertex_offset=0, unsigned int first_instance=0) const noexcept |
| Draws the currently bound IVertexBuffer using the provided IIndexBuffer in index_buffer .
|
|
void | drawIndexed (const IVertexBuffer &vertex_buffer, const IIndexBuffer &index_buffer, unsigned int instances=1, unsigned int first_index=0, int vertex_offset=0, unsigned int first_instance=0) const noexcept |
| Draws the currently bound IVertexBuffer using the provided IIndexBuffer in index_buffer .
|
|
void | execute (std::shared_ptr< const ICommandBuffer > command_buffer) const |
| Executes a secondary command buffer.
|
|
void | execute (const std::vector< std::shared_ptr< const ICommandBuffer > > &command_buffers) const |
| Executes a series of secondary command buffers/bundles.
|
|
void | pushConstants (const IPushConstantsLayout &layout, const void *const memory) const noexcept |
| Pushes a block of memory into the push constants backing memory.
|
|
virtual void | setStencilRef (unsigned int stencil_ref) const noexcept=0 |
| Sets the stencil reference value to use for subsequent draw calls.
|
|
| Resource (VkCommandBuffer handle) noexcept |
| Initializes the managed resource with the given handle.
|
|
| Resource (const Resource &other)=delete |
|
| Resource (Resource &&other) noexcept=delete |
|
Resource & | operator= (const Resource &other)=delete |
|
Resource & | operator= (Resource &&other) noexcept=delete |
|
const VkCommandBuffer & | handle () const final |
| Gets the managed resource handle.
|
|