OXYGENHUB

spec: document the Agon pointer path in the platform appendix 79333fa1febe

0.4.0 added POST/GET /pointer but the Agon appendix had no pointer note.
Fill it: the FAB emulator feeds PS/2 mouse packets through the same
sendHostMouseEventToFabgl device path host motion uses, tracks the
absolute position server-side (PS/2 is relative) so x/y and GET /pointer
are exact, and delivers packets at the frame boundary like /key.

Git-Commit: b741043ac79922d13d5ca80115a992012319ce75
Git-Author: Andy McCall <[email protected]>
Author
Andy McCall @andymccall <[email protected]>
When
· 2026-07-22 20:07 UTC
Signature
◈ sealed by Andy McCall
Hash
79333fa1febe9028d3120778337b471dca2cb7acc8a49a50283c6040dfc30d49
Depends on
961b3c610c66 d44319b1e712
Depended on by
nothing yet
In bookmarks
main perf-6
Edits
1 atom, 0 tree operations, 1 file

Browse the tree at this change

modified SPEC.md +10 −0
…
172 unchanged lines
173 173
  delivers it via `sendVKeyEventToFabgl`; `?code=<vk>` passes a raw fabgl vkey.
174 174
  The control thread queues events; the render thread delivers them (same
175 175
  thread as normal keyboard input). `/reset` triggers the soft-reset atomic.
176 +
- Pointer: `/pointer` feeds PS/2 mouse packets through `sendHostMouseEventToFabgl`
177 +
  — the same device path host mouse motion uses, so it drives the real fabgl/VDP
178 +
  mouse rather than a shortcut. PS/2 motion is relative, so the control server
179 +
  tracks the absolute position itself: `x`/`y` become a delta from that tracked
180 +
  point (split across packets past the ±127 int9 range), `dx`/`dy` apply directly,
181 +
  and `GET /pointer` reports it exactly. Coordinates are screen space (x right,
182 +
  y down; y is negated into the PS/2 up-positive convention). `buttons` bit0/bit1
183 +
  map to the PS/2 left/right (primary/secondary) button bits. Like `/key`, packets
184 +
  are queued by the control thread and delivered by the render thread at the frame
185 +
  boundary, so `pause → pointer → step(1) → screenshot` is reproducible.
176 186
177 187
---
178 188
…
21 unchanged lines