SDL 2.0
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_gamecontroller.h"
#include "SDL_guid.h"
#include "SDL_haptic.h"
#include "SDL_hidapi.h"
#include "SDL_hints.h"
#include "SDL_joystick.h"
#include "SDL_loadso.h"
#include "SDL_log.h"
#include "SDL_messagebox.h"
#include "SDL_metal.h"
#include "SDL_mutex.h"
#include "SDL_power.h"
#include "SDL_render.h"
#include "SDL_rwops.h"
#include "SDL_sensor.h"
#include "SDL_shape.h"
#include "SDL_system.h"
#include "SDL_thread.h"
#include "SDL_timer.h"
#include "SDL_version.h"
#include "SDL_video.h"
#include "SDL_locale.h"
#include "SDL_misc.h"
#include "begin_code.h"
#include "close_code.h"
+ Include dependency graph for SDL.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

SDL_INIT_*

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   0x00000001u
 
#define SDL_INIT_AUDIO   0x00000010u
 
#define SDL_INIT_VIDEO   0x00000020u
 
#define SDL_INIT_JOYSTICK   0x00000200u
 
#define SDL_INIT_HAPTIC   0x00001000u
 
#define SDL_INIT_GAMECONTROLLER   0x00002000u
 
#define SDL_INIT_EVENTS   0x00004000u
 
#define SDL_INIT_SENSOR   0x00008000u
 
#define SDL_INIT_NOPARACHUTE   0x00100000u
 
#define SDL_INIT_EVERYTHING
 
int SDL_Init (Uint32 flags)
 
int SDL_InitSubSystem (Uint32 flags)
 
void SDL_QuitSubSystem (Uint32 flags)
 
Uint32 SDL_WasInit (Uint32 flags)
 
void SDL_Quit (void)
 

Detailed Description

Main include header for the SDL library

Definition in file SDL.h.

Macro Definition Documentation

◆ SDL_INIT_AUDIO

#define SDL_INIT_AUDIO   0x00000010u

Definition at line 84 of file SDL.h.

◆ SDL_INIT_EVENTS

#define SDL_INIT_EVENTS   0x00004000u

Definition at line 89 of file SDL.h.

◆ SDL_INIT_EVERYTHING

#define SDL_INIT_EVERYTHING
Value:
( \
)
#define SDL_INIT_SENSOR
Definition SDL.h:90
#define SDL_INIT_TIMER
Definition SDL.h:83
#define SDL_INIT_AUDIO
Definition SDL.h:84
#define SDL_INIT_GAMECONTROLLER
Definition SDL.h:88
#define SDL_INIT_JOYSTICK
Definition SDL.h:86
#define SDL_INIT_EVENTS
Definition SDL.h:89
#define SDL_INIT_HAPTIC
Definition SDL.h:87
#define SDL_INIT_VIDEO
Definition SDL.h:85

Definition at line 92 of file SDL.h.

◆ SDL_INIT_GAMECONTROLLER

#define SDL_INIT_GAMECONTROLLER   0x00002000u

SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK

Definition at line 88 of file SDL.h.

◆ SDL_INIT_HAPTIC

#define SDL_INIT_HAPTIC   0x00001000u

Definition at line 87 of file SDL.h.

◆ SDL_INIT_JOYSTICK

#define SDL_INIT_JOYSTICK   0x00000200u

SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS

Definition at line 86 of file SDL.h.

◆ SDL_INIT_NOPARACHUTE

#define SDL_INIT_NOPARACHUTE   0x00100000u

compatibility; this flag is ignored.

Definition at line 91 of file SDL.h.

◆ SDL_INIT_SENSOR

#define SDL_INIT_SENSOR   0x00008000u

Definition at line 90 of file SDL.h.

◆ SDL_INIT_TIMER

#define SDL_INIT_TIMER   0x00000001u

Definition at line 83 of file SDL.h.

◆ SDL_INIT_VIDEO

#define SDL_INIT_VIDEO   0x00000020u

SDL_INIT_VIDEO implies SDL_INIT_EVENTS

Definition at line 85 of file SDL.h.

Function Documentation

◆ SDL_Init()

int SDL_Init ( Uint32  flags)
extern

Initialize the SDL library.

