Class Material

Class Documentation

class Material

Declaration: final

Immutable recipe retaining its pipeline/default images.

Read-only resolution can run on CPU owners; it does not bind resources or mutate uniform state.

Public Functions

explicit Material(CE::Rendering::Materials::Definition definition)

Validate and retain a complete immutable material recipe.

Parameters:

definition – Required pipeline, partial custom defaults and optional sampler-key overrides.

Throws:

CE::Exceptions::invalid_args – For a null pipeline, invalid defaults or a null/non-sampler override. Construction does not upload or bind native resources. Backend/domain compatibility requires the backend builder/playback path.

inline const CE::Rendering::Materials::Definition &definition() const

Declaration: [[nodiscard]]

Returns:

Borrowed immutable recipe and retained handles, valid while this material is retained.

CE::Rendering::Parameters::Set resolve(const CE::Rendering::Parameters::PassSemantics &pass_semantics, const CE::Rendering::Parameters::DrawSemantics &draw_semantics, const CE::Rendering::Parameters::Set &pass_values, const CE::Rendering::Parameters::Set &draw_values) const

Declaration: [[nodiscard]]

Resolve owned CPU packet values without binding resources or mutating uniforms.

See also

Rendering guide

Parameters:
  • pass_semantics – Copied projection/view source.

  • draw_semantics – Copied model/alpha/scale source.

  • pass_values – Custom pass layer, below this material’s defaults.

  • draw_values – Highest-priority custom layer.

Returns:

Complete resolved set retaining images/samplers. Explicit binding samplers win over this material’s sampling overrides. All layers validate even when overridden; failures leave the recipe and inputs unchanged. Resolution requires stable inputs, not a graphics context.