QRhiGraphicsPipeline Class

图形流水线状态资源。更多

头文件: #include <rhi/qrhi.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::GuiPrivate)
qmake: QT += gui-private
Qt 6.6
继承: QRhiResource

公共类型

(since 6.6) struct StencilOpState
(since 6.6) struct TargetBlend
enum BlendFactor { Zero, One, SrcColor, OneMinusSrcColor, DstColor, …, OneMinusSrc1Alpha }
enum BlendOp { Add, Subtract, ReverseSubtract, Min, Max }
flags ColorMask
enum ColorMaskComponent { R, G, B, A }
enum CompareOp { Never, Less, Equal, LessOrEqual, Greater, …, Always }
enum CullMode { None, Front, Back }
enum Flag { UsesBlendConstants, UsesStencilRef, UsesScissor, CompileShadersWithDebugInfo, UsesShadingRate }
flags Flags
enum FrontFace { CCW, CW }
enum PolygonMode { Fill, Line }
enum StencilOp { StencilZero, Keep, Replace, IncrementAndClamp, DecrementAndClamp, …, DecrementAndWrap }
enum Topology { Triangles, TriangleStrip, TriangleFan, Lines, LineStrip, …, Patches }

公共函数

const QRhiShaderStage *cbeginShaderStages() const
const QRhiGraphicsPipeline::TargetBlend *cbeginTargetBlends() const
const QRhiShaderStage *cendShaderStages() const
const QRhiGraphicsPipeline::TargetBlend *cendTargetBlends() const
virtual bool create() = 0
QRhiGraphicsPipeline::CullMode cullMode() const
int depthBias() const
QRhiGraphicsPipeline::CompareOp depthOp() const
QRhiGraphicsPipeline::Flags flags() const
QRhiGraphicsPipeline::FrontFace frontFace() const
bool hasDepthTest() const
bool hasDepthWrite() const
bool hasStencilTest() const
float lineWidth() const
(since 6.7) int multiViewCount() const
int patchControlPointCount() const
QRhiGraphicsPipeline::PolygonMode polygonMode() const
QRhiRenderPassDescriptor *renderPassDescriptor() const
int sampleCount() const
void setCullMode(QRhiGraphicsPipeline::CullMode mode)
void setDepthBias(int bias)
void setDepthOp(QRhiGraphicsPipeline::CompareOp op)
void setDepthTest(bool enable)
void setDepthWrite(bool enable)
void setFlags(QRhiGraphicsPipeline::Flags f)
void setFrontFace(QRhiGraphicsPipeline::FrontFace f)
void setLineWidth(float width)
(since 6.7) void setMultiViewCount(int count)
void setPatchControlPointCount(int count)
void setPolygonMode(QRhiGraphicsPipeline::PolygonMode mode)
void setRenderPassDescriptor(QRhiRenderPassDescriptor *desc)
void setSampleCount(int s)
void setShaderResourceBindings(QRhiShaderResourceBindings *srb)
void setShaderStages(std::initializer_list<QRhiShaderStage> list)
void setShaderStages(InputIterator first, InputIterator last)
void setSlopeScaledDepthBias(float bias)
void setStencilBack(const QRhiGraphicsPipeline::StencilOpState &state)
void setStencilFront(const QRhiGraphicsPipeline::StencilOpState &state)
void setStencilReadMask(quint32 mask)
void setStencilTest(bool enable)
void setStencilWriteMask(quint32 mask)
void setTargetBlends(std::initializer_list<QRhiGraphicsPipeline::TargetBlend> list)
void setTargetBlends(InputIterator first, InputIterator last)
void setTopology(QRhiGraphicsPipeline::Topology t)
void setVertexInputLayout(const QRhiVertexInputLayout &layout)
QRhiShaderResourceBindings *shaderResourceBindings() const
const QRhiShaderStage *shaderStageAt(qsizetype index) const
qsizetype shaderStageCount() const
float slopeScaledDepthBias() const
QRhiGraphicsPipeline::StencilOpState stencilBack() const
QRhiGraphicsPipeline::StencilOpState stencilFront() const
quint32 stencilReadMask() const
quint32 stencilWriteMask() const
const QRhiGraphicsPipeline::TargetBlend *targetBlendAt(qsizetype index) const
qsizetype targetBlendCount() const
QRhiGraphicsPipeline::Topology topology() const
QRhiVertexInputLayout vertexInputLayout() const

