Expand description
The render seam: take an AnalysisFrame, drive the active preset’s system,
draw one frame.
The render loop is driven by the frontend at display cadence and is fully decoupled from audio delivery — the ring buffer is the seam (CLAUDE.md). Cycling moves between loaded presets (ADR-0002); each preset names a built-in system and binds its parameters to expressions the renderer evaluates from the analysis frame plus the shared scene clock.
Re-exports§
pub use aux_target::AuxCounts;pub use aux_target::AuxPresentMode;pub use capture::CaptureImage;pub use capture::FrameTap;pub use context::AdapterChoice;pub use context::AdapterDescription;pub use context::RenderContext;pub use context::RenderError;pub use context::list_adapters;pub use scenes::lines::CapOverflow;pub use text::TextRun;pub use tier::REFERENCE_PX;pub use tier::Tier;pub use tier::TierConfig;pub use tier::attractor_budget;
Modules§
- aux_
target - The secondary present target: a second surface on the renderer’s existing device (ADR-0143).
- capture
- Headless offscreen capture: draw into a texture with no window and read the pixels back as tight RGBA (Plan 0013). Dev/agent tooling over the native Rust API — no dependency, no present.
- context
- wgpu device/surface ownership. All raw GPU access lives behind this layer (ADR-0001): scene code sees wgpu types, never a backend.
- feedback
- Reusable ping-pong offscreen field for stateful feedback scenes (ADR-0012).
- metrics
- Pure image metrics over
CaptureImages (Plan 0013): pixel and shape difference plus coverage/spread, shared by the differential visual-QA tests and theshotCLI report. - now_
playing - The now-playing banner: a core-owned, transient announcement of the current track (ADR-0110, Plan 0097).
- overlay
- The diagnostics debug overlay (Plan 0011): a final compositing pass that, when enabled, paints a translucent panel over the scene with a frame-time sparkline, a GPU-footprint bar, a numeric fps / frame-ms / MB readout, and the analysis block (Plan 0049): the four normalized levels and the downbeat estimator’s lock state.
- palette
- Shared palette system (ADR-0021, Plan 0020): one gradient baked once at load
into a 256-entry RGB lookup table (LUT) that every shader-colored scene
samples, replacing the per-scene hardcoded iq cosine
palette(). - preview
- The program preview’s intermediate target and its letterbox geometry (ADR-0143).
- scenes
- Built-in scenes and the thin trait the renderer cycles through.
- text
- On-canvas text via glyphon (ADR-0009), behind the non-default
textfeature. - tier
- Quality tiers: the engine’s capacity constants, resolved once (ADR-0045).
Structs§
- Audio
Capture - What one
Renderer::capture_audio_after_warmuprun produced. - Headless
Options - How to build a headless
Rendererfor capture (Plan 0013). - Renderer
- Owns the GPU context, the built-in systems, and the loaded presets; renders one frame per call by evaluating the active preset into the active system.
- Renderer
Options - Construction-time options for an on-surface
Renderer(Plan 0044).
Enums§
- Param
Error - Why a live parameter override was refused.
- Pixel
Order - The channel order the four bytes of a pixel arrive in, for a consumer reading frames off a pipe or a buffer (ADR-0187).
- Sample
Budget - Which of a tier’s two sample ceilings this renderer resolves against (ADR-0140).