project_files/HedgewarsMobile/SDL-50560ca58f80.patch
author nemo
Wed, 16 Nov 2011 16:36:17 -0500
changeset 6390 3807d4cad077
parent 6337 84e7d1a5e3df
permissions -rw-r--r--
This should have been added before. add log spew if this ever happens. We should hopefully identify the various circumstances and make sure it is all cleaned up so the list becomes unnecessary.

diff -r 9738f2a8eee4 Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj
--- a/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj	Wed Nov 09 02:35:49 2011 -0500
+++ b/Xcode-iPhoneOS/SDL/SDLiPhoneOS.xcodeproj/project.pbxproj	Sat Nov 12 21:55:27 2011 +0100
@@ -1596,9 +1596,12 @@
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_DEBUGGING_SYMBOLS = full;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_THUMB_SUPPORT = NO;
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = NO;
-				IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
+				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
 				ONLY_ACTIVE_ARCH = NO;
 				PREBINDING = NO;
 				SDKROOT = iphoneos;
@@ -1613,9 +1616,12 @@
 				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				GCC_C_LANGUAGE_STANDARD = c99;
+				GCC_FAST_MATH = YES;
+				GCC_THUMB_SUPPORT = NO;
+				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = NO;
-				IPHONEOS_DEPLOYMENT_TARGET = 3.1.3;
+				IPHONEOS_DEPLOYMENT_TARGET = 3.0;
 				PREBINDING = NO;
 				SDKROOT = iphoneos;
 				TARGETED_DEVICE_FAMILY = "1,2";
@@ -1630,6 +1636,7 @@
 				DEPLOYMENT_LOCATION = NO;
 				GCC_DYNAMIC_NO_PIC = NO;
 				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = SDL_NO_COMPAT;
 				PREBINDING = NO;
 				PRODUCT_NAME = SDL;
 				SKIP_INSTALL = YES;
@@ -1644,6 +1651,7 @@
 				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 				DEPLOYMENT_LOCATION = NO;
 				GCC_ENABLE_FIX_AND_CONTINUE = NO;
+				GCC_PREPROCESSOR_DEFINITIONS = SDL_NO_COMPAT;
 				PREBINDING = NO;
 				PRODUCT_NAME = SDL;
 				SKIP_INSTALL = YES;
diff -r 9738f2a8eee4 include/SDL_compat.h
--- a/include/SDL_compat.h	Wed Nov 09 02:35:49 2011 -0500
+++ b/include/SDL_compat.h	Sat Nov 12 21:55:27 2011 +0100
@@ -40,7 +40,7 @@
 
  /*@}*/
 
-#ifdef SDL_NO_COMPAT
+#ifndef SDL_NO_COMPAT
 #define _SDL_compat_h
 #endif
 
diff -r 9738f2a8eee4 include/SDL_config_iphoneos.h
--- a/include/SDL_config_iphoneos.h	Wed Nov 09 02:35:49 2011 -0500
+++ b/include/SDL_config_iphoneos.h	Sat Nov 12 21:55:27 2011 +0100
@@ -106,7 +106,7 @@
 /* enable iPhone version of Core Audio driver */
 #define SDL_AUDIO_DRIVER_COREAUDIO 1
 /* Enable the dummy audio driver (src/audio/dummy/\*.c) */
-#define SDL_AUDIO_DRIVER_DUMMY	1
+#define SDL_AUDIO_DRIVER_DUMMY	0
 
 /* Enable the stub haptic driver (src/haptic/dummy/\*.c) */
 #define SDL_HAPTIC_DISABLED	1
@@ -132,16 +132,16 @@
 /* enable OpenGL ES */
 #define SDL_VIDEO_OPENGL_ES	1
 #define SDL_VIDEO_RENDER_OGL_ES	1
-#define SDL_VIDEO_RENDER_OGL_ES2	1
+#define SDL_VIDEO_RENDER_OGL_ES2	0
 
 /* Enable system power support */
