Commit Graph
5072 Commits
Author SHA1 Message Date
Henrik Rydgård 28790c19af Merge pull request #20912 from hrydgard/ios-portrait-support
iOS portrait mode support
2025-10-22 16:19:37 +02:00
Henrik Rydgård 1c49ad7b29 Support screen rotation on iOS (unrestricted) 2025-10-22 15:13:21 +02:00
fp64 5c67109862 Update NEON PMA to match scalar/SSE2
See https://github.com/hrydgard/ppsspp/pull/20902#issuecomment-3429764588 for details.

WARNING: not at all tested in actual PPSSPP, only godbolt for relevant snippet. Verification that it works would be good.

Again, this should be slightly slower than the current version, which shouldn't matter. The goal is accuracy/consistency here.
2025-10-22 14:13:07 +03:00
Henrik Rydgård 2bc2d9c6f9 Minor UIAtlas code cleanup 2025-10-21 14:49:55 +02:00
Henrik Rydgård c29eb5097b Use the more accurate sleep function in the UI throttling 2025-10-21 12:11:23 +02:00
Henrik Rydgård 7cc4a0f3a3 Add more accurate sleep function (well, not more accurate on Windows unfortunately) 2025-10-21 12:11:23 +02:00
Henrik Rydgård 29032f4a70 Merge pull request #20900 from hrydgard/restore-vsync
Rework the VSync setting and related code to make more sense
2025-10-21 12:10:23 +02:00
Henrik Rydgård d265336912 Warning fix 2025-10-21 11:16:19 +02:00
Henrik Rydgård 3ae0057285 UIAtlas: Fix bug when adding 1px border to images (was a no-op by accident) 2025-10-21 11:08:53 +02:00
fp64 9932ad3f85 Improve accuracy of SSE2 PMA conversion
This makes SSE2 version match the (correctly-rounded)
scalar reference (which the current version doesn't:
see https://godbolt.org/z/hK5938jda).

The new implementation uses the same idea as mentioned in
https://github.com/hrydgard/ppsspp/pull/20870#issuecomment-3413134437

It may be a bit slower than current implementation (which
simply truncates?), but correctness/consistency is
probably worth it.

The difference is slight (by 1 in RGB color channels),
but observable in synthetic examples (in particular the
current implementation darkens completely opaque parts,
including `0xFFFFFFFF` -> `0xFFFEFEFE`, and, more
strikingly,`0xFF010101` -> `0xFF000000`).

This doesn't touch NEON part at all (so "vibe-coded" comment
stays for now), but it shouldn't be too hard to port.
2025-10-21 08:04:37 +03:00
Henrik Rydgård c5b1f2ffb0 OpenGL: Call SwapInterval properly 2025-10-20 22:45:42 +02:00
Henrik Rydgård 042cf87248 Rework the present mode settings, refactor. 2025-10-20 21:28:38 +02:00
Henrik Rydgård 82bba691dd Unexpose the specialized Vulkan presentation modes for now 2025-10-20 19:53:21 +02:00
Henrik Rydgård b4f7635719 Vulkan: Check the available present modes right after initializing the surface 2025-10-20 19:52:24 +02:00
Henrik Rydgård 80bd32325c Move the present mode from the CreateInfo to InitSwapchain 2025-10-20 16:33:34 +02:00
Henrik Rydgård 6338832015 Vulkan: Smoothly recreate the swapchain using oldSwapchain on "resize" on Windows 2025-10-20 15:42:34 +02:00
Henrik Rydgård 176c55da25 Remove unused "interval" concept from presentation mode 2025-10-19 18:18:06 +02:00
Henrik Rydgård 2b6b951f78 Fix alpha in drawtext for RGBA8888 format.
Should fix #20879
2025-10-17 08:57:12 +02:00
Henrik Rydgård e5f52854d8 Atlas SVG: Add 1px transparent border to images without shadows, to ensure consistent filtering 2025-10-16 16:45:59 +02:00
Henrik Rydgård 3736702f93 Use the correct blending operator when compositing the drop shadow 2025-10-16 11:07:05 +02:00
Henrik Rydgård c08e48bf82 Only shadow the UI images that are used for line-art in-game buttons. 2025-10-16 11:07:05 +02:00
Henrik Rydgård 230fa1a985 Improve the premul alpha conversion 2025-10-16 11:07:05 +02:00
Henrik Rydgård cec4cd28dd Make compatible with SSE2 (_mm_mullo_epi32 is SSE4.1) 2025-10-16 11:07:05 +02:00
Henrik Rydgård 21e0c496c4 Convert loaded pngs and zims to premultiplied alpha 2025-10-16 11:07:05 +02:00
Henrik Rydgård 60d25cb97d Change the UI rendering shaders to apply vertex color alpha properly 2025-10-16 11:07:05 +02:00
Henrik Rydgård f0b5209908 Convert all UI atlas images to premultiplied alpha format 2025-10-16 11:07:05 +02:00
Henrik Rydgård b082e94edb Initial work on using premultiplied alpha in the UI 2025-10-16 11:07:05 +02:00
Henrik Rydgård c3dfddebd7 IR interpreter: Improve code gen for the main interpreter loop
Thanks to fp64 for the idea of using unreachable markers to avoid the
range check on the switch!

