refactor: disable pip toggle when metal renderer is used as it's not supported

This commit is contained in:
Acaki
2025-08-11 20:54:16 +08:00
parent c5da9e9bf7
commit 951b7bcfb0
@@ -13,6 +13,7 @@
#import "TemporarySettings.h"
#import "DataManager.h"
#import "ThemeManager.h"
#import "Plot.h"
#import <UIKit/UIGestureRecognizerSubclass.h>
#import <VideoToolbox/VideoToolbox.h>
@@ -1396,6 +1397,8 @@ BOOL isCustomResolution(int resolutionSelected) {
NSInteger renderingBackend = [currentSettings.renderingBackend integerValue];
[self.renderingBackendSelector setSelectedSegmentIndex:renderingBackend];
[self.renderingBackendSelector addTarget:self action:@selector(renderingBackendChanged:) forControlEvents:UIControlEventValueChanged];
[self renderingBackendChanged:self.renderingBackendSelector]; // Update PiP state based on current selection
[self.citrixX1MouseSwitch setOn:currentSettings.btMouseSupport];
[self.optimizeGamesSwitch setOn: currentSettings.optimizeGames];
@@ -1627,6 +1630,23 @@ BOOL isCustomResolution(int resolutionSelected) {
}
}
- (void)renderingBackendChanged:(UISegmentedControl *)sender {
// Disable PiP toggle when Metal renderer (index 0) is selected
if (sender.selectedSegmentIndex == RENDER_METAL) {
// Metal renderer selected - disable PiP
[self.pipSwitch setOn:NO animated:YES];
[self.pipSwitch setEnabled:NO];
} else {
// Other renderers - enable PiP toggle if iOS 15+
if (@available(iOS 15.0, *)) {
[self.pipSwitch setEnabled:YES];
} else {
[self.pipSwitch setOn:NO];
[self.pipSwitch setEnabled:NO];
}
}
}
- (void)onScreenWidgetChanged{
BOOL isIPhone = ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone);