23 #if SDL_VIDEO_DRIVER_UIKIT
34 UIScreenMode * uiscreenmode, CGFloat
scale)
38 if (uiscreenmode != nil) {
46 [data->uiscreenmode retain];
72 UIScreenMode * uiscreenmode, CGFloat scale)
79 if (UIKit_AllocateDisplayModeData(&mode, uiscreenmode, scale) < 0) {
88 UIKit_FreeDisplayModeData(&mode);
94 UIKit_AddDisplayMode(
SDL_VideoDisplay * display,
int w,
int h, CGFloat scale,
95 UIScreenMode * uiscreenmode,
SDL_bool addRotation)
97 if (UIKit_AddSingleDisplayMode(display, w, h, uiscreenmode, scale) < 0) {
103 if (UIKit_AddSingleDisplayMode(display, h, w, uiscreenmode, scale) < 0) {
112 UIKit_AddDisplay(UIScreen *uiscreen)
114 CGSize
size = [uiscreen bounds].size;
118 CGFloat
height = size.width;
119 size.width = size.height;
132 if ([UIScreen instancesRespondToSelector:
@selector(scale)]) {
133 scale = [uiscreen scale];
142 mode.
w = (
int)(size.width * scale);
143 mode.
h = (
int)(size.height * scale);
145 UIScreenMode * uiscreenmode = nil;
150 uiscreenmode = [uiscreen currentMode];
153 if (UIKit_AllocateDisplayModeData(&mode, uiscreenmode, scale) < 0) {
181 if (uiscreen == [UIScreen mainScreen]) {
182 return UIInterfaceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]);
184 CGSize size = [uiscreen bounds].size;
185 return (size.width > size.height);
196 if (UIKit_AddDisplay([UIScreen mainScreen]) < 0) {
205 for (UIScreen *uiscreen
in [UIScreen screens]) {
207 if (uiscreen != [UIScreen mainScreen]) {
208 if (UIKit_AddDisplay(uiscreen) < 0) {
231 for (UIScreenMode *uimode
in [data->
uiscreen availableModes]) {
232 CGSize size = [uimode size];
233 int w = (
int)size.width;
234 int h = (
int)size.height;
237 if (isLandscape != (w > h)) {
244 UIKit_AddDisplayMode(display, w, h, data->
scale, uimode, addRotation);
246 if (data->
scale != 1.0f) {
250 UIKit_AddDisplayMode(display,
251 (
int)(size.width / data->
scale),
252 (
int)(size.height / data->
scale),
253 1.0f, uimode, addRotation);
257 const CGSize size = [data->uiscreen bounds].size;
258 int w = (
int)size.width;
259 int h = (
int)size.height;
262 if (isLandscape != (w > h)) {
268 UIKit_AddDisplayMode(display, w, h, 1.0
f, nil, addRotation);
284 if (data->
uiscreen == [UIScreen mainScreen]) {
285 if (mode->
w > mode->
h) {
287 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight animated:NO];
289 }
else if (mode->
w < mode->
h) {
291 [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait animated:NO];
310 UIKit_FreeDisplayModeData(mode);
int UIKit_InitModes(_THIS)
void UIKit_QuitModes(_THIS)
GLfloat GLfloat GLfloat GLfloat h
SDL_bool UIKit_IsDisplayLandscape(UIScreen *uiscreen)
DECLSPEC void SDLCALL SDL_free(void *mem)
The structure that defines a display mode.
EGLSurface EGLint EGLint EGLint EGLint height
void UIKit_GetDisplayModes(_THIS, SDL_VideoDisplay *display)
int SDL_AddVideoDisplay(const SDL_VideoDisplay *display)
static SDL_VideoDevice * _this
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
SDL_DisplayMode * display_modes
SDL_DisplayMode current_mode
SDL_VideoDisplay * displays
DECLSPEC void *SDLCALL SDL_malloc(size_t size)
GLenum GLenum GLenum GLenum GLenum scale
#define SDL_assert(condition)
#define SDL_OutOfMemory()
SDL_DisplayMode desktop_mode
UIScreenMode * uiscreenmode
SDL_bool SDL_AddDisplayMode(SDL_VideoDisplay *display, const SDL_DisplayMode *mode)
GLint GLint GLint GLint GLint w
BOOL SDL_UIKit_supports_multiple_displays
typedef BOOL(WINAPI *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC
int UIKit_SetDisplayMode(_THIS, SDL_VideoDisplay *display, SDL_DisplayMode *mode)