-#define SDL_POWER_UIKIT 1
+#define SDL_POWER_UIKIT 0
 
 /* enable iPhone keyboard support */
 #define SDL_IPHONE_KEYBOARD 1
 
 /* enable joystick subsystem */
-#define SDL_JOYSTICK_DISABLED 0
+#define SDL_JOYSTICK_DISABLED 1
 
 /* Set max recognized G-force from accelerometer
    See src/joystick/uikit/SDLUIAccelerationDelegate.m for notes on why this is needed
diff -r 9738f2a8eee4 include/SDL_events.h
--- a/include/SDL_events.h	Wed Nov 09 02:35:49 2011 -0500
+++ b/include/SDL_events.h	Sat Nov 12 21:55:27 2011 +0100
@@ -107,11 +107,12 @@
 
     SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */
 
+#ifndef SDL_NO_COMPAT
     /* Obsolete events */
     SDL_EVENT_COMPAT1 = 0x7000, /**< SDL 1.2 events for compatibility */
     SDL_EVENT_COMPAT2,
     SDL_EVENT_COMPAT3,
-
+#endif
 
     /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
      *  and should be allocated with SDL_RegisterEvents()
diff -r 9738f2a8eee4 src/SDL_compat.c
--- a/src/SDL_compat.c	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/SDL_compat.c	Sat Nov 12 21:55:27 2011 +0100
@@ -29,6 +29,7 @@
 #include "video/SDL_pixels_c.h"
 #include "render/SDL_yuv_sw_c.h"
 
+#ifndef SDL_NO_COMPAT
 
 static SDL_Window *SDL_VideoWindow = NULL;
 static SDL_Surface *SDL_WindowSurface = NULL;
@@ -1813,4 +1814,5 @@
     return 0;
 }
 
+#endif /* SDL_NO_COMPAT */
 /* vi: set ts=4 sw=4 expandtab: */
diff -r 9738f2a8eee4 src/video/SDL_surface.c
--- a/src/video/SDL_surface.c	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/SDL_surface.c	Sat Nov 12 21:55:27 2011 +0100
@@ -195,12 +195,14 @@
         SDL_InvalidateMap(surface->map);
     }
 
+#ifndef SDL_NO_COMPAT
     /* Compatibility mode */
     if (surface->map->info.flags & SDL_COPY_COLORKEY) {
         surface->flags |= SDL_SRCCOLORKEY;
     } else {
         surface->flags &= ~SDL_SRCCOLORKEY;
     }
+#endif
 
     return 0;
 }
@@ -405,12 +407,14 @@
         SDL_InvalidateMap(surface->map);
     }
 
+#ifndef SDL_NO_COMPAT
     /* Compatibility mode */
     if (surface->map->info.flags & SDL_COPY_BLEND) {
         surface->flags |= SDL_SRCALPHA;
     } else {
         surface->flags &= ~SDL_SRCALPHA;
     }
+#endif
 
     return status;
 }
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitappdelegate.h
--- a/src/video/uikit/SDL_uikitappdelegate.h	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitappdelegate.h	Sat Nov 12 21:55:27 2011 +0100
@@ -24,7 +24,7 @@
 @interface SDLUIKitDelegate : NSObject<UIApplicationDelegate> {
 }
 
-+ (SDLUIKitDelegate *)sharedAppDelegate;
++ (id) sharedAppDelegate;
 + (NSString *)getAppDelegateClassName;
 
 @end
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitappdelegate.m
--- a/src/video/uikit/SDL_uikitappdelegate.m	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitappdelegate.m	Sat Nov 12 21:55:27 2011 +0100
@@ -79,10 +79,10 @@
 @implementation SDLUIKitDelegate
 
 /* convenience method */
