mcclim/lobby.lisp
The former adapter opened the detailed panel from an :AROUND method on
start-luvcraft-lobby. Deleting a DEFMETHOD from source does not retract
it from a durable image, so remove that obsolete method explicitly. No
current component owns this coordinate: starting the radio is deliberately
independent from showing its optional panel.
The Luvcraft overlay is itself the shared compositor.
Open the detailed panel at a frame boundary, preserving the live radio.
Hide the detailed panel at a frame boundary, preserving its live radio.
Toggle the detailed panel atomically at session's next frame boundary.
Attempt both sides even if one release fails. The HUD is released while the device is live; a later START receives exactly one fresh instrument.
A live session may also be stopped interactively, outside the complete application teardown path. Cross its canvas boundary when available; adapter-only lifecycle fixtures deliberately have no native canvas.
(session)Start SESSION's optional background lobby service and return it.
Logical conjunction of tests and raw truth values.
A direct McCLIM surface mounted in the presentation HUD.
(overlay)Return where OVERLAY draws: :SCENE, :WORLD-PANEL, :VIEWMODEL, :HUD, or :NONE. Scene overlays inhabit world depth; viewmodels are first-person geometry above the world but below held items and the crosshair. World panels retain world projection and depth while drawing analytic application graphics at native…
(overlay session pass surface-texture)Encode OVERLAY into SESSION's open scene PASS for SURFACE-TEXTURE.
(frame viewport-logical-extent &key (margin +lobby-hud-margin+))Place FRAME in the lower-left using destination logical coordinates. The affine state is expressed against the logical viewport. A high-density drawable therefore supplies its native samples directly to analytic edges and Slug glyphs; no panel-sized texture is enlarged.
(overlay session)Publish any complete pending render state for OVERLAY at a frame boundary.
(frame)(focus session)Return a non-negative targeting score when FOCUS can be entered by TAB.
(session)Logical disjunction of tests and raw truth values.
An explicitly owned AVFrame.
(client canvas context device
&key (title "lobby") (install-compositor-p t))(frame &key (errorp t))(session overlay)Attach OVERLAY at SESSION's next native frame boundary and return it. ADD consumes a newly offered OVERLAY on both success and terminal rejection. Once SESSION begins stopping, the rejected overlay is released exactly once before APPLICATION-ATTACHMENT-CLOSED is signalled.
(session overlay &key (release-p t))Detach OVERLAY at a frame boundary and optionally release it there. The no-release path is intentionally preserved for FUSE-LUVCRAFT-OVERLAY: that path may run inside a frame whose command stream still borrows OVERLAY.
Logical negation of one test or raw truth value.
(frame)(session)(session)(canvas function)Run FUNCTION with a timestamp on CANVAS's native frame/event thread. The initial native implementation is synchronous: the caller waits for the function's values. The protocol leaves room for a real frame scheduler.
(session)(session)(&body body)(name &body body)A native destination with a lifetime and frame clock.
Luvcraft's placement and lifecycle adapter for the shared lobby HUD.