|
static HGIGL_API HgiGLOpsFn | PushDebugGroup (const char *label) |
|
static HGIGL_API HgiGLOpsFn | PopDebugGroup () |
|
static HGIGL_API HgiGLOpsFn | CopyTextureGpuToCpu (HgiTextureGpuToCpuOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | CopyTextureCpuToGpu (HgiTextureCpuToGpuOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | CopyBufferGpuToGpu (HgiBufferGpuToGpuOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | CopyBufferCpuToGpu (HgiBufferCpuToGpuOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | CopyBufferGpuToCpu (HgiBufferGpuToCpuOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | CopyTextureToBuffer (HgiTextureToBufferOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | CopyBufferToTexture (HgiBufferToTextureOp const ©Op) |
|
static HGIGL_API HgiGLOpsFn | ResolveFramebuffer (HgiGLDevice *device, HgiGraphicsCmdsDesc const &graphicsCmds) |
|
static HGIGL_API HgiGLOpsFn | SetViewport (GfVec4i const &vp) |
|
static HGIGL_API HgiGLOpsFn | SetScissor (GfVec4i const &sc) |
|
static HGIGL_API HgiGLOpsFn | BindPipeline (HgiGraphicsPipelineHandle pipeline) |
|
static HGIGL_API HgiGLOpsFn | BindPipeline (HgiComputePipelineHandle pipeline) |
|
static HGIGL_API HgiGLOpsFn | BindResources (HgiResourceBindingsHandle resources) |
|
static HGIGL_API HgiGLOpsFn | SetConstantValues (HgiGraphicsPipelineHandle pipeline, HgiShaderStage stages, uint32_t bindIndex, uint32_t byteSize, const void *data) |
|
static HGIGL_API HgiGLOpsFn | SetConstantValues (HgiComputePipelineHandle pipeline, uint32_t bindIndex, uint32_t byteSize, const void *data) |
|
static HGIGL_API HgiGLOpsFn | BindVertexBuffers (HgiVertexBufferBindingVector const &bindings) |
|
static HGIGL_API HgiGLOpsFn | Draw (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, uint32_t vertexCount, uint32_t baseVertex, uint32_t instanceCount, uint32_t baseInstance) |
|
static HGIGL_API HgiGLOpsFn | DrawIndirect (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, HgiBufferHandle const &drawParameterBuffer, uint32_t drawBufferByteOffset, uint32_t drawCount, uint32_t stride) |
|
static HGIGL_API HgiGLOpsFn | DrawIndexed (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, HgiBufferHandle const &indexBuffer, uint32_t indexCount, uint32_t indexBufferByteOffset, uint32_t baseVertex, uint32_t instanceCount, uint32_t baseInstance) |
|
static HGIGL_API HgiGLOpsFn | DrawIndexedIndirect (HgiPrimitiveType primitiveType, uint32_t primitiveIndexSize, HgiBufferHandle const &indexBuffer, HgiBufferHandle const &drawParameterBuffer, uint32_t drawBufferByteOffset, uint32_t drawCount, uint32_t stride) |
|
static HGIGL_API HgiGLOpsFn | BindFramebufferOp (HgiGLDevice *device, HgiGraphicsCmdsDesc const &desc) |
|
static HGIGL_API HgiGLOpsFn | Dispatch (int dimX, int dimY) |
|
static HGIGL_API HgiGLOpsFn | FillBuffer (HgiBufferHandle const &buffer, uint8_t value) |
|
static HGIGL_API HgiGLOpsFn | GenerateMipMaps (HgiTextureHandle const &texture) |
|
static HGIGL_API HgiGLOpsFn | InsertMemoryBarrier (HgiMemoryBarrier barrier) |
|
A collection of functions used by cmds objects to do deferred cmd recording. Modern API's support command buffer recording of gfx commands ('deferred'). Meaning: No commands are executed on the GPU until we Submit the cmd buffer.
OpenGL uses 'immediate' mode instead where gfx commands are immediately processed and given to the GPU at a time of the drivers choosing. We use 'Ops' functions to record our OpenGL function in a list and only execute them in OpenGL during the SubmitCmds phase.
This has two benefits:
- OpenGL behaves more like Metal and Vulkan. So when clients write Hgi code they get similar behavior in gpu command execution across all backends. For example, if you are running with HgiGL and recording commands into a Hgi***Cmds object and forget to call 'SubmitCmds' you will notice that your commands are not executed on the GPU, just like what would happen if you were running with HgiMetal.
- It lets us satisfy the Hgi requirement that Hgi***Cmds objects must be able to do their recording on secondary threads.
Definition at line 70 of file ops.h.