图形管线状态结构体

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::Zero0
QSGMaterialShader::GraphicsPipelineState::One1
QSGMaterialShader::GraphicsPipelineState::SrcColor2
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcColor3
QSGMaterialShader::GraphicsPipelineState::DstColor4
QSGMaterialShader::GraphicsPipelineState::OneMinusDstColor5
QSGMaterialShader::GraphicsPipelineState::SrcAlpha6
QSGMaterialShader::GraphicsPipelineState::OneMinusSrcAlpha7
QSGMaterialShader::GraphicsPipelineState::DstAlpha8
QSGMaterialShader::GraphicsPipelineState::OneMinusDstAlpha9
QSGMaterialShader::GraphicsPipelineState::ConstantColor10
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantColor11
QSGMaterialShader::GraphicsPipelineState::ConstantAlpha12
QSGMaterialShader::GraphicsPipelineState::OneMinusConstantAlpha13
QSGMaterialShader::GraphicsPipelineState::SrcAlphaSaturate14
QSGMaterialShader::GraphicsPipelineState::Src1Color15
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Color16
QSGMaterialShader::GraphicsPipelineState::Src1Alpha17
QSGMaterialShader::GraphicsPipelineState::OneMinusSrc1Alpha18

枚举 GraphicsPipelineState::ColorMaskComponent
标志 GraphicsPipelineState::ColorMask

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

The ColorMask 类型是 QFlags<ColorMaskComponent> 的类型别名。它存储 ColorMaskComponent 值的 OR 组合。

枚举 GraphicsPipelineState::CullMode

常量
QSGMaterialShader::GraphicsPipelineState::CullNone0
QSGMaterialShader::GraphicsPipelineState::CullFront1
QSGMaterialShader::GraphicsPipelineState::CullBack2

[since 6.4] 枚举 GraphicsPipelineState::PolygonMode

指定多边形光栅化模式

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

警告:OpenGL ES 不支持 Line 多边形模式。无论设置何种多边形模式,OpenGL ES 都会将所有多边形光栅化为填充。使用 Line 会导致应用程序不可移植。

常量描述
QSGMaterialShader::GraphicsPipelineState::Fill0多边形的内部被填充(默认)
QSGMaterialShader::GraphicsPipelineState::Line1多边形的边界边以线段形式绘制。

此枚举在 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混合系数均由srcColordstColor定义。当设置为true时,alpha混合系数由srcAlphadstAlpha提供,而srcColordstColor仅应用于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公司及其在全球的子公司和机构的商标。所有其他商标归其各自的所有者所有。