SDL_Init() simply forwards to calling SDL_InitSubSystem(). Therefore, the two may be used interchangeably. Though for readability of your code SDL_InitSubSystem() might be preferred.

The file I/O (for example: SDL_RWFromFile) and threading (SDL_CreateThread) subsystems are initialized by default. Message boxes (SDL_ShowSimpleMessageBox) also attempt to work without initializing the video subsystem, in hopes of being useful in showing an error dialog when SDL_Init fails. You must specifically initialize other subsystems if you use them in your application.

Logging (such as SDL_Log) works without initialization, too.

flags may be any of the following OR'd together:

  • SDL_INIT_TIMER: timer subsystem
  • SDL_INIT_AUDIO: audio subsystem
  • SDL_INIT_VIDEO: video subsystem; automatically initializes the events subsystem
  • SDL_INIT_JOYSTICK: joystick subsystem; automatically initializes the events subsystem
  • SDL_INIT_HAPTIC: haptic (force feedback) subsystem
  • SDL_INIT_GAMECONTROLLER: controller subsystem; automatically initializes the joystick subsystem
  • SDL_INIT_EVENTS: events subsystem
  • SDL_INIT_EVERYTHING: all of the above subsystems
  • SDL_INIT_NOPARACHUTE: compatibility; this flag is ignored

Subsystem initialization is ref-counted, you must call SDL_QuitSubSystem() for each SDL_InitSubSystem() to correctly shutdown a subsystem manually (or call SDL_Quit() to force shutdown). If a subsystem is already loaded then this call will increase the ref-count and return.

Parameters
flagssubsystem initialization flags.
Returns
0 on success or a negative error code on failure; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_InitSubSystem
SDL_Quit
SDL_SetMainReady
SDL_WasInit

◆ SDL_InitSubSystem()

int SDL_InitSubSystem ( Uint32  flags)
extern

Compatibility function to initialize the SDL library.

In SDL2, this function and SDL_Init() are interchangeable.

Parameters
flagsany of the flags used by SDL_Init(); see SDL_Init for details.
Returns
0 on success or a negative error code on failure; call SDL_GetError() for more information.
Since
This function is available since SDL 2.0.0.
See also
SDL_Init
SDL_Quit
SDL_QuitSubSystem

◆ SDL_Quit()

void SDL_Quit ( void  )
extern

Clean up all initialized subsystems.

You should call this function even if you have already shutdown each initialized subsystem with SDL_QuitSubSystem(). It is safe to call this function even in the case of errors in initialization.

If you start a subsystem using a call to that subsystem's init function (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), then you must use that subsystem's quit function (SDL_VideoQuit()) to shut it down before calling SDL_Quit(). But generally, you should not be using those functions directly anyhow; use SDL_Init() instead.

You can use this function with atexit() to ensure that it is run when your application is shutdown, but it is not wise to do this from a library or other dynamically loaded code.

Since
This function is available since SDL 2.0.0.
See also
SDL_Init
SDL_QuitSubSystem

◆ SDL_QuitSubSystem()

void SDL_QuitSubSystem ( Uint32  flags)
extern

Shut down specific SDL subsystems.

If you start a subsystem using a call to that subsystem's init function (for example SDL_VideoInit()) instead of SDL_Init() or SDL_InitSubSystem(), SDL_QuitSubSystem() and SDL_WasInit() will not work. You will need to use that subsystem's quit function (SDL_VideoQuit()) directly instead. But generally, you should not be using those functions directly anyhow; use SDL_Init() instead.

You still need to call SDL_Quit() even if you close all open subsystems with SDL_QuitSubSystem().

Parameters
flagsany of the flags used by SDL_Init(); see SDL_Init for details.
Since
This function is available since SDL 2.0.0.
See also
SDL_InitSubSystem
SDL_Quit

◆ SDL_WasInit()

Uint32 SDL_WasInit ( Uint32  flags)
extern

Get a mask of the specified subsystems which are currently initialized.

Parameters
flagsany of the flags used by SDL_Init(); see SDL_Init for details.
Returns
a mask of all initialized subsystems if flags is 0, otherwise it returns the initialization status of the specified subsystems.

The return value does not include SDL_INIT_NOPARACHUTE.

Since
This function is available since SDL 2.0.0.
See also
SDL_Init
SDL_InitSubSystem