SDL_QuitSubSystem
Use this function to shut down specific SDL subsystems.
Syntax
void SDL_QuitSubSystem(Uint32 flags)
Function Parameters
Code Examples
#include "SDL.h"
/* ... */
int main(int argc, char **argv) {
int sdl_initialized = 0;
sdl_initialized = !SDL_Init(0);
/* ... console stuff ... */
if (sdl_initialized && SDL_InitSubSystem(SDL_INIT_VIDEO)) {
display_graph();
SDL_QuitSubSystem(SDL_INIT_VIDEO);
}
/* ... more console stuff ... */
if (sdl_initialized) SDL_Quit();
return 0;
}
Remarks
These are the flags which may be passed to SDL_QuitSubSystem() and may be OR'd together to quit multiple subsystems simultaneously.
)>>
SDL_INIT_TIMER |
initialize timer subsystem |
SDL_INIT_AUDIO |
initialize audio subsystem |
SDL_INIT_VIDEO |
initialize video subsystem |
SDL_INIT_CDROM |
initialize CD-ROM subsystem |
SDL_INIT_JOYSTICK |
initialize joystick subsystem |
SDL_INIT_HAPTIC |
initialize haptic (force feedback) subsystem |
SDL_INIT_EVERYTHING |
initialize all of the above subsystems |
SDL_INIT_NOPARACHUTE |
don't catch fatal signals |
SDL_INIT_EVENTTHREAD |
run the event loop in a separate thread (not supported by all OSs) |
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.
You still need to call SDL_Quit() even if you close all open subsystems with SDL_QuitSubSystem().