Additionally, use it in a few more places.
2025-10-15 21:15:30 +02:00
Henrik Rydgård 58f55ae44b Enable exception handling on Windows ARM64
Simpler than expected. We don't really make any advanced use of the
context currently so I guess it makes sense.

See #20854
2025-10-07 10:56:23 -06:00
Henrik Rydgård b4b9ae2d3c Fix the OnClick behavior on checkboxes, oops. Fixes cheats. 2025-09-30 12:38:38 -05:00
Henrik Rydgård 1efd0b95b8 Improve logging of UI atlas generation, don't generate debug png (oops) 2025-09-23 13:40:39 -06:00
Henrik Rydgård 10b0d94940 Remove some redundant code, minor optimization 2025-09-23 11:10:46 -06:00
Henrik Rydgård 233a9b0df8 Merge pull request #20824 from hrydgard/svg-icons
Load UI atlas images from SVG : proof of concept
2025-09-22 15:57:09 -06:00
Henrik Rydgård 27ed337d99 Move more pngs into the images.svg file 2025-09-22 15:24:10 -06:00
Henrik Rydgård 30392cd0ed Merge pull request #20826 from oltolm/warn
fix compiler warnings
2025-09-22 10:09:03 -06:00
Henrik Rydgård 4a50174d14 Support dpi scaling in SVG atlas generation 2025-09-20 10:00:05 -06:00
Henrik Rydgård 0bb70de3f0 Correct the drop shadow 2025-09-19 11:23:48 -06:00
Henrik Rydgård e03de7b9da Add some quick and dirty drop shadow code. Now the generated images look good! 2025-09-19 10:57:29 -06:00
Henrik Rydgård 74874bb81e Test a multi-shape image 2025-09-19 10:31:51 -06:00
Henrik Rydgård 9fa7a8880a Include nanosvg in MSVC project 2025-09-19 10:31:51 -06:00
oltolm de3abcf579 fix compiler warnings 2025-09-19 11:36:11 +02:00
Henrik Rydgård bceb989811 Remove ImageDesc from AtlasGen.cpp/h 2025-09-18 11:26:19 -06:00
Henrik Rydgård ca2a7c93a0 Make ToAtlasImage a global function instead of a method on ImageDesc 2025-09-18 11:03:50 -06:00
Henrik Rydgård 95703d2d9c Delete "C++ table" output from atlastool 2025-09-18 10:58:27 -06:00
Henrik Rydgård 641fa40d82 Runtime atlas gen: Reorganize, remove global_id 2025-09-17 10:46:08 -06:00
Henrik Rydgård 52f2475353 Remove the LoadImage method (the two users have quite different needs) 2025-09-17 10:37:42 -06:00
Henrik Rydgård 0298536efa Separate images from data in bucketer 2025-09-17 10:28:08 -06:00
Henrik Rydgård d2512817bd checkpoint 2025-09-17 10:10:59 -06:00
Henrik Rydgård 81819642d8 Minor cleanups 2025-09-17 10:01:00 -06:00
Henrik Rydgård 92f5db7445 Remove further references to the fixed ui_atlas. CMakeLists.txt improvements. 2025-09-17 09:56:17 -06:00