mcclim/application-status-bar.lisp
·
Return owner's ordered status channel symbols.
The default method supplies the application channels. A game adds sparse fields with an ordinary method which appends to CALL-NEXT-METHOD; it never has to replace the status frame or its sampling and presentation policy.
Return channel's compact label in owner's status line.
Return channel's cheap semantic value for owner and status-bar.
Methods run only on the throttled frame-boundary sample, never during paint. They must inspect already-owned state and must not perform I/O or wait.
Return owner's short application identity.
Return owner's shared lobby client, or NIL.
Return owner's source checkout directory, or NIL.
Read root's worktree identity without invoking Git or another process.
Return root's immutable worktree description, discovering it only once.
Status fields are retained across frames. Even a short value must be detached from a game-owned adjustable or otherwise mutable string so later mutation cannot bypass the bar's revision publication.
truncate-status-bar-string reads only the retained prefix of a huge
game-supplied string; it never copies the discarded suffix.
Copy one bounded immutable semantic field list from bar's owner.
Return text's shaped advance in the status bar's one authored style.
Return the longest leading field sequence which fits bar's current width.
Fields retain semantic order and one font size. A narrow destination drops only trailing fields; even the first field is omitted when it cannot fit, so the text command never relies on clipping as its layout policy. Fitting uses the same Slug-shaped font advance as drawing, and only runs during a sparse semantic repaint.
Both layers are analytic direct-GPU media. The panel's alpha reaches the game's already-rendered color through premultiplied blending.
Every field intentionally shares this exact face and size.
Publish bar's retained semantic stream without acquiring a drawable.
Publish bar only when the throttled semantic snapshot actually changed.
Resize bar to logical-width without changing glyph scale or pixel density.
Count one presented frame and occasionally publish a bounded state sample.
The realization sample has no meaningful time window yet. Keep its explicit "--" and publish the first real cadence half a second later.
Return bar's top-edge affine in destination logical coordinates.
Direct McCLIM's affine follows the authored sheet convention: clip-space -1 is the screen top and +1 is the screen bottom.
Create owner's textureless retained status line on its application canvas.
(bar logical-width &key (now (get-internal-real-time)))Minimum time between complete semantic status samples.
(red green blue alpha)The application-neutral status vocabulary, in presentation order.
(owner)Return OWNER's ordered status channel symbols. The default method supplies the application channels. A game adds sparse fields with an ordinary method which appends to CALL-NEXT-METHOD; it never has to replace the status frame or its sampling and presentation policy.
(channel owner)Return CHANNEL's compact label in OWNER's status line.
(channel owner status-bar)Return CHANNEL's cheap semantic value for OWNER and STATUS-BAR. Methods run only on the throttled frame-boundary sample, never during paint. They must inspect already-owned state and must not perform I/O or wait.
(directory)Logical disjunction of tests and raw truth values.
(pathname)Logical conjunction of tests and raw truth values.
Test whether one compatible scalar is at least another.
The minimum of compatible quantities.
(worktree)Logical width used while MAKE-EMBEDDED-STATUS-BAR realizes its pane.
Raise a dimensionless value to a dimensionless power.
Division of two represented quantities.
(client)Return CLIENT's STATUS, PEER-COUNT, LAST-ERROR, and REVISION as values. This is the constant-work frame-boundary view: it neither copies nor sorts the peer collection and never touches the transport. Detailed tools which need peer identities continue to use LOBBY-CLIENT-SNAPSHOT.
Test whether one compatible scalar is greater than another.
Subtraction or unary negation.
Test whether two compatible scalars are equal.
(medium text)((medium luv-gpu-medium) string &key text-style (start 0) end)(bar medium)Return the longest leading field sequence which fits BAR's current width. Fields retain semantic order and one font size. A narrow destination drops only trailing fields; even the first field is omitted when it cannot fit, so the text command never relies on clipping as its layout policy. Fitting uses the same…
The maximum of compatible quantities.
Multiplication and scalar scaling.
Test whether one compatible scalar is at most another.
(bar medium)((pane lobby-hud-pane) region)(sheet x1 y1 x2 y2 &rest options
&key (radius 7) (filled t) &allow-other-keys)(bar &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)An ordered McCLIM drawing stream containing no software pixel surface.
(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.
(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…
(bar logical-width)(bar viewport-logical-extent)Addition over compatible quantities.
(owner canvas context device logical-width &key (title "status"))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.
Logical negation of one test or raw truth value.
A small application-wide semantic status line.
The render thread calls
refresh-status-baronce per frame. That hot path increments one counter and reads the monotonic clock; semantic sampling is capped, throttled, and contains no transport or subprocess work. McCLIM retains analytic media and Slug text which the application's final GPU pass evaluates directly at the drawable's native resolution.