luft/render/command-menu.lisp
Input normally published the revision synchronously. This guard never discovers commands and is a no-op for a clean retained snapshot.
Both composition and inverse input use the SDL canvas's logical destination extent. The native drawable therefore supplies its pixel density directly rather than upscaling a panel raster.
Attach viewer's shared textureless M-x surface and return it.
The application vocabulary is captured here, outside paint. Releasing relative-pointer mode also makes the retained panel immediately clickable.
Detach and release viewer's M-x surface, if present.
REMOVE publishes absence before RELEASE destroys the McCLIM frame and compositor buffers against the still-live viewer device.
Return luft's M-x command form when event names it.
A modal click outside the panel must not recapture the game pointer.
Retain the absolute logical position without orbiting the camera.
An explicitly owned AVFrame.
(owner-frame)Return the command tables whose executable vocabulary M-x shows. The default is OWNER-FRAME's complete table. Applications may either pass an explicit list to MAKE-EMBEDDED-COMMAND-MENU or specialize this protocol when their semantic layers should remain separately inspectable.
(viewer)Logical negation of one test or raw truth value.
(instrument)Return INSTRUMENT's input and visual stacking priority.
(instrument viewer)Publish INSTRUMENT's already-owned state at VIEWER's frame boundary.
(frame)(instrument viewer pass surface-texture physical-extent)Encode INSTRUMENT into VIEWER's final PASS at PHYSICAL-EXTENT.
Replay COMPOSITOR's textureless McCLIM mirror into PASS under affine STATE. DESTINATION-TEXTURE describes the open pass for format and clipping. FRAME-TEXTURE names the bounded in-flight presentation slot whose host-visible buffers are safe to update; normally both arguments are the same texture.
(frame viewport-logical-extent)Return a centered affine state measured in destination logical pixels. At scale one, one command-menu coordinate occupies one logical pixel in the game viewport. The final direct render therefore receives the destination's native pixel density automatically: a 2x drawable evaluates every analytic edge and Slug glyph…
(viewer)(instrument viewer)Release INSTRUMENT while VIEWER's GPU device is live.
(frame)(viewer &key (title "LUFT M-x"))Attach VIEWER's shared textureless M-x surface and return it. The application vocabulary is captured here, outside paint. Releasing relative-pointer mode also makes the retained panel immediately clickable.
Logical disjunction of tests and raw truth values.
(viewer)(canvas enabled)Capture or release relative pointer motion for CANVAS.
(owner-frame canvas context device
&key command-tables (inherited (null command-tables)) (title "M-x"))Create OWNER-FRAME's retained direct-GPU M-x surface on CANVAS. The returned frame owns no native window and no raster backing texture. Its prepared semantic commands are replayed by the host application's existing GPU pass.
(frame &key (errorp t))A retained McCLIM command stream replayed into a caller-owned GPU pass. The caller supplies one 4x4 clip-space affine state and the actual destination texture for each frame. Semantic solids, analytic shapes, gradients, images, lattices, and Slug text are evaluated at that texture's native resolution; there is no…
(viewer instrument)Attach INSTRUMENT at VIEWER's frame boundary in explicit priority order. ADD consumes a newly offered INSTRUMENT on both success and terminal rejection. Once VIEWER begins stopping, the rejected instrument is released exactly once before APPLICATION-ATTACHMENT-CLOSED is signalled.
Logical conjunction of tests and raw truth values.
(viewer)(viewer instrument)Detach and release INSTRUMENT at a frame boundary. Return true when it was attached. Release is synchronous with the caller and therefore cannot overlap a native frame which still borrows the instrument.
(viewer)(viewer attachment action command)One named verb over a session.
(frame command &key before-execute)Execute COMMAND on FRAME's owner, after optional BEFORE-EXECUTE. The owner is captured first so BEFORE-EXECUTE may destroy FRAME while removing the modal surface. Application commands therefore never run underneath M-x.
(name (&rest lambda-list) documentation &body body)(viewer event)(frame event &key (command-table (frame-command-table frame)))Return the command COMMAND-TABLE binds to key EVENT, or NIL. McCLIM answers with the gesture itself on a miss and checks command enablement against *APPLICATION-FRAME*, so both details are established here.
(instrument viewer canvas event)Handle EVENT for INSTRUMENT and return true when world input must stop.
A native destination with a lifetime and frame clock.
(frame event)Handle one portable key press and return ACTION and optional COMMAND. ACTION is :CONTINUE, :DISMISS, or :EXECUTE. This function never calls the application command while it is updating or repainting M-x; the host dismisses its modal surface first and passes COMMAND to EXECUTE-COMMAND-MENU-COMMAND.
(frame pointer-x pointer-y viewport-logical-extent)(frame x y button)A scroll, carrying where the pointer was and how far the wheel turned. The amounts are in wheel notches rather than pixels, positive up and right, already corrected for a natural-scrolling platform -- what the window system says the user asked for, not what the hardware reported.
luftowns only the application boundary of M-x: which command tables form its vocabulary, when the modal surface is attached, and where it enters the atelier's final pass. Search, input editing, painting, and execution all remain inmcluv's shared retained-GPU instrument.