docs/README-ios.md
author Philipp Wiesemann <philipp.wiesemann@arcor.de>
Wed, 17 Aug 2016 21:04:50 +0200
changeset 10275 ba7dc3ebb81e
parent 10167 d3db276c1fa6
permissions -rw-r--r--
Emscripten: Fixed opening previously closed joystick.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
     1
iOS
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
     2
======
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
     3
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
     4
==============================================================================
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
     5
Building the Simple DirectMedia Layer for iOS 5.1+
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
     6
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
     7
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
     8
Requirements: Mac OS X 10.8 or later and the iOS 7+ SDK.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
     9
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    10
Instructions:
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
    11
1.  Open SDL.xcodeproj (located in Xcode-iOS/SDL) in Xcode.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    12
2.  Select your desired target, and hit build.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    13
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    14
There are three build targets:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    15
- libSDL.a:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    16
	Build SDL as a statically linked library
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
    17
- testsdl:
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    18
	Build a test program (there are known test failures which are fine)
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    19
- Template:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    20
	Package a project template together with the SDL for iPhone static libraries and copies of the SDL headers.  The template includes proper references to the SDL library and headers, skeleton code for a basic SDL program, and placeholder graphics for the application icon and startup screen.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    21
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
    22
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    23
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    24
Build SDL for iOS from the command line
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    25
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    26
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    27
1. cd (PATH WHERE THE SDL CODE IS)/build-scripts
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    28
2. ./iosbuild.sh
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    29
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    30
If everything goes fine, you should see a build/ios directory, inside there's
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    31
two directories "lib" and "include". 
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    32
"include" contains a copy of the SDL headers that you'll need for your project,
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    33
make sure to configure XCode to look for headers there.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    34
"lib" contains find two files, libSDL2.a and libSDL2main.a, you have to add both 
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    35
to your XCode project. These libraries contain three architectures in them,
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    36
armv6 for legacy devices, armv7, and i386 (for the simulator).
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    37
By default, iosbuild.sh will autodetect the SDK version you have installed using 
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    38
xcodebuild -showsdks, and build for iOS >= 3.0, you can override this behaviour 
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    39
by setting the MIN_OS_VERSION variable, ie:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    40
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    41
MIN_OS_VERSION=4.2 ./iosbuild.sh
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    42
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    43
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    44
Using the Simple DirectMedia Layer for iOS
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    45
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    46
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    47
FIXME: This needs to be updated for the latest methods
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    48
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    49
Here is the easiest method:
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    50
1.  Build the SDL library (libSDL2.a) and the iPhone SDL Application template.
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    51
2.  Install the iPhone SDL Application template by copying it to one of Xcode's template directories.  I recommend creating a directory called "SDL" in "/Developer/Platforms/iOS.platform/Developer/Library/Xcode/Project Templates/" and placing it there.
9064
428bff5bf38a Fixed enumeration in README.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9050
diff changeset
    52
