Henrik Rydgård and Claude 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ård and Claude 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ård and Claude 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
Henrik Rydgård
48ba3d99d3
GameSettingsScreen: Add tab icons. In portrait mode, use only icons on the tabs.
2025-11-05 15:29:34 +01:00
Henrik Rydgård
67010ff2af
Split the display layout config between landscape and portrait orientations
2025-11-05 12:49:51 +01:00
Henrik Rydgård
9ed3fc0eaa
Some work on the credits screen, main screen
2025-10-28 11:27:31 +01:00
Henrik Rydgård
b1d14d8221
More upload UI polish
2025-10-27 12:20:24 +01:00
Henrik Rydgård
c686d48268
Add prototype Upload screen and a couple new icons. Some refactoring.
2025-10-27 12:20:20 +01:00
Henrik Rydgård
9d0dfea04f
Split gear.png into two new svg icons, a small (for indicators) and a large one (for buttons)
2025-10-23 14:12:58 +02:00
Henrik Rydgård
7b743071d2
Prepare for adding more sensible back buttons to TabbedDialogScreen portrait mode
2025-10-23 12:46:07 +02:00
Henrik Rydgård
b45d07d6cb
Break out TabHolder from Common/UI/ViewGroup.cpp. A few new atlas images
2025-10-23 11:19:20 +02:00