include/SDL_main.h
author Philipp Wiesemann <philipp.wiesemann@arcor.de>
Sun, 18 Aug 2013 11:08:52 +0200
changeset 7653 9a0e274b8aa7
parent 7335 13b67be8e3af
child 8028 e3e00f8e6b91
child 8535 e8ee0708ef5c
permissions -rw-r--r--
Changed some documentation comments in header files to be used by doxygen.
     1 /*
     2   Simple DirectMedia Layer
     3   Copyright (C) 1997-2013 Sam Lantinga <slouken@libsdl.org>
     4 
     5   This software is provided 'as-is', without any express or implied
     6   warranty.  In no event will the authors be held liable for any damages
     7   arising from the use of this software.
     8 
     9   Permission is granted to anyone to use this software for any purpose,
    10   including commercial applications, and to alter it and redistribute it
    11   freely, subject to the following restrictions:
    12 
    13   1. The origin of this software must not be misrepresented; you must not
    14      claim that you wrote the original software. If you use this software
    15      in a product, an acknowledgment in the product documentation would be
    16      appreciated but is not required.
    17   2. Altered source versions must be plainly marked as such, and must not be
    18      misrepresented as being the original software.
    19   3. This notice may not be removed or altered from any source distribution.
    20 */
    21 
    22 #ifndef _SDL_main_h
    23 #define _SDL_main_h
    24 
    25 #include "SDL_stdinc.h"
    26 
    27 /**
    28  *  \file SDL_main.h
    29  *
    30  *  Redefine main() on some platforms so that it is called by SDL.
    31  */
    32 
    33 #ifndef SDL_MAIN_HANDLED
    34 #if defined(__WIN32__)
    35 /* On Windows SDL provides WinMain(), which parses the command line and passes
    36    the arguments to your main function.
    37 
    38    If you provide your own WinMain(), you may define SDL_MAIN_HANDLED
    39  */
    40 #define SDL_MAIN_AVAILABLE
    41 
    42 #elif defined(__IPHONEOS__)
    43 /* On iOS SDL provides a main function that creates an application delegate
    44    and starts the iOS application run loop.
    45 
    46    See src/video/uikit/SDL_uikitappdelegate.m for more details.
    47  */
    48 #define SDL_MAIN_NEEDED
    49 
    50 #elif defined(__ANDROID__)
    51 /* On Android SDL provides a Java class in SDLActivity.java that is the
    52    main activity entry point.
    53 
    54    See README-android.txt for more details on extending that class.
    55  */
    56 #define SDL_MAIN_NEEDED
    57 
    58 #endif
    59 #endif /* SDL_MAIN_HANDLED */
    60 
    61 #ifdef __cplusplus
    62 #define C_LINKAGE   "C"
    63 #else
    64 #define C_LINKAGE
    65 #endif /* __cplusplus */
    66 
    67 /**
    68  *  \file SDL_main.h
    69  *
    70  *  The application's main() function must be called with C linkage,
    71  *  and should be declared like this:
    72  *  \code
    73  *  #ifdef __cplusplus
    74  *  extern "C"
    75  *  #endif
    76  *  int main(int argc, char *argv[])
    77  *  {
    78  *  }
    79  *  \endcode
    80  */
    81 
    82 #if defined(SDL_MAIN_NEEDED) || defined(SDL_MAIN_AVAILABLE)
    83 #define main    SDL_main
    84 #endif
    85 
    86 /**
    87  *  The prototype for the application's main() function
    88  */
    89 extern C_LINKAGE int SDL_main(int argc, char *argv[]);
    90 
    91 
    92 #include "begin_code.h"
    93 #ifdef __cplusplus
    94 extern "C" {
    95 #endif
    96 
    97 /**
    98  *  This is called by the real SDL main function to let the rest of the
    99  *  library know that initialization was done properly.
   100  *
   101  *  Calling this yourself without knowing what you're doing can cause
   102  *  crashes and hard to diagnose problems with your application.
   103  */
   104 extern DECLSPEC void SDL_SetMainReady(void);
   105 
   106 #ifdef __WIN32__
   107 
   108 /**
   109  *  This can be called to set the application class at startup
   110  */
   111 extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style,
   112                                             void *hInst);
   113 extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
   114 
   115 #endif /* __WIN32__ */
   116 
   117 
   118 #ifdef __cplusplus
   119 }
   120 #endif
   121 #include "close_code.h"
   122 
   123 #endif /* _SDL_main_h */
   124 
   125 /* vi: set ts=4 sw=4 expandtab: */