7#ifndef PXR_IMAGING_HGI_GRAPHICS_PIPELINE_H
8#define PXR_IMAGING_HGI_GRAPHICS_PIPELINE_H
11#include "pxr/imaging/hgi/api.h"
12#include "pxr/imaging/hgi/attachmentDesc.h"
13#include "pxr/imaging/hgi/enums.h"
14#include "pxr/imaging/hgi/handle.h"
15#include "pxr/imaging/hgi/resourceBindings.h"
16#include "pxr/imaging/hgi/shaderProgram.h"
17#include "pxr/imaging/hgi/types.h"
24PXR_NAMESPACE_OPEN_SCOPE
47 uint32_t shaderBindLocation;
49using HgiVertexAttributeDescVector = std::vector<HgiVertexAttributeDesc>;
82 uint32_t bindingIndex;
83 HgiVertexAttributeDescVector vertexAttributes;
84 HgiVertexBufferStepFunction vertexStepFunction;
85 uint32_t vertexStride;
87using HgiVertexBufferDescVector = std::vector<HgiVertexBufferDesc>;
95inline bool operator!=(
123 bool multiSampleEnable;
124 bool alphaToCoverageEnable;
125 bool alphaToOneEnable;
126 HgiSampleCount sampleCount;
172 HgiPolygonMode polygonMode;
174 HgiCullMode cullMode;
176 bool rasterizerEnabled;
177 bool depthClampEnabled;
179 bool conservativeRaster;
180 size_t numClipDistances;
221 HgiCompareFunction compareFn;
222 uint32_t referenceValue;
223 HgiStencilOp stencilFailOp;
224 HgiStencilOp depthFailOp;
225 HgiStencilOp depthStencilPassOp;
274 bool depthTestEnabled;
275 bool depthWriteEnabled;
276 HgiCompareFunction depthCompareFn;
278 bool depthBiasEnabled;
279 float depthBiasConstantFactor;
280 float depthBiasSlopeFactor;
282 bool stencilTestEnabled;
313 HgiShaderStage stageUsage;
326struct HgiTessellationLevel
329 HgiTessellationLevel();
331 float innerTessLevel[2];
332 float outerTessLevel[4];
356 enum TessFactorMode {
366 int primitiveIndexSize;
367 TessFactorMode tessFactorMode = TessFactorMode::Constant;
368 HgiTessellationLevel tessellationLevel;
407 std::string debugName;
408 HgiPrimitiveType primitiveType;
413 HgiVertexBufferDescVector vertexBuffers;
414 HgiAttachmentDescVector colorAttachmentDescs;
416 bool resolveAttachments;
465using HgiGraphicsPipelineHandleVector = std::vector<HgiGraphicsPipelineHandle>;
468PXR_NAMESPACE_CLOSE_SCOPE
Basic type for a vector of 2 float components.
Represents a graphics platform independent GPU graphics pipeline resource.
HGI_API HgiGraphicsPipelineDesc const & GetDescriptor() const
The descriptor describes the object.
Describes the properties of a framebuffer attachment.
Properties to configure depth and stencil test.
Describes the properties needed to create a GPU pipeline.
A small, but fast buffer of uniform data for shaders.
Properties to configure multi sampling.
Properties to configure the rasterization state.
stencilFailOp: The operation executed when the stencil test fails.
Properties to configure tessellation.
Describes one attribute of a vertex.
Describes the attributes of a vertex buffer.