mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-03 04:52:14 +01:00
Outputs: Decide on the TV mode by the running backend
iOS and Android checked the backend setting, which a change sets right away while the restart prompt is still up. A TV connected then got an output OpenGL can't draw to, and showed black instead of mirroring. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
ea26b3c7dd
commit
b642984755
2 files changed
+6
-3
No files matched your search
@@ -593,8 +593,9 @@ static std::string QueryConfig(std::string_view query) {
|
||||
} else if (query == "audioMixWithOthers") {
|
||||
return g_Config.bAudioMixWithOthers ? "1" : "0";
|
||||
} else if (query == "externalDisplayOutput") {
|
||||
// Whether the game goes to a second display, see ExternalDisplayPresentation.java.
|
||||
return g_Config.iGPUBackend == (int)GPUBackend::VULKAN && g_Config.iExternalDisplay == (int)ExternalDisplayMode::SHOW_GAME ? "1" : "0";
|
||||
// Whether the game goes to a second display, see ExternalDisplayPresentation.java. The running backend: the
|
||||
// setting is already the new one while the restart prompt for a change is up.
|
||||
return GetGPUBackend() == GPUBackend::VULKAN && g_Config.iExternalDisplay == (int)ExternalDisplayMode::SHOW_GAME ? "1" : "0";
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
#include "Common/System/NativeApp.h"
|
||||
#include "Core/Config.h"
|
||||
#include "Core/ConfigValues.h"
|
||||
#include "Core/System.h"
|
||||
|
||||
static NSString *const PPSSPPExternalDisplayUpdateNotification = @"PPSSPPExternalDisplayUpdate";
|
||||
|
||||
@@ -116,7 +117,8 @@ static bool g_launched = false;
|
||||
return;
|
||||
}
|
||||
// Without a window, iOS mirrors the phone.
|
||||
if (g_Config.iGPUBackend != (int)GPUBackend::METAL && g_Config.iGPUBackend != (int)GPUBackend::VULKAN) {
|
||||
// The running backend: the setting is already the new one while the restart prompt for a change is up.
|
||||
if (GetGPUBackend() != GPUBackend::METAL && GetGPUBackend() != GPUBackend::VULKAN) {
|
||||
INFO_LOG(Log::G3D, "External display: mirroring, as the backend can't present to it");
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user