|
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 (unsigned vertices, unsigned instances, unsigned first_vertex, unsigned first_instance) const noexcept=0 |
| Draw a number of vertices from the currently bound vertex 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 (unsigned indices, 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 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 |
virtual void | begin () const =0 |
| Sets the command buffer to recording state, allowing it to receive commands that should be transmitted to the CommandQueue.
|
|
virtual void | end () const =0 |
| Ends the recording of the command buffer.
|
|
virtual bool | isRecording () const noexcept=0 |
| Checks if the command buffer is recording.
|
|
virtual bool | isSecondary () const noexcept=0 |
| Checks if the command buffer is a secondary command buffer.
|
|
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 .
|
|
virtual void | dispatch () const noexcept=0 |
| Executes a compute shader.
|
|
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 | setViewport (const IViewport *viewport) const noexcept=0 |
| Sets the viewport to use for subsequent draw calls.
|
|
virtual void | setViewports (std::span< const IViewport * > viewports) const noexcept=0 |
| Sets the viewports to use for subsequent draw calls.
|
|
virtual void | setScissor (const IScissor *scissor) const noexcept=0 |
| Sets the scissor to use for subsequent draw calls.
|
|
virtual void | setScissors (std::span< const IScissor * > scissors) const noexcept=0 |
| Sets the scissors to use for subsequent draw calls.
|
|
virtual void | setBlendFactors (const math::Vector4< float > &blend_factors) const noexcept=0 |
| Sets the blend factors to use for subsequent draw calls.
|
|
virtual void | setStencilRef (unsigned int stencil_ref) const noexcept=0 |
| Sets the stencil reference value to use for subsequent draw calls.
|
|
virtual void | releaseSharedState () const =0 |
| Called by the parent command queue to signal that the command buffer should release it's shared state.
|
|
template<typename CommandBufferType, typename BufferType, typename VertexBufferType, typename IndexBufferType, typename ImageType, typename PipelineType>
class spark::render::CommandBuffer< CommandBufferType, BufferType, VertexBufferType, IndexBufferType, ImageType, PipelineType >
- Template Parameters
-
CommandBufferType | Type of the command buffer. (derived from ICommandBuffer) |
BufferType | Type of the buffer. (derived from IBuffer) |
VertexBufferType | Type of the vertex buffer. (derived from IVertexBuffer) |
IndexBufferType | Type of the index buffer. (derived from IIndexBuffer) |
ImageType | Type of the image. (derived from IImage) |
PipelineType | Type of the pipeline. (derived from IPipeline) |