Skip to main content

Module ui

Module ui 

Source
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§

TrackButton 🔒
One button a track row can be drawn with.
TrackStatus 🔒
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.