Skip to content

feat(hud): compose native skill labels and timers without flicker - #443

Merged
Mat4m0 merged 1 commit into
feat/native-map-renderingfrom
feat/native-hud-rendering
Sep 12, 2026
Merged

feat(hud): compose native skill labels and timers without flicker#443
Mat4m0 merged 1 commit into
feat/native-map-renderingfrom
feat/native-hud-rendering

Conversation

@Mat4m0

@Mat4m0 Mat4m0 commented Sep 12, 2026

Copy link
Copy Markdown
Owner

What changed

Skill shortcuts, cooldown numbers, and effect durations use a shared native HUD atlas. Each skill combines its keycap and cooldown into one ordered draw, preventing their relative order from flickering. All eight keycaps share the original-style proportions and scale with the interface; effect durations sit inside their icons above the duration bar.

Why

Independent drawing objects could reorder overlapping labels, and newly created meshes delayed the first visible timer. The new composition populates geometry immediately, reuses cached digits, and preserves label identity through effect expiry and atlas repacking. The old browser HUD drawing paths are removed.

Invariant

A separate nativeHudRendering capability requires exact native draw-owner proof and validated geometry. Core-only and observation-only clients keep their original UI hooks. Refusing HUD drawing preserves independently certified observations, including the existing Alcohol Timer. The atlas allocates on first use; native destruction/reset and host disposal release owned resources. High-address wasm32 uploads are normalized before copying and freeing buffers.

Delivery

Targets the native-maps layer and ultimately main. Recommend one Beta candidate for the full stack, followed by exact signed-build gameplay QA. The proposed interactive native alcohol icon is outside this change.

Verification

Combined source gate: 1,712 unit tests, 182 policy tests, 196 Tools UI tests, and 81 launcher UI tests passed, plus types, lint, and Markdown links. Integration (111), release checks (30), Tools end-to-end (42), packaging, and packaged smoke tests passed. The full Electron run had two stale map selectors and one focus-sensitive pointer-lock failure; corrected/isolated reruns passed.

The actual-client artifact suite passed; comparison with a previous WASM was skipped because no previous artifact was supplied. Native HUD bytecode tests cover composition, first-draw geometry, clipping, resource lifetime, malformed uploads, and high addresses. Production-atlas visual replay checks scaling and original-font layout.

Matthias accepted the preceding development build with “all working.” The final review fixes have automated evidence; this does not replace exact signed-candidate acceptance.

  • I kept this pull request focused.
  • I ran the relevant checks.
  • I did not add game binaries, credentials, diagnostics, or private traffic.
  • I updated documentation when behavior or an invariant changed.

@Mat4m0
Mat4m0 added this pull request to stack #444 September 12, 2026 18:53
@Mat4m0
Mat4m0 merged commit b56f4a8 into main Sep 12, 2026
11 checks passed
@Mat4m0
Mat4m0 deleted the feat/native-hud-rendering branch September 12, 2026 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant