project_files/HedgewarsMobile/SDL-50560ca58f80.patch
author koda
Sat, 12 Nov 2011 21:59:10 +0100
changeset 6337 84e7d1a5e3df
parent 6259 02765411a912
permissions -rw-r--r--
in class methods you can call [self alloc], as per objc specifications

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 */