From cdd5802a7291f78c39c09a8740e50f4e77867c25 Mon Sep 17 00:00:00 2001 From: Acaki Date: Mon, 11 Aug 2025 21:34:23 +0800 Subject: [PATCH] refactor: rename rendering backend setting and add to iphone dashboard --- VoidLink/Base.lproj/iPad.storyboard | 8 ++--- VoidLink/Base.lproj/iPhone.storyboard | 25 +++++++++++++ VoidLink/Database/TemporarySettings.m | 6 ++-- VoidLink/Utility/Plot.h | 4 +-- .../ViewControllers/SettingsViewController.m | 6 ++-- VoidLink/mul.lproj/iPad.xcstrings | 12 +++---- VoidLink/mul.lproj/iPhone.xcstrings | 36 +++++++++++++++++++ 7 files changed, 79 insertions(+), 18 deletions(-) diff --git a/VoidLink/Base.lproj/iPad.storyboard b/VoidLink/Base.lproj/iPad.storyboard index 8ca325a0..07be358a 100644 --- a/VoidLink/Base.lproj/iPad.storyboard +++ b/VoidLink/Base.lproj/iPad.storyboard @@ -850,17 +850,17 @@ - + + + + + + + + + + + + + + + + + + @@ -1670,6 +1693,8 @@ + + diff --git a/VoidLink/Database/TemporarySettings.m b/VoidLink/Database/TemporarySettings.m index a5406134..160549ac 100644 --- a/VoidLink/Database/TemporarySettings.m +++ b/VoidLink/Database/TemporarySettings.m @@ -55,11 +55,11 @@ // Set rendering backend based on iOS version and user preference NSInteger savedBackend = [[NSUserDefaults standardUserDefaults] integerForKey:@"renderingBackend"]; if (@available(iOS 17.0, *)) { - // iOS 17+ can use Metal renderer (CAMetalDisplayLink available) + // iOS 17+ can use Performance mode (Metal renderer) self.renderingBackend = [NSNumber numberWithInteger:savedBackend]; } else { - // iOS < 17 must use AVSB renderer (no CAMetalDisplayLink) - self.renderingBackend = [NSNumber numberWithInteger:1]; // RENDER_AVSB = 1 + // iOS < 17 must use Balanced mode (AVSB renderer) + self.renderingBackend = [NSNumber numberWithInteger:RENDER_AVSB]; } NSInteger _screenSize = [[NSUserDefaults standardUserDefaults] integerForKey:@"streamResolution"]; diff --git a/VoidLink/Utility/Plot.h b/VoidLink/Utility/Plot.h index a6e28982..2605233a 100644 --- a/VoidLink/Utility/Plot.h +++ b/VoidLink/Utility/Plot.h @@ -35,8 +35,8 @@ typedef struct { } PlotMetrics; typedef enum { - RENDER_METAL = 0, - RENDER_AVSB + RENDER_AVSB = 0, + RENDER_METAL } RenderingBackend; typedef struct { diff --git a/VoidLink/ViewControllers/SettingsViewController.m b/VoidLink/ViewControllers/SettingsViewController.m index 47385be8..24b7294c 100644 --- a/VoidLink/ViewControllers/SettingsViewController.m +++ b/VoidLink/ViewControllers/SettingsViewController.m @@ -1631,13 +1631,13 @@ BOOL isCustomResolution(int resolutionSelected) { } - (void)renderingBackendChanged:(UISegmentedControl *)sender { - // Disable PiP toggle when Metal renderer (index 0) is selected + // Disable PiP toggle when Metal renderer is selected if (sender.selectedSegmentIndex == RENDER_METAL) { - // Metal renderer selected - disable PiP + // Performance mode (Metal renderer) selected - disable PiP [self.pipSwitch setOn:NO animated:YES]; [self.pipSwitch setEnabled:NO]; } else { - // Other renderers - enable PiP toggle if iOS 15+ + // Balanced mode (AVSB renderer) - enable PiP toggle if iOS 15+ if (@available(iOS 15.0, *)) { [self.pipSwitch setEnabled:YES]; } else { diff --git a/VoidLink/mul.lproj/iPad.xcstrings b/VoidLink/mul.lproj/iPad.xcstrings index 2ab23dac..18b5fe0a 100644 --- a/VoidLink/mul.lproj/iPad.xcstrings +++ b/VoidLink/mul.lproj/iPad.xcstrings @@ -410,25 +410,25 @@ } }, "53H-ST-OtY.segmentTitles[0]" : { - "comment" : "Class = \"UISegmentedControl\"; 53H-ST-OtY.segmentTitles[0] = \"Metal\"; ObjectID = \"53H-ST-OtY\";", + "comment" : "Class = \"UISegmentedControl\"; 53H-ST-OtY.segmentTitles[0] = \"Balanced\"; ObjectID = \"53H-ST-OtY\";", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Metal" + "value" : "Balanced" } } } }, "53H-ST-OtY.segmentTitles[1]" : { - "comment" : "Class = \"UISegmentedControl\"; 53H-ST-OtY.segmentTitles[1] = \"AVSampleBuffer\"; ObjectID = \"53H-ST-OtY\";", + "comment" : "Class = \"UISegmentedControl\"; 53H-ST-OtY.segmentTitles[1] = \"Performance\"; ObjectID = \"53H-ST-OtY\";", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "AVSampleBuffer" + "value" : "Performance" } } } @@ -3236,13 +3236,13 @@ } }, "v8l-hf-kiR.text" : { - "comment" : "Class = \"UILabel\"; text = \"Rendering Backend\"; ObjectID = \"v8l-hf-kiR\";", + "comment" : "Class = \"UILabel\"; text = \"Rendering Mode\"; ObjectID = \"v8l-hf-kiR\";", "extractionState" : "extracted_with_value", "localizations" : { "en" : { "stringUnit" : { "state" : "new", - "value" : "Rendering Backend" + "value" : "Rendering Mode" } } } diff --git a/VoidLink/mul.lproj/iPhone.xcstrings b/VoidLink/mul.lproj/iPhone.xcstrings index ad936e75..b74e6f9d 100644 --- a/VoidLink/mul.lproj/iPhone.xcstrings +++ b/VoidLink/mul.lproj/iPhone.xcstrings @@ -697,6 +697,30 @@ } } }, + "53H-ST-OtY.segmentTitles[0]" : { + "comment" : "Class = \"UISegmentedControl\"; 53H-ST-OtY.segmentTitles[0] = \"Balanced\"; ObjectID = \"53H-ST-OtY\";", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Balanced" + } + } + } + }, + "53H-ST-OtY.segmentTitles[1]" : { + "comment" : "Class = \"UISegmentedControl\"; 53H-ST-OtY.segmentTitles[1] = \"Performance\"; ObjectID = \"53H-ST-OtY\";", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Performance" + } + } + } + }, "A9r-dE-rT4.segmentTitles[0]" : { "comment" : "Class = \"UISegmentedControl\"; A9r-dE-rT4.segmentTitles[0] = \"Touchpad\"; ObjectID = \"A9r-dE-rT4\";", "extractionState" : "extracted_with_value", @@ -3253,6 +3277,18 @@ } } }, + "v8l-hf-kiR.text" : { + "comment" : "Class = \"UILabel\"; text = \"Rendering Mode\"; ObjectID = \"v8l-hf-kiR\";", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Rendering Mode" + } + } + } + }, "VEc-6n-QcS.text" : { "comment" : "Class = \"UILabel\"; text = \"Lift Stream View for Local Keyboard \"; ObjectID = \"VEc-6n-QcS\";", "extractionState" : "extracted_with_value",