mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-31 19:47:06 +01:00
Add overlay (bezel) support
Draws a user image around or behind the PSP screen, to fill the black bars on displays whose aspect ratio doesn't match the PSP's (#20325). - Overlays are PNGs in PSP/OVERLAYS. A plain PNG there just works: it's drawn in front of the game, and its transparent hole is found by walking from the image center to each edge until a nearly opaque pixel. Existing RetroArch overlay images can be dropped in as-is. - A subfolder with an overlay.ini can define overlays with a Name, Layer (Foreground/Background) and an explicit Hole=x,y,w,h. - "Load overlay image..." in the display layout screen imports any PNG (including Android content URIs) into the overlays folder and selects it. - The overlay is fit to the screen (aspect preserved, centered). The hole is mapped with the same scale, and the game is fit into it with the normal stretch / integer scale / aspect ratio options. Offset and scale don't apply while an overlay with a hole is active. This goes through CalculateDisplayOutputRect, so touch mapping and post shaders agree. - The selection is a per-orientation, per-game DisplayLayout setting. - Disabled in VR, Cardboard, and with skip buffer effects (except software rendering), since the presentation path doesn't run there. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QGBg32EFPsTXjAFu7dnTcz
This commit is contained in:
1 parent
ff3d184b43
commit
3ce3973781
18 files changed
+697
-6
No files matched your search
@@ -685,6 +685,7 @@ static const ConfigSetting displayLayoutSettings[] = {
|
||||
ConfigSetting("DisplayIntegerScale", SETTING(g_Config.displayLayoutLandscape, bDisplayIntegerScale), CfgFlag::PER_GAME),
|
||||
ConfigSetting("DisplayAspectRatio", SETTING(g_Config.displayLayoutLandscape, fDisplayAspectRatio), CfgFlag::PER_GAME),
|
||||
ConfigSetting("IgnoreScreenInsets", SETTING(g_Config.displayLayoutLandscape, bIgnoreScreenInsets), CfgFlag::PER_GAME),
|
||||
ConfigSetting("Overlay", SETTING(g_Config.displayLayoutLandscape, sOverlay), "", CfgFlag::PER_GAME),
|
||||
ConfigSetting("InternalScreenRotation", SETTING(g_Config.displayLayoutLandscape, iInternalScreenRotation), CfgFlag::PER_GAME),
|
||||
ConfigSetting("RotateControlsWithScreen", SETTING(g_Config.displayLayoutLandscape, bRotateControlsWithScreen), CfgFlag::PER_GAME),
|
||||
ConfigSetting("EnableCardboardVR", SETTING(g_Config.displayLayoutLandscape, bEnableCardboardVR), CfgFlag::PER_GAME),
|
||||
|
||||
Reference in new issue
Block a user