Commit Graph
80 Commits
Author SHA1 Message Date
Henrik Rydgård 9ac9b2c23d Add a left-pointing chevron, more ChoiceGroup 2026-10-26 23:01:21 +01:00
Henrik Rydgård 845b2b3640 Add I_LANGUAGE icon, add subpage for UI settings 2026-10-26 11:07:09 +01:00
Henrik RydgårdandClaude Opus 5.5 d887057b83 UI: Add a thin chevron image
I_CHEVRON_RIGHT, a thin > for marking items that open another page.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 13:44:44 +01:00
Henrik Rydgård c37498808c Home key improved look 2026-10-24 14:14:41 +02:00
Henrik RydgårdandClaude Opus 5.5 dcb1a77dc6 GameBrowser: Show the network folder as Network, with its own icon
The path display says Network instead of \\, and the folder button in
the drive list gets the new I_NETWORK icon and a translated name.

images.svg also picks up I_TOGGLE_ON and I_TOGGLE_OFF, not used yet.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 02:44:06 +02:00
Henrik RydgårdandClaude Opus 5.5 110fb7fd6a UI: Rounded rectangles from precomputed atlas corners
UIAtlas generates an antialiased white corner for each radius in
ROUND_RECT_RADII (8, 16, 24, 32 UI units) and each style (filled, and
thin/medium/thick outlines from ROUND_RECT_THICKNESS) at the atlas DPI.
DrawBuffer::DrawRoundRect mirrors the corner into all four corners and
stretches the corner's last texel row/column along the edges, so a
round rect is 9 quads (8 for outlines).

