SDL_InitSubSystem
Use this function to initialize specific SDL subsystems.
Contents
Syntax
int SDL_InitSubSystem(Uint32 flags)
Function Parameters
Return Value
Returns 0 on success or a negative error code on failure; call SDL_GetError() for more information.
Code Examples
/* Separating Joystick and Video initialization. */
SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = SDL_CreateWindow("A Window",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480,
SDL_WINDOW_FULLSCREEN);
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
/* Do Some Video stuff */
/* Initialize the joystick subsystem */
SDL_InitSubSystem(SDL_INIT_JOYSTICK);
/* Do some stuff with video and joystick */
/* Shut them both down */
SDL_Quit();
Remarks
After SDL has been initialized with SDL_Init() you may initialize uninitialized subsystems with SDL_InitSubSystem().
These are the flags which may be passed to SDL_InitSubSystem() and may be OR'd together to initialize multiple subsystems simultaneously.
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 |
SDL_Init() initializes assertions and crash protection and then calls SDL_InitSubSystem(). If you want to bypass those protections you can call SDL_InitSubSystem() directly.
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.