SDL 3.0
SDL_init.h File Reference
+ Include dependency graph for SDL_init.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  SDL_InitFlags {
  SDL_INIT_TIMER = 0x00000001 ,
  SDL_INIT_AUDIO = 0x00000010 ,
  SDL_INIT_VIDEO = 0x00000020 ,
  SDL_INIT_JOYSTICK = 0x00000200 ,
  SDL_INIT_HAPTIC = 0x00001000 ,
  SDL_INIT_GAMEPAD = 0x00002000 ,
  SDL_INIT_EVENTS = 0x00004000 ,
  SDL_INIT_SENSOR = 0x00008000 ,
  SDL_INIT_CAMERA = 0x00010000
}
 

Functions

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

Init and quit header for the SDL library

Definition in file SDL_init.h.

Enumeration Type Documentation

◆ SDL_InitFlags

Initialization flags for SDL_Init and/or SDL_InitSubSystem

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

Since
This enum is available since SDL 3.0.0.
See also
SDL_Init
SDL_Quit
SDL_InitSubSystem
SDL_QuitSubSystem
SDL_WasInit
Enumerator
SDL_INIT_TIMER 
SDL_INIT_AUDIO 

SDL_INIT_AUDIO implies SDL_INIT_EVENTS

SDL_INIT_VIDEO 

SDL_INIT_VIDEO implies SDL_INIT_EVENTS

SDL_INIT_JOYSTICK 

SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS, should be initialized on the same thread as SDL_INIT_VIDEO on Windows if you don't set SDL_HINT_JOYSTICK_THREAD

SDL_INIT_HAPTIC 
SDL_INIT_GAMEPAD 

SDL_INIT_GAMEPAD implies SDL_INIT_JOYSTICK

SDL_INIT_EVENTS 
SDL_INIT_SENSOR 

SDL_INIT_SENSOR implies SDL_INIT_EVENTS

SDL_INIT_CAMERA 

SDL_INIT_CAMERA implies SDL_INIT_EVENTS

Definition at line 56 of file SDL_init.h.

57{
58 SDL_INIT_TIMER = 0x00000001,
59 SDL_INIT_AUDIO = 0x00000010, /**< `SDL_INIT_AUDIO` implies `SDL_INIT_EVENTS` */
60 SDL_INIT_VIDEO = 0x00000020, /**< `SDL_INIT_VIDEO` implies `SDL_INIT_EVENTS` */
61 SDL_INIT_JOYSTICK = 0x00000200, /**< `SDL_INIT_JOYSTICK` implies `SDL_INIT_EVENTS`, should be initialized on the same thread as SDL_INIT_VIDEO on Windows if you don't set SDL_HINT_JOYSTICK_THREAD */
62 SDL_INIT_HAPTIC = 0x00001000,
63 SDL_INIT_GAMEPAD = 0x00002000, /**< `SDL_INIT_GAMEPAD` implies `SDL_INIT_JOYSTICK` */
64 SDL_INIT_EVENTS = 0x00004000,
65 SDL_INIT_SENSOR = 0x00008000, /**< `SDL_INIT_SENSOR` implies `SDL_INIT_EVENTS` */
66 SDL_INIT_CAMERA = 0x00010000 /**< `SDL_INIT_CAMERA` implies `SDL_INIT_EVENTS` */
SDL_InitFlags
Definition SDL_init.h:57
@ SDL_INIT_HAPTIC
Definition SDL_init.h:62
@ SDL_INIT_JOYSTICK
Definition SDL_init.h:61
@ SDL_INIT_CAMERA
Definition SDL_init.h:66
@ SDL_INIT_GAMEPAD
Definition SDL_init.h:63
@ SDL_INIT_SENSOR
Definition SDL_init.h:65
@ SDL_INIT_TIMER
Definition SDL_init.h:58
@ SDL_INIT_AUDIO
Definition SDL_init.h:59
@ SDL_INIT_VIDEO
Definition SDL_init.h:60
@ SDL_INIT_EVENTS
Definition SDL_init.h:64

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_IOFromFile) 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_GAMEPAD: gamepad subsystem; automatically initializes the joystick subsystem
  • SDL_INIT_EVENTS: events subsystem
  • SDL_INIT_SENSOR: sensor subsystem

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 3.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.

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 3.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.

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 3.0.0.
See also
SDL_Init
SDL_QuitSubSystem

◆ SDL_QuitSubSystem()

void SDL_QuitSubSystem ( Uint32  flags)
extern

Shut down specific SDL subsystems.

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 3.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.
Since
This function is available since SDL 3.0.0.
See also
SDL_Init
SDL_InitSubSystem