QSGMaterialShader::GraphicsPipelineState Struct
struct QSGMaterialShader::GraphicsPipelineStateDescribe los cambios de estado que el material desea aplicar al estado del conducto gráfico activo en ese momento. Más...
Tipos públicos
| enum | BlendFactor { Zero, One, SrcColor, OneMinusSrcColor, DstColor, …, OneMinusSrc1Alpha } |
(since 6.8) enum class | BlendOp { Add, Subtract, ReverseSubtract, Min, Max } |
| flags | ColorMask |
| enum | ColorMaskComponent { R, G, B, A } |
| enum | CullMode { CullNone, CullFront, CullBack } |
(since 6.4) enum | PolygonMode { Fill, Line } |
Variables públicas
| QColor | blendConstant |
| bool | blendEnable |
| QSGMaterialShader::GraphicsPipelineState::ColorMask | colorWrite |
| QSGMaterialShader::GraphicsPipelineState::CullMode | cullMode |
(since 6.5) QSGMaterialShader::GraphicsPipelineState::BlendFactor | dstAlpha |
| QSGMaterialShader::GraphicsPipelineState::BlendFactor | dstColor |
(since 6.8) QSGMaterialShader::GraphicsPipelineState::BlendOp | opAlpha |
(since 6.8) QSGMaterialShader::GraphicsPipelineState::BlendOp | opColor |
(since 6.4) QSGMaterialShader::GraphicsPipelineState::PolygonMode | polygonMode |
(since 6.5) bool | separateBlendFactors |
(since 6.5) QSGMaterialShader::GraphicsPipelineState::BlendFactor | srcAlpha |
| QSGMaterialShader::GraphicsPipelineState::BlendFactor | srcColor |
Descripción detallada
A diferencia de QSGMaterialShader, la emisión directa de comandos de cambio de estado con la API gráfica subyacente no es posible con QSGMaterialShader. Esto se debe principalmente a que el concepto de estados individualmente cambiables se considera obsoleto y no es compatible con las API gráficas modernas.
Por lo tanto, corresponde a QSGMaterialShader exponer una estructura de datos con el conjunto de estados admitidos, que el material puede cambiar en su implementación updatePipelineState(), si existe. A continuación, el scenegraph aplicará internamente estos cambios al estado activo del conducto de gráficos, y luego los revertirá según corresponda.
Cuando se llama a updateGraphicsPipelineState(), todos los miembros de la estructura tienen un valor válido para reflejar el estado actual del renderizador. No cambiar ningún valor (o no reimplementar la función) indica que el material está bien con los valores por defecto (que son dinámicos sin embargo, dependiendo de QSGMaterial flags, por ejemplo).
Documentación de los tipos de miembros
enum GraphicsPipelineState::BlendFactor
| Constante | Valor |
|---|---|
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 |
[since 6.8] enum class GraphicsPipelineState::BlendOp
| Constante | Valor |
|---|---|
QSGMaterialShader::GraphicsPipelineState::BlendOp::Add | 0 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::Subtract | 1 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::ReverseSubtract | 2 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::Min | 3 |
QSGMaterialShader::GraphicsPipelineState::BlendOp::Max | 4 |
Este enum se introdujo en Qt 6.8.
enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask
| Constante | Valor |
|---|---|
QSGMaterialShader::GraphicsPipelineState::R | 1 << 0 |
QSGMaterialShader::GraphicsPipelineState::G | 1 << 1 |
QSGMaterialShader::GraphicsPipelineState::B | 1 << 2 |
QSGMaterialShader::GraphicsPipelineState::A | 1 << 3 |
El tipo ColorMask es un typedef para QFlags<ColorMaskComponent>. Almacena una combinación OR de valores ColorMaskComponent.
enum GraphicsPipelineState::CullMode
| Constante | Valor |
|---|---|
QSGMaterialShader::GraphicsPipelineState::CullNone | 0 |
QSGMaterialShader::GraphicsPipelineState::CullFront | 1 |
QSGMaterialShader::GraphicsPipelineState::CullBack | 2 |
[since 6.4] enum GraphicsPipelineState::PolygonMode
Especifica el modo de rasterización de polígonos
Modo Polígono (Modo Relleno Triángulo en Metal, Modo Relleno en D3D) especifica el modo de relleno utilizado al rasterizar polígonos. Los polígonos pueden dibujarse como sólidos (Relleno), o como una malla metálica (Línea).
Advertencia: OpenGL ES no soporta el modo de polígono Line. OpenGL ES rasterizará todos los polígonos como rellenos sin importar el modo de polígono que se establezca. El uso de Line hará que su aplicación no sea portable.
| Constante | Valor | Descripción |
|---|---|---|
QSGMaterialShader::GraphicsPipelineState::Fill | 0 | El interior del polígono se rellena (por defecto) |
QSGMaterialShader::GraphicsPipelineState::Line | 1 | Los bordes del polígono se dibujan como segmentos de línea. |
Este enum fue introducido en Qt 6.4.
Documentación de variables miembro
QColor GraphicsPipelineState::blendConstant
Constante de mezcla aplicable cuando un factor de mezcla está configurado para utilizar un valor constante.
bool GraphicsPipelineState::blendEnable
Activa la mezcla.
Nota: Cambiar este indicador debe hacerse con cuidado, y es mejor evitarlo. En su lugar, los materiales deberían usar siempre el indicador QSGMaterial::Blend para indicar que desean usar la mezcla. Cambiar este valor de false a true para un material que no declaró QSGMaterial::Blend puede conducir a resultados visuales inesperados.
QSGMaterialShader::GraphicsPipelineState::ColorMask GraphicsPipelineState::colorWrite
Máscara de escritura en color.
QSGMaterialShader::GraphicsPipelineState::CullMode GraphicsPipelineState::cullMode
Modo de sacrificio.
[since 6.5] QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstAlpha
Factor de mezcla alfa de destino.
Sólo se aplica cuando separateBlendFactors es verdadero.
Esta variable se introdujo en Qt 6.5.
QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstColor
Factor de mezcla de destino, RGB o RGBA dependiendo de separateBlendFactors.
[since 6.8] QSGMaterialShader::GraphicsPipelineState::BlendOp GraphicsPipelineState::opAlpha
Operación de mezcla alfa.
Esta variable se introdujo en Qt 6.8.
[since 6.8] QSGMaterialShader::GraphicsPipelineState::BlendOp GraphicsPipelineState::opColor
Operación de mezcla RGB.
Esta variable se introdujo en Qt 6.8.
[since 6.4] QSGMaterialShader::GraphicsPipelineState::PolygonMode GraphicsPipelineState::polygonMode
Modo de rasterización de polígonos.
Esta variable se introdujo en Qt 6.4.
[since 6.5] bool GraphicsPipelineState::separateBlendFactors
Indica que los factores de mezcla alfa se especifican por separado.
Falso por defecto, lo que significa que los factores de mezcla RGB y alfa se definen en srcColor y dstColor. Cuando se establece en true, los factores de mezcla alfa se toman de srcAlpha y dstAlpha en su lugar, y srcColor y dstColor se aplican sólo a RGB.
Esta variable se introdujo en Qt 6.5.
[since 6.5] QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcAlpha
Factor de mezcla alfa de la fuente.
Sólo se aplica cuando separateBlendFactors es verdadero.
Esta variable se introdujo en Qt 6.5.
QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcColor
Factor de mezcla de la fuente, RGB o RGBA dependiendo de separateBlendFactors.
© 2026 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.