From 0fb4ee91fc3f916280541cc730b34ef1b427ad44 Mon Sep 17 00:00:00 2001 From: Kees Bakker Date: Wed, 28 Sep 2011 21:13:09 +0200 Subject: [PATCH] Simplied the code a bit in uikit/SDL_uikitvideo.m --- src/video/uikit/SDL_uikitvideo.m | 55 +++++++------------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/src/video/uikit/SDL_uikitvideo.m b/src/video/uikit/SDL_uikitvideo.m index 1a78946c8..2fd83e0a1 100644 --- a/src/video/uikit/SDL_uikitvideo.m +++ b/src/video/uikit/SDL_uikitvideo.m @@ -118,32 +118,6 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) */ -static CGSize -UIKit_ForcePortrait(const CGSize size) -{ - CGSize retval; - if (size.width < size.height) { // portrait - retval = size; - } else { // landscape - retval.width = size.height; - retval.height = size.width; - } - return retval; -} - -static CGSize -UIKit_ForceLandscape(const CGSize size) -{ - CGSize retval; - if (size.width > size.height) { // landscape - retval = size; - } else { // portrait - retval.width = size.height; - retval.height = size.width; - } - return retval; -} - static void UIKit_GetDisplayModes(_THIS, SDL_VideoDisplay * display) { @@ -156,18 +130,19 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) if (!SDL_UIKit_supports_multiple_displays) { const CGRect rect = [uiscreen bounds]; mode.format = SDL_PIXELFORMAT_ABGR8888; - mode.w = (int) rect.size.width; - mode.h = (int) rect.size.height; mode.refresh_rate = 0; mode.driverdata = NULL; + + mode.w = (int) rect.size.width; + mode.h = (int) rect.size.height; SDL_AddDisplayMode(display, &mode); + mode.w = (int) rect.size.height; // swap the orientation, add again. mode.h = (int) rect.size.width; SDL_AddDisplayMode(display, &mode); return; } - const BOOL ismain = (uiscreen == [UIScreen mainScreen]); const NSArray *modes = [uiscreen availableModes]; for (UIScreenMode *uimode in [uiscreen availableModes]) { CGSize size = [uimode size]; @@ -177,20 +152,12 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) mode.w = (int) size.width; mode.h = (int) size.height; if (SDL_AddDisplayMode(display, &mode)) - [uimode retain]; - - if (ismain) { - // Add the mode twice, flipped to portrait and landscape. - // SDL_AddDisplayMode() will ignore duplicates. - size = UIKit_ForcePortrait([uimode size]); - mode.w = (int) size.width; - mode.h = (int) size.height; - if (SDL_AddDisplayMode(display, &mode)) - [uimode retain]; + [uimode retain]; // retain is needed because of mode.driverdata - size = UIKit_ForceLandscape(size); - mode.w = (int) size.width; - mode.h = (int) size.height; + if (uiscreen == [UIScreen mainScreen]) { + // Add the mode with swapped width/height + mode.w = (int) size.height; + mode.h = (int) size.width; if (SDL_AddDisplayMode(display, &mode)) [uimode retain]; } @@ -239,8 +206,8 @@ static void UIKit_DeleteDevice(SDL_VideoDevice * device) // Just give 'em the whole main screen. UIScreen *uiscreen = [UIScreen mainScreen]; UIScreenMode *uiscreenmode = [uiscreen currentMode]; - const CGRect rect = [uiscreen bounds]; - UIKit_AddDisplay(uiscreen, uiscreenmode, (int)rect.size.width, (int)rect.size.height); + const CGSize size = [uiscreen bounds].size; + UIKit_AddDisplay(uiscreen, uiscreenmode, (int)size.width, (int)size.height); } else { for (UIScreen *uiscreen in [UIScreen screens]) { // the main screen is the first element in the array.