HUD window: pop your HUDs out into their own OS window, adjustable layout, then auto-pack them tightly #1285

Open
opened 2026-10-29 06:21:29 +00:00 by sky_line · 0 comments
Owner

A pop-out "HUD window" (built on the #1013 native windows) that takes your HUDs off the main screen.

First pass

  • One OS window that takes over the whole HUD layer. While it is out, the main view skips HUDs entirely (slightly cheaper main view).
  • The window starts at the size of the whole monitor, laid out as on the main screen. You can resize it and move HUDs around inside it. Placement is saved per HUD (by attachment and item) and is local only: it never edits the attachment's real position on the server.
  • Clicks behave exactly as on the main screen. A click in the window is picked with that window's HUD camera, and the touch is sent with the same face, position and surface coordinates (llDetectedTouchST / UV), including drag, scroll wheel and media-on-a-prim HUDs.
  • The window can refresh at a lower rate (e.g. 30 FPS, or only on change).

Goal: auto-pack

  • A "Pack HUDs" action that measures each HUD's on-screen bounding box (its visible extent at the current HUD zoom) and packs them tightly into the smallest window, then sizes the window to fit. A simple shelf / skyline rectangle packer is enough. The user's manual moves win, and you can re-pack on demand.
  • Handle HUDs that change size (minimise / maximise buttons): re-pack when a HUD's bounds change by more than a threshold, never every frame. Leave a small gap between HUDs.

Rules and edge cases

  • RLV HUD restrictions still apply (hidden HUDs stay hidden).
  • Build mode: editing a HUD works in the window, or snaps that HUD back to the main screen while it is being edited.
  • Some HUDs read the main camera or the screen size. A per-HUD "keep on main screen" option and a one-click "send everything back" button cover those.
  • Fixed cost: one extra HUD render into a small window, no per-frame packing.
  • Later: several HUD windows (per attach point or per HUD), and one RmlUi context per window when #703 lands.
A pop-out "HUD window" (built on the #1013 native windows) that takes your HUDs off the main screen. **First pass** - One OS window that takes over the whole HUD layer. While it is out, the main view skips HUDs entirely (slightly cheaper main view). - The window starts at the size of the whole monitor, laid out as on the main screen. You can resize it and move HUDs around inside it. Placement is saved per HUD (by attachment and item) and is local only: it never edits the attachment's real position on the server. - Clicks behave exactly as on the main screen. A click in the window is picked with that window's HUD camera, and the touch is sent with the same face, position and surface coordinates (`llDetectedTouchST` / UV), including drag, scroll wheel and media-on-a-prim HUDs. - The window can refresh at a lower rate (e.g. 30 FPS, or only on change). **Goal: auto-pack** - A "Pack HUDs" action that measures each HUD's on-screen bounding box (its visible extent at the current HUD zoom) and packs them tightly into the smallest window, then sizes the window to fit. A simple shelf / skyline rectangle packer is enough. The user's manual moves win, and you can re-pack on demand. - Handle HUDs that change size (minimise / maximise buttons): re-pack when a HUD's bounds change by more than a threshold, never every frame. Leave a small gap between HUDs. **Rules and edge cases** - RLV HUD restrictions still apply (hidden HUDs stay hidden). - Build mode: editing a HUD works in the window, or snaps that HUD back to the main screen while it is being edited. - Some HUDs read the main camera or the screen size. A per-HUD "keep on main screen" option and a one-click "send everything back" button cover those. - Fixed cost: one extra HUD render into a small window, no per-frame packing. - Later: several HUD windows (per attach point or per HUD), and one RmlUi context per window when #703 lands.
sky_line added this to the Slipstream project 2026-10-29 06:21:29 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#1285
No description provided.