include/SDL.h
author Eli Gottlieb <eligottlieb@gmail.com>
Sun, 23 May 2010 01:27:09 -0400
changeset 4767 dc3fd9b7fcbc
parent 4453 37fc6a354dc7
child 4493 f0b7c8d169f5
permissions -rw-r--r--
I'm actually going to have to alter this proposed API a fair bit, but it's coming along. I want to keep it as orthogonal to the rest of SDL as possible.
     1 /*
     2     SDL - Simple DirectMedia Layer
     3     Copyright (C) 1997-2010 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 /**
    24  *  \file SDL.h
    25  *  
    26  *  Main include header for the SDL library
    27  */
    28 
    29 /**
    30  *  \mainpage Simple DirectMedia Layer (SDL)
    31  *  
    32  *  http://www.libsdl.org/
    33  *  
    34  *  \section intro_sec Introduction
    35  *  
    36  *  This is the Simple DirectMedia Layer, a general API that provides low
    37  *  level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
    38  *  and 2D framebuffer across multiple platforms.
    39  *  
    40  *  The current version supports Windows, Windows CE, Mac OS X, Linux,
    41  *  FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, and QNX. The code contains
    42  *  support for other operating systems but those are not officially supported. 
    43  *  
    44  *  SDL is written in C, but works with C++ natively, and has bindings to
    45  *  several other languages, including Ada, C#, Eiffel, Erlang, Euphoria,
    46  *  Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP,
    47  *  Pike, Pliant, Python, Ruby, and Smalltalk.
    48  *  
    49  *  This library is distributed under GNU LGPL version 2, which can be
    50  *  found in the file  "COPYING".  This license allows you to use SDL
    51  *  freely in commercial programs as long as you link with the dynamic
    52  *  library.
    53  *  
    54  *  The best way to learn how to use SDL is to check out the header files in
    55  *  the "include" subdirectory and the programs in the "test" subdirectory.
    56  *  The header files and test programs are well commented and always up to date.
    57  *  More documentation is available in HTML format in "docs/index.html", and
    58  *  a documentation wiki is available online at:
    59  *  	http://www.libsdl.org/cgi/docwiki.cgi
    60  *  
    61  *  The test programs in the "test" subdirectory are in the public domain.
    62  *  
    63  *  Frequently asked questions are answered online:
    64  *  	http://www.libsdl.org/faq.php
    65  *  
    66  *  If you need help with the library, or just want to discuss SDL related
    67  *  issues, you can join the developers mailing list:
    68  *  	http://www.libsdl.org/mailing-list.php
    69  *  
    70  *  Enjoy!
    71  *  	Sam Lantinga				(slouken@libsdl.org)
    72  */
    73 
    74 #ifndef _SDL_H
    75 #define _SDL_H
    76 
    77 #include "SDL_main.h"
    78 #include "SDL_stdinc.h"
    79 #include "SDL_atomic.h"
    80 #include "SDL_audio.h"
    81 #include "SDL_cpuinfo.h"
    82 #include "SDL_endian.h"
    83 #include "SDL_error.h"
    84 #include "SDL_events.h"
    85 #include "SDL_loadso.h"
    86 #include "SDL_mutex.h"
    87 #include "SDL_power.h"
    88 #include "SDL_rwops.h"
    89 #include "SDL_thread.h"
    90 #include "SDL_timer.h"
    91 #include "SDL_version.h"
    92 #include "SDL_video.h"
    93 #include "SDL_compat.h"
    94 
    95 #include "begin_code.h"
    96 /* Set up for C function definitions, even when using C++ */
    97 #ifdef __cplusplus
    98 /* *INDENT-OFF* */
    99 extern "C" {
   100 /* *INDENT-ON* */
   101 #endif
   102 
   103 /* As of version 0.5, SDL is loaded dynamically into the application */
   104 
   105 /**
   106  *  \name SDL_INIT_*
   107  *  
   108  *  These are the flags which may be passed to SDL_Init().  You should
   109  *  specify the subsystems which you will be using in your application.
   110  */
   111 /*@{*/
   112 #define SDL_INIT_TIMER          0x00000001
   113 #define SDL_INIT_AUDIO          0x00000010
   114 #define SDL_INIT_VIDEO          0x00000020
   115 #define SDL_INIT_JOYSTICK       0x00000200
   116 #define SDL_INIT_HAPTIC         0x00001000
   117 #define SDL_INIT_NOPARACHUTE    0x00100000      /**< Don't catch fatal signals */
   118 #define SDL_INIT_EVENTTHREAD    0x01000000      /**< Not supported on all OS's */
   119 #define SDL_INIT_EVERYTHING     0x0000FFFF
   120 /*@}*/
   121 
   122 /**
   123  *  This function loads the SDL dynamically linked library and initializes 
   124  *  the subsystems specified by \c flags (and those satisfying dependencies).
   125  *  Unless the ::SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
   126  *  signal handlers for some commonly ignored fatal signals (like SIGSEGV).
   127  */
   128 extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags);
   129 
   130 /**
   131  *  This function initializes specific SDL subsystems
   132  */
   133 extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags);
   134 
   135 /**
   136  *  This function cleans up specific SDL subsystems
   137  */
   138 extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags);
   139 
   140 /**
   141  *  This function returns mask of the specified subsystems which have
   142  *  been initialized.
   143  *  
   144  *  If \c flags is 0, it returns a mask of all initialized subsystems.
   145  */
   146 extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags);
   147 
   148 /**
   149  *  This function cleans up all initialized subsystems and unloads the
   150  *  dynamically linked library.  You should call it upon all exit conditions.
   151  */
   152 extern DECLSPEC void SDLCALL SDL_Quit(void);
   153 
   154 /* Ends C function definitions when using C++ */
   155 #ifdef __cplusplus
   156 /* *INDENT-OFF* */
   157 }
   158 /* *INDENT-ON* */
   159 #endif
   160 #include "close_code.h"
   161 
   162 #endif /* _SDL_H */
   163 
   164 /* vi: set ts=4 sw=4 expandtab: */