Module init

Available on crate feature dep_sdl3 only.
Expand description

All SDL programs need to initialize the library before starting to work with it.

Almost everything can simply call SDL_Init() near startup, with a handful of flags to specify subsystems to touch. These are here to make sure SDL does not even attempt to touch low-level pieces of the operating system that you don’t intend to use. For example, you might be using SDL for video and input but chose an external library for audio, and in this case you would just need to leave off the SDL_INIT_AUDIO flag to make sure that external library has complete control.

Most apps, when terminating, should call SDL_Quit(). This will clean up (nearly) everything that SDL might have allocated, and crucially, it’ll make sure that the display’s resolution is back to what the user expects if you had previously changed it for your game.

SDL3 apps are strongly encouraged to call SDL_SetAppMetadata() at startup to fill in details about the program. This is completely optional, but it helps in small ways (we can provide an About dialog box for the macOS menu, we can name the app in the system’s audio mixer, etc). Those that want to provide a lot of information should look at the more-detailed SDL_SetAppMetadataProperty().

Structs§

SDL_AppResult
Return values for optional main callbacks.

Constants§

SDL_APP_CONTINUE
Value that requests that the app continue from the main callbacks.
SDL_APP_FAILURE
Value that requests termination with error from the main callbacks.
SDL_APP_SUCCESS
Value that requests termination with success from the main callbacks.
SDL_INIT_AUDIO
SDL_INIT_AUDIO implies SDL_INIT_EVENTS
SDL_INIT_CAMERA
SDL_INIT_CAMERA implies SDL_INIT_EVENTS
SDL_INIT_EVENTS
SDL_INIT_GAMEPAD
SDL_INIT_GAMEPAD implies SDL_INIT_JOYSTICK
SDL_INIT_HAPTIC
SDL_INIT_JOYSTICK
SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS, should be initialized on the same thread as SDL_INIT_VIDEO on Windows if you don’t set [SDL_HINT_JOYSTICK_THREAD]
SDL_INIT_SENSOR
SDL_INIT_SENSOR implies SDL_INIT_EVENTS
SDL_INIT_VIDEO
SDL_INIT_VIDEO implies SDL_INIT_EVENTS, should be initialized on the main thread
SDL_PROP_APP_METADATA_COPYRIGHT_STRING
SDL_PROP_APP_METADATA_CREATOR_STRING
SDL_PROP_APP_METADATA_IDENTIFIER_STRING
SDL_PROP_APP_METADATA_NAME_STRING
SDL_PROP_APP_METADATA_TYPE_STRING
SDL_PROP_APP_METADATA_URL_STRING
SDL_PROP_APP_METADATA_VERSION_STRING

Functions§

SDL_GetAppMetadataProperty
Get metadata about your app.
SDL_Init
Initialize the SDL library.
SDL_InitSubSystem
Compatibility function to initialize the SDL library.
SDL_IsMainThread
Return whether this is the main thread.
SDL_Quit
Clean up all initialized subsystems.
SDL_QuitSubSystem
Shut down specific SDL subsystems.
SDL_RunOnMainThread
Call a function on the main thread during event processing.
SDL_SetAppMetadata
Specify basic metadata about your app.
SDL_SetAppMetadataProperty
Specify metadata about your app through a set of properties.
SDL_WasInit
Get a mask of the specified subsystems which are currently initialized.

Type Aliases§

SDL_AppEvent_func
Function pointer typedef for [SDL_AppEvent].
SDL_AppInit_func
Function pointer typedef for [SDL_AppInit].
SDL_AppIterate_func
Function pointer typedef for [SDL_AppIterate].
SDL_AppQuit_func
Function pointer typedef for [SDL_AppQuit].
SDL_InitFlags
Initialization flags for SDL_Init and/or SDL_InitSubSystem
SDL_MainThreadCallback
Callback run on the main thread.