Subversion Repositories Games.Descent

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997-2009 Sam Lantinga
  4.  
  5.     This library is free software; you can redistribute it and/or
  6.     modify it under the terms of the GNU Lesser General Public
  7.     License as published by the Free Software Foundation; either
  8.     version 2.1 of the License, or (at your option) any later version.
  9.  
  10.     This library is distributed in the hope that it will be useful,
  11.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  12.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13.     Lesser General Public License for more details.
  14.  
  15.     You should have received a copy of the GNU Lesser General Public
  16.     License along with this library; if not, write to the Free Software
  17.     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
  18.  
  19.     Sam Lantinga
  20.     slouken@libsdl.org
  21. */
  22.  
  23. #ifndef _SDL_main_h
  24. #define _SDL_main_h
  25.  
  26. #include "SDL_stdinc.h"
  27.  
  28. /** @file SDL_main.h
  29.  *  Redefine main() on Win32 and MacOS so that it is called by winmain.c
  30.  */
  31.  
  32. #if defined(__WIN32__) || \
  33.     (defined(__MWERKS__) && !defined(__BEOS__)) || \
  34.     defined(__MACOS__) || defined(__MACOSX__) || \
  35.     defined(__SYMBIAN32__) || defined(QWS)
  36.  
  37. #ifdef __cplusplus
  38. #define C_LINKAGE       "C"
  39. #else
  40. #define C_LINKAGE
  41. #endif /* __cplusplus */
  42.  
  43. /** The application's main() function must be called with C linkage,
  44.  *  and should be declared like this:
  45.  *      @code
  46.  *      #ifdef __cplusplus
  47.  *      extern "C"
  48.  *      #endif
  49.  *      int main(int argc, char *argv[])
  50.  *      {
  51.  *      }
  52.  *      @endcode
  53.  */
  54. #define main    SDL_main
  55.  
  56. /** The prototype for the application's main() function */
  57. extern C_LINKAGE int SDL_main(int argc, char *argv[]);
  58.  
  59.  
  60. /** @name From the SDL library code -- needed for registering the app on Win32 */
  61. /*@{*/
  62. #ifdef __WIN32__
  63.  
  64. #include "begin_code.h"
  65. #ifdef __cplusplus
  66. extern "C" {
  67. #endif
  68.  
  69. /** This should be called from your WinMain() function, if any */
  70. extern DECLSPEC void SDLCALL SDL_SetModuleHandle(void *hInst);
  71. /** This can also be called, but is no longer necessary */
  72. extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, void *hInst);
  73. /** This can also be called, but is no longer necessary (SDL_Quit calls it) */
  74. extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
  75. #ifdef __cplusplus
  76. }
  77. #endif
  78. #include "close_code.h"
  79. #endif
  80. /*@}*/
  81.  
  82. /** @name From the SDL library code -- needed for registering QuickDraw on MacOS */
  83. /*@{*/
  84. #if defined(__MACOS__)
  85.  
  86. #include "begin_code.h"
  87. #ifdef __cplusplus
  88. extern "C" {
  89. #endif
  90.  
  91. /** Forward declaration so we don't need to include QuickDraw.h */
  92. struct QDGlobals;
  93.  
  94. /** This should be called from your main() function, if any */
  95. extern DECLSPEC void SDLCALL SDL_InitQuickDraw(struct QDGlobals *the_qd);
  96.  
  97. #ifdef __cplusplus
  98. }
  99. #endif
  100. #include "close_code.h"
  101. #endif
  102. /*@}*/
  103.  
  104. #endif /* Need to redefine main()? */
  105.  
  106. #endif /* _SDL_main_h */
  107.