7#ifndef PXR_IMAGING_HGIGL_OPS_H
8#define PXR_IMAGING_HGIGL_OPS_H
13#include "pxr/imaging/hgi/buffer.h"
14#include "pxr/imaging/hgi/blitCmdsOps.h"
15#include "pxr/imaging/hgi/graphicsCmdsDesc.h"
16#include "pxr/imaging/hgi/graphicsPipeline.h"
17#include "pxr/imaging/hgi/resourceBindings.h"
19#include "pxr/imaging/hgiGL/api.h"
20#include "pxr/imaging/hgiGL/device.h"
26PXR_NAMESPACE_OPEN_SCOPE
28using HgiGLOpsFn = std::function<void(
void)>;
57 static HgiGLOpsFn PushDebugGroup(
const char* label,
61 static HgiGLOpsFn PopDebugGroup();
64 static HgiGLOpsFn InsertDebugMarker(
const char* label);
88 static HgiGLOpsFn ResolveFramebuffer(
93 static HgiGLOpsFn SetViewport(
GfVec4i const& vp);
96 static HgiGLOpsFn SetScissor(
GfVec4i const& sc);
108 static HgiGLOpsFn SetConstantValues(
110 HgiShaderStage stages,
116 static HgiGLOpsFn SetConstantValues(
123 static HgiGLOpsFn BindVertexBuffers(
124 HgiVertexBufferBindingVector
const &bindings);
127 static HgiGLOpsFn Draw(
128 HgiPrimitiveType primitiveType,
129 uint32_t primitiveIndexSize,
130 uint32_t vertexCount,
132 uint32_t instanceCount,
133 uint32_t baseInstance);
136 static HgiGLOpsFn DrawIndirect(
137 HgiPrimitiveType primitiveType,
138 uint32_t primitiveIndexSize,
140 uint32_t drawBufferByteOffset,
145 static HgiGLOpsFn DrawIndexed(
146 HgiPrimitiveType primitiveType,
147 uint32_t primitiveIndexSize,
150 uint32_t indexBufferByteOffset,
152 uint32_t instanceCount,
153 uint32_t baseInstance);
156 static HgiGLOpsFn DrawIndexedIndirect(
157 HgiPrimitiveType primitiveType,
158 uint32_t primitiveIndexSize,
161 uint32_t drawBufferByteOffset,
166 static HgiGLOpsFn BindFramebufferOp(
171 static HgiGLOpsFn Dispatch(
int dimX,
int dimY);
174 static HgiGLOpsFn FillBuffer(
HgiBufferHandle const& buffer, uint8_t value);
180 static HgiGLOpsFn InsertMemoryBarrier(HgiMemoryBarrier barrier);
184PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 4 float components.
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.