Files
ppsspp/ios/ViewController.h
Henrik RydgårdandClaude Opus 5.5 9be1d223b6 Remove MoltenVK: Metal is the backend on iOS, and the default on Macs
The iOS and tvOS apps no longer link the static MoltenVK (the
ios/MoltenVK submodule is gone), so Vulkan can't load there and Metal is
the only backend. Without the static case, Vulkan's functions are now
always loaded at runtime (PPSSPP_VK_STATIC is gone).

The Mac app no longer bundles libMoltenVK.dylib (ext/vulkan/macOS is
gone). Metal is the default on Apple Silicon (Intel Macs stay on
OpenGL), but Vulkan still works with a separately installed MoltenVK,
the Vulkan SDK's or Homebrew's, which is useful for comparisons. A saved
Vulkan setting falls back to the default when there's none.

The libretro cores are unchanged: they get MoltenVK from the frontend.

frametests.py's --ios and --adb default to Metal on a Mac host.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-19 14:58:38 +02:00

60 lines
1.7 KiB
Objective-C

#pragma once
#include "ppsspp_config.h"
#import <UIKit/UIKit.h>
#import <GameController/GameController.h>
#if PPSSPP_PLATFORM(TVOS)
// The one view controller. Renders with Metal to a CAMetalLayer.
// A GCEventViewController, so controller input (the Siri Remote included) reaches us only through
// GCController, instead of also driving UIKit's focus engine.
@interface PPSSPPViewController : GCEventViewController
#else
#import <PhotosUI/PhotosUI.h>
#import "CameraHelper.h"
#import "LocationHelper.h"
// The one view controller. Renders with Metal to a CAMetalLayer.
@interface PPSSPPViewController : UIViewController<
PHPickerViewControllerDelegate,
CameraFrameDelegate, LocationHandlerDelegate,
UIGestureRecognizerDelegate>
#endif
- (void)hideKeyboard;
- (void)showKeyboard;
- (void)shareText:(NSString *)text;
- (void)shareFile:(NSURL *)url;
- (void)shutdown;
- (void)startLocation;
- (void)stopLocation;
- (void)startVideo:(int)width height:(int)height;
- (void)stopVideo;
- (void)appSwitchModeChanged;
- (void)immersiveModeChanged;
- (void)setupController:(GCController *)controller;
// Forwarded from the AppDelegate
- (void)didBecomeActive;
- (void)willResignActive;
- (void)uiStateChanged;
- (void)topLevelChanged;
- (void)pickPhoto:(NSString *)saveFilename requestId:(int)requestId;
- (void)updateResolutionWithView:(UIView *)view;
@end
extern PPSSPPViewController *sharedViewController;
#define IS_IPAD() ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad)
#define IS_IPHONE() ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPhone)
#define IS_TV() ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomTV)