Skip to main content

Module blocks

Module blocks 

Source
Expand description

Live stream (<out>/live/stream/, format version 4): after every live event the composed display cloud (point keys and the owner zone of every point) is diffed against what the viewer shows and only the changes are written. Every shown point owns a dense u32 slot id assigned here, so the viewer writes straight into its GPU buffers at index = id.

packs/e_<seq:04>.bin (little endian, no header) holds three sections in this order: n_add records of 20 B (u32 id | f32 x y z | u8 r g b | u8 zone), n_move records of 20 B (u32 id | f32 x y z | u8 r g b | u8 pad=0, new position and colour), n_remove records of 4 B (u32 id). manifest.json (rewritten atomically after every event) lists the events with their counts and capacity (max id + 1 used so far). A key that stays keeps its id (moved when its position changed by more than POSITION_EPS or its colour changed); a key that leaves frees its id; a new key takes the lowest free id or capacity++. An id freed in an event is not handed out in the same event. A zone change is a remove plus an add with a new id. Files are never overwritten.

Re-exports§

pub use crate::live::KeyHasher;
pub use crate::live::POSITION_EPS;

Structs§

DiffStream
Writer of the live diff stream: a thin file writer over KeyedDiff.
EventStats
What one DiffStream::write_event did.
Heartbeat
Progress heartbeat <dir>/status.json of a running session (rewritten atomically; tiny).
LiveStream
Live stream settings.

Constants§

ADD_BYTES
Bytes of an add record.
FORMAT_VERSION
Manifest format version.
MOVE_BYTES
Bytes of a move record.
REMOVE_BYTES
Bytes of a remove record.