Other radii use the nearest corner, scaled. The LogoScreen temporarily
draws some for testing.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 01:52:34 +02:00
Henrik Rydgård 01508a9f38 Merge pull request #22743 from hrydgard/text-drop-shadow
TextDrawer: Soft drop shadow flag, shared with the UI atlas
2026-10-23 13:54:42 +02:00
Henrik RydgårdandClaude Opus 5.5 dea182f1d8 Use one UI drop shadow for text and atlas images, fix Windows build
Text and the SVG button images are mixed on screen, so they now share
UIDropShadowParams (3 UI units of blur, 0.66 intensity, no offset, the
atlas's existing look) instead of the text having its own.

draw_text.cpp included <windows.h> directly, whose min/max macros broke
the std::max calls added here. Include CommonWindows.h instead.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 12:32:25 +02:00
Henrik RydgårdandClaude Opus 5.5 05273d9da3 UI atlas: Rasterize each SVG image separately, in parallel
nanosvg walks every scanline of the target for each visible shape, so
rasterizing the whole SVG and cropping the images out of it cost
shapes * canvas area. Each image is now rasterized into a buffer the size
of its bounding box, from a list of copies of its own shapes, so the
images can be rasterized on the thread pool.

Atlas generation on a Redmi 9A (32-bit) goes from about 165 ms to about
95 ms, and on a desktop from about 10 ms to 6 ms. Parsing the SVG is now
the largest part. The atlas layout is unchanged; a few edge pixels differ
by at most 2/255 from the different subpixel offsets.

Also copy whole rows in Image::copyfrom, and fix a leak of the SVG file
data when parsing fails.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-23 10:16:31 +02:00
Henrik RydgårdandClaude Opus 5.5 0066599f9a Game browser: Add an XMB-style large list mode
- Fixes #22202

A third view mode next to grid and list: a list with full size icons,
scaled by the grid icon size setting. Like the XMB, the selected (or
hovered) game plays its ICON1.PMF in place of the icon.

The per-tab grid bools become GameBrowserView1-4 ints. The old GridView
keys are still read, to pick the default, but no longer saved.

The PMF decoding moved out of GameScreen's PMFView into a shared
PMFVideoTexture.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-14 10:24:32 +02:00
Henrik Rydgård 831acb099e Allow specifying a cap on the number of threads used in ParallelLoop 2026-10-09 14:33:58 +02:00
Henrik RydgårdandClaude Opus 5.5 3970fa5c62 UIAtlas: Read and decode the font atlas once
Like the UI atlas, keep the decoded image around and only recreate the
texture when a new UIContext asks for it, rather than reading the
metadata and decoding the ZIM from disk each time.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-28 16:03:52 -06:00
Henrik Rydgård 91b3741a57 Implement a simple cheat database download facility 2026-05-16 22:31:13 +02:00
Henrik Rydgård 3325cbe6b2 Remove the legacy icon images for zip/rar/7z. Include this in the regular gamelist so search works for them. 2026-05-03 18:43:48 +02:00
Henrik Rydgård 77ce936c7d Add a "Paste" icon to the UIAtlas 2026-05-01 20:05:05 +02:00
Henrik Rydgård d390e04d7b Build and warning fixes 2026-04-08 09:13:20 -06:00
Henrik Rydgård 3ebe5426ae Easy button customization: Add buttons.svg in PSP/SYSTEM 2026-04-07 15:24:24 -06:00
Henrik Rydgård d65f95fbfd Split the buttons out from images.svg to buttons.svg 2026-04-07 14:08:55 -06:00
Henrik Rydgård d759f71327 More refactoring in UIAtlas.cpp 2026-04-07 13:57:55 -06:00
Henrik Rydgård cd959fd09c Break out function RasterizeSVG 2026-04-07 13:32:54 -06:00
Henrik Rydgård cadff7779b Minor code clenaup in UIAtlas.cpp 2026-04-07 13:17:10 -06:00
Henrik Rydgård 026aa9276b Add I_SEND image to images.svg 2026-03-31 14:04:39 -06:00
Henrik Rydgård 300f18db58 Add back the "Landscape auto" rotation type 2026-03-24 10:36:16 -06:00
Henrik Rydgård e33fd29bd2 Add a "quick-edit" button for the current server host/ip, if it's custom
This was requested by Majin on Discord, whose server changes IP
regularly for some reason.
2026-03-14 13:45:45 +01:00
Henrik Rydgård 33c8bdc05b Show radio button images in the server list 2026-03-10 09:21:19 +01:00
Henrik Rydgård 52ec01994d Add icons to the buttons on the save state popup. Flip the undo buttons to match the regular buttons. 2026-02-28 11:40:55 +01:00
Henrik Rydgård c3a78724c7 Add an on-screen keyboard in the popup inputbox 2026-02-26 17:17:42 +01:00
Henrik Rydgård ad458affb2 Typo fix 2026-02-15 22:50:01 +01:00
Nab d08d7b6961 Add icon to Create new shortcut option 2026-02-14 20:33:57 +00:00
Nab 0b51d74bb2 Add icon to Create new shortcut option 2026-02-14 17:40:05 +00:00
Henrik Rydgård 274b7e2641 Add missing drop shadows to a couple of UI images 2026-02-13 18:20:21 +01:00
Henrik Rydgård 2bc43810a8 Improve display of homebrew without an icon in the game browser 2026-02-10 11:26:01 +01:00
Henrik Rydgård edaab592cc Pause screen: Make the run-behind play/pause button outlined, to differentiate 2026-02-10 10:46:48 +01:00
Henrik Rydgård 19a6232b48 Improve handling of the UMD VIDEO error case (no, we still don't support them) 2026-01-28 14:32:38 +01:00
Henrik Rydgård 1c80e93070 Improve the appearance of unsupported ISO files 2026-01-28 11:00:04 +01:00
Henrik Rydgård 1bef13c227 Use faster method for packing the UI atlas 2026-01-24 10:44:00 +01:00
Henrik Rydgård 481d0fd18c Switch TouchInputFlags to enum class, fix some minor UI issues
Scroll views now only wheel-scroll if the mouse is hovering over them.
2025-12-19 11:38:56 +01:00
Henrik Rydgård 1ea93e2913 Small refactor of text rect measurement. Add move/resize icons 2025-11-27 11:50:22 +01:00
Henrik Rydgård ed25b5e991 Add convenient UI on the pause screen for changing/locking the screen orientation 2025-11-26 11:14:37 +01:00
Henrik Rydgård 3116eba395 More UI work (#21035)
* Improve a couple of on-screen buttons (menu, fastforward)

* Fix the new continue button, oops

* Add some missing translations

* Split a translation string to make portrait look better

* More GameScreen redesign

* Don't accidentally go into game-specific mode

* Fix layout issue with popupscreens, fix context menu positioning

* One more icon
2025-11-24 20:33:13 +01:00
Henrik Rydgård 25edcaa81c Some improvements to the pause screen. Add shortcut to touch control layout 2025-11-24 01:19:32 +01:00
Henrik Rydgård 1a35049483 Popup menu fix, inset fix on pause screen 2025-11-22 15:51:44 +01:00
Henrik Rydgård c4c29ab6b3 Fix issue with UI atlas being generated unnecessarily on mobile 2025-11-22 10:29:21 +01:00
Henrik Rydgård d1f6da81cb Add stb_rect_pack library, use it to pack our atlases way faster 2025-11-15 15:26:06 +01:00
Henrik Rydgård 915a88df60 AtlasGen: Separate pack and resolve steps 2025-11-15 15:26:06 +01:00
Henrik Rydgård 55d53bd29a Handle devices with really extreme DPIs. Fixes #21001
I thought I did this already but apparently not, or it got lost in a
branch.
2025-11-15 15:26:06 +01:00
Henrik Rydgård 278a913a6a Add an icon to the homebrew store button 2025-11-09 09:27:37 +01:00
Henrik Rydgård 2fce2da709 Apply the font system rework to Android as well 2025-11-09 08:52:21 +01:00
Henrik Rydgård 57d64eaf60 New icons for the tools and system tabs 2025-11-06 23:44:55 +01:00
Henrik Rydgård 56d3dae334 Avoid regenerating the UI Atlas if unnecessary (faster resize) 2025-11-06 23:44:55 +01:00