mcclim/metabar.lisp
Every background ink carries alpha into the direct compositor. Its solid
and analytic shaders premultiply rgb before the ordinary OVER blend.
--------------------------------------------------------------------- Application protocol.
Return owner's ordered group identities. Group identities remain owned
by the application; symbols are sufficient when they are the vocabulary.
Return group's short label in owner's metabar.
Return owner's ordered controls in group.
Return owner's ordered metabar actions.
Return :SCALAR or :switch for control in owner.
Return control's short label in owner.
Return control's cheap authored value. This runs during owner refresh,
never inside repaint.
Format the already observed value for control.
Return scalar value's clamped position from 0 to 1.
Return NIL for an immediate value, or a short semantic marker such as
:REBUILD when realizing control involves deferred derived work.
Return :CONTINUOUS or :COMMIT-ON-RELEASE. The latter previews a pointer drag but applies only its last value after release, which keeps expensive derived work out of motion-event bursts.
At owner's frame boundary, move control by signed direction and multiplier.
At owner's frame boundary, set scalar control from clamped fraction.
At owner's frame boundary, toggle switch control.
Return action's short button label in owner.
Invoke action at owner's frame boundary.
--------------------------------------------------------------------- Cached vocabulary, rows, and operations.
Capture owner's small semantic vocabulary outside repaint.
Return the fixed logical height which fits vocabulary's largest group.
Rebuild frame's retained row vocabulary after a structural change.
Re-read frame's groups, controls, and actions outside repaint.
Return the visible row index at local logical Y, or NIL.
Record a semantic revision. Repainting waits for the owner's refresh boundary.
Observe visible control values outside repaint and invalidate on change.
The committed application value may quantize back to its old value. Removing the retained preview is nevertheless a visible revision.
Queue one small semantic operation without invoking application code.
Opposite nudges in one input burst cancel before an expensive owner realization (for example shader rebuilding) can observe a no-op.
Apply queued edits at the owner boundary, retaining commit-style drags.
A failed commit must not leave its optimistic preview displayed as though the owner accepted it.
A development instrument should leave the application alive and put the failure where the human can see it.
--------------------------------------------------------------------- Painting: cached semantic rows only, direct GPU only.
Assert frame has no raster backing, fallback, or prepared image command.
Publish frame's cached semantic stream without drawable acquisition or wait.
Ensure frame's next direct composition sees its latest semantic revision.
--------------------------------------------------------------------- Logical placement and input.
Return the left-drawer affine state in destination logical pixels.
At scale one, one metabar coordinate is one logical viewport pixel. A 2x drawable therefore evaluates every analytic edge and glyph at 2x native samples rather than enlarging a pane raster.
Map a destination-logical pointer into frame, or return NIL.
Handle a portable key press without invoking OWNER; return :CONTINUE or :DISMISS.
Handle one pointer event already projected into frame logical coordinates.
--------------------------------------------------------------------- Embedded frame ownership.
(red green blue alpha)(owner)Return OWNER's ordered group identities. Group identities remain owned by the application; symbols are sufficient when they are the vocabulary.
(control owner)Return CONTROL's cheap authored value. This runs during owner refresh, never inside repaint.
(control owner value)Format the already observed VALUE for CONTROL.
(control owner value)Return scalar VALUE's clamped position from 0 to 1.
(control owner)Return NIL for an immediate value, or a short semantic marker such as :REBUILD when realizing CONTROL involves deferred derived work.
(control owner)Return :CONTINUOUS or :COMMIT-ON-RELEASE. The latter previews a pointer drag but applies only its last value after release, which keeps expensive derived work out of motion-event bursts.
(control owner direction multiplier)At OWNER's frame boundary, move CONTROL by signed DIRECTION and MULTIPLIER.
(control owner fraction)At OWNER's frame boundary, set scalar CONTROL from clamped FRACTION.
(control owner)At OWNER's frame boundary, toggle switch CONTROL.
One named verb over a session.
(vocabulary group)(control owner)(owner vocabulary)Addition over compatible quantities.
Multiplication and scalar scaling.
The maximum of compatible quantities.
Logical height used while MAKE-EMBEDDED-METABAR realizes its layout.
(frame control)An explicitly owned AVFrame.
(frame)The non-negative remainder of integer division.
((agent application-agent) &key)(frame)(frame index)(frame y)Test whether two compatible scalars are equal.
Logical conjunction of tests and raw truth values.
Test whether one compatible scalar is at most another.
Test whether one compatible scalar is less than another.
(frame control)(frame)(frame)(frame control)(frame control)(operations kind subject)(frame kind subject &optional argument)(frame operation)The componentwise absolute value of a raw value.
(frame operation)Logical negation of one test or raw truth value.
(medium)An ordered McCLIM drawing stream containing no software pixel surface.
(medium top bottom)(sheet x1 y1 x2 y2 &rest options
&key (radius 7) (filled t) &allow-other-keys)Subtraction or unary negation.
(medium row top selected-p open-p)Division of two represented quantities.
Logical disjunction of tests and raw truth values.
(medium row top selected-p)((medium luv-gpu-medium) string &key text-style (start 0) end)(frame medium row top selected-p)Test whether one compatible scalar is greater than another.
(medium row top selected-p)(frame medium row top selected-p)(medium row top selected-p)((pane lobby-hud-pane) region)(frame &key (errorp t))A direct GPU target for an ordered LUV-GPU-MEDIUM drawing stream. An embedded mirror retains an immutable prepared CPU revision for the game's final pass; a standalone mirror renders into its native canvas drawable.
(sheet)(medium)Describe which BASIC-MEDIUM fallbacks fed MEDIUM's GPU polygon leaf. Each entry reports semantic calls, polygon points produced by McCLIM, and GPU triangles emitted by luv. Direct polygon calls are named :DIRECT-POLYGON.
(frame)(frame)(mirror &key
(target-format nil target-format-p)
(depth-stencil nil depth-stencil-p))Prepare MIRROR's compositor for its current immutable GPU revision. Applications call this at their pre-pass refresh boundary even when McCLIM's semantic command stream is unchanged. It deliberately accepts only a direct GPU mirror: raster mirrors have no retained semantic revision and are not a fallback for…
(source-logical-extent viewport-logical-extent)The minimum of compatible quantities.
(source-logical-extent viewport-logical-extent slide)Return the left-drawer affine state in destination logical pixels. At scale one, one metabar coordinate is one logical viewport pixel. A 2x drawable therefore evaluates every analytic edge and glyph at 2x native samples rather than enlarging a pane raster.
Raise a dimensionless value to a dimensionless power.
(frame viewport-logical-extent slide)(frame pointer-x pointer-y viewport-logical-extent slide)(frame index)(frame group)(frame direction multiplier)(frame row fraction)(frame event)(frame event local-x local-y)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.
(owner canvas context device &key (title "metabar"))A native destination with a lifetime and frame clock.
A MuPDF context: its allocator, its store, and its error stack.
A McCLIM frame manager constrained by luv's current native host.
(frame)
The metabar is a shared, retained application instrument: a drawer of grouped live controls and actions which an application may attach to its own render and input lifecycle. This file owns the semantic UI, not any particular game's state or overlay plumbing.