All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SDL.h File Reference
#include "SDL_main.h"
#include "SDL_stdinc.h"
#include "SDL_assert.h"
#include "SDL_atomic.h"
#include "SDL_audio.h"
#include "SDL_clipboard.h"
#include "SDL_cpuinfo.h"
#include "SDL_endian.h"
#include "SDL_error.h"
#include "SDL_events.h"
#include "SDL_filesystem.h"
#include "SDL_joystick.h"
#include "SDL_gamecontroller.h"
#include "SDL_haptic.h"
#include "SDL_hints.h"
#include "SDL_loadso.h"
#include "SDL_log.h"
#include "SDL_messagebox.h"
#include "SDL_mutex.h"
#include "SDL_power.h"
#include "SDL_render.h"
#include "SDL_rwops.h"
#include "SDL_system.h"
#include "SDL_thread.h"
#include "SDL_timer.h"
#include "SDL_version.h"
#include "SDL_video.h"
#include "begin_code.h"
#include "close_code.h"

Go to the source code of this file.



Simple DirectMedia Layer (SDL)


Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and popular games including Valve's award winning catalog and many Humble Bundle games.

SDL officially supports Windows, Mac OS X, Linux, iOS, and Android. Support for other platforms may be found in the source code.

SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.

This library is distributed under the zlib license, which can be found in the file "COPYING.txt".

The best way to learn how to use SDL is to check out the header files in the "include" subdirectory and the programs in the "test" subdirectory. The header files and test programs are well commented and always up to date. More documentation and FAQs are available online at: http://wiki.libsdl.org/

If you need help with the library, or just want to discuss SDL related issues, you can join the developers mailing list: http://www.libsdl.org/mailing-list.php

Enjoy! Sam Lantinga (slouk.nosp@m.en@l.nosp@m.ibsdl.nosp@m..org)

These are the flags which may be passed to SDL_Init(). You should specify the subsystems which you will be using in your application.

#define SDL_INIT_TIMER   0x00000001
#define SDL_INIT_AUDIO   0x00000010
#define SDL_INIT_VIDEO   0x00000020
#define SDL_INIT_JOYSTICK   0x00000200
#define SDL_INIT_HAPTIC   0x00001000
#define SDL_INIT_GAMECONTROLLER   0x00002000
#define SDL_INIT_EVENTS   0x00004000
#define SDL_INIT_NOPARACHUTE   0x00100000


DECLSPEC int SDLCALL SDL_Init (Uint32 flags)
DECLSPEC int SDLCALL SDL_InitSubSystem (Uint32 flags)
DECLSPEC void SDLCALL SDL_QuitSubSystem (Uint32 flags)
DECLSPEC Uint32 SDLCALL SDL_WasInit (Uint32 flags)

Macro Definition Documentation

#define SDL_INIT_EVENTS   0x00004000
( \
Definition: SDL.h:112
Definition: SDL.h:111
Definition: SDL.h:114
Definition: SDL.h:113
Definition: SDL.h:110
Definition: SDL.h:109
Definition: SDL.h:108

Definition at line 116 of file SDL.h.

Referenced by SDL_Quit(), and SDL_WasInit().

#define SDL_INIT_GAMECONTROLLER   0x00002000


Definition at line 113 of file SDL.h.

Referenced by SDL_InitSubSystem(), and SDL_QuitSubSystem().

#define SDL_INIT_HAPTIC   0x00001000

Definition at line 112 of file SDL.h.

Referenced by SDL_InitSubSystem(), and SDL_QuitSubSystem().

#define SDL_INIT_JOYSTICK   0x00000200


Definition at line 111 of file SDL.h.

Referenced by SDL_InitSubSystem(), and SDL_QuitSubSystem().

#define SDL_INIT_NOPARACHUTE   0x00100000

Don't catch fatal signals

Definition at line 115 of file SDL.h.

#define SDL_INIT_TIMER   0x00000001

Definition at line 108 of file SDL.h.

Referenced by SDL_InitSubSystem(), SDL_QuitSubSystem(), and SDLTest_SetTestTimeout().

#define SDL_INIT_VIDEO   0x00000020

Function Documentation

DECLSPEC int SDLCALL SDL_Init ( Uint32  flags)

This function initializes the subsystems specified by flags Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup signal handlers for some commonly ignored fatal signals (like SIGSEGV).

Definition at line 235 of file SDL.c.

References SDL_InitSubSystem().

Referenced by main().

DECLSPEC void SDLCALL SDL_Quit ( void  )

This function cleans up all initialized subsystems. You should call it upon all exit conditions.

Definition at line 342 of file SDL.c.

References SDL_AssertionsQuit(), SDL_bInMainQuit, SDL_ClearHints(), SDL_FALSE, SDL_INIT_EVERYTHING, SDL_LogResetPriorities(), SDL_memset(), SDL_QuitSubSystem(), SDL_SubsystemRefCount, and SDL_TRUE.

Referenced by cleanup(), main(), and SDL_AbortAssertion().

DECLSPEC Uint32 SDLCALL SDL_WasInit ( Uint32  flags)

This function returns a mask of the specified subsystems which have previously been initialized.

If flags is 0, it returns a mask of all initialized subsystems.

Definition at line 317 of file SDL.c.

References i, SDL_arraysize, SDL_INIT_EVERYTHING, SDL_min, SDL_MostSignificantBitIndex32(), and SDL_SubsystemRefCount.

Referenced by open_audio_device(), SDL_AudioInit(), SDL_GetAudioDeviceName(), SDL_GetNumAudioDevices(), SDL_OpenAudio(), SDL_PrivateJoystickShouldIgnoreEvent(), and SDLTest_SetTestTimeout().