From efce7ca4b16486bb47cf8edb92eca35967e6a73a Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Fri, 3 Jul 2026 13:32:44 -0700
Subject: [PATCH] Added HDR support on visionOS
---
src/video/uikit/SDL_CurvedContentView.swift | 1 +
src/video/uikit/SDL_uikitmodes.m | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/src/video/uikit/SDL_CurvedContentView.swift b/src/video/uikit/SDL_CurvedContentView.swift
index d7c0abdac666b..55ed128a9fcaa 100644
--- a/src/video/uikit/SDL_CurvedContentView.swift
+++ b/src/video/uikit/SDL_CurvedContentView.swift
@@ -285,6 +285,7 @@ internal struct SDL_CurvedContentView: View {
helper.updateSnappedStatus(snapped: snappedStatus.isSnapped)
}
.preferredSurroundingsEffect(shouldEnableDimming ? .dark : nil)
+ .allowedDynamicRange(.high)
.frame(depth: 0)
.ignoresSafeArea()
.persistentSystemOverlays(settings.sceneState == .cinematic ? .hidden : .automatic)
diff --git a/src/video/uikit/SDL_uikitmodes.m b/src/video/uikit/SDL_uikitmodes.m
index 3fd18c8bee5f0..96b246dea51ea 100644
--- a/src/video/uikit/SDL_uikitmodes.m
+++ b/src/video/uikit/SDL_uikitmodes.m
@@ -283,6 +283,11 @@ bool UIKit_AddDisplay(bool send_event)
display.desktop_mode = mode;
+ // There isn't currently a way to query the EDR headeroom on visionOS.
+ // The range is 1 - 16, so we'll assume a current value of 2 for now.
+ display.HDR.SDR_white_level = 1.0f;
+ display.HDR.HDR_headroom = 2.0f;
+
SDL_UIKitDisplayData *data = [[SDL_UIKitDisplayData alloc] init];
if (!data) {