Expand description
The control panel: the scene’s UI, drawn over the frame.
The panel lives in the gameplay world with the rest of the scene’s objects,
and the render world draws it. A UiPanel can only be built where its
egui context runs, so the gameplay world lays the panel out on its own tick
and sends the frame to the render world, whose UiSource holds and draws
it.
Everything the panel decides is decided here, beside the objects it acts
on: the drop and clear buttons call the scene’s own helpers, and the
transport buttons write the [MidiSequencer] of the track they belong to.
The sequences live in this world, so a button is a field write rather than a
message to another world, and a row reads the transport state it shows
instead of remembering it.
Re-exports§
use unlit_ecs::World;🔒use unlit_ecs::bundle;🔒use unlit3d::ui::UiPanel;🔒use unlit3d::ui::UiSource;🔒use unlit3d::ui::egui;🔒use super::PanelLayout;🔒use super::PanelSlots;🔒use super::Scene;🔒use super::SceneTracks;🔒use super::Track;🔒use super::clear_balls_in;🔒use super::drop_ball_in;🔒use crate::render::RenderEntity;🔒use unlit3d::prelude::*;🔒use unlit3dx::prelude::*;🔒
Enums§
- Track
Button 🔒 - One button a track row can be drawn with.
- Track
Status 🔒 - What one of the panel’s two track rows shows.
Functions§
- control_
panel_ job - A job that gives the render world the source drawing this scene’s panel.
- mount_
controls - Mount the panel: one entity carrying the source that runs it.
- track_
controls 🔒 - One track’s transport: its name, then the buttons its state calls for.