modify ReleaseSound so that it performs a partial release of unused sounds, useful for responding to memory warnings
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 */