重新实现的公共函数

virtual QRhiResource::Type resourceType() const override

详细说明

代表图形流水线。在底层本地图形 API 中,管道的具体映射关系各不相同。在有流水线对象概念的地方,例如 Vulkan,QRhi 后台会在调用create() 时创建这样一个对象。在其他情况下,例如 OpenGL,QRhiGraphicsPipeline 可能只是收集各种状态,而create() 的主要任务是设置相应的着色器程序,但会推迟到稍后再查看任何请求的状态。

与所有QRhiResource 子类一样,两阶段初始化模式也适用:通过设置器设置任何值(例如setDepthTest() )只有在调用create() 后才有效。通过create() 初始化 QRhiGraphicsPipeline 后,应避免更改任何值。要更改某些状态,可设置新值并再次调用create() 。不过,这将有效释放所有底层本地资源并创建新资源。因此,这可能是一个繁重而昂贵的操作。因此,最好使用不同的状态创建多个管道,并在记录渲染过程时switch between them

注意: 必须设置着色器阶段。必须至少有一个阶段,而且必须有一个顶点阶段。

注意: 必须设置着色器资源绑定。在调用create() 时,被引用的QRhiShaderResourceBindings 必须已经调用过create() 。与没有绑定的QRhiShaderResourceBindings 关联也是有效的,只要任何阶段的着色器都不需要任何资源。使用未指定任何实际资源的QRhiShaderResourceBindings 对象(即绑定点的缓冲区、纹理等设置为nullptr )也是有效的,只要在记录渲染传递时,通过setShaderResources() 设置layout-compatible QRhiShaderResourceBindings ,为所有绑定指定资源即可。

注: 必须设置顶点输入布局。

注: sampleCount() 的默认值为 1,且必须与渲染目标的颜色和深度模板附件的样本数相匹配。

注: 深度测试、深度写入和模版测试默认为禁用。面剔除模式默认为不剔除。

注: stencilReadMask() 和stencilWriteMask() 适用于两个面。默认值均为 0xFF。

使用示例

图形管道的所有设置都有默认值,这些默认值可能适用于许多应用程序。因此,创建图形流水线的最小示例如下。假设顶点着色器在输入位置 0 处接收单个vec3 position 输入。利用QRhiShaderResourceBindingsQRhiRenderPassDescriptor 对象,再加上用于顶点和片段阶段的QShader 集合,可以创建如下管道:

QRhiShaderResourceBindings *srb;
QRhiRenderPassDescriptor *rpDesc;
QShader vs, fs;
// ...

QRhiVertexInputLayout inputLayout;
inputLayout.setBindings({ { 3 * sizeof(float) } });
inputLayout.setAttributes({ { 0, 0, QRhiVertexInputAttribute::Float3, 0 } });

QRhiGraphicsPipeline *ps = rhi->newGraphicsPipeline();
ps->setShaderStages({ { QRhiShaderStage::Vertex, vs }, { QRhiShaderStage::Fragment, fs } });
ps->setVertexInputLayout(inputLayout);
ps->setShaderResourceBindings(srb);
ps->setRenderPassDescriptor(rpDesc);
if (!ps->create()) { error(); }

上述代码创建的流水线对象在许多设置和状态上都使用了默认值。例如,它将使用Triangles 拓扑,不使用背面剔除,禁用混合,但启用所有四个通道的颜色写入,禁用深度测试/写入,禁用模版操作。

