SDL 3.0
SDL_init.h File Reference

Init and quit header for the SDL library. More...

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

Macros

#define SDL_INIT_EVERYTHING
 

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
}
 Initialization flags for SDL_Init and/or SDL_InitSubSystem. More...
 

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.

Macro Definition Documentation

◆ SDL_INIT_EVERYTHING

#define SDL_INIT_EVERYTHING
Value:
( \
)
@ SDL_INIT_HAPTIC
Definition SDL_init.h:59
@ SDL_INIT_JOYSTICK
Definition SDL_init.h:58
@ SDL_INIT_GAMEPAD
Definition SDL_init.h:60
@ SDL_INIT_SENSOR
Definition SDL_init.h:62
@ SDL_INIT_TIMER
Definition SDL_init.h:55
@ SDL_INIT_AUDIO
Definition SDL_init.h:56
@ SDL_INIT_VIDEO
Definition SDL_init.h:57
@ SDL_INIT_EVENTS
Definition SDL_init.h:61

Definition at line 64 of 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.

See also
SDL_Init
SDL_Quit
SDL_InitSubSystem
SDL_QuitSubSystem
SDL_WasInit
Enumerator
SDL_INIT_TIMER 
SDL_INIT_AUDIO 
SDL_INIT_VIDEO 

SDL_INIT_VIDEO implies SDL_INIT_EVENTS

SDL_INIT_JOYSTICK 

SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS

SDL_INIT_HAPTIC 
SDL_INIT_GAMEPAD 

SDL_INIT_GAMEPAD implies SDL_INIT_JOYSTICK

SDL_INIT_EVENTS 
SDL_INIT_SENSOR 

Definition at line 53 of file SDL_init.h.

54{
55 SDL_INIT_TIMER = 0x00000001,
56 SDL_INIT_AUDIO = 0x00000010,
57 SDL_INIT_VIDEO = 0x00000020, /**< `SDL_INIT_VIDEO` implies `SDL_INIT_EVENTS` */
58 SDL_INIT_JOYSTICK = 0x00000200, /**< `SDL_INIT_JOYSTICK` implies `SDL_INIT_EVENTS` */
59 SDL_INIT_HAPTIC = 0x00001000,
60 SDL_INIT_GAMEPAD = 0x00002000, /**< `SDL_INIT_GAMEPAD` implies `SDL_INIT_JOYSTICK` */
61 SDL_INIT_EVENTS = 0x00004000,
62 SDL_INIT_SENSOR = 0x00008000
SDL_InitFlags
Initialization flags for SDL_Init and/or SDL_InitSubSystem.
Definition SDL_init.h:54

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_GAMEPAD: gamepad subsystem; automatically initializes the joystick subsystem
  • SDL_INIT_EVENTS: events subsystem
  • SDL_INIT_EVERYTHING: all of the above subsystems

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