SDL: visionOS: dimming doesn't seem to be reliable, so disable it for now

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)