-+ (SDLUIKitDelegate *)sharedAppDelegate
++ (id) sharedAppDelegate
 {
     /* the delegate is set in UIApplicationMain(), which is garaunteed to be called before this method */
-    return (SDLUIKitDelegate *)[[UIApplication sharedApplication] delegate];
+    return [[UIApplication sharedApplication] delegate];
 }
 
 + (NSString *)getAppDelegateClassName
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitopengles.m
--- a/src/video/uikit/SDL_uikitopengles.m	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitopengles.m	Sat Nov 12 21:55:27 2011 +0100
@@ -79,7 +79,7 @@
 
 void UIKit_GL_SwapWindow(_THIS, SDL_Window * window)
 {
-#ifdef SDL_POWER_UIKIT
+#if SDL_POWER_UIKIT
     // Check once a frame to see if we should turn off the battery monitor.
     SDL_UIKit_UpdateBatteryMonitoring();
 #endif
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitopenglview.m
--- a/src/video/uikit/SDL_uikitopenglview.m	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitopenglview.m	Sat Nov 12 21:55:27 2011 +0100
@@ -117,8 +117,8 @@
 
         // !!! FIXME: use the screen this is on!
         /* Use the main screen scale (for retina display support) */
-        if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
-            self.contentScaleFactor = [UIScreen mainScreen].scale;
+        if ([self respondsToSelector:@selector(contentScaleFactor)])
+            self.contentScaleFactor = [[UIScreen mainScreen] scale];
 
         self.autoresizingMask = 0;  // don't allow autoresize, since we need to do some magic in -(void)updateFrame.
     }
@@ -147,8 +147,8 @@
 
     // !!! FIXME: use the screen this is on!
     /* Use the main screen scale (for retina display support) */
-    if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
-        self.contentScaleFactor = [UIScreen mainScreen].scale;
+    if ([self respondsToSelector:@selector(contentScaleFactor)])
+        self.contentScaleFactor = [[UIScreen mainScreen] scale];
 }
 
 - (void)setCurrentContext
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitvideo.m
--- a/src/video/uikit/SDL_uikitvideo.m	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitvideo.m	Sat Nov 12 21:55:27 2011 +0100
@@ -201,10 +201,8 @@
 {
     _this->gl_config.driver_loaded = 1;
 
-    NSString *reqSysVer = @"3.2";
-    NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
-    if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
-        SDL_UIKit_supports_multiple_displays = YES;
+    // this tells us whether we are running on ios >= 3.2
+    SDL_UIKit_supports_multiple_displays = [UIScreen instancesRespondToSelector:@selector(currentMode)];
 
     // Add the main screen.
     UIScreen *uiscreen = [UIScreen mainScreen];
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitview.m
--- a/src/video/uikit/SDL_uikitview.m	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitview.m	Sat Nov 12 21:55:27 2011 +0100
@@ -316,7 +316,7 @@
 /* iPhone keyboard addition functions */
 #if SDL_IPHONE_KEYBOARD
 
-static SDL_uikitview * getWindowView(SDL_Window * window)
+SDL_uikitview *SDL_getUikitView(SDL_Window *window)
 {
     if (window == NULL) {
         SDL_SetError("Window does not exist");
@@ -333,9 +333,9 @@
     return view;
 }
 
-int SDL_iPhoneKeyboardShow(SDL_Window * window)
+int SDL_iPhoneKeyboardShow(SDL_Window *window)
 {
-    SDL_uikitview *view = getWindowView(window);
+    SDL_uikitview *view = SDL_getUikitView(window);
     if (view == nil) {
         return -1;
     }
@@ -344,9 +344,9 @@
     return 0;
 }
 
-int SDL_iPhoneKeyboardHide(SDL_Window * window)
+int SDL_iPhoneKeyboardHide(SDL_Window *window)
 {
-    SDL_uikitview *view = getWindowView(window);
+    SDL_uikitview *view = SDL_getUikitView(window);
     if (view == nil) {
         return -1;
     }
@@ -355,9 +355,9 @@
     return 0;
 }
 
-SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window * window)
+SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window *window)
 {
-    SDL_uikitview *view = getWindowView(window);
+    SDL_uikitview *view = SDL_getUikitView(window);
     if (view == nil) {
         return 0;
     }
@@ -365,9 +365,9 @@
     return view.keyboardVisible;
 }
 
