24 #ifndef PXR_IMAGING_HGI_INDIRECT_COMMAND_ENCODER_H
25 #define PXR_IMAGING_HGI_INDIRECT_COMMAND_ENCODER_H
47 : drawCount(drawCount)
48 , graphicsPipeline(graphicsPipeline)
49 , resourceBindings(resourceBindings)
89 uint32_t drawBufferByteOffset,
104 uint32_t drawBufferByteOffset,
107 uint32_t patchBaseVertexByteOffset) = 0;
121 HgiIndirectCommandEncoder & operator=(
const HgiIndirectCommandEncoder&) =
delete;
virtual HGI_API HgiIndirectCommandsUniquePtr EncodeDrawIndexed(HgiComputeCmds *computeCmds, HgiGraphicsPipelineHandle const &pipeline, HgiResourceBindingsHandle const &resourceBindings, HgiVertexBufferBindingVector const &vertexBindings, HgiBufferHandle const &indexBuffer, HgiBufferHandle const &drawParameterBuffer, uint32_t drawBufferByteOffset, uint32_t drawCount, uint32_t stride, uint32_t patchBaseVertexByteOffset)=0
HgiResourceBindingsHandle resourceBindings
HGI_API ~HgiIndirectCommandEncoder() override
std::vector< HgiVertexBufferBinding > HgiVertexBufferBindingVector
HGI_API HgiIndirectCommandEncoder()
virtual HGI_API void ExecuteDraw(HgiGraphicsCmds *gfxCmds, HgiIndirectCommands const *commands)=0
std::unique_ptr< HgiIndirectCommands > HgiIndirectCommandsUniquePtr
GLint GLenum GLboolean GLsizei stride
HgiGraphicsPipelineHandle graphicsPipeline
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
virtual HGI_API HgiIndirectCommandsUniquePtr EncodeDraw(HgiComputeCmds *computeCmds, HgiGraphicsPipelineHandle const &pipeline, HgiResourceBindingsHandle const &resourceBindings, HgiVertexBufferBindingVector const &vertexBindings, HgiBufferHandle const &drawParameterBuffer, uint32_t drawBufferByteOffset, uint32_t drawCount, uint32_t stride)=0
#define PXR_NAMESPACE_CLOSE_SCOPE
virtual ~HgiIndirectCommands()=default
HgiIndirectCommands(uint32_t drawCount, HgiGraphicsPipelineHandle const &graphicsPipeline, HgiResourceBindingsHandle const &resourceBindings)