![]() |
Vireo
0.0
Vireo 3D Rendering Hardware Interface
|
A command list (buffer) object
Manual page : Command Lists
Public Member Functions | |
virtual void | begin () const = 0 |
virtual void | end () const = 0 |
virtual void | upload (const Buffer &destination, const void *source) = 0 |
void | upload (const std::shared_ptr< const Buffer > &destination, const void *source) |
virtual void | upload (const std::vector< BufferUploadInfo > &infos) |
virtual void | upload (const Image &destination, const void *source, uint32_t firstMipLevel=0) = 0 |
void | upload (const std::shared_ptr< const Image > &destination, const void *source, const uint32_t firstMipLevel=0) |
virtual void | upload (const std::vector< ImageUploadInfo > &infos) |
void | copy (const std::shared_ptr< Buffer > &source, const std::shared_ptr< const Image > &destination, const uint32_t sourceOffset=0, const uint32_t mipLevel=0, const bool rowPitchAlignment=true) const |
virtual void | copy (const Buffer &source, const Image &destination, uint32_t sourceOffset=0, uint32_t mipLevel=0, bool rowPitchAlignment=true) const = 0 |
virtual void | copy (const std::shared_ptr< Buffer > &source, const std::shared_ptr< Image > &destination, const std::vector< size_t > &sourceOffsets, bool rowPitchAlignment=true) const |
virtual void | copy (const Buffer &source, const Image &destination, const std::vector< size_t > &sourceOffsets, bool rowPitchAlignment=true) const = 0 |
virtual void | copy (const Image &source, const Buffer &destination, uint32_t destinationOffset=0, uint32_t mipLevel=0) const = 0 |
void | copy (const std::shared_ptr< const Image > &source, const std::shared_ptr< Buffer > &destination, const uint32_t destinationOffset=0, const uint32_t firstMipLevel=0) const |
virtual void | copy (const Buffer &source, const Buffer &destination, size_t size=Buffer::WHOLE_SIZE, uint32_t sourceOffset=0, uint32_t destinationOffset=0) const = 0 |
void | copy (const std::shared_ptr< const Buffer > &source, const std::shared_ptr< const Buffer > &destination, const size_t size=Buffer::WHOLE_SIZE, const uint32_t sourceOffset=0, const uint32_t destinationOffset=0) const |
virtual void | copy (const Buffer &source, const Buffer &destination, const std::vector< BufferCopyRegion > ®ions) const = 0 |
void | copy (const std::shared_ptr< const Buffer > &source, const std::shared_ptr< const Buffer > &destination, const std::vector< BufferCopyRegion > ®ions) const |
virtual void | uploadArray (const Image &destination, const std::vector< void * > &sources, uint32_t firstMipLevel=0) = 0 |
void | uploadArray (const std::shared_ptr< const Image > &destination, const std::vector< void * > &sources, const uint32_t firstMipLevel=0) |
virtual void | copy (const Image &source, const SwapChain &swapChain) const = 0 |
void | copy (const std::shared_ptr< const Image > &source, const std::shared_ptr< const SwapChain > &swapChain) const |
void | copy (const RenderTarget &source, const SwapChain &swapChain) const |
void | copy (const std::shared_ptr< const RenderTarget > &source, const std::shared_ptr< const SwapChain > &swapChain) const |
virtual void | beginRendering (const RenderingConfiguration &configuration) = 0 |
virtual void | endRendering () |
virtual void | dispatch (uint32_t x, uint32_t y, uint32_t z) const = 0 |
virtual void | bindVertexBuffer (const Buffer &buffer, size_t offset=0) const = 0 |
void | bindVertexBuffer (const std::shared_ptr< const Buffer > &buffer, const size_t offset=0) const |
virtual void | bindVertexBuffers (const std::vector< std::shared_ptr< const Buffer >> &buffers, std::vector< size_t > offsets={}) const = 0 |
virtual void | bindIndexBuffer (const Buffer &buffer, IndexType indexType=IndexType::UINT32, uint32_t firstIndex=0) const = 0 |
void | bindIndexBuffer (const std::shared_ptr< const Buffer > &buffer, const IndexType indexType=IndexType::UINT32, const uint32_t firstIndex=0) const |
virtual void | bindPipeline (Pipeline &pipeline) = 0 |
virtual void | bindPipeline (const std::shared_ptr< Pipeline > &pipeline) |
virtual void | bindDescriptors (const std::vector< std::shared_ptr< const DescriptorSet >> &descriptors, uint32_t firstSet=0) const = 0 |
virtual void | bindDescriptor (const DescriptorSet &descriptor, uint32_t set) const = 0 |
void | bindDescriptor (const std::shared_ptr< const DescriptorSet > &descriptor, const uint32_t set) const |
virtual void | bindDescriptor (const DescriptorSet &descriptor, uint32_t set, uint32_t offset) const = 0 |
void | bindDescriptor (const std::shared_ptr< const DescriptorSet > &descriptor, const uint32_t set, const uint32_t offset) const |
virtual void | draw (uint32_t vertexCountPerInstance, uint32_t instanceCount=1, uint32_t firstVertex=0, uint32_t firstInstance=0) const = 0 |
virtual void | drawIndexed (uint32_t indexCountPerInstance, uint32_t instanceCount=1, uint32_t firstIndex=0, uint32_t firstVertex=0, uint32_t firstInstance=0) const = 0 |
virtual void | drawIndirect (const Buffer &buffer, size_t offset, uint32_t drawCount, uint32_t stride, uint32_t firstCommandOffset=0) = 0 |
void | drawIndirect (const std::shared_ptr< Buffer > &buffer, const size_t offset, const uint32_t drawCount, const uint32_t stride, const uint32_t firstCommandOffset=0) |
virtual void | drawIndexedIndirectCount (Buffer &buffer, size_t offset, Buffer &countBuffer, size_t countOffset, uint32_t maxDrawCount, uint32_t stride, uint32_t firstCommandOffset=0) = 0 |
void | drawIndexedIndirectCount (const std::shared_ptr< Buffer > &buffer, const size_t offset, const std::shared_ptr< Buffer > &countBuffer, const size_t countOffset, const uint32_t maxDrawCount, const uint32_t stride, const uint32_t firstCommandOffset=0) |
virtual void | drawIndexedIndirect (const Buffer &buffer, size_t offset, uint32_t maxDrawCount, uint32_t stride, uint32_t firstCommandOffset=0) = 0 |
void | drawIndexedIndirect (const std::shared_ptr< Buffer > &buffer, const size_t offset, const uint32_t maxDrawCount, const uint32_t stride, const uint32_t firstCommandOffset=0) |
virtual void | setViewports (const std::vector< Viewport > &viewports) const = 0 |
virtual void | setScissors (const std::vector< Rect > &rects) const = 0 |
virtual void | setViewport (const Viewport &viewport) const = 0 |
virtual void | setScissors (const Rect &rect) const = 0 |
virtual void | setStencilReference (uint32_t reference) const = 0 |
virtual void | barrier (const std::shared_ptr< const Image > &image, ResourceState oldState, ResourceState newState, uint32_t firstMipLevel=0, uint32_t levelCount=1) const = 0 |
virtual void | barrier (const std::shared_ptr< const RenderTarget > &renderTarget, ResourceState oldState, ResourceState newState) const = 0 |
virtual void | barrier (const std::vector< std::shared_ptr< const RenderTarget >> &renderTargets, ResourceState oldState, ResourceState newState) const = 0 |
virtual void | barrier (const std::shared_ptr< const SwapChain > &swapChain, ResourceState oldState, ResourceState newState) const = 0 |
virtual void | pushConstants (const std::shared_ptr< const PipelineResources > &pipelineResources, const PushConstantsDesc &pushConstants, const void *data) const = 0 |
virtual void | barrier (const Buffer &buffer, ResourceState oldState, ResourceState newState) const = 0 |
virtual void | cleanup () = 0 |
virtual | ~CommandList () = default |
CommandList (CommandList &) = delete | |
CommandList & | operator= (const CommandList &) = delete |
Static Public Attributes | |
static constexpr uint32_t | indexTypeSize [] |
Protected Member Functions | |
CommandList () = default | |
Protected Attributes | |
Pipeline * | currentlyBoundPipeline {nullptr} |
|
virtualdefault |
|
delete |
|
protecteddefault |
|
pure virtual |
|
pure virtual |
Insert a memory dependency
image | The image affected by this barrier. |
oldState | Old state in an image state transition. |
newState | New state in an image state transition. |
firstMipLevel | The first mip level to include is this barrier |
levelCount | Number of level to include |
|
pure virtual |
Insert a memory dependency
renderTarget | The image affected by this barrier. |
oldState | Old state in an image state transition. |
newState | New state in an image state transition. |
|
pure virtual |
Insert a memory dependency
swapChain | The image affected by this barrier. |
oldState | Old state in an image state transition. |
newState | New state in an image state transition. |
|
pure virtual |
Insert a memory dependency
renderTargets | The images affected by this barrier. |
oldState | Old state in an image state transition. |
newState | New state in an image state transition. |
|
pure virtual |
Start recording a command list
|
pure virtual |
Begin a render pass
|
pure virtual |
Bind descriptor set to a command list
descriptor | The descriptor set to bind |
set | The set number of the descriptor set to be bound |
|
pure virtual |
Binds a dynamic uniform descriptor set to a command list
descriptor | The descriptor set to bind |
set | The set number of the descriptor set to be bound |
offset | Values specifying dynamic offsets for the UNIFORM_DYNAMIC resource. |
|
inline |
Binds descriptor set to a command list
descriptor | The descriptor set to bind |
set | The set number of the descriptor set to be bound |
|
inline |
Binds a dynamic uniform descriptor set to a command list
descriptor | The descriptor set to bind |
set | The set number of the descriptor set to be bound |
offset | Values specifying dynamic offsets for the UNIFORM_DYNAMIC resource. |
|
pure virtual |
Bind descriptor sets to a command list
descriptors | The descriptor sets to bind |
firstSet | The set number of the first descriptor set to be bound |
|
pure virtual |
Binds an index buffer to a command list
buffer | An index buffer |
indexType | Value specifying the size of the indices |
firstIndex | First index in the buffer |
|
inline |
Binds an index buffer to a command list
buffer | An index buffer |
indexType | Value specifying the size of the indices |
firstIndex | First index in the buffer |
|
inlinevirtual |
Binds a pipeline object to a command list
|
pure virtual |
Binds a pipeline object to a command list
|
pure virtual |
Bind a vertex buffer to a command list
buffer | A vertex buffer |
offset | Offset in bytes |
|
inline |
Bind a vertex buffer to a command list
buffer | A vertex buffer |
offset | Offset in bytes |
|
pure virtual |
Binds vertex buffers to a command list
buffers | Buffers to bind |
offsets | Offsets for each buffer in bytes |
|
pure virtual |
Cleanup staging buffers used by upload
functions
|
pure virtual |
Copy multiple regions of a buffer into another buffer
|
pure virtual |
Copy data from a buffer into another buffer
|
pure virtual |
Copy data from a buffer into a multi-level image. One sourceOffset
offset in bytes for each level. If rowPitchAlignment
is true
(for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT
) for cross-API compatibility.
|
pure virtual |
Copy data from a buffer into an image level. If rowPitchAlignment
is true
(for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT
) for cross-API compatibility.
|
pure virtual |
Copy a level of an image into a buffer
Copy an image into the current swap chain image
|
inline |
Copy an image into the current swap chain image
|
inline |
Copy data from a buffer into an image level. If rowPitchAlignment
is true
(for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT
) for cross-API compatibility.
|
inlinevirtual |
Copy data from a buffer into a multi-level image. One sourceOffset
offset in bytes for each level. If rowPitchAlignment
is true
(for Vulkan), the data in the buffer must have row-aligned data (cf. Image::IMAGE_ROW_PITCH_ALIGNMENT
) for cross-API compatibility.
|
inline |
Copy data from a buffer into another buffer
|
inline |
Copy multiple regions of a buffer into another buffer
|
inline |
Copy an image into a buffer
|
inline |
Copy an image into the current swap chain image
|
inline |
Copy an image into the current swap chain image
|
pure virtual |
Dispatch compute work items
x | The number of local workgroups to dispatch in the X dimension. |
y | The number of local workgroups to dispatch in the Y dimension. |
z | The number of local workgroups to dispatch in the Z dimension. |
|
pure virtual |
Draw primitives
vertexCountPerInstance | The number of vertices per instance to draw |
instanceCount | The number of instances |
firstVertex | The index of the first vertex to draw |
firstInstance | The index of the first instance to draw. |
|
pure virtual |
Draw primitives with indexed vertices
indexCountPerInstance | The number of vertices per instance to draw |
instanceCount | The number of instances |
firstIndex | The base index within the index buffer. |
firstVertex | The value added to the vertex index before indexing into the vertex buffer. |
firstInstance | The index of the first instance to draw. |
|
pure virtual |
Draw primitives with indirect parameters and indexed vertices
buffer | The buffer containing draw parameters. |
offset | The byte offset into the buffer where parameters begin. |
maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
stride | The byte stride between successive sets of draw parameters. |
|
inline |
Draw primitives with indirect parameters and indexed vertices
buffer | The buffer containing draw parameters. |
offset | The byte offset into the buffer where parameters begin. |
maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
stride | The byte stride between successive sets of draw parameters. |
|
pure virtual |
Draw primitives with indirect parameters and indexed vertices
buffer | The buffer containing draw parameters. |
offset | The byte offset into the buffer where parameters begin. |
countBuffer | The buffer containing the draw count. |
countOffset | The byte offset into countBuffer where the draw count begins. |
maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
stride | The byte stride between successive sets of draw parameters. |
|
inline |
Draw primitives with indirect parameters and indexed vertices
buffer | The buffer containing draw parameters. |
offset | The byte offset into the buffer where parameters begin. |
countBuffer | The buffer containing the draw count. |
countOffset | The byte offset into countBuffer where the draw count begins. |
maxDrawCount | The maximum number of draws that will be executed. The actual number of executed draw calls is the minimum of the count specified in countBuffer and maxDrawCount |
stride | The byte stride between successive sets of draw parameters. |
|
pure virtual |
Draw primitives with indirect parameters
buffer | The buffer containing draw parameters. |
offset | The byte offset into the buffer where parameters begin. |
drawCount | The number of draws to execute, and can be zero. |
stride | The byte stride between successive sets of draw parameters. |
|
inline |
Draw primitives with indirect parameters
buffer | The buffer containing draw parameters. |
offset | The byte offset into the buffer where parameters begin. |
drawCount | The number of draws to execute, and can be zero. |
stride | The byte stride between successive sets of draw parameters. |
|
pure virtual |
Stop recording a command list
|
inlinevirtual |
End a render pass
|
delete |
|
pure virtual |
Update the values of push constants
pipelineResources | The pipeline layout used to program the push constant updates. |
pushConstants | The push constant description |
data | The new push constant values. |
|
pure virtual |
Sets the scissors for a command list
rect | An array of Extent structures specifying viewport parameters. |
|
pure virtual |
Sets the scissors for a command list
rects | An array of Rect structures specifying viewport parameters. |
|
pure virtual |
Set the reference value for stencil tests and operations
|
pure virtual |
Sets the viewport for a command list
viewport | An array of Extent structures specifying viewport parameters. |
|
pure virtual |
Sets the viewports for a command list
viewports | An array of Viewport structures specifying viewport parameters |
|
pure virtual |
Uploads data into a buffer using a temporary (staging) buffer.
|
pure virtual |
Upload data into an image using a temporary (staging) buffer.
|
inline |
Uploads data into a buffer using a temporary (staging) buffer.
|
inline |
Upload data into an image using a temporary (staging) buffer.
|
virtual |
Uploads data into buffers using temporary (staging) buffers.
|
virtual |
Uploads data into images using temporary (staging) buffers.
|
pure virtual |
Upload images into an image array
|
inline |
Upload images into an image array
|
protected |
|
staticconstexpr |