src/video/uikit/SDL_uikitopengles.h
author Alex Szpakowski <slime73@gmail.com>
Mon, 14 Jul 2014 22:35:48 -0300
branchiOS-improvements
changeset 9488 f15520430c94
parent 8149 681eb46b8ac4
child 9619 b94b6d0bff0f
permissions -rw-r--r--
Changed the way retina resolutions are handled in iOS.

Previously, SDL would always expose display modes and window dimensions in terms of pixels, and would add an extra 'fake' display mode on retina screens which would contain the non-retina resolution. Calling SDL_CreateWindow with the dimensions of that fake display mode would not work.

Now, SDL only exposes display modes and window dimensions in terms of points rather than pixels. If the SDL_WINDOW_ALLOW_HIGHDPI flag is passed into SDL_CreateWindow, then any OpenGL contexts created from that window will be sized in pixels rather than points (retrievable with SDL_GL_GetDrawableSize.) Window dimensions and mouse coordinates are still in terms of points rather than pixels even with that flag.

This matches the behavior of SDL in OS X more closely, and lets users choose whether to make use of retina displays and lets them handle it properly.
slouken@2765
     1
/*
slouken@5535
     2
  Simple DirectMedia Layer
slouken@8149
     3
  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
slouken@2765
     4
slouken@5535
     5
  This software is provided 'as-is', without any express or implied
slouken@5535
     6
  warranty.  In no event will the authors be held liable for any damages
slouken@5535
     7
  arising from the use of this software.
slouken@2765
     8
slouken@5535
     9
  Permission is granted to anyone to use this software for any purpose,
slouken@5535
    10
  including commercial applications, and to alter it and redistribute it
slouken@5535
    11
  freely, subject to the following restrictions:
slouken@2765
    12
slouken@5535
    13
  1. The origin of this software must not be misrepresented; you must not
slouken@5535
    14
     claim that you wrote the original software. If you use this software
slouken@5535
    15
     in a product, an acknowledgment in the product documentation would be
slouken@5535
    16
     appreciated but is not required.
slouken@5535
    17
  2. Altered source versions must be plainly marked as such, and must not be
slouken@5535
    18
     misrepresented as being the original software.
slouken@5535
    19
  3. This notice may not be removed or altered from any source distribution.
slouken@2765
    20
*/
slouken@2765
    21
#ifndef _SDL_uikitopengles
slouken@2765
    22
#define _SDL_uikitopengles
slouken@2765
    23
kees@6005
    24
#include "../SDL_sysvideo.h"
slouken@2765
    25
slouken@2765
    26
extern int UIKit_GL_MakeCurrent(_THIS, SDL_Window * window,
slouken@2765
    27
                                SDL_GLContext context);
slime73@9488
    28
extern void UIKit_GL_GetDrawableSize(_THIS, SDL_Window * window,
slime73@9488
    29
                                     int * w, int * h);
slouken@2765
    30
extern void UIKit_GL_SwapWindow(_THIS, SDL_Window * window);
slouken@2765
    31
extern SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window);
slouken@2765
    32
extern void UIKit_GL_DeleteContext(_THIS, SDL_GLContext context);
slouken@2765
    33
extern void *UIKit_GL_GetProcAddress(_THIS, const char *proc);
slouken@2765
    34
extern int UIKit_GL_LoadLibrary(_THIS, const char *path);
slouken@2765
    35
slouken@2765
    36
#endif
slouken@5133
    37
slouken@5133
    38
/* vi: set ts=4 sw=4 expandtab: */