图形管线状态结构体
struct QSGMaterialShader::GraphicsPipelineState描述材质想要应用于当前活动图形管线状态的变更。 更多信息...
公共类型
枚举 | BlendFactor { 零, 一, 源色, 一减源色, 源颜色Alpha, …, 一减源1Alpha } |
标志 | 颜色遮罩 |
枚举 | ColorMaskComponent { R, G, B, A } |
枚举 | CullMode { 无裁剪, 裁剪前面, 裁剪后面 } |
(自 6.4) 枚举 | PolygonMode { 填充, 线条 } |
公共变量
QColor | 混合常数 |
布尔值 | 混合启用 |
QSGMaterialShader::GraphicsPipelineState::颜色遮罩 | 颜色写入 |
QSGMaterialShader::GraphicsPipelineState::裁剪模式 | 裁剪模式 |
(自 6.5) QSGMaterialShader::GraphicsPipelineState::BlendFactor | 目标Alpha |
QSGMaterialShader::GraphicsPipelineState::BlendFactor | 目标颜色 |
(自 6.4) QSGMaterialShader::GraphicsPipelineState::PolygonMode | 多边形模式 |
(自 6.5) 布尔值 | 单独的混合系数 |
(自 6.5) QSGMaterialShader::GraphicsPipelineState::BlendFactor | 源Alpha |
QSGMaterialShader::GraphicsPipelineState::BlendFactor | 源颜色 |
详细描述
与QSGMaterialShader不同,使用根本性的图形API直接发布状态变更命令是不可能的。这主要是因为可单独变更状态的概念被认为是过时的,并且在现代图形API中不支持。
因此,QSGMaterialShader负责公开一个包含支持状态的集合的数据结构,在材质的updatePipelineState()实现中(如果存在的话)可以更改。然后场景图将内部应用这些更改到活动图形管线状态,并在适当的时候撤回它们。
当调用updateGraphicsPipelineState()时,该结构体具有所有成员设置为有效值,以反映渲染器的当前状态。不更改任何值(或不重写该函数)表示材质对默认值很满意(然而,这些默认值是动态的,取决于例如QSGMaterial标志)。
成员类型文档
枚举 GraphicsPipelineState::BlendFactor
常量 | 值 |
---|---|
QSGMaterialShader::GraphicsPipelineState::Zero | 0 |
QSGMaterialShader::GraphicsPipelineState::One | 1 |
QSGMaterialShader::GraphicsPipelineState::SrcColor | 2 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcColor | 3 |
QSGMaterialShader::GraphicsPipelineState::DstColor | 4 |
QSGMaterialShader::GraphicsPipelineState::OneMinusDstColor | 5 |
QSGMaterialShader::GraphicsPipelineState::SrcAlpha | 6 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcAlpha | 7 |
QSGMaterialShader::GraphicsPipelineState::DstAlpha | 8 |
QSGMaterialShader::GraphicsPipelineState::OneMinusDstAlpha | 9 |
QSGMaterialShader::GraphicsPipelineState::ConstantColor | 10 |
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantColor | 11 |
QSGMaterialShader::GraphicsPipelineState::ConstantAlpha | 12 |
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantAlpha | 13 |
QSGMaterialShader::GraphicsPipelineState::SrcAlphaSaturate | 14 |
QSGMaterialShader::GraphicsPipelineState::Src1Color | 15 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Color | 16 |
QSGMaterialShader::GraphicsPipelineState::Src1Alpha | 17 |
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Alpha | 18 |
枚举 GraphicsPipelineState::ColorMaskComponent
标志 GraphicsPipelineState::ColorMask
常量 | 值 |
---|---|
QSGMaterialShader::GraphicsPipelineState::R | 1 << 0 |
QSGMaterialShader::GraphicsPipelineState::G | 1 << 1 |
QSGMaterialShader::GraphicsPipelineState::B | 1 << 2 |
QSGMaterialShader::GraphicsPipelineState::A | 1 << 3 |
The ColorMask 类型是 QFlags<ColorMaskComponent> 的类型别名。它存储 ColorMaskComponent 值的 OR 组合。
枚举 GraphicsPipelineState::CullMode
常量 | 值 |
---|---|
QSGMaterialShader::GraphicsPipelineState::CullNone | 0 |
QSGMaterialShader::GraphicsPipelineState::CullFront | 1 |
QSGMaterialShader::GraphicsPipelineState::CullBack | 2 |
[since 6.4]
枚举 GraphicsPipelineState::PolygonMode
指定多边形光栅化模式
多边形模式(在 Metal 中为三角形填充模式,在 D3D 中为填充模式)指定光栅化多边形时使用的填充模式。多边形可以绘制为实体(填充),或作为线网(线)。
警告:OpenGL ES 不支持 Line
多边形模式。无论设置何种多边形模式,OpenGL ES 都会将所有多边形光栅化为填充。使用 Line
会导致应用程序不可移植。
常量 | 值 | 描述 |
---|---|---|
QSGMaterialShader::GraphicsPipelineState::Fill | 0 | 多边形的内部被填充(默认) |
QSGMaterialShader::GraphicsPipelineState::Line | 1 | 多边形的边界边以线段形式绘制。 |
此枚举在 Qt 6.4 中引入。
成员变量文档
QColor GraphicsPipelineState::blendConstant
适用于设置到使用常量值的混合因子的混合常量。
bool GraphicsPipelineState::blendEnable
启用混合。
注意:更改此标志应谨慎进行,最好是避免更改。相反,材料应该始终使用 QSGMaterial::Blend 标志来指示它们希望使用混合。对于一个未声明 QSGMaterial::Blend 的材料,将此值从 false 更改为 true 可能会导致意外的视觉结果。
QSGMaterialShader::GraphicsPipelineState::ColorMask GraphicsPipelineState::colorWrite
颜色写入掩码。
QSGMaterialShader::GraphicsPipelineState::CullMode GraphicsPipelineState::cullMode
剔除模式。
[since 6.5]
QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstAlpha
目标 Alpha 混合因子。
仅在 separateBlendFactors 设置为 true 时应用。
此文档是在 Qt 6.5 中引入的。
QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstColor
目标混合系数,根据separateBlendFactors可以是RGB或RGBA。
[since 6.4]
QSGMaterialShader::GraphicsPipelineState::PolygonMode GraphicsPipelineState::polygonMode
多边形光栅化模式。
本文件自Qt 6.4版本引入。
[since 6.5]
bool GraphicsPipelineState::separateBlendFactors
指示是否分别指定alpha混合系数。
默认为False,表示RGB和alpha混合系数均由srcColor和dstColor定义。当设置为true时,alpha混合系数由srcAlpha和dstAlpha提供,而srcColor和dstColor仅应用于RGB。
此文档是在 Qt 6.5 中引入的。
[since 6.5]
QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcAlpha
源alpha混合系数。
仅在 separateBlendFactors 设置为 true 时应用。
此文档是在 Qt 6.5 中引入的。
QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcColor
源混合系数,根据separateBlendFactors可以是RGB或RGBA。
© 2024 Qt公司版权所有。在此包含的文档贡献属于各自的拥有者。提供的文档受GNU自由文档许可协议第1.3版的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰的Qt公司及其在全球的子公司和机构的商标。所有其他商标归其各自的所有者所有。