3.  Start a new project using the template.  The project should be immediately ready for use with SDL.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    53
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    54
Here is a more manual method:
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    55
1.  Create a new iOS view based application.
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    56
2.  Build the SDL static library (libSDL2.a) for iOS and include them in your project.  Xcode will ignore the library that is not currently of the correct architecture, hence your app will work both on iOS and in the iOS Simulator.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    57
3.  Include the SDL header files in your project.
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    58
4.  Remove the ApplicationDelegate.h and ApplicationDelegate.m files -- SDL for iOS provides its own UIApplicationDelegate.  Remove MainWindow.xib -- SDL for iOS produces its user interface programmatically.
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    59
5.  Delete the contents of main.m and program your app as a regular SDL program instead.  You may replace main.m with your own main.c, but you must tell Xcode not to use the project prefix file, as it includes Objective-C code.
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    60
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    61
==============================================================================
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    62
Notes -- Retina / High-DPI and window sizes
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    63
==============================================================================
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    64
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    65
Window and display mode sizes in SDL are in "screen coordinates" (or "points",
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    66
in Apple's terminology) rather than in pixels. On iOS this means that a window
9997
e330f785a5e7 Fixed typo in README for iOS.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9995
diff changeset
    67
created on an iPhone 6 will have a size in screen coordinates of 375 x 667,
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    68
rather than a size in pixels of 750 x 1334. All iOS apps are expected to
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    69
size their content based on screen coordinates / points rather than pixels,
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    70
as this allows different iOS devices to have different pixel densities
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    71
(Retina versus non-Retina screens, etc.) without apps caring too much.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    72
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    73
By default SDL will not use the full pixel density of the screen on
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    74
Retina/high-dpi capable devices. Use the SDL_WINDOW_ALLOW_HIGHDPI flag when
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    75
creating your window to enable high-dpi support.
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    76
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
    77
When high-dpi support is enabled, SDL_GetWindowSize() and display mode sizes
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    78
will still be in "screen coordinates" rather than pixels, but the window will
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    79
have a much greater pixel density when the device supports it, and the
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
    80
SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() functions (depending on
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    81
whether raw OpenGL or the SDL_Render API is used) can be queried to determine
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    82
the size in pixels of the drawable screen framebuffer.
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    83
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    84
Some OpenGL ES functions such as glViewport expect sizes in pixels rather than
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    85
sizes in screen coordinates. When doing 2D rendering with OpenGL ES, an
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    86
orthographic projection matrix using the size in screen coordinates
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
    87
(SDL_GetWindowSize()) can be used in order to display content at the same scale
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
    88
no matter whether a Retina device is used or not.
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
    89
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    90
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    91
Notes -- Application events
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    92
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    93
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    94
On iOS the application goes through a fixed life cycle and you will get
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    95
notifications of state changes via application events. When these events
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    96
are delivered you must handle them in an event callback because the OS may
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    97
not give you any processing time after the events are delivered.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    98
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
    99
e.g.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   100
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   101
    int HandleAppEvents(void *userdata, SDL_Event *event)
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   102
    {
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   103
        switch (event->type)
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   104
        {
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   105
        case SDL_APP_TERMINATING:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   106
            /* Terminate the app.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   107
               Shut everything down before returning from this function.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   108
            */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   109
            return 0;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   110
        case SDL_APP_LOWMEMORY:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   111
            /* You will get this when your app is paused and iOS wants more memory.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   112
               Release as much memory as possible.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   113
            */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   114
            return 0;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   115
        case SDL_APP_WILLENTERBACKGROUND:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   116
            /* Prepare your app to go into the background.  Stop loops, etc.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   117
               This gets called when the user hits the home button, or gets a call.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   118
            */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   119
            return 0;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   120
        case SDL_APP_DIDENTERBACKGROUND:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   121
            /* This will get called if the user accepted whatever sent your app to the background.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   122
               If the user got a phone call and canceled it, you'll instead get an SDL_APP_DIDENTERFOREGROUND event and restart your loops.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   123
               When you get this, you have 5 seconds to save all your state or the app will be terminated.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   124
               Your app is NOT active at this point.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   125
            */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   126
            return 0;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   127
        case SDL_APP_WILLENTERFOREGROUND:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   128
            /* This call happens when your app is coming back to the foreground.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   129
               Restore all your state here.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   130
            */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   131
            return 0;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   132
        case SDL_APP_DIDENTERFOREGROUND:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   133
            /* Restart your loops here.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   134
               Your app is interactive and getting CPU again.
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   135
            */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   136
            return 0;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   137
        default:
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   138
            /* No special processing, add it to the event queue */
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   139
            return 1;
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   140
        }
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   141
    }
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   142
    
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   143
    int main(int argc, char *argv[])
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   144
    {
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   145
        SDL_SetEventFilter(HandleAppEvents, NULL);
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   146
    
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   147
        ... run your main loop
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   148
    
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   149
        return 0;
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   150
    }
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   151
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   152
    
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   153
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   154
Notes -- Accelerometer as Joystick
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   155
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   156
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   157
SDL for iPhone supports polling the built in accelerometer as a joystick device.  For an example on how to do this, see the accelerometer.c in the demos directory.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   158
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
   159
The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis() reports joystick values as signed integers.  Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver.  To convert SDL_JoystickGetAxis() reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   160
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   161
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   162
Notes -- OpenGL ES
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   163
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   164
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   165
Your SDL application for iOS uses OpenGL ES for video by default.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   166
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
   167
OpenGL ES for iOS supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively. By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute().
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   168
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   169
If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   170
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   171
Finally, if your application completely redraws the screen each frame, you may find significant performance improvement by setting the attribute SDL_GL_RETAINED_BACKING to 0.
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   172
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   173
OpenGL ES on iOS doesn't use the traditional system-framebuffer setup provided in other operating systems. Special care must be taken because of this:
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   174
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
   175
- The drawable Renderbuffer must be bound to the GL_RENDERBUFFER binding point when SDL_GL_SwapWindow() is called.
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
   176
- The drawable Framebuffer Object must be bound while rendering to the screen and when SDL_GL_SwapWindow() is called.
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   177
- If multisample antialiasing (MSAA) is used and glReadPixels is used on the screen, the drawable framebuffer must be resolved to the MSAA resolve framebuffer (via glBlitFramebuffer or glResolveMultisampleFramebufferAPPLE), and the MSAA resolve framebuffer must be bound to the GL_READ_FRAMEBUFFER binding point, before glReadPixels is called.
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   178
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
   179
The above objects can be obtained via SDL_GetWindowWMInfo() (in SDL_syswm.h).
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   180
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   181
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   182
Notes -- Keyboard
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   183
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   184
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   185
The SDL keyboard API has been extended to support on-screen keyboards:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   186
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   187
void SDL_StartTextInput()
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   188
	-- enables text events and reveals the onscreen keyboard.
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   189
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   190
void SDL_StopTextInput()
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   191
	-- disables text events and hides the onscreen keyboard.
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   192
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   193
SDL_bool SDL_IsTextInputActive()
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   194
	-- returns whether or not text events are enabled (and the onscreen keyboard is visible)
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   195
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   196
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   197
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   198
Notes -- Reading and Writing files
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   199
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   200
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   201
Each application installed on iPhone resides in a sandbox which includes its own Application Home directory.  Your application may not access files outside this directory.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   202
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   203
Once your application is installed its directory tree looks like:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   204
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   205
    MySDLApp Home/
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   206
        MySDLApp.app
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   207
        Documents/
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   208
        Library/
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   209
            Preferences/
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   210
        tmp/
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   211
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   212
When your SDL based iPhone application starts up, it sets the working directory to the main bundle (MySDLApp Home/MySDLApp.app), where your application resources are stored.  You cannot write to this directory.  Instead, I advise you to write document files to "../Documents/" and preferences to "../Library/Preferences".  
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   213
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   214
More information on this subject is available here:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   215
http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   216
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   217
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   218
Notes -- iPhone SDL limitations
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   219
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   220
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   221
Windows:
10167
d3db276c1fa6 iOS: Added brackets to function names in README so that doxygen links them.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9997
diff changeset
   222
	Full-size, single window applications only.  You cannot create multi-window SDL applications for iPhone OS.  The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow() the flag SDL_WINDOW_BORDERLESS).
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   223
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   224
Textures:
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   225
	The optimal texture formats on iOS are SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, and SDL_PIXELFORMAT_RGB24 pixel formats.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   226
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   227
Loading Shared Objects:
9810
1e079120100e Added MSAA support for OpenGL ES contexts on iOS.
Alex Szpakowski <slime73@gmail.com>
parents: 9066
diff changeset
   228
	This is disabled by default since it seems to break the terms of the iOS SDK agreement for iOS versions prior to iOS 8. It can be re-enabled in SDL_config_iphoneos.h.
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   229
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   230
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   231
Game Center 
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   232
==============================================================================
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   233
9995
d79480c1e151 Updated some header comments and iOS documentation to better clarify high-dpi / retina support and screen-coordinate sizes versus pixel sizes.
Alex Szpakowski <slime73@gmail.com>
parents: 9810
diff changeset
   234
