Sur cette page

QSGMaterialShader::GraphicsPipelineState Struct

struct QSGMaterialShader::GraphicsPipelineState

Décrit les changements d'état que le matériel souhaite appliquer à l'état du pipeline graphique actuellement actif. Plus d'informations...

Types publics

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 publiques

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

Description détaillée

Contrairement à QSGMaterialShader, l'émission directe de commandes de changement d'état avec l'API graphique sous-jacente n'est pas possible avec QSGMaterialShader. Cela s'explique principalement par le fait que le concept d'états modifiables individuellement est considéré comme obsolète et n'est pas pris en charge par les API graphiques modernes.

Il appartient donc à QSGMaterialShader d'exposer une structure de données contenant l'ensemble des états pris en charge, que le matériau peut modifier dans son implémentation updatePipelineState(), s'il y en a une. Le graphe de scène appliquera alors en interne ces changements à l'état actif du pipeline graphique, puis les annulera le cas échéant.

Lorsque updateGraphicsPipelineState() est appelé, la structure a tous les membres définis à une valeur valide pour refléter l'état actuel du moteur de rendu. Le fait de ne modifier aucune valeur (ou de ne pas réimplémenter la fonction) indique que le matériau est compatible avec les valeurs par défaut (qui sont toutefois dynamiques, en fonction des drapeaux QSGMaterial, par exemple).

Documentation sur les types de membres

enum GraphicsPipelineState::BlendFactor

ConstanteValeur
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

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

Cette énumération a été introduite dans Qt 6.8.

enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask

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

Le type ColorMask est un typedef pour QFlags<ColorMaskComponent>. Il stocke une combinaison OU de valeurs ColorMaskComponent.

enum GraphicsPipelineState::CullMode

ConstanteValeur
QSGMaterialShader::GraphicsPipelineState::CullNone0
QSGMaterialShader::GraphicsPipelineState::CullFront1
QSGMaterialShader::GraphicsPipelineState::CullBack2

[since 6.4] enum GraphicsPipelineState::PolygonMode

Spécifie le mode de tramage des polygones

Polygon Mode (Triangle Fill Mode dans Metal, Fill Mode dans D3D) spécifie le mode de remplissage utilisé lors du tramage des polygones. Les polygones peuvent être dessinés comme des solides (Fill) ou comme un maillage de fils (Line).

Attention : OpenGL ES ne supporte pas le mode polygone Line. OpenGL ES tramera tous les polygones comme étant remplis, quel que soit le mode de polygone défini. L'utilisation de Line rendra votre application non portable.

ConstanteValeurDescription
QSGMaterialShader::GraphicsPipelineState::Fill0L'intérieur du polygone est rempli (par défaut)
QSGMaterialShader::GraphicsPipelineState::Line1Les bords du polygone sont dessinés comme des segments de ligne.

Cette énumération a été introduite dans Qt 6.4.

Documentation des variables membres

QColor GraphicsPipelineState::blendConstant

Constante de mélange applicable lorsqu'un facteur de mélange est défini pour utiliser une valeur constante.

bool GraphicsPipelineState::blendEnable

Active le mélange.

Remarque : la modification de cet indicateur doit être effectuée avec précaution et il est préférable de l'éviter. Les matériaux doivent toujours utiliser l'indicateur QSGMaterial::Blend pour indiquer qu'ils souhaitent utiliser le mélange. Changer cette valeur de false à true pour un matériau qui n'a pas déclaré QSGMaterial::Blend peut conduire à des résultats visuels inattendus.

QSGMaterialShader::GraphicsPipelineState::ColorMask GraphicsPipelineState::colorWrite

Masque d'écriture de couleur.

QSGMaterialShader::GraphicsPipelineState::CullMode GraphicsPipelineState::cullMode

Mode d'abattage.

[since 6.5] QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstAlpha

Facteur de mélange alpha de destination.

S'applique uniquement lorsque separateBlendFactors a la valeur true.

Cette variable a été introduite dans Qt 6.5.

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstColor

Facteur de mélange de destination, soit RGB soit RGBA selon separateBlendFactors.

[since 6.8] QSGMaterialShader::GraphicsPipelineState::BlendOp GraphicsPipelineState::opAlpha

Opération de mélange alpha.

Cette variable a été introduite dans Qt 6.8.

[since 6.8] QSGMaterialShader::GraphicsPipelineState::BlendOp GraphicsPipelineState::opColor

Opération de mélange RVB.

Cette variable a été introduite dans Qt 6.8.

[since 6.4] QSGMaterialShader::GraphicsPipelineState::PolygonMode GraphicsPipelineState::polygonMode

Mode de rastérisation des polygones.

Cette variable a été introduite dans Qt 6.4.

[since 6.5] bool GraphicsPipelineState::separateBlendFactors

Indique que les facteurs de fusion alpha sont spécifiés séparément.

Faux par défaut, ce qui signifie que les facteurs de fusion RVB et alpha sont définis par srcColor et dstColor. Lorsqu'elle est définie à true, les facteurs d'alpha blending sont tirés de srcAlpha et dstAlpha, et srcColor et dstColor ne s'appliquent qu'à RGB.

Cette variable a été introduite dans Qt 6.5.

[since 6.5] QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcAlpha

Facteur de mélange alpha de la source.

S'applique uniquement lorsque separateBlendFactors a la valeur true.

Cette variable a été introduite dans Qt 6.5.

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcColor

Facteur de mélange de la source, soit RGB ou RGBA selon 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.