Skip to content

ludus::graphics::rhi::RasterShaderDescription

Ludus Wiki · API overview · Browse API

Struct

Per-target interface metadata emitted by the offline shader tool. Hand-authored artifacts must supply independently verified matching reflection.

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

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

Fields

Artifact

ShaderDescription ludus::graphics::rhi::RasterShaderDescription::Artifact {}
Target artifact and explicit entry; UniformSize is unused by the raster API.

Related types: ShaderDescription

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

Inputs

std::span<const RasterShaderInput> ludus::graphics::rhi::RasterShaderDescription::Inputs
Reflected float vertex inputs; empty for fragment stages. Copied before return.

Related types: RasterShaderInput

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

Bindings

std::span<const RasterBinding> ludus::graphics::rhi::RasterShaderDescription::Bindings
Binding requirements for this stage; copied before return.

Related types: RasterBinding

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

UniformBlocks

ludus::foundation::StaticArray<std::string_view, RASTER_BINDING_COUNT> ludus::graphics::rhi::RasterShaderDescription::UniformBlocks {}
GLSL ES uniform block names, indexed by binding number; empty for other kinds.

Related types: ludus::foundation::StaticArray · RASTER_BINDING_COUNT

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

TextureNames

ludus::foundation::StaticArray<std::string_view, RASTER_BINDING_COUNT> ludus::graphics::rhi::RasterShaderDescription::TextureNames {}
Combined GLSL ES sampled-uniform names, indexed by texture binding number.

Related types: ludus::foundation::StaticArray · RASTER_BINDING_COUNT

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

TextureSamplers

ludus::foundation::StaticArray<ludus::foundation::uint32, RASTER_BINDING_COUNT> ludus::graphics::rhi::RasterShaderDescription::TextureSamplers {}
Sampler binding paired with each GLSL ES texture; ~uint32{0} denotes an unfiltered depth/stencil load. Cooked browser descriptions retain this metadata for target selection.

Related types: ludus::foundation::StaticArray · ludus::foundation::uint32 · RASTER_BINDING_COUNT

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

WorkgroupSize

ludus::foundation::uint32 ludus::graphics::rhi::RasterShaderDescription::WorkgroupSize[3][3] {1, 1, 1}
Independently reflected local dimensions for Compute; ignored for raster. Positive dimensions/product must fit the negotiated compute limits.

Related types: ludus::foundation::uint32

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

UniformMembers

std::span<const RasterUniformMember> ludus::graphics::rhi::RasterShaderDescription::UniformMembers {}
At most 64 unique (binding,name) top-level offsets. Empty preserves legacy artifacts; schema-aware consumers require a complete expected member set. Consumed before shader creation returns; never retained as borrowed names.

Related types: RasterUniformMember

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

HasVerifiedArrayBounds

bool ludus::graphics::rhi::RasterShaderDescription::HasVerifiedArrayBounds = false
The native array cooker verified every descriptor index as an in-range constant or bounded unsigned min/clamp in the emitted target. Required for shaders declaring arrays. Runtime shader Count certifies the minimum safe allocation. Hand-authored artifacts must independently verify this contract; false rejects before shader creation. Fixed counts must match exactly.

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

ShouldPrepareAsynchronously

bool ludus::graphics::rhi::RasterShaderDescription::ShouldPrepareAsynchronously = false
Native development preparation copies sources and compiles on a dedicated worker. Pending owns the handle; poll GetStatus. Browser keeps its existing backend policy.

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