- Qt 6.4
- Qt Quick
- C++ Classes
- GraphicsPipelineState
- Qt 6.4.3 Reference Documentation

# GraphicsPipelineState Struct

struct QSGMaterialShader::GraphicsPipelineState

Describes state changes that the material wants to apply to the currently active graphics pipeline state. More...

This struct was introduced in Qt 5.14.

- List of all members, including inherited members

## Public Types

enum | BlendFactor { Zero, One, SrcColor, OneMinusSrcColor, DstColor, …, OneMinusSrc1Alpha }
flags | ColorMask
enum | ColorMaskComponent { R, G, B, A }
enum | CullMode { CullNone, CullFront, CullBack }
enum | PolygonMode { Fill, Line }

## Detailed Description

Unlike QSGMaterialShader, directly issuing state change commands with the underlying graphics API is not possible with QSGMaterialShader. This is mainly because the concept of individually changeable states is considered deprecated and not supported with modern graphics APIs.

Therefore, it is up to QSGMaterialShader to expose a data structure with the set of supported states, which the material can change in its updatePipelineState() implementation, if there is one. The scenegraph will then internally apply these changes to the active graphics pipeline state, then rolling them back as appropriate.

## Member Type Documentation

### `[since 5.14]` enum GraphicsPipelineState::BlendFactor

Constant | Value
--- | ---
`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`

This enum was introduced or modified in Qt 5.14.

### `[since 5.14]` enum GraphicsPipelineState::ColorMaskComponent
flags GraphicsPipelineState::ColorMask

Constant | Value
--- | ---
`QSGMaterialShader::GraphicsPipelineState::R` | `1 << 0`
`QSGMaterialShader::GraphicsPipelineState::G` | `1 << 1`
`QSGMaterialShader::GraphicsPipelineState::B` | `1 << 2`
`QSGMaterialShader::GraphicsPipelineState::A` | `1 << 3`

This enum was introduced or modified in Qt 5.14.

The ColorMask type is a typedef for QFlags<ColorMaskComponent>. It stores an OR combination of ColorMaskComponent values.

### `[since 5.14]` enum GraphicsPipelineState::CullMode

Constant | Value
--- | ---
`QSGMaterialShader::GraphicsPipelineState::CullNone` | `0`
`QSGMaterialShader::GraphicsPipelineState::CullFront` | `1`
`QSGMaterialShader::GraphicsPipelineState::CullBack` | `2`

This enum was introduced or modified in Qt 5.14.

### `[since 6.4]` enum GraphicsPipelineState::PolygonMode

Specifies the polygon rasterization mode

Polygon Mode (Triangle Fill Mode in Metal, Fill Mode in D3D) specifies the fill mode used when rasterizing polygons. Polygons may be drawn as solids (Fill), or as a wire mesh (Line).

Warning: OpenGL ES does not support the `Line` polygon mode. OpenGL ES will rasterize all polygons as filled no matter what polygon mode is set. Using `Line` will make your application non-portable.

Constant | Value | Description
--- | --- | ---
`QSGMaterialShader::GraphicsPipelineState::Fill` | `0` | The interior of the polygon is filled (default)
`QSGMaterialShader::GraphicsPipelineState::Line` | `1` | Boundary edges of the polygon are drawn as line segments.

This enum was introduced or modified in Qt 6.4.