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"
43PXR_NAMESPACE_OPEN_SCOPE
45using 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 HgiVertexBufferBindingVector
const &bindings);
140 static HgiGLOpsFn Draw(
141 HgiPrimitiveType primitiveType,
142 uint32_t primitiveIndexSize,
143 uint32_t vertexCount,
145 uint32_t instanceCount,
146 uint32_t baseInstance);
149 static HgiGLOpsFn DrawIndirect(
150 HgiPrimitiveType primitiveType,
151 uint32_t primitiveIndexSize,
153 uint32_t drawBufferByteOffset,
158 static HgiGLOpsFn DrawIndexed(
159 HgiPrimitiveType primitiveType,
160 uint32_t primitiveIndexSize,
163 uint32_t indexBufferByteOffset,
165 uint32_t instanceCount,
166 uint32_t baseInstance);
169 static HgiGLOpsFn DrawIndexedIndirect(
170 HgiPrimitiveType primitiveType,
171 uint32_t primitiveIndexSize,
174 uint32_t drawBufferByteOffset,
179 static HgiGLOpsFn BindFramebufferOp(
184 static HgiGLOpsFn Dispatch(
int dimX,
int dimY);
187 static HgiGLOpsFn FillBuffer(
HgiBufferHandle const& buffer, uint8_t value);
193 static HgiGLOpsFn InsertMemoryBarrier(HgiMemoryBarrier barrier);
197PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 4 int components.
OpenGL implementation of GPU device.
A collection of functions used by cmds objects to do deferred cmd recording.
Describes the properties needed to copy buffer data from CPU to GPU.
Describes the properties needed to copy buffer data from GPU to CPU.
Describes the properties needed to copy buffer data from GPU to GPU.
Describes the properties needed to copy GPU buffer data into a GPU texture.
Describes the properties to begin a HgiGraphicsCmds.
Describes the properties needed to copy texture data from CPU to GPU.
Describes the properties needed to copy texture data from GPU to CPU.
Describes the properties needed to copy GPU texture data into a GPU buffer.