24 #ifndef PXR_IMAGING_HGIGL_OPS_H
25 #define PXR_IMAGING_HGIGL_OPS_H
30 #include "pxr/imaging/hgi/buffer.h"
31 #include "pxr/imaging/hgi/blitCmdsOps.h"
32 #include "pxr/imaging/hgi/graphicsCmdsDesc.h"
33 #include "pxr/imaging/hgi/graphicsPipeline.h"
34 #include "pxr/imaging/hgi/resourceBindings.h"
36 #include "pxr/imaging/hgiGL/api.h"
37 #include "pxr/imaging/hgiGL/device.h"
43 PXR_NAMESPACE_OPEN_SCOPE
45 using HgiGLOpsFn = std::function<void(void)>;
74 static HgiGLOpsFn PushDebugGroup(
const char* label);
77 static HgiGLOpsFn PopDebugGroup();
101 static HgiGLOpsFn ResolveFramebuffer(
106 static HgiGLOpsFn SetViewport(
GfVec4i const& vp);
109 static HgiGLOpsFn SetScissor(
GfVec4i const& sc);
121 static HgiGLOpsFn SetConstantValues(
123 HgiShaderStage stages,
129 static HgiGLOpsFn SetConstantValues(
136 static HgiGLOpsFn BindVertexBuffers(
137 uint32_t firstBinding,
138 HgiBufferHandleVector
const& buffers,
139 std::vector<uint32_t>
const& byteOffsets);
142 static HgiGLOpsFn Draw(
143 HgiPrimitiveType primitiveType,
144 uint32_t vertexCount,
145 uint32_t firstVertex,
146 uint32_t instanceCount);
149 static HgiGLOpsFn DrawIndirect(
150 HgiPrimitiveType primitiveType,
152 uint32_t drawBufferOffset,
157 static HgiGLOpsFn DrawIndexed(
158 HgiPrimitiveType primitiveType,
161 uint32_t indexBufferByteOffset,
162 uint32_t vertexOffset,
163 uint32_t instanceCount);
166 static HgiGLOpsFn DrawIndexedIndirect(
167 HgiPrimitiveType primitiveType,
170 uint32_t drawBufferOffset,
175 static HgiGLOpsFn BindFramebufferOp(
180 static HgiGLOpsFn Dispatch(
int dimX,
int dimY);
183 static HgiGLOpsFn GenerateMipMaps(HgiTextureHandle
const& texture);
186 static HgiGLOpsFn MemoryBarrier(HgiMemoryBarrier barrier);
190 PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 4 int components.
Describes the properties needed to copy buffer data from CPU to GPU.
Describes the properties needed to copy GPU buffer data into a GPU texture.
Describes the properties needed to copy texture data from GPU to CPU.
Describes the properties to begin a HgiGraphicsCmds.
Describes the properties needed to copy buffer data from GPU to CPU.
Describes the properties needed to copy texture data from CPU to GPU.
Describes the properties needed to copy buffer data from GPU to GPU.
Describes the properties needed to copy GPU texture data into a GPU buffer.
A collection of functions used by cmds objects to do deferred cmd recording.