QRhiGraphicsPipeline 类
图形管线状态资源。更多...
头文件 | #include <QRhiGraphicsPipeline> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
自 | Qt 6.6 起 |
继承 | QRhiResource |
公共类型
(since 6.6) struct | StencilOpState |
(since 6.6) struct | TargetBlend |
枚举 | BlendFactor { Zero, One, SrcColor, OneMinusSrcColor, DstColor, …, OneMinusSrc1Alpha } |
枚举 | BlendOp { Add, Subtract, ReverseSubtract, Min, Max } |
标志 | ColorMask |
枚举 | ColorMaskComponent { R, G, B, A } |
枚举 | CompareOp { Never, Less, Equal, LessOrEqual, Greater, …, Always } |
枚举 | CullMode { None, Front, Back } |
枚举 | Flag { UsesBlendConstants, UsesStencilRef, UsesScissor, CompileShadersWithDebugInfo } |
标志 | 标志 |
枚举 | FrontFace { CCW, CW } |
枚举 | PolygonMode { Fill, Line } |
枚举 | StencilOp { StencilZero, Keep, Replace, IncrementAndClamp, DecrementAndClamp, …, DecrementAndWrap } |
枚举 | 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()()。然而,这样将有效地释放所有底层原生资源并创建新的资源。因此,这可能是一个繁重且昂贵的操作。相反,请在记录渲染通道时使用不同状态的多个管线,并在记录渲染通道时在它们之间切换。
注意:设置着色器阶段是强制性的。必须至少有一个阶段,并且必须有一个顶点阶段。
注意:设置着色器资源绑定是强制性的。在调用create()()时,所引用的QRhiShaderResourceBindings必须已经调用。与没有任何绑定的QRhiShaderResourceBindings相关联也是有效的,只要任何阶段中的着色器不期望任何资源即可。使用没有指定任何实际资源(即,绑定点的缓冲区、纹理等被设置为nullptr
)的QRhiShaderResourceBindings对象也是有效的,只要将通过setShaderResources()设置一个QRhiShaderResourceBindings,指定所有绑定点的资源,当记录渲染通道时即可。
注意:设置渲染通道描述符是强制性的。要获取可以通过setRenderPassDescriptor()传递的QRhiRenderPassDescriptor,可以使用QRhiTextureRenderTarget::newCompatibleRenderPassDescriptor()或QRhiSwapChain::newCompatibleRenderPassDescriptor()。
注意:设置顶点输入布局是强制性的。
注意:sampleCount()默认为1,必须与渲染目标的颜色和深度模板纹理的采样数匹配。
注意:深度测试、深度写入和模板测试默认是禁用的。面剔除模式默认为无剔除。
注意:stencilReadMask()和stencilWriteMask()适用于两个面。它们默认都为0xFF。
示例用法
图形管线的所有设置都有默认值,这可能适合许多应用。因此,创建图形管道的最小示例可能如下所示。这假设顶点着色器在输入位置0处接受单个vec3 position
输入。使用QRhiShaderResourceBindings和QRhiRenderPassDescriptor对象,以及顶点和片段阶段的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(); }
上述代码创建了一个管道对象,它使用了许多设置的默认值和状态。例如,它将使用三角形拓扑,无背面剔除,混合被禁用,但所有四个通道的颜色写入都启用,深度测试/写入被禁用,模板操作被禁用。
注意:这是一个具有有限兼容性保证的RHI API,有关详细信息,请参见QRhi。
另请参阅:QRhiCommandBuffer和QRhi。
成员类型文档
enum QRhiGraphicsPipeline::BlendFactor
指定混合因子
常量 | 值 |
---|---|
QRhiGraphicsPipeline::Zero | 0 |
QRhiGraphicsPipeline::One | 1 |
QRhiGraphicsPipeline::SrcColor | 2 |
QRhiGraphicsPipeline::OneMinusSrcColor | 3 |
QRhiGraphicsPipeline::DstColor | 4 |
QRhiGraphicsPipeline::OneMinusDstColor | 5 |
QRhiGraphicsPipeline::SrcAlpha | 6 |
QRhiGraphicsPipeline::OneMinusSrcAlpha | 7 |
QRhiGraphicsPipeline::DstAlpha | 8 |
QRhiGraphicsPipeline::OneMinusDstAlpha | 9 |
QRhiGraphicsPipeline::ConstantColor | 10 |
QRhiGraphicsPipeline::OneMinusConstantColor | 11 |
QRhiGraphicsPipeline::ConstantAlpha | 12 |
QRhiGraphicsPipeline::OneMinusConstantAlpha | 13 |
QRhiGraphicsPipeline::SrcAlphaSaturate | 14 |
QRhiGraphicsPipeline::Src1Color | 15 |
QRhiGraphicsPipeline::OneMinusSrc1Color | 16 |
QRhiGraphicsPipeline::Src1Alpha | 17 |
QRhiGraphicsPipeline::OneMinusSrc1Alpha | 18 |
enum QRhiGraphicsPipeline::BlendOp
指定混合操作
常量 | 值 |
---|---|
QRhiGraphicsPipeline::Add | 0 |
QRhiGraphicsPipeline::Subtract | 1 |
QRhiGraphicsPipeline::ReverseSubtract | 2 |
QRhiGraphicsPipeline::Min | 3 |
QRhiGraphicsPipeline::Max | 4 |
enum QRhiGraphicsPipeline::ColorMaskComponent
flags QRhiGraphicsPipeline::ColorMask
用于指定颜色写入掩码的标志值
常量 | 值 |
---|---|
QRhiGraphicsPipeline::R | 1 << 0 |
QRhiGraphicsPipeline::G | 1 << 1 |
QRhiGraphicsPipeline::B | 1 << 2 |
QRhiGraphicsPipeline::A | 1 << 3 |
ColorMask类型是QFlags<ColorMaskComponent>的定义。它存储了一个ColorMaskComponent值的OR组合。
enum QRhiGraphicsPipeline::CompareOp
指定深度或模板比较函数
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::Never | 0 | |
QRhiGraphicsPipeline::Less | 1 | (深度默认值) |
QRhiGraphicsPipeline::Equal | 2 | |
QRhiGraphicsPipeline::LessOrEqual | 3 | |
QRhiGraphicsPipeline::Greater | 4 | |
QRhiGraphicsPipeline::NotEqual | 5 | |
QRhiGraphicsPipeline::GreaterOrEqual | 6 | |
QRhiGraphicsPipeline::Always | 7 | (模板默认值) |
enum QRhiGraphicsPipeline::CullMode
指定剔除模式
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::None | 0 | 无剔除(默认值) |
QRhiGraphicsPipeline::Front | 1 | 剔除前端面 |
QRhiGraphicsPipeline::Back | 2 | 剔除背端面 |
enum QRhiGraphicsPipeline::Flag
flags QRhiGraphicsPipeline::Flags
用于描述管道动态状态和其他选项的标志值。视窗始终是动态的。
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::UsesBlendConstants | 1 << 0 | 指示将通过QRhiCommandBuffer::setBlendConstants()设置混合颜色常量 |
QRhiGraphicsPipeline::UsesStencilRef | 1 << 1 | 指示将通过QRhiCommandBuffer::setStencilRef()设置模板引用值 |
QRhiGraphicsPipeline::UsesScissor | 1 << 2 | 指示将通过QRhiCommandBuffer::setScissor()设置裁剪矩形 |
QRhiGraphicsPipeline::CompileShadersWithDebugInfo | 1 << 3 | 请求编译开启调试信息的着色器。这仅在涉及从源代码进行运行时着色器编译时相关,并且仅在底层基础设施支持此功能时相关。具体来说,这与Vulkan和SPIR-V无关,因为GLSL到SPIR-V的编译不会在运行时发生。另一方面,考虑Direct3D和HLSL,这里有多个选项:当QShader包附带预编译的字节码(DXBC )时,需要通过生成.qsb 文件的工具来请求调试信息,这与Vulkan和SPIR-V的情况类似。然而,当在预生成或运行时生成的QShader包中具有HLSL源代码时,编译的第一个阶段(从HLSL源到中间格式)也会在运行时发生,并考虑此标志。调试信息尤其与RenderDoc之类的工具相关,因为它允许在调查管道和执行顶点或片段着色器调试时查看原始源代码。 |
Flags类型是QFlags<Flag>的typedef。它存储Flag值的OR组合。
枚举 QRhiGraphicsPipeline::FrontFace
指定前向面绕序
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::CCW | 0 | 逆时针(默认) |
QRhiGraphicsPipeline::CW | 1 | 顺时针 |
枚举 QRhiGraphicsPipeline::PolygonMode
指定多边形光栅化模式
多边形模式(在Metal中为三角形填充模式,在D3D中为填充模式)指定在光栅化多边形时使用的填充模式。多边形可以绘制为实体(填充),或者作为线框(线)。
对非填充多边形模式的支持是可选的,并由QRhi::NonFillPolygonMode特性指示。对于OpenGL ES和一些Vulkan实现,该特性可能报告为不受支持,这意味着除了填充之外不能使用任何值。
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::Fill | 0 | 填充多边形的内部(默认) |
QRhiGraphicsPipeline::Line | 1 | 绘制多边形边界的线段。 |
枚举 QRhiGraphicsPipeline::StencilOp
指定模板操作
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::StencilZero | 0 | |
QRhiGraphicsPipeline::Keep | 1 | (默认) |
QRhiGraphicsPipeline::Replace | 2 | |
QRhiGraphicsPipeline::IncrementAndClamp | 3 | |
QRhiGraphicsPipeline::DecrementAndClamp | 4 | |
QRhiGraphicsPipeline::Invert | 5 | |
QRhiGraphicsPipeline::IncrementAndWrap | 6 | |
QRhiGraphicsPipeline::DecrementAndWrap | 7 |
枚举 QRhiGraphicsPipeline::Topology
指定原语拓扑
常量 | 值 | 描述 |
---|---|---|
QRhiGraphicsPipeline::Triangles | 0 | (默认) |
QRhiGraphicsPipeline::TriangleStrip | 1 | |
QRhiGraphicsPipeline::TriangleFan | 2 | (只有当QRhi::TriangleFanTopology受支持时可用) |
QRhiGraphicsPipeline::Lines | 3 | |
QRhiGraphicsPipeline::LineStrip | 4 | |
QRhiGraphicsPipeline::Points | 5 | |
QRhiGraphicsPipeline::Patches | 6 | (只有当QRhi::Tessellation受支持时可用,并且需要管道中存在细分阶段) |
成员函数文档
const QRhiShaderStage *QRhiGraphicsPipeline::cbeginShaderStages() const
返回一个指向着色器阶段列表中第一个项目的常量迭代器的指针。
const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cbeginTargetBlends() const
返回一个指向渲染目标混合设置列表中第一个项目的常量迭代器的指针。
const QRhiShaderStage *QRhiGraphicsPipeline::cendShaderStages() const
返回一个指向着着色阶段列表最后一个元素之后的const迭代器。
const QRhiGraphicsPipeline::TargetBlend *QRhiGraphicsPipeline::cendTargetBlends() const
返回一个指向渲染目标混合设置列表最后一个元素之后的const迭代器。
[纯虚函数]
bool QRhiGraphicsPipeline::create()
创建相应的本地图形资源。如果由于之前无对应destroy的create()存在资源,则优先隐式调用destroy()。
成功时返回true
,图形操作失败时返回false
。无论返回值如何,调用destroy()总是安全的。
注意:这可能是底层图形API的开销较大的操作,特别是在将着色器从源代码或中间字节码格式编译/优化到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。
[override virtual]
QRhiResource::Type QRhiGraphicsPipeline::resourceType() const
重实现: QRhiResource::resourceType() const。
返回资源类型。
int QRhiGraphicsPipeline::sampleCount() const
返回当前设置的采样数。1表示无多重采样抗锯齿。
另请参阅setSampleCount。
void QRhiGraphicsPipeline::setCullMode(QRhiGraphicsPipeline::CullMode mode)
设置指定的面剔除模式。
另请参阅cullMode。
void QRhiGraphicsPipeline::setDepthBias(int 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().
[自 6.7]
void QRhiGraphicsPipeline::setMultiViewCount(int count)
设置多重视图渲染的视图 count。默认值为 0,表示不进行多重视图渲染。要引发多重视图渲染,count 必须为 2 或更大。
只有在报告 MultiView 特性 受到支持时,多重视图才可用。渲染目标必须是 2D 纹素数组,并且渲染目标的颜色附加必须设置为相同的 count。
有关多重视图渲染的更多详细信息,请参见 QRhiColorAttachment::setMultiViewCount().
此函数在Qt 6.7中引入。
另请参阅 multiViewCount(),QRhi::MultiView 和 QRhiColorAttachment::setMultiViewCount().
void QRhiGraphicsPipeline::setPatchControlPointCount(int count)
设置补丁控制点数量为 count。默认值为 3。仅在将拓扑设置为 Patches 时使用。
另请参阅 patchControlPointCount().
void QRhiGraphicsPipeline::setPolygonMode(QRhiGraphicsPipeline::PolygonMode 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)
与描述资源绑定布局以及资源(QRhiBuffer,QRhiTexture)本身的 srb 相关联。后两者是可选的,因为只有在管道创建期间布局才是重要的。因此,传递给这里的 srb 可以省略实际缓冲区或纹理对象,只要还有一个,定义与布局兼容的 QRhiShaderResourceBindings 的 setShaderResources 被用于记录绘制调用之前。
另请参阅 shaderResourceBindings。
void QRhiGraphicsPipeline::setShaderStages(std::initializer_list<QRhiShaderStage> list)
设置着色器阶段列表 list。
template <typename InputIterator> void QRhiGraphicsPipeline::setShaderStages(InputIterator first, InputIterator last)
从迭代器 first 和 last 设置着色器阶段列表。
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),需要为每个渲染目标(颜色附加)设置一个
默认情况下,已设置一个默认构造的
另请参阅QRhi::MaxColorAttachments。
template <typename InputIterator> void QRhiGraphicsPipeline::setTargetBlends(InputIterator first, InputIterator last)
从迭代器first和last设置渲染目标混合设置列表。
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
返回当前设置的斜率缩放深度偏移。
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
返回指定 索引 处的目标混合设置。
qsizetype QRhiGraphicsPipeline::targetBlendCount() const
返回目标混合设置的数量。
QRhiGraphicsPipeline::Topology QRhiGraphicsPipeline::topology() const
返回当前设置的原始拓扑。
另请参阅 setTopology。
QRhiVertexInputLayout QRhiGraphicsPipeline::vertexInputLayout() const
返回当前设置的真相关入布局规范。
另请参阅 setVertexInputLayout。
© 2024 Qt公司。此处包含的文档贡献者是各自版权的所有者。提供的文档是在自由软件基金会根据GNU自由文档许可版1.3的条款下许可的。Qt及其相关标志是芬兰及其它国家/地区的Qt公司的商标。所有其他商标均为其各自所有者的财产。