Auf dieser Seite

QSGMaterialShader::GraphicsPipelineState Struct

struct QSGMaterialShader::GraphicsPipelineState

Beschreibt Zustandsänderungen, die das Material auf den aktuell aktiven Zustand der Grafik-Pipeline 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

Ausführliche Beschreibung

Im Gegensatz zu ` QSGMaterialShader` ist es bei ` QSGMaterialShader` nicht möglich, Zustandsänderungsbefehle direkt über die zugrunde liegende Grafik-API auszuführen. Dies liegt vor allem daran, dass das Konzept individuell veränderbarer Zustände als veraltet gilt und von modernen Grafik-APIs nicht mehr unterstützt wird.

Daher ist es Aufgabe von ` QSGMaterialShader `, eine Datenstruktur mit den unterstützten Zuständen bereitzustellen, die das Material in seiner Implementierung von `updatePipelineState()` ändern kann, sofern eine solche vorhanden ist. Der Szenengrafik-Baum wendet diese Änderungen dann intern auf den aktiven Zustand der Grafik-Pipeline an und macht sie gegebenenfalls wieder rückgängig.

Wenn ` updateGraphicsPipelineState()` aufgerufen wird, sind alle Elemente der Struktur auf einen gültigen Wert gesetzt, der den aktuellen Zustand des Renderers widerspiegelt. Werden keine Werte geändert (oder die Funktion nicht neu implementiert), bedeutet dies, dass das Material mit den Standardwerten einverstanden ist (die jedoch dynamisch sind und beispielsweise von den Flags unter ` QSGMaterial ` abhängen).

Dokumentation zu den Elementtypen

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 Enumeration 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 Rasterisierungsmodus für Polygone fest

Der Polygonmodus (Triangle Fill Mode in Metal, Fill Mode in D3D) legt den Füllmodus fest, der bei der Rasterung von Polygonen verwendet wird. Polygone können als ausgefüllte Flächen (Fill) oder als Drahtgitter (Line) gezeichnet werden.

Warnung: OpenGL ES unterstützt den Polygonmodus „ Line “ nicht. OpenGL ES rasterisiert alle Polygone als ausgefüllt, unabhängig davon, welcher Polygonmodus eingestellt ist. Die Verwendung von „ Line “ macht Ihre Anwendung nicht portierbar.

KonstanteWertBeschreibung
QSGMaterialShader::GraphicsPipelineState::Fill0Der Innenbereich des Polygons wird gefüllt (Standard)
QSGMaterialShader::GraphicsPipelineState::Line1Die Begrenzungskanten des Polygons werden als Liniensegmente gezeichnet.

Diese Enumeration wurde in Qt 6.4 eingeführt.

Dokumentation der Member-Variablen

QColor GraphicsPipelineState::blendConstant

Mischkonstante, die gilt, wenn für einen Mischfaktor ein konstanter Wert festgelegt wurde.

bool GraphicsPipelineState::blendEnable

Aktiviert das Überblenden.

Hinweis: Die Änderung dieses Flags sollte mit Bedacht erfolgen und am besten vermieden werden. Stattdessen sollten Materialien stets das Flag QSGMaterial::Blend verwenden, um anzugeben, dass sie das Überblenden nutzen möchten. Die Änderung dieses Werts von „false“ auf „true“ bei einem Material, das QSGMaterial::Blend nicht deklariert hat, kann zu unerwarteten visuellen Ergebnissen führen.

QSGMaterialShader::GraphicsPipelineState::ColorMask GraphicsPipelineState::colorWrite

Farb-Schreibmaske.

QSGMaterialShader::GraphicsPipelineState::CullMode GraphicsPipelineState::cullMode

Auslesemodus.

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

Ziel-Alpha-Mischfaktor.

Gilt nur, wenn „ separateBlendFactors “ auf „true“ gesetzt ist.

Diese Variable 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 Variable wurde in Qt 6.8 eingeführt.

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

RGB-Mischoperation.

Diese Variable wurde in Qt 6.8 eingeführt.

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

Polygon-Rasterisierungsmodus.

Diese Variable wurde in Qt 6.4 eingeführt.

[since 6.5] bool GraphicsPipelineState::separateBlendFactors

Gibt an, dass die Alpha-Blending-Faktoren separat festgelegt werden.

Standardmäßig auf „false“ gesetzt, was bedeutet, dass sowohl die RGB- als auch die Alpha-Blending-Faktoren durch srcColor und dstColor definiert werden. Bei der Einstellung „true“ werden die Alpha-Blending-Faktoren stattdessen aus srcAlpha und dstAlpha übernommen, und srcColor sowie dstColor gelten nur für RGB.

Diese Variable wurde in Qt 6.5 eingeführt.

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

Alpha-Mischfaktor für die Quelle.

Gilt nur, wenn „ separateBlendFactors “ auf „true“ gesetzt ist.

Diese Variable wurde in Qt 6.5 eingeführt.

QSGMaterialShader::GraphicsPipelineState::BlendFactor GraphicsPipelineState::srcColor

Quellmischfaktor, entweder RGB oder RGBA, abhängig von 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.