Commit a36a856b authored by Tim Angus's avatar Tim Angus

* SDL_IOS_ORIENTATIONS hint

parent 94e1b697
...@@ -118,6 +118,17 @@ extern "C" { ...@@ -118,6 +118,17 @@ extern "C" {
* By default SDL does not sync screen surface updates with vertical refresh. * By default SDL does not sync screen surface updates with vertical refresh.
*/ */
#define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC" #define SDL_HINT_RENDER_VSYNC "SDL_RENDER_VSYNC"
/**
* \brief A variable controlling which orientations are allowed on iOS.
*
* In some circumstances it is necessary to be able to explicitly control
* which UI orientations are allowed.
*
* This variable is a space delimited list of the following values:
* "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown"
*/
#define SDL_HINT_ORIENTATIONS "SDL_IOS_ORIENTATIONS"
/** /**
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "SDL_video.h" #include "SDL_video.h"
#include "SDL_mouse.h" #include "SDL_mouse.h"
#include "SDL_assert.h" #include "SDL_assert.h"
#include "SDL_hints.h"
#include "../SDL_sysvideo.h" #include "../SDL_sysvideo.h"
#include "../SDL_pixels_c.h" #include "../SDL_pixels_c.h"
#include "../../events/SDL_events_c.h" #include "../../events/SDL_events_c.h"
...@@ -48,6 +49,37 @@ ...@@ -48,6 +49,37 @@
} }
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient { - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)orient {
const char *orientationsCString;
if ((orientationsCString = SDL_GetHint(SDL_HINT_ORIENTATIONS)) != NULL) {
BOOL rotate = NO;
NSString *orientationsNSString = [NSString stringWithCString:orientationsCString
encoding:NSUTF8StringEncoding];
NSArray *orientations = [orientationsNSString componentsSeparatedByCharactersInSet:
[NSCharacterSet characterSetWithCharactersInString:@" "]];
switch (orient) {
case UIInterfaceOrientationLandscapeLeft:
rotate = [orientations containsObject:@"LandscapeLeft"];
break;
case UIInterfaceOrientationLandscapeRight:
rotate = [orientations containsObject:@"LandscapeRight"];
break;
case UIInterfaceOrientationPortrait:
rotate = [orientations containsObject:@"Portrait"];
break;
case UIInterfaceOrientationPortraitUpsideDown:
rotate = [orientations containsObject:@"PortraitUpsideDown"];
break;
default: break;
}
return rotate;
}
if (self->window->flags & SDL_WINDOW_RESIZABLE) { if (self->window->flags & SDL_WINDOW_RESIZABLE) {
return YES; // any orientation is okay. return YES; // any orientation is okay.
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment