mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Merge pull request #12782 from Florin9doi/ios_notch
[iOS] Notch support
This commit is contained in:
commit
a1ebc35c63
3 changed files with 41 additions and 8 deletions
|
@ -86,11 +86,11 @@ matrix:
|
|||
env: PPSSPP_BUILD_TYPE=Linux
|
||||
LIBRETRO=TRUE
|
||||
- os: osx
|
||||
osx_image: xcode8.3
|
||||
osx_image: xcode9
|
||||
compiler: "clang"
|
||||
env: PPSSPP_BUILD_TYPE=macOS
|
||||
- os: osx
|
||||
osx_image: xcode8.3
|
||||
osx_image: xcode9
|
||||
compiler: "clang"
|
||||
env: PPSSPP_BUILD_TYPE=iOS
|
||||
- os: windows
|
||||
|
|
|
@ -148,11 +148,23 @@ static LocationHelper *locationHelper;
|
|||
- (void)subtleVolume:(SubtleVolume *)volumeView didChange:(CGFloat)value {
|
||||
}
|
||||
|
||||
- (void)viewSafeAreaInsetsDidChange {
|
||||
if (@available(iOS 11.0, *)) {
|
||||
[super viewSafeAreaInsetsDidChange];
|
||||
char safeArea[100];
|
||||
// we use 0.0f instead of safeAreaInsets.bottom because the bottom overlay isn't disturbing (for now)
|
||||
snprintf(safeArea, sizeof(safeArea), "%f:%f:%f:%f",
|
||||
self.view.safeAreaInsets.left, self.view.safeAreaInsets.right,
|
||||
self.view.safeAreaInsets.top, 0.0f);
|
||||
System_SendMessage("safe_insets", safeArea);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[[DisplayManager shared] setupDisplayListener];
|
||||
|
||||
UIScreen* screen = [(AppDelegate*)[UIApplication sharedApplication].delegate screen];
|
||||
UIScreen* screen = [(AppDelegate*)[UIApplication sharedApplication].delegate screen];
|
||||
self.view.frame = [screen bounds];
|
||||
self.view.multipleTouchEnabled = YES;
|
||||
self.context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
|
||||
|
@ -687,23 +699,23 @@ void startVideo() {
|
|||
}
|
||||
|
||||
void stopVideo() {
|
||||
[cameraHelper stopVideo];
|
||||
[cameraHelper stopVideo];
|
||||
}
|
||||
|
||||
-(void) PushCameraImageIOS:(long long)len buffer:(unsigned char*)data {
|
||||
Camera::pushCameraImage(len, data);
|
||||
Camera::pushCameraImage(len, data);
|
||||
}
|
||||
|
||||
void startLocation() {
|
||||
[locationHelper startLocationUpdates];
|
||||
[locationHelper startLocationUpdates];
|
||||
}
|
||||
|
||||
void stopLocation() {
|
||||
[locationHelper stopLocationUpdates];
|
||||
[locationHelper stopLocationUpdates];
|
||||
}
|
||||
|
||||
-(void) SetGpsDataIOS:(CLLocation *)newLocation {
|
||||
GPS::setGpsData((long long)newLocation.timestamp.timeIntervalSince1970,
|
||||
GPS::setGpsData((long long)newLocation.timestamp.timeIntervalSince1970,
|
||||
newLocation.horizontalAccuracy/5.0,
|
||||
newLocation.coordinate.latitude, newLocation.coordinate.longitude,
|
||||
newLocation.altitude,
|
||||
|
|
21
ios/main.mm
21
ios/main.mm
|
@ -46,6 +46,11 @@ void *exception_handler(void *argument) {
|
|||
return NULL;
|
||||
}
|
||||
|
||||
static float g_safeInsetLeft = 0.0;
|
||||
static float g_safeInsetRight = 0.0;
|
||||
static float g_safeInsetTop = 0.0;
|
||||
static float g_safeInsetBottom = 0.0;
|
||||
|
||||
|
||||
std::string System_GetProperty(SystemProperty prop) {
|
||||
switch (prop) {
|
||||
|
@ -73,6 +78,14 @@ float System_GetPropertyFloat(SystemProperty prop) {
|
|||
switch (prop) {
|
||||
case SYSPROP_DISPLAY_REFRESH_RATE:
|
||||
return 60.f;
|
||||
case SYSPROP_DISPLAY_SAFE_INSET_LEFT:
|
||||
return g_safeInsetLeft;
|
||||
case SYSPROP_DISPLAY_SAFE_INSET_RIGHT:
|
||||
return g_safeInsetRight;
|
||||
case SYSPROP_DISPLAY_SAFE_INSET_TOP:
|
||||
return g_safeInsetTop;
|
||||
case SYSPROP_DISPLAY_SAFE_INSET_BOTTOM:
|
||||
return g_safeInsetBottom;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
@ -116,6 +129,14 @@ void System_SendMessage(const char *command, const char *parameter) {
|
|||
} else if (!strcmp(parameter, "close")) {
|
||||
stopLocation();
|
||||
}
|
||||
} else if (!strcmp(command, "safe_insets")) {
|
||||
float left, right, top, bottom;
|
||||
if (4 == sscanf(parameter, "%f:%f:%f:%f", &left, &right, &top, &bottom)) {
|
||||
g_safeInsetLeft = left;
|
||||
g_safeInsetRight = right;
|
||||
g_safeInsetTop = top;
|
||||
g_safeInsetBottom = bottom;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue