Skip to content

ludus::resources::SceneDefinition

Ludus Wiki · API overview · Browse API

Struct

Fully resident initial reference profile. Independent of Qt, source formats and GPU handles. Decode on a worker, then publish immutable storage on the Manager control owner. Runtime reconstruction uses exact project artifact revisions; no source parser is called.

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

#include <ludus/runtime/resources/scene.h>
struct ludus::resources::SceneDefinition final

Fields

Textures

foundation::Array<SceneTexture> ludus::resources::SceneDefinition::Textures
Textures; 32 MiB (v1-v4) or 256 MiB (v5) combined pixels.

Related types: foundation::Array · SceneTexture

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Materials

foundation::Array<SceneMaterial> ludus::resources::SceneDefinition::Materials
Distinct materials; at most 8 (v1-v4) or 256 (v5).

Related types: foundation::Array · SceneMaterial

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Meshes

foundation::Array<SceneMesh> ludus::resources::SceneDefinition::Meshes
Distinct meshes; at most 6 (v1-v4) or 256 (v5).

Related types: foundation::Array · SceneMesh

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Objects

foundation::Array<SceneObject> ludus::resources::SceneDefinition::Objects
Independent instances; at most 128 (v1-v4) or 1024 (v5).

Related types: foundation::Array · SceneObject

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Lights

foundation::Array<SceneLight> ludus::resources::SceneDefinition::Lights
At most 128 analytic sources; empty for legacy bundles.

Related types: foundation::Array · SceneLight

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Environment

SceneEnvironment ludus::resources::SceneDefinition::Environment
Authored environment; black for legacy bundles.

Related types: SceneEnvironment

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Eye

foundation::math::Vector3 ludus::resources::SceneDefinition::Eye
Authored perspective pinhole in world units.

Related types: foundation::math::Vector3

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Target

foundation::math::Vector3 ludus::resources::SceneDefinition::Target
Finite look-at target distinct from Eye.

Related types: foundation::math::Vector3

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Up

foundation::math::Vector3 ludus::resources::SceneDefinition::Up
Camera up direction not parallel to its forward direction.

Related types: foundation::math::Vector3

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

VerticalFov

float32 ludus::resources::SceneDefinition::VerticalFov = 1
Perspective vertical field of view in radians, in (0,pi).

Related types: float32

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Static methods

Decode

static Status ludus::resources::SceneDefinition::Decode(const uint8 *bytesOrNull, usize count, SceneDefinition &outScene) noexcept
Decode LUSCN01 versions one through seven little-endian interchange, at most 64 MiB for versions one to four and 384 MiB for versions five through seven (BundleLimits::BundleBytes). No file I/O or source import. Failure preserves output; allocation failures return OutOfMemory. The caller owns all resulting arrays and must keep them immutable while any adapter/lease references them.

Related types: uint8 · usize · Status · SceneDefinition

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

Methods

Bytes

uint64 ludus::resources::SceneDefinition::Bytes() const noexcept
Known owned array bytes, excluding allocator metadata and driver allocations.

Related types: uint64

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h

TryCopyTo

Status ludus::resources::SceneDefinition::TryCopyTo(SceneDefinition &outScene) const noexcept
Deep-copy every array and value into outScene, for a caller that derives a new immutable definition (for example with edited object transforms) while this one stays shared.
ParameterDescription
outScene
Replaced on success; a different object than this definition.

Returns

Ok, or OutOfMemory when an allocation fails; failure preserves outScene.

Related types: Status · SceneDefinition

Declared in modules/runtime/resources/include/ludus/runtime/resources/scene.h