-int SDL_iPhoneKeyboardToggle(SDL_Window * window)
+int SDL_iPhoneKeyboardToggle(SDL_Window *window)
 {
-    SDL_uikitview *view = getWindowView(window);
+    SDL_uikitview *view = SDL_getUikitView(window);
     if (view == nil) {
         return -1;
     }
@@ -385,24 +385,24 @@
 
 /* stubs, used if compiled without keyboard support */
 
-int SDL_iPhoneKeyboardShow(SDL_Window * window)
+int SDL_iPhoneKeyboardShow(SDL_Window *window)
 {
     SDL_SetError("Not compiled with keyboard support");
     return -1;
 }
 
-int SDL_iPhoneKeyboardHide(SDL_Window * window)
+int SDL_iPhoneKeyboardHide(SDL_Window *window)
 {
     SDL_SetError("Not compiled with keyboard support");
     return -1;
 }
 
-SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window * window)
+SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window *window)
 {
     return 0;
 }
 
-int SDL_iPhoneKeyboardToggle(SDL_Window * window)
+int SDL_iPhoneKeyboardToggle(SDL_Window *window)
 {
     SDL_SetError("Not compiled with keyboard support");
     return -1;
diff -r 9738f2a8eee4 src/video/uikit/SDL_uikitviewcontroller.m
--- a/src/video/uikit/SDL_uikitviewcontroller.m	Wed Nov 09 02:35:49 2011 -0500
+++ b/src/video/uikit/SDL_uikitviewcontroller.m	Sat Nov 12 21:55:27 2011 +0100
@@ -30,8 +30,8 @@
 
 #include "SDL_uikitwindow.h"
 
-#import "SDL_uikitviewcontroller.h"
-
+#include "SDL_uikitviewcontroller.h"
+#include "SDL_uikitvideo.h"
 
 @implementation SDL_uikitviewcontroller
 
@@ -118,38 +118,17 @@
     const UIInterfaceOrientation toInterfaceOrientation = [self interfaceOrientation];
     SDL_WindowData *data = self->window->driverdata;
     UIWindow *uiwindow = data->uiwindow;
-    UIScreen *uiscreen = [uiwindow screen];
+    UIScreen *uiscreen;
+    if (SDL_UIKit_supports_multiple_displays)
+        uiscreen = [uiwindow screen];
+    else
+        uiscreen = [UIScreen mainScreen];
     const int noborder = self->window->flags & SDL_WINDOW_BORDERLESS;
     CGRect frame = noborder ? [uiscreen bounds] : [uiscreen applicationFrame];
-    const CGSize size = frame.size;
-    int w, h;
-
-    switch (toInterfaceOrientation) {
-        case UIInterfaceOrientationPortrait:
-        case UIInterfaceOrientationPortraitUpsideDown:
-            w = (size.width < size.height) ? size.width : size.height;
-            h = (size.width > size.height) ? size.width : size.height;
-            break;
-
-        case UIInterfaceOrientationLandscapeLeft:
-        case UIInterfaceOrientationLandscapeRight:
-            w = (size.width > size.height) ? size.width : size.height;
-            h = (size.width < size.height) ? size.width : size.height;
-            break;
-
-        default:
-            SDL_assert(0 && "Unexpected interface orientation!");
-            return;
-    }
-
-    frame.size.width = w;
-    frame.size.height = h;
-    frame.origin.x = 0;
-    frame.origin.y = 0;
 
     [uiwindow setFrame:frame];
     [data->view updateFrame];
-    SDL_SendWindowEvent(self->window, SDL_WINDOWEVENT_RESIZED, w, h);
+    SDL_SendWindowEvent(self->window, SDL_WINDOWEVENT_RESIZED, frame.size.width, frame.size.height);
 }
 
 #endif /* SDL_VIDEO_DRIVER_UIKIT */