From b4ebf70e0c6cc857a99dff9b9532910afd25ae1d Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 18 May 2026 12:54:57 -0700
Subject: [PATCH] visionOS: dimming doesn't seem to be reliable, so disable it
for now
---
.../uikit/SDL_CurvedContentHosting.swift | 37 +++++++++++--------
src/video/uikit/SDL_CurvedContentView.swift | 2 +-
2 files changed, 23 insertions(+), 16 deletions(-)
diff --git a/src/video/uikit/SDL_CurvedContentHosting.swift b/src/video/uikit/SDL_CurvedContentHosting.swift
index d8dccaf3bdd33..3648c391e8a2f 100644
--- a/src/video/uikit/SDL_CurvedContentHosting.swift
+++ b/src/video/uikit/SDL_CurvedContentHosting.swift
@@ -263,6 +263,7 @@ internal class SDL_CurvedContentSettings {
var inputType: InputType = .eyes
var showHover: Bool = true
+ var enableDimming: Bool = false // Doesn't seem to be reliable at the moment
var isDimmed: Bool = false
var curvatureRadius: Float = 0.0
var sceneState: SceneState = .interactive
@@ -319,8 +320,10 @@ struct SDL_SettingsPanelView: View {
HStack(spacing: 12) {
Image(systemName: settings.showHover ? "eye" : "eye.slash")
- Image(systemName: settings.isDimmed ? "moon.fill" : "sun.max")
- .foregroundStyle(settings.isDimmed ? .primary : .secondary)
+ if settings.enableDimming {
+ Image(systemName: settings.isDimmed ? "moon.fill" : "sun.max")
+ .foregroundStyle(settings.isDimmed ? .primary : .secondary)
+ }
Divider().frame(height: 8)
@@ -341,8 +344,10 @@ struct SDL_SettingsPanelView: View {
VStack(spacing: 12) {
Image(systemName: settings.showHover ? "eye" : "eye.slash")
- Image(systemName: settings.isDimmed ? "moon.fill" : "sun.max")
- .foregroundStyle(settings.isDimmed ? .primary : .secondary)
+ if settings.enableDimming {
+ Image(systemName: settings.isDimmed ? "moon.fill" : "sun.max")
+ .foregroundStyle(settings.isDimmed ? .primary : .secondary)
+ }
Divider().frame(height: 8)
@@ -389,19 +394,21 @@ struct SDL_SettingsPanelView: View {
Image(systemName: "eye")
Spacer()
- Spacer()
- Image(systemName: "sun.max")
+ if settings.enableDimming {
+ Spacer()
+ Image(systemName: "sun.max")
- Toggle(isOn: $settings.isDimmed) {
- }
- .onChange(of: settings.isDimmed) {
- settings.save()
- }
- .labelsHidden()
- .tint(.secondary)
+ Toggle(isOn: $settings.isDimmed) {
+ }
+ .onChange(of: settings.isDimmed) {
+ settings.save()
+ }
+ .labelsHidden()
+ .tint(.secondary)
- Image(systemName: "moon.fill")
- Spacer()
+ Image(systemName: "moon.fill")
+ Spacer()
+ }
}
// Curvature slider
diff --git a/src/video/uikit/SDL_CurvedContentView.swift b/src/video/uikit/SDL_CurvedContentView.swift
index 36317e71db098..bbb7328093361 100644
--- a/src/video/uikit/SDL_CurvedContentView.swift
+++ b/src/video/uikit/SDL_CurvedContentView.swift
@@ -273,7 +273,7 @@ internal struct SDL_CurvedContentView: View {
settings.isSnapped = snappedStatus.isSnapped
helper.updateSnappedStatus(snapped: snappedStatus.isSnapped)
}
- .preferredSurroundingsEffect(settings.isDimmed ? .dark : nil)
+ .preferredSurroundingsEffect(settings.enableDimming && settings.isDimmed ? .dark : nil)
.frame(depth: 0)
.ignoresSafeArea()
.persistentSystemOverlays(settings.sceneState == .cinematic ? .hidden : .automatic)