GraphicsPipelineState Struct

struct QSGMaterialShader::GraphicsPipelineState

Beschreibt Zustandsänderungen, die das Material auf den derzeit aktiven Zustand der Grafikpipeline anwenden möchte. Mehr...

Öffentliche Typen

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 }

Öffentliche Variablen

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

Detaillierte Beschreibung

Im Gegensatz zu QSGMaterialShader ist es mit QSGMaterialShader nicht möglich, Befehle zur Zustandsänderung direkt über die zugrunde liegende Grafik-API zu erteilen. Dies liegt vor allem daran, dass das Konzept der einzeln änderbaren Zustände als veraltet gilt und von modernen Grafik-APIs nicht unterstützt wird.

Daher muss QSGMaterialShader eine Datenstruktur mit der Menge der unterstützten Zustände bereitstellen, die das Material in seiner updatePipelineState()-Implementierung ändern kann, sofern eine solche vorhanden ist. Der Scenegraph wendet diese Änderungen dann intern auf den aktiven Zustand der Grafikpipeline an und macht sie gegebenenfalls wieder rückgängig.

Wenn updateGraphicsPipelineState() aufgerufen wird, sind alle Mitglieder der Struktur auf einen gültigen Wert gesetzt, der den aktuellen Zustand des Renderers widerspiegelt. Wenn keine Werte geändert werden (oder die Funktion nicht neu implementiert wird), bedeutet dies, dass das Material mit den Standardwerten in Ordnung ist (die jedoch dynamisch sind, z. B. abhängig von QSGMaterial Flags).

Dokumentation der Mitgliedstypen

enum GraphicsPipelineState::BlendFactor

KonstanteWert
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

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

Diese Aufzählung wurde in Qt 6.8 eingeführt.

enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask

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

Der Typ ColorMask ist ein Typedef für QFlags<ColorMaskComponent>. Er speichert eine ODER-Kombination von ColorMaskComponent-Werten.

enum GraphicsPipelineState::CullMode

KonstanteWert
QSGMaterialShader::GraphicsPipelineState::CullNone0
QSGMaterialShader::GraphicsPipelineState::CullFront1
QSGMaterialShader::GraphicsPipelineState::CullBack2

[since 6.4] enum GraphicsPipelineState::PolygonMode

Legt den Polygonrasterungsmodus fest

Polygon Mode (Triangle Fill Mode in Metal, Fill Mode in D3D) gibt den Füllmodus an, der beim Rastern von Polygonen verwendet wird. Polygone können als Volumenkörper (Füllung) oder als Drahtgitter (Linie) gezeichnet werden.

Warnung: OpenGL ES unterstützt den Polygonmodus Line nicht. OpenGL ES rastert alle Polygone als gefüllt, egal welcher Polygonmodus eingestellt ist. Die Verwendung von Line macht Ihre Anwendung nicht portabel.

KonstanteWertBeschreibung
QSGMaterialShader::GraphicsPipelineState::Fill0Das Innere des Polygons wird ausgefüllt (Standard)
QSGMaterialShader::GraphicsPipelineState::Line1Die Ränder des Polygons werden als Liniensegmente gezeichnet.

Dieses Enum wurde in Qt 6.4 eingeführt.

Dokumentation der Mitgliedsvariablen

QColor GraphicsPipelineState::blendConstant

Überblendkonstante, wenn ein Überblendfaktor auf einen konstanten Wert eingestellt ist.

bool GraphicsPipelineState::blendEnable

Aktiviert die Überblendung.

Hinweis: Das Ändern dieses Flags sollte mit Vorsicht geschehen und wird am besten vermieden. Vielmehr sollten Materialien immer das Flag QSGMaterial::Blend verwenden, um anzuzeigen, dass sie Blending verwenden möchten. Das Ändern dieses Wertes von false auf true für ein Material, das QSGMaterial::Blend nicht deklariert hat, kann zu unerwarteten visuellen Ergebnissen führen.

QSGMaterialShader::GraphicsPipelineState::ColorMask GraphicsPipelineState::colorWrite

Farbige Schreibmaske.

QSGMaterialShader::GraphicsPipelineState::CullMode GraphicsPipelineState::cullMode

Cull-Modus.

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

Ziel-Alpha-Blending-Faktor.

Gilt nur, wenn separateBlendFactors auf true gesetzt ist.

Diese Dokumentation wurde in Qt 6.5 eingeführt.

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::dstColor

Ziel-Mischfaktor, entweder RGB oder RGBA, abhängig von separateBlendFactors.

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

Alpha-Blending Operation.

Diese Dokumentation wurde in Qt 6.8 eingeführt.

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

RGB-Überblendungsoperation.

Diese Dokumentation wurde in Qt 6.8 eingeführt.

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

Polygon Rasterisierungsmodus.

Diese Dokumentation wurde in Qt 6.4 eingeführt.

[since 6.5] bool GraphicsPipelineState::separateBlendFactors

Zeigt an, dass Alpha-Blending-Faktoren separat angegeben werden.

Standardmäßig falsch, was bedeutet, dass sowohl RGB- als auch Alpha-Blending-Faktoren durch srcColor und dstColor definiert werden. Bei true werden die Alpha-Blending-Faktoren stattdessen von srcAlpha und dstAlpha übernommen, und srcColor und dstColor gelten nur für RGB.

Diese Dokumentation wurde in Qt 6.5 eingeführt.

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

Quell-Alpha-Blending-Faktor.

Gilt nur, wenn separateBlendFactors auf true gesetzt ist.

Diese Dokumentation wurde in Qt 6.5 eingeführt.

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcColor

Überblendfaktor der Quelle, entweder RGB oder RGBA, abhängig von separateBlendFactors.

© 2025 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.