Game Center integration might require that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   235
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   236
    int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
9023
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   237
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   238
This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   239
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   240
e.g.
276802355854 Rearrange documentation
Gabriel Jacobo <gabomdq@gmail.com>
parents:
diff changeset
   241
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   242
    extern "C"
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   243
    void ShowFrame(void*)
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   244
    {
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   245
        ... do event handling, frame logic and rendering ...
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   246
    }
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   247
    
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   248
    int main(int argc, char *argv[])
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   249
    {
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   250
        ... initialize game ...
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   251
    
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   252
    #if __IPHONEOS__
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   253
        // Initialize the Game Center for scoring and matchmaking
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   254
        InitGameCenter();
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   255
    
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   256
        // Set up the game to run in the window animation callback on iOS
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   257
        // so that Game Center and so forth works correctly.
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   258
        SDL_iPhoneSetAnimationCallback(window, 1, ShowFrame, NULL);
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   259
    #else
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   260
        while ( running ) {
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   261
            ShowFrame(0);
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   262
            DelayFrame();
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   263
        }
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   264
    #endif
9066
c2af3ff967cc Fixed markdown formatting in READMEs.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9064
diff changeset
   265
        return 0;
9050
bc9616da37cd Fixed doxygen warning and markdown formatting.
Philipp Wiesemann <philipp.wiesemann@arcor.de>
parents: 9025
diff changeset
   266
    }