En esta página

QSGMaterialShader::GraphicsPipelineState Struct

struct QSGMaterialShader::GraphicsPipelineState

Describe 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

ConstanteValor
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

[since 6.8] enum class GraphicsPipelineState::BlendOp

ConstanteValor
QSGMaterialShader::GraphicsPipelineState::BlendOp::Add0
QSGMaterialShader::GraphicsPipelineState::BlendOp::Subtract1
QSGMaterialShader::GraphicsPipelineState::BlendOp::ReverseSubtract2
QSGMaterialShader::GraphicsPipelineState::BlendOp::Min3
QSGMaterialShader::GraphicsPipelineState::BlendOp::Max4

Este enum se introdujo en Qt 6.8.

enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask

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

El tipo ColorMask es un typedef para QFlags<ColorMaskComponent>. Almacena una combinación OR de valores ColorMaskComponent.

enum GraphicsPipelineState::CullMode

ConstanteValor
QSGMaterialShader::GraphicsPipelineState::CullNone0
QSGMaterialShader::GraphicsPipelineState::CullFront1
QSGMaterialShader::GraphicsPipelineState::CullBack2

[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.

ConstanteValorDescripción
QSGMaterialShader::GraphicsPipelineState::Fill0El interior del polígono se rellena (por defecto)
QSGMaterialShader::GraphicsPipelineState::Line1Los 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.