sdlInit function
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_AUDIO
: audio subsystem; automatically initializes the events subsystemSDL_INIT_VIDEO
: video subsystem; automatically initializes the events subsystem, should be initialized on the main thread.SDL_INIT_JOYSTICK
: joystick subsystem; automatically initializes the events subsystemSDL_INIT_HAPTIC
: haptic (force feedback) subsystemSDL_INIT_GAMEPAD
: gamepad subsystem; automatically initializes the joystick subsystemSDL_INIT_EVENTS
: events subsystemSDL_INIT_SENSOR
: sensor subsystem; automatically initializes the events subsystemSDL_INIT_CAMERA
: camera subsystem; automatically initializes the events 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.
Consider reporting some basic metadata about your application before calling SDL_Init, using either SDL_SetAppMetadata() or SDL_SetAppMetadataProperty().
\param flags subsystem initialization flags. \returns true on success or false on failure; call SDL_GetError() for more information.
\since This function is available since SDL 3.1.3.
\sa SDL_SetAppMetadata \sa SDL_SetAppMetadataProperty \sa SDL_InitSubSystem \sa SDL_Quit \sa SDL_SetMainReady \sa SDL_WasInit
extern SDL_DECLSPEC bool SDLCALL SDL_Init(SDL_InitFlags flags)
Implementation
bool sdlInit(int flags) {
final sdlInitLookupFunction = libSdl3.lookupFunction<
Uint8 Function(Uint32 flags), int Function(int flags)>('SDL_Init');
return sdlInitLookupFunction(flags) == 1;
}