注: 这是一个 RHI API,兼容性保证有限,详情请参见QRhi

另请参阅 QRhiCommandBufferQRhi

成员类型文档

enum QRhiGraphicsPipeline::BlendFactor

指定混合因子

常数
QRhiGraphicsPipeline::Zero0
QRhiGraphicsPipeline::One1
QRhiGraphicsPipeline::SrcColor2
QRhiGraphicsPipeline::OneMinusSrcColor3
QRhiGraphicsPipeline::DstColor4
QRhiGraphicsPipeline::OneMinusDstColor5
QRhiGraphicsPipeline::SrcAlpha6
QRhiGraphicsPipeline::OneMinusSrcAlpha7
QRhiGraphicsPipeline::DstAlpha8
QRhiGraphicsPipeline::OneMinusDstAlpha9
QRhiGraphicsPipeline::ConstantColor10
QRhiGraphicsPipeline::OneMinusConstantColor11
QRhiGraphicsPipeline::ConstantAlpha12
QRhiGraphicsPipeline::OneMinusConstantAlpha13
QRhiGraphicsPipeline::SrcAlphaSaturate14
QRhiGraphicsPipeline::Src1Color15
QRhiGraphicsPipeline::OneMinusSrc1Color16
QRhiGraphicsPipeline::Src1Alpha17
QRhiGraphicsPipeline::OneMinusSrc1Alpha18

enum QRhiGraphicsPipeline::BlendOp

指定混合操作

常数
QRhiGraphicsPipeline::Add0
QRhiGraphicsPipeline::Subtract1
QRhiGraphicsPipeline::ReverseSubtract2
QRhiGraphicsPipeline::Min3
QRhiGraphicsPipeline::Max4

枚举 QRhiGraphicsPipeline::ColorMaskComponent
标志 QRhiGraphicsPipeline::ColorMask

用于指定颜色写入掩码的标志值

常量
QRhiGraphicsPipeline::R1 << 0
QRhiGraphicsPipeline::G1 << 1
QRhiGraphicsPipeline::B1 << 2
QRhiGraphicsPipeline::A1 << 3

ColorMask 类型是QFlags<ColorMaskComponent> 的类型定义。它存储了 ColorMaskComponent 值的 OR 组合。

enum QRhiGraphicsPipeline::CompareOp

指定深度或模版比较函数

常数说明
QRhiGraphicsPipeline::Never0
QRhiGraphicsPipeline::Less1(深度比较默认值)
QRhiGraphicsPipeline::Equal2
QRhiGraphicsPipeline::LessOrEqual3
QRhiGraphicsPipeline::Greater4
QRhiGraphicsPipeline::NotEqual5
QRhiGraphicsPipeline::GreaterOrEqual6
QRhiGraphicsPipeline::Always7(模版的默认值)

enum QRhiGraphicsPipeline::CullMode

指定剔除模式

常数说明
QRhiGraphicsPipeline::None0无剔除(默认)
QRhiGraphicsPipeline::Front1剔除正面
QRhiGraphicsPipeline::Back2剔除背面

枚举 QRhiGraphicsPipeline::Flag
flags QRhiGraphicsPipeline::Flags

用于描述流水线动态状态和其他选项的标志值。视口始终是动态的。

常量说明
QRhiGraphicsPipeline::UsesBlendConstants1 << 0表示将通过QRhiCommandBuffer::setBlendConstants() 设置混合色常量
QRhiGraphicsPipeline::UsesStencilRef1 << 1表示将通过QRhiCommandBuffer::setStencilRef() 设置模板参考值
QRhiGraphicsPipeline::UsesScissor1 << 2表示将通过QRhiCommandBuffer::setScissor() 设置剪刀矩形
QRhiGraphicsPipeline::CompileShadersWithDebugInfo1 << 3要求编译着色器时启用调试信息。这只有在涉及从源代码编译运行时着色器时才有意义,而且只有在底层基础架构支持时才有意义。举个具体例子,这与 Vulkan 和 SPIR-V 无关,因为 GLSL 到 SPIR-V 的编译不是在运行时进行的。另一方面,考虑到 Direct3D 和 HLSL 有多种选择:当QShader 软件包附带预编译字节码(DXBC )时,调试信息将通过生成.qsb 文件的工具请求,这与 Vulkan 和 SPIR-V 的情况类似。不过,如果在预生成或运行时生成的QShader 包中有 HLSL 源代码,则编译的第一阶段(将 HLSL 源代码转换为中间格式)也会在运行时进行,并将此标记考虑在内。调试信息与 RenderDoc 等工具尤其相关,因为它允许在调查流水线和执行顶点或片段 Shader 调试时看到原始源代码。
QRhiGraphicsPipeline::UsesShadingRate1 << 4表示将通过QRhiCommandBuffer::setShadingRate() 设置每次绘制(每条流水线)的着色率值。如果不指定此标志,而仍然调用 setShadingRate() 可能会导致不同的意外结果,具体取决于底层图形 API。

Flags 类型是QFlags<Flag> 的类型定义。它存储 Flag 值的 OR 组合。

enum QRhiGraphicsPipeline::FrontFace

指定正面卷绕顺序

常数说明
QRhiGraphicsPipeline::CCW0逆时针(默认)
QRhiGraphicsPipeline::CW1顺时针

enum QRhiGraphicsPipeline::PolygonMode

指定多边形光栅化模式

多边形模式(Metal 中的三角形填充模式,D3D 中的填充模式)指定多边形光栅化时使用的填充模式。多边形可以绘制为实体(填充),也可以绘制为金属丝网(线条)。

对非填充多边形模式的支持是可选的,由QRhi::NonFillPolygonMode 功能表示。在 OpenGL ES 和某些 Vulkan 实现中,该特性可能会被报告为不支持,这意味着不能使用填充以外的值。

常量描述
QRhiGraphicsPipeline::Fill0填充多边形内部(默认值)
QRhiGraphicsPipeline::Line1多边形的边界边缘绘制为线段。

enum QRhiGraphicsPipeline::StencilOp

指定模板操作

常数说明
QRhiGraphicsPipeline::StencilZero0
QRhiGraphicsPipeline::Keep1(默认值)
QRhiGraphicsPipeline::Replace2
QRhiGraphicsPipeline::IncrementAndClamp3
QRhiGraphicsPipeline::DecrementAndClamp4
QRhiGraphicsPipeline::Invert5
QRhiGraphicsPipeline::IncrementAndWrap6
QRhiGraphicsPipeline::DecrementAndWrap7

enum QRhiGraphicsPipeline::Topology

指定原始拓扑结构

常数说明
QRhiGraphicsPipeline::Triangles0(默认值)
QRhiGraphicsPipeline::TriangleStrip1
QRhiGraphicsPipeline::TriangleFan2(仅在支持QRhi::TriangleFanTopology 时可用)
QRhiGraphicsPipeline::Lines3
QRhiGraphicsPipeline::LineStrip4
QRhiGraphicsPipeline::Points5
QRhiGraphicsPipeline::Patches6(仅在支持QRhi::Tessellation 时可用,并且要求管道中存在细分阶段)。

成员函数文档

const QRhiShaderStage *QRhiGraphicsPipeline::cbeginShaderStages() const

返回一个常量迭代器,指向着色器阶段列表中的第一个项目。

const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cbeginTargetBlends() const

返回一个常量迭代器,指向呈现目标混合设置列表中的第一个项目。

const QRhiShaderStage *QRhiGraphicsPipeline::cendShaderStages() const

返回一个常量迭代器,指向着色器阶段列表中的最后一个项目。

const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cendTargetBlends() const

返回一个常量迭代器,指向渲染目标混合设置列表中的最后一项。

[pure virtual] bool QRhiGraphicsPipeline::create()

创建相应的本地图形资源。如果由于之前的 create() 没有相应的destroy() 而导致资源已经存在,则会先隐式调用destroy()。

成功时返回true ,图形操作失败时返回false 。无论返回值如何,调用destroy() 总是安全的。

注意: 根据底层图形应用程序接口的不同,这可能是一个昂贵的操作,尤其是当着色器从源代码或中间字节码格式编译/优化为 GPU 自身的指令集时。在适用的情况下,QRhi 后端会自动设置相关的非持久化设施来加速这一过程,例如,Vulkan 后端会自动创建一个VkPipelineCache ,以提高应用程序生命周期内的数据重用率。

注: 驱动程序还可能对着色器和流水线数据采用各种持久性(基于磁盘)缓存策略,这些策略是隐藏的,不在 Qt 的控制范围内。在某些情况下,根据图形 API 和QRhi 后端,QRhi 中提供了手动管理此类缓存的工具,允许检索可序列化的 blob,然后在应用程序的未来运行中重新加载,以确保更快的管道创建时间。详情请参见QRhi::pipelineCacheData() 和QRhi::setPipelineCacheData()。还需注意的是,在使用由更高级 Qt 框架(如Qt Quick )管理的QRhi 实例时,此类基于磁盘的缓存可能会自动处理,例如QQuickWindow 默认使用基于磁盘的管道缓存(除驱动级缓存外)。

QRhiGraphicsPipeline::CullMode QRhiGraphicsPipeline::cullMode() const

返回当前设置的面部剔除模式。

另请参阅 setCullMode()。

int QRhiGraphicsPipeline::depthBias() const

返回当前设置的深度偏置。

另请参见 setDepthBias()。

QRhiGraphicsPipeline::CompareOp QRhiGraphicsPipeline::depthOp() const

返回深度比较函数。

另请参见 setDepthOp()。

QRhiGraphicsPipeline::Flags QRhiGraphicsPipeline::flags() const

返回当前设置的标志。

另请参见 setFlags()。

QRhiGraphicsPipeline::FrontFace QRhiGraphicsPipeline::frontFace() const

返回当前设置的正面模式。

另请参阅 setFrontFace()。

bool QRhiGraphicsPipeline::hasDepthTest() const

如果启用了深度测试,则返回 true。

bool QRhiGraphicsPipeline::hasDepthWrite() const

如果启用了深度写入,则返回 true。

bool QRhiGraphicsPipeline::hasStencilTest() const

如果模板测试已启用,则返回 true。

float QRhiGraphicsPipeline::lineWidth() const

返回当前设置的线宽。默认值为 1.0f。

另请参见 setLineWidth()。

[since 6.7] int QRhiGraphicsPipeline::multiViewCount() const

返回视图计数。默认值为 0,表示没有多视图渲染。

此函数在 Qt 6.7 中引入。

另请参阅 setMultiViewCount()。

int QRhiGraphicsPipeline::patchControlPointCount() const

返回当前设置的补丁控制点计数。

另请参阅 setPatchControlPointCount().

QRhiGraphicsPipeline::PolygonMode QRhiGraphicsPipeline::polygonMode() const

返回多边形模式。

另请参见 setPolygonMode()。

QRhiRenderPassDescriptor *QRhiGraphicsPipeline::renderPassDescriptor() const

返回当前设置的QRhiRenderPassDescriptor

另请参阅 setRenderPassDescriptor() 。

[override virtual] QRhiResource::Type QRhiGraphicsPipeline::resourceType() const

重实现:QRhiResource::resourceType() 常量。

返回资源类型。

int QRhiGraphicsPipeline::sampleCount() const

返回当前设置的采样计数。1 表示无多采样抗锯齿。

另请参见 setSampleCount()。

void QRhiGraphicsPipeline::setCullMode(QRhiGraphicsPipeline::CullMode mode)

设置指定的面剔除mode

另请参阅 cullMode() 。

void QRhiGraphicsPipeline::setDepthBias(int bias)

设置深度bias 。默认值为 0。

另请参阅 depthBias() 。

void QRhiGraphicsPipeline::setDepthOp(QRhiGraphicsPipeline::CompareOp op)

设置深度比较函数op

另请参阅 depthOp() 。

void QRhiGraphicsPipeline::setDepthTest(bool enable)

根据enable 启用或禁用深度测试。默认情况下,深度测试和写出深度数据都是禁用的。

另请参阅 hasDepthTest() 和setDepthWrite() 。

void QRhiGraphicsPipeline::setDepthWrite(bool enable)

根据enable 控制将深度数据写入深度缓冲区。默认情况下禁用。深度写入通常与深度测试一起启用。

注意: 在未启用深度测试的情况下启用深度写入功能可能达不到预期效果,因此应避免启用。

另请参阅 hasDepthWrite() 和setDepthTest()。

void QRhiGraphicsPipeline::setFlags(QRhiGraphicsPipeline::Flags f)

设置标志f

另请参阅 flags() 。

void QRhiGraphicsPipeline::setFrontFace(QRhiGraphicsPipeline::FrontFace f)

设置正面模式f

另请参阅 frontFace() 。

void QRhiGraphicsPipeline::setLineWidth(float width)

设置行width 。如果QRhi::WideLines 功能在运行时被报告为不支持,则会忽略 1.0f 以外的值。

另请参阅 lineWidth() 。

[since 6.7] void QRhiGraphicsPipeline::setMultiViewCount(int count)

设置多视图渲染的视图count 。默认值为 0,表示不进行多视图渲染。count 必须大于等于 2 才能触发多视图渲染。

只有当MultiView feature 报告支持多视图时,多视图才可用。渲染目标必须是二维纹理数组,而且渲染目标的颜色附件必须具有相同的count 设置。

有关多视图渲染的更多详情,请参阅QRhiColorAttachment::setMultiViewCount() 。

此函数在 Qt 6.7 中引入。

另请参阅 multiViewCount()、QRhi::MultiViewQRhiColorAttachment::setMultiViewCount()。

void QRhiGraphicsPipeline::setPatchControlPointCount(int count)

将补丁控制点的数量设置为count 。默认值为 3。仅当拓扑结构设置为Patches 时才会使用。

另请参阅 patchControlPointCount() 。

void QRhiGraphicsPipeline::setPolygonMode(QRhiGraphicsPipeline::PolygonMode mode)

设置多边形mode 。默认为填充。

另请参阅 polygonMode() 和QRhi::NonFillPolygonMode

void QRhiGraphicsPipeline::setRenderPassDescriptor(QRhiRenderPassDescriptor *desc)

与指定的QRhiRenderPassDescriptor desc 关联。

另请参见 renderPassDescriptor() 。

void QRhiGraphicsPipeline::setSampleCount(int s)

设置采样次数。s 的典型值为 1、4 或 8。管道必须始终与渲染目标兼容,即样本数必须匹配。

另请参阅 sampleCount() 和QRhi::supportedSampleCounts()。

void QRhiGraphicsPipeline::setShaderResourceBindings(QRhiShaderResourceBindings *srb)

srb 关联,描述资源绑定布局和资源 (QRhiBuffer,QRhiTexture) 本身。后者是可选的,因为在管道创建过程中,只有布局才是最重要的。因此,此处传递的srb 可以不指定实际的缓冲区或纹理对象 (nullptr) ,只要在记录绘制调用之前通过setShaderResources() 绑定了另一个layout-compatible QRhiShaderResourceBindings 即可。

另请参阅 shaderResourceBindings() 。

void QRhiGraphicsPipeline::setShaderStages(std::initializer_list<QRhiShaderStage> list)

设置着色器阶段的list

template <typename InputIterator> void QRhiGraphicsPipeline::setShaderStages(InputIterator first, InputIterator last)

通过迭代器firstlast 设置着色器阶段列表。

void QRhiGraphicsPipeline::setSlopeScaledDepthBias(float bias)

设置斜率缩放深度bias 。默认值为 0。

另请参阅 slopeScaledDepthBias() 。

void QRhiGraphicsPipeline::setStencilBack(const QRhiGraphicsPipeline::StencilOpState &state)

设置背面的钢网测试state

另请参阅 stencilBack().

void QRhiGraphicsPipeline::setStencilFront(const QRhiGraphicsPipeline::StencilOpState &state)

设置正面的钢网测试state

另请参阅 stencilFront().

void QRhiGraphicsPipeline::setStencilReadMask(quint32 mask)

设置模板读取mask 。默认值为 0xFF。

另请参见 stencilReadMask().

void QRhiGraphicsPipeline::setStencilTest(bool enable)

根据enable 启用或禁用钢网测试。默认情况下禁用。

另请参阅 hasStencilTest().

void QRhiGraphicsPipeline::setStencilWriteMask(quint32 mask)

设置模板写入mask 。默认值为 0xFF。

另请参阅 stencilWriteMask() 。

void QRhiGraphicsPipeline::setTargetBlends(std::initializer_list<QRhiGraphicsPipeline::TargetBlend> list)

设置list 渲染目标混合设置。这是一个列表,因为当使用多个渲染目标时(即一个QRhiTextureRenderTarget 有多个QRhiColorAttachment ),每个渲染目标(颜色附件)都需要有一个TargetBlend 结构。

默认情况下,有一个默认构建的TargetBlend 集合。

另请参见 QRhi::MaxColorAttachments

template <typename InputIterator> void QRhiGraphicsPipeline::setTargetBlends(InputIterator first, InputIterator last)

设置迭代器firstlast 中的渲染目标混合设置列表。

void QRhiGraphicsPipeline::setTopology(QRhiGraphicsPipeline::Topology t)

设置原始拓扑t

另请参阅 topology() 。

void QRhiGraphicsPipeline::setVertexInputLayout(const QRhiVertexInputLayout &layout)

指定顶点输入layout

另请参阅 vertexInputLayout() 。

QRhiShaderResourceBindings *QRhiGraphicsPipeline::shaderResourceBindings() const

返回当前关联的QRhiShaderResourceBindings 对象。

另请参阅 setShaderResourceBindings().

const QRhiShaderStage *QRhiGraphicsPipeline::shaderStageAt(qsizetype index) const

返回指定index 的着色器阶段。

qsizetype QRhiGraphicsPipeline::shaderStageCount() const

返回此流水线中着色器级数。

float QRhiGraphicsPipeline::slopeScaledDepthBias() const

返回当前设置的斜率缩放深度偏差。

另请参阅 setSlopeScaledDepthBias().

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilBack() const

返回背面的当前钢网测试状态。

另请参见 setStencilBack().

QRhiGraphicsPipeline::StencilOpState QRhiGraphicsPipeline::stencilFront() const

返回当前正面的钢网测试状态。

另请参见 setStencilFront().

quint32 QRhiGraphicsPipeline::stencilReadMask() const

返回当前模板读取掩码。

另请参见 setStencilReadMask().

quint32 QRhiGraphicsPipeline::stencilWriteMask() const

返回当前模板写入掩码。

另请参阅 setStencilWriteMask().

const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::targetBlendAt(qsizetype index) const

返回指定index 的渲染目标混合设置。

qsizetype QRhiGraphicsPipeline::targetBlendCount() const

返回渲染目标混合设置的数量。

QRhiGraphicsPipeline::Topology QRhiGraphicsPipeline::topology() const

返回当前设置的原始拓扑结构。

另请参见 setTopology()。

QRhiVertexInputLayout QRhiGraphicsPipeline::vertexInputLayout() const

返回当前设置的顶点输入布局规范。

另请参阅 setVertexInputLayout().

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.