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 | 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 | 
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().




