Command
The Command class is responsible for resource binding and the execution of rendering commands. It facilitates the setup of various graphics resources, such as pipelines, viewports, samplers, textures, buffers, and uniforms, all required for rendering operations. The class supports managing multiple render targets, handling various draw commands, and controlling query and conditional execution. Additionally, it provides capabilities for indirect drawing, resource barriers, and blending/stencil state configurations, ensuring efficient and flexible rendering command execution across different platforms.
#include <platform/TellusimCommand.h>
Constructors
Command()
Methods
Command platform.
Platform getPlatform() const
const char *getPlatformName() const
Command device index.
uint32_t getIndex() const
Set pipeline.
void setPipeline(Pipeline &pipeline)
Pipeline getPipeline() const
Set viewport parameters.
void setViewport(uint32_t index, Viewport viewport)
void setViewports(const Viewport *viewports, uint32_t num_viewports)
Set scissor parameters.
void setScissor(uint32_t index, Scissor scissor)
void setScissors(const Scissor *scissors, uint32_t num_scissors)
Set samplers.
void setSampler(uint32_t index, Sampler &sampler)
void setSamplers(uint32_t index, Array<Sampler> samplers)
void setSamplers(uint32_t index, const InitializerList<Sampler> &samplers)
Set textures.
void setTexture(uint32_t index, Texture &texture)
void setTexture(uint32_t index, Texture &texture, Slice slice)
void setTextures(uint32_t index, Array<Texture> textures)
void setTextures(uint32_t index, const InitializerList<Texture> &textures)
Set surfaces.
void setSurfaceTexture(uint32_t index, Texture &texture)
void setSurfaceTexture(uint32_t index, Texture &texture, Slice slice, Format format = FormatUnknown)
void setSurfaceTextures(uint32_t index, Array<Texture> textures)
void setSurfaceTextures(uint32_t index, const InitializerList<Texture> &textures)
Set uniforms.
void *getUniformData(uint32_t index, size_t size)
void setUniformData(uint32_t index, const void *src, size_t size)
void setUniformBuffer(uint32_t index, Buffer &buffer, size_t offset = 0, size_t size = 0)
void setUniformOffset(uint32_t index, size_t offset, bool relative = false)
void setUniformBuffers(uint32_t index, Array<Buffer> buffers)
void setUniformBuffers(uint32_t index, Array<Buffer> buffers, Array<size_t> offsets)
void setUniformBuffers(uint32_t index, const InitializerList<Buffer> &buffers)
void setUniformBuffers(uint32_t index, const InitializerList<Buffer> &buffers, const InitializerList<size_t> &offsets)
template<> void setUniform(uint32_t index, const Array<Type> &data)
template<> void setUniform(uint32_t index, const Type &data)
Set storages.
void *getStorageData(uint32_t index, size_t size)
void setStorageData(uint32_t index, const void *src, size_t size)
void setStorageBuffer(uint32_t index, Buffer &buffer, size_t offset = 0, size_t size = 0)
void setStorageOffset(uint32_t index, size_t offset, bool relative = false)
void setStorageBuffers(uint32_t index, Array<Buffer> buffers)
void setStorageBuffers(uint32_t index, Array<Buffer> buffers, Array<size_t> offsets)
void setStorageBuffers(uint32_t index, const InitializerList<Buffer> &buffers)
void setStorageBuffers(uint32_t index, const InitializerList<Buffer> &buffers, const InitializerList<size_t> &offsets)
template<> void setStorage(uint32_t index, const Array<Type> &data)
template<> void setStorage(uint32_t index, const Type &data)
Set tracings.
void setTracing(uint32_t index, Tracing &tracing)
void setTracings(uint32_t index, Array<Tracing> tracings)
void setTracings(uint32_t index, const InitializerList<Tracing> &tracings)
Set texel buffers.
void setTexelBuffer(uint32_t index, Buffer &buffer)
void setTexelBuffers(uint32_t index, Array<Buffer> buffers)
void setTexelBuffers(uint32_t index, const InitializerList<Buffer> &buffers)
Set texture tables.
void setTextureTable(uint32_t index, TextureTable &table)
void setTextureTables(uint32_t index, Array<TextureTable> tables)
void setTextureTables(uint32_t index, const InitializerList<TextureTable> &tables)
Set storage tables.
void setStorageTable(uint32_t index, BufferTable &table)
void setStorageTables(uint32_t index, Array<BufferTable> tables)
void setStorageTables(uint32_t index, const InitializerList<BufferTable> &tables)
Set vertices.
void *getVertexData(uint32_t index, size_t size)
void setVertexData(uint32_t index, const void *src, size_t size)
void setVertexBuffer(uint32_t index, Buffer &buffer, size_t offset = 0)
void setVertexOffset(uint32_t index, size_t offset, bool relative = false)
void setVertexBuffers(uint32_t index, Array<Buffer> buffers)
void setVertexBuffers(uint32_t index, Array<Buffer> buffers, Array<size_t> offsets)
void setVertexBuffers(uint32_t index, const InitializerList<Buffer> &buffers)
void setVertexBuffers(uint32_t index, const InitializerList<Buffer> &buffers, const InitializerList<size_t> &offsets)
template<> void setVertices(uint32_t index, const Array<Type> &vertices)
template<> void setVertices(uint32_t index, const Type (&vertices)[Size])
template<> void setVertices(uint32_t index, const InitializerList<Type> &vertices)
Set indices.
void *getIndexData(Format format, size_t size)
void setIndexData(Format format, const void *src, size_t size)
void setIndexBuffer(Format format, Buffer &buffer, size_t offset = 0)
void setIndexOffset(size_t offset, bool relative = false)
template<> void setIndices(Format format, const Array<Type> &indices)
template<> void setIndices(Format format, const Type (&indices)[Size])
void setIndices(const InitializerList<uint16_t> &indices)
Set indirect.
void *getIndirectData(size_t size)
void setIndirectData(const void *src, size_t size)
void setIndirectBuffer(Buffer &buffer, size_t offset = 0)
void setIndirectOffset(size_t offset, bool relative = false)
template<> void setIndirect(const Type &data)
Blending parameters.
void setBlendColor(Color color)
void setBlendColor(float32_t r, float32_t g, float32_t b, float32_t a)
Stencil parameters.
void setStencilRef(uint32_t ref)
Draw arrays.
void drawArrays(uint32_t num_vertices, uint32_t base_vertex = 0)
void drawArraysInstanced(uint32_t num_vertices, uint32_t base_vertex, uint32_t num_instances, uint32_t base_instance = 0)
void drawArraysIndirect(uint32_t num_draws, size_t stride = sizeof(DrawArraysIndirect))
void drawArraysIndirect(Buffer &buffer, size_t offset, uint32_t num_draws, size_t stride = sizeof(DrawArraysIndirect))
Draw elements.
void drawElements(uint32_t num_indices, uint32_t base_index = 0, int32_t base_vertex = 0)
void drawElementsInstanced(uint32_t num_indices, uint32_t base_index, uint32_t num_instances)
void drawElementsInstanced(uint32_t num_indices, uint32_t base_index, int32_t base_vertex, uint32_t num_instances, uint32_t base_instance = 0)
void drawElementsIndirect(uint32_t num_draws, size_t stride = sizeof(DrawElementsIndirect))
void drawElementsIndirect(Buffer &buffer, size_t offset, uint32_t num_draws, size_t stride = sizeof(DrawElementsIndirect))
Draw mesh.
void drawMesh(uint32_t width, uint32_t height = 1, uint32_t depth = 1)
void drawMeshIndirect(uint32_t num_draws, size_t stride = sizeof(DrawMeshIndirect))
void drawMeshIndirect(Buffer &buffer, size_t offset, uint32_t num_draws, size_t stride = sizeof(DrawMeshIndirect))
Begin/end conditional.
void beginConditional(Buffer &buffer, size_t offset)
void endConditional()
Begin/end query.
bool beginQuery(Query &query)
void endQuery(Query &query)
Structs
DrawArraysIndirect
Draw arrays indirect parameters.
Variables
Type | Name |
---|---|
uint32_t | num_vertices |
uint32_t | num_instances |
uint32_t | base_vertex |
uint32_t | base_instance |
DrawElementsIndirect
Draw elements indirect parameters.
Variables
Type | Name |
---|---|
uint32_t | num_indices |
uint32_t | num_instances |
uint32_t | base_index |
int32_t | base_vertex |
uint32_t | base_instance |
DrawMeshIndirect
Draw mesh indirect parameters.
Variables
Type | Name |
---|---|
uint32_t | group_width |
uint32_t | group_height |
uint32_t | group_depth |
uint32_t | padding |