- Qt 6.12
- Qt Quick 3D
- QML Types
- PipelineStateOverride
- Qt Quick 3D | Commercial or GPLv3

# PipelineStateOverride QML Type

Defines pipeline state overrides for a single pass. More...

Import Statement: | `import QtQuick3D`
Since: | Qt 6.11
Inherits: | Command

- List of all members, including inherited members

## Properties

- blendEnabled : bool
- cullMode : enumeration
- depthFunction : enumeration
- depthTestEnabled : bool
- depthWriteEnabled : bool
- polygonMode : enumeration
- scissor : rect
- stencilReference : uint
- stencilWriteMask : uint
- targetBlend0 : renderTargetBlend
- targetBlend1 : renderTargetBlend
- targetBlend2 : renderTargetBlend
- targetBlend3 : renderTargetBlend
- targetBlend4 : renderTargetBlend
- targetBlend5 : renderTargetBlend
- targetBlend6 : renderTargetBlend
- targetBlend7 : renderTargetBlend
- usesScissor : bool
- usesStencilReference : bool
- viewport : rect

## Detailed Description

PipelineStateOverride is a Command which can be added to the list of commands in a RenderPass. When executed, it will override the pipeline state in the render pass according to the properties set on the PipelineStateOverride. Only values that are set will override the existing pipeline state's values. If you want to reset a value that has been overridden to the default, then set the property to `undefined`.

See also renderTargetBlend.

## Property Documentation

### blendEnabled : bool

If set to `true`, enables blending for the render pass. If set to `false`, disables blending. For per-attachment blend settings, use the `targetBlend0` through `targetBlend7` properties.

### cullMode : enumeration

Sets the face culling mode for the render pass.

Constant | Description
--- | ---
`PipelineStateOverride.None` | No face culling.
`PipelineStateOverride.Front` | Front-facing polygons are culled.
`PipelineStateOverride.Back` | Back-facing polygons are culled.

### depthFunction : enumeration

Sets the depth comparison function for the render pass.

Constant | Description
--- | ---
`PipelineStateOverride.Never` | The depth test never passes.
`PipelineStateOverride.Less` | The depth test passes when the incoming depth is less than the stored depth.
`PipelineStateOverride.Equal` | The depth test passes when the incoming depth equals the stored depth.
`PipelineStateOverride.LessOrEqual` | The depth test passes when the incoming depth is less than or equal to the stored depth.
`PipelineStateOverride.Greater` | The depth test passes when the incoming depth is greater than the stored depth.
`PipelineStateOverride.NotEqual` | The depth test passes when the incoming depth does not equal the stored depth.
`PipelineStateOverride.GreaterOrEqual` | The depth test passes when the incoming depth is greater than or equal to the stored depth.
`PipelineStateOverride.Always` | The depth test always passes.

### depthTestEnabled : bool

If set to `true`, enables depth testing for the render pass. If set to `false`, disables depth testing. Setting this property to `true` requires a depth attachment for the render pass.

### depthWriteEnabled : bool

If set to `true`, enables depth writing for the render pass. If set to `false`, disables depth writing. Setting this property to `true` requires a depth attachment for the render pass.

### polygonMode : enumeration

Sets the polygon rasterization mode for the render pass.

Constant | Description
--- | ---
`PipelineStateOverride.Fill` | Polygons are filled (default).
`PipelineStateOverride.Line` | Polygon edges are drawn as lines (wireframe).

### scissor : rect

Sets the scissor rectangle for the render pass. Fragments outside this rectangle are discarded. Requires `usesScissor` to be `true`.

### stencilReference : uint

Sets the stencil reference value for the render pass. This value is used in stencil comparison operations when `usesStencilReference` is `true`.

### stencilWriteMask : uint

Sets the stencil write mask for the render pass. Each bit controls whether the corresponding bit in the stencil buffer can be written.

### targetBlend0 : renderTargetBlend

Sets the blending parameters for color attachment 0 of the render pass.

See also renderTargetBlend.

### targetBlend1 : renderTargetBlend

Sets the blending parameters for color attachment 1 of the render pass.

See also renderTargetBlend.

### targetBlend2 : renderTargetBlend

Sets the blending parameters for color attachment 2 of the render pass.

See also renderTargetBlend.

### targetBlend3 : renderTargetBlend

Sets the blending parameters for color attachment 3 of the render pass.

See also renderTargetBlend.

### targetBlend4 : renderTargetBlend

Sets the blending parameters for color attachment 4 of the render pass.

See also renderTargetBlend.

### targetBlend5 : renderTargetBlend

Sets the blending parameters for color attachment 5 of the render pass.

See also renderTargetBlend.

### targetBlend6 : renderTargetBlend

Sets the blending parameters for color attachment 6 of the render pass.

See also renderTargetBlend.

### targetBlend7 : renderTargetBlend

Sets the blending parameters for color attachment 7 of the render pass.

See also renderTargetBlend.

### usesScissor : bool

If set to `true`, enables scissor testing for the render pass. If set to `false`, disables the scissor test. Use the `scissor` property to set the scissor rectangle.

### usesStencilReference : bool

If set to `true`, enables the use of the stencil reference value for the render pass. If set to `false`, disables the use of the stencil reference value.

### viewport : rect

Sets the viewport rectangle for the render pass. The rectangle specifies the region of the render target to draw into, in pixels (x, y, width, height). If not set, the full render target dimensions are used.