Export screen: widescreen frame, black sides, slots can be cleared

- cUI_Character (export) and cUI_Savegame draw inside the centred 1024x768
  frame (viewport) with the render target beside it cleared black; the
  export screen's 3D heroes were stretched across the wide viewport, away
  from their labels and hit areas.
- Export screen shows the game's erase button for an occupied slot and
  reloads the heroes after a delete. Overwriting was already the game's
  own path once clicks hit the right slot.
- game/ui/control.h: shared show/hide for cUI_Control2.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
khallaandClaude Opus 5.5 committed 2026-10-18 23:26:53 +02:00
1 parent c875d7d6b9
commit 72525cd5ba
9 files changed
+272 -13

No files matched your search

+16
View File
@@ -126,3 +126,19 @@ offset, that reset reached past the render target, `SetViewport` failed and
the small viewport stayed set: the cursor (drawn after the UI) was only
visible inside it. A viewport at x 0 across the whole render width is now
passed unshifted.
## Full-screen windows: frame viewport and black sides (2026-10-18)
The character export screen (Esc menu "Exportieren", cUI_Character) and the
save game window (cUI_Savegame) cover the 1024 frame with a picture. Request:
black instead of the world beside it, and the export screen adapted to the
wide view. Measured on a screenshot: the export screen's 3D scene (heroes on
their stones) is projected for a 1024x768 viewport; across the widened one
it was stretched 1.8x wide, away from the slot labels and their hit areas.
Their render hooks (`HUD_RENDER_FRAMED`, `HUD_RENDER3_FRAMED`) run the window
inside `FrameScope`: while the window is visible, the render target left and
right of the centred frame is cleared black, then the viewport is set to the
frame (dx, 0, 1024x768) and restored afterwards. `Clear` clips to the
viewport, so the sides are cleared first. Both calls go to the unhooked
device methods (`IDirect3DDevice7` 10 Clear, 13 SetViewport, 15 GetViewport).