From 03f8528315fa46c95991a34f3325d7b33ae5538c Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Sat, 02 May 2020 21:48:36 +0000
Subject: [PATCH] Update source to SDL2 2.0.12
---
source/src/video/uikit/SDL_uikitwindow.m | 34 ++++++++++++++++++++++++----------
1 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/source/src/video/uikit/SDL_uikitwindow.m b/source/src/video/uikit/SDL_uikitwindow.m
index d01cff3..9a9f4af 100644
--- a/source/src/video/uikit/SDL_uikitwindow.m
+++ b/source/src/video/uikit/SDL_uikitwindow.m
@@ -1,6 +1,6 @@
/*
Simple DirectMedia Layer
- Copyright (C) 1997-2018 Sam Lantinga <slouken@libsdl.org>
+ Copyright (C) 1997-2020 Sam Lantinga <slouken@libsdl.org>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -69,15 +69,23 @@
- (void)layoutSubviews
{
- /* Workaround to fix window orientation issues in iOS 8+. */
- self.frame = self.screen.bounds;
+ /* Workaround to fix window orientation issues in iOS 8. */
+ /* As of July 1 2019, I haven't been able to reproduce any orientation
+ * issues with this disabled on iOS 12. The issue this is meant to fix might
+ * only happen on iOS 8, or it might have been fixed another way with other
+ * code... This code prevents split view (iOS 9+) from working on iPads, so
+ * we want to avoid using it if possible. */
+ if (!UIKit_IsSystemVersionAtLeast(9.0)) {
+ self.frame = self.screen.bounds;
+ }
[super layoutSubviews];
}
@end
-static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bool created)
+static int
+SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bool created)
{
SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
SDL_DisplayData *displaydata = (__bridge SDL_DisplayData *) display->driverdata;
@@ -144,12 +152,6 @@
/* Sets this view as the controller's view, and adds the view to the window
* heirarchy. */
[view setSDLWindow:window];
-
- /* Make this window the current mouse focus for touch input */
- if (displaydata.uiscreen == [UIScreen mainScreen]) {
- SDL_SetMouseFocus(window);
- SDL_SetKeyboardFocus(window);
- }
return 0;
}
@@ -240,6 +242,14 @@
@autoreleasepool {
SDL_WindowData *data = (__bridge SDL_WindowData *) window->driverdata;
[data.uiwindow makeKeyAndVisible];
+
+ /* Make this window the current mouse focus for touch input */
+ SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
+ SDL_DisplayData *displaydata = (__bridge SDL_DisplayData *) display->driverdata;
+ if (displaydata.uiscreen == [UIScreen mainScreen]) {
+ SDL_SetMouseFocus(window);
+ SDL_SetKeyboardFocus(window);
+ }
}
}
@@ -354,12 +364,16 @@
/* These struct members were added in SDL 2.0.4. */
if (versionnum >= SDL_VERSIONNUM(2,0,4)) {
+#if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
if ([data.viewcontroller.view isKindOfClass:[SDL_uikitopenglview class]]) {
SDL_uikitopenglview *glview = (SDL_uikitopenglview *)data.viewcontroller.view;
info->info.uikit.framebuffer = glview.drawableFramebuffer;
info->info.uikit.colorbuffer = glview.drawableRenderbuffer;
info->info.uikit.resolveFramebuffer = glview.msaaResolveFramebuffer;
} else {
+#else
+ {
+#endif
info->info.uikit.framebuffer = 0;
info->info.uikit.colorbuffer = 0;
info->info.uikit.resolveFramebuffer = 0;
--
Gitblit v1.9.3