Skip to content

ludus::graphics::rhi::RasterPipelineDescription

Ludus Wiki · API overview · Browse API

Struct

Immutable triangle-list pipeline, independent of particular buffers or bindings. Target selects the negotiated surface or an explicit offscreen color format, with private depth/stencil. Explicit ColorFormats and SampleCount select R10 offscreen compatibility. Dimensions are dynamic; format changes need a compatible pipeline. Depth uses canonical [0,1] coordinates.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

#include <ludus/graphics/rhi/raster.h>
struct ludus::graphics::rhi::RasterPipelineDescription final

Fields

Vertex

RasterShaderHandle ludus::graphics::rhi::RasterPipelineDescription::Vertex {}
Ready vertex stage retained by the pipeline.

Related types: RasterShaderHandle

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Fragment

RasterShaderHandle ludus::graphics::rhi::RasterPipelineDescription::Fragment {}
Ready fragment stage retained by the pipeline.

Related types: RasterShaderHandle

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Layout

BindingLayoutHandle ludus::graphics::rhi::RasterPipelineDescription::Layout {}
Exact immutable binding-layout identity retained by the pipeline.

Related types: BindingLayoutHandle

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Streams

std::span<const RasterVertexStream> ludus::graphics::rhi::RasterPipelineDescription::Streams
Up to two streams; copied before return.

Related types: RasterVertexStream

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Attributes

std::span<const RasterVertexAttribute> ludus::graphics::rhi::RasterPipelineDescription::Attributes
Up to MaxVertexAttributes (at most sixteen) attributes; copied before return.

Related types: RasterVertexAttribute

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Depth

bool ludus::graphics::rhi::RasterPipelineDescription::Depth = false
Enable the explicit comparison and optional depth writes; false preserves depth.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Blend

bool ludus::graphics::rhi::RasterPipelineDescription::Blend = false
Enable premultiplied-alpha blending in the target's linear domain.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Target

RasterTarget ludus::graphics::rhi::RasterPipelineDescription::Target = RasterTarget::Surface
Color format compatibility; dimensions are dynamic and not part of the key.

Related types: RasterTarget

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

DepthWrite

bool ludus::graphics::rhi::RasterPipelineDescription::DepthWrite = true
When Depth is enabled, false tests depth without modifying it.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

DepthCompare

RasterDepthCompare ludus::graphics::rhi::RasterPipelineDescription::DepthCompare = RasterDepthCompare::Less
Comparison when Depth is enabled; defaults preserve R1 conventional depth.

Related types: RasterDepthCompare

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

ColorFormats

std::span<const RasterFormat> ludus::graphics::rhi::RasterPipelineDescription::ColorFormats {}
Explicit offscreen color format sequence, one to four; empty uses Target. Copied before return. Every format and sample count must be enabled.

Related types: RasterFormat

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

SampleCount

ludus::foundation::uint32 ludus::graphics::rhi::RasterPipelineDescription::SampleCount = 1
One or enabled four samples; surface pipelines require one.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

Stencil

bool ludus::graphics::rhi::RasterPipelineDescription::Stencil = false
Require a depth/stencil attachment even when the stencil write mask is zero.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

StencilFront

RasterStencilFace ludus::graphics::rhi::RasterPipelineDescription::StencilFront {}
Stencil behavior for counter-clockwise triangles in canonical clip-space XY.

Related types: RasterStencilFace

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

StencilBack

RasterStencilFace ludus::graphics::rhi::RasterPipelineDescription::StencilBack {}
Back-facing triangle stencil behavior.

Related types: RasterStencilFace

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

StencilReadMask

ludus::foundation::uint32 ludus::graphics::rhi::RasterPipelineDescription::StencilReadMask = 255
Eight-bit comparison mask shared by both faces.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

StencilWriteMask

ludus::foundation::uint32 ludus::graphics::rhi::RasterPipelineDescription::StencilWriteMask = 255
Eight-bit write mask; zero permits a read-only stencil pass.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

StencilReference

ludus::foundation::uint32 ludus::graphics::rhi::RasterPipelineDescription::StencilReference = 0
Eight-bit reference, set by each accepted draw.

Related types: ludus::foundation::uint32

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

ShouldPrepareAsynchronously

bool ludus::graphics::rhi::RasterPipelineDescription::ShouldPrepareAsynchronously = false
Queue native driver creation; also enabled by either asynchronous shader input.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

ShouldWriteColor

bool ludus::graphics::rhi::RasterPipelineDescription::ShouldWriteColor = true
Enable writes to every color channel/attachment. False permits a void fragment stage and preserves color during draws; attachment load/store operations still apply.

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h

FillMode

RasterFillMode ludus::graphics::rhi::RasterPipelineDescription::FillMode = RasterFillMode::Solid
Triangle rasterization. Lines returns Unsupported unless RasterCapabilities::HasLineFill.

Related types: RasterFillMode

Declared in modules/graphics/rhi/include/ludus/graphics/rhi/raster.h