sdl3-bindgen-sys
Safe HaskellNone
LanguageGHC2021

SDL3.Sys.Bindgen.Main.FunPtr

Synopsis

Documentation

sDL_SetMainReady :: FunPtr (IO ()) Source #

Circumvent failure of SDL_Init() when not using SDL_main() as an entry point.

This function is defined in SDL_main.h, along with the preprocessor rule to redefine main() as SDL_main(). Thus to ensure that your main() function will not be changed it is necessary to define SDL_MAIN_HANDLED before including SDL.h.

Thread safety
This function is not thread safe.
See also
SDL_Init
C declaration
SDL_SetMainReady, defined at SDL3/SDL_main.h 549:34

Since: 3.2.0

sDL_RunApp :: FunPtr (CInt -> Ptr (Elem (IncompleteArray (Ptr CChar))) -> SDL_main_func -> Ptr Void -> IO CInt) Source #

Initializes and launches an SDL application, by doing platform-specific initialization before calling your mainFunction and cleanups after it returns, if that is needed for a specific platform, otherwise it just calls mainFunction.

You can use this if you want to use your own main() implementation without using SDL_main (like when using SDL_MAIN_HANDLED). When using this, you do not need SDL_SetMainReady().

If argv is NULL, SDL will provide command line arguments, either by querying the OS for them if possible, or supplying a filler array if not.

argc
the argc parameter from the application's main() function, or 0 if the platform's main-equivalent has no argc.
argv
the argv parameter from the application's main() function, or NULL if the platform's main-equivalent has no argv.
mainFunction
your SDL app's C-style main(). NOT the function you're calling this from! Its name doesn't matter; it doesn't literally have to be main.
reserved
should be NULL (reserved for future use, will probably be platform-specific then).
Returns
the return value from mainFunction: 0 on success, otherwise failure; SDL_GetError() might have more information on the failure.
Thread safety
Generally this is called once, near startup, from the process's initial thread.
C declaration
SDL_RunApp, defined at SDL3/SDL_main.h 582:33

Since: 3.2.0

sDL_EnterAppMainCallbacks :: FunPtr (CInt -> Ptr (Elem (IncompleteArray (Ptr CChar))) -> SDL_AppInit_func -> SDL_AppIterate_func -> SDL_AppEvent_func -> SDL_AppQuit_func -> IO CInt) Source #

An entry point for SDL's use in SDL_MAIN_USE_CALLBACKS.

Generally, you should not call this function directly. This only exists to hand off work into SDL as soon as possible, where it has a lot more control and functionality available, and make the inline code in SDL_main.h as small as possible.

Not all platforms use this, it's actual use is hidden in a magic header-only library, and you should not call this directly unless you really know what you're doing.

argc
standard Unix main argc.
argv
standard Unix main argv.
appinit
the application's SDL_AppInit function.
appiter
the application's SDL_AppIterate function.
appevent
the application's SDL_AppEvent function.
appquit
the application's SDL_AppQuit function.
Returns
standard Unix main return value.
Thread safety
It is not safe to call this anywhere except as the only function call in SDL_main.
C declaration
SDL_EnterAppMainCallbacks, defined at SDL3/SDL_main.h 609:33

Since: 3.2.0

sDL_GDKSuspendComplete :: FunPtr (IO ()) Source #

Callback from the application to let the suspend continue.

This should be called from an event watch in response to an SDL_EVENT_DID_ENTER_BACKGROUND event.

When using SDL_Render, your event watch should be added after creating the SDL_Renderer; this allows the timing of the D3D12 command queue suspension to execute in the correct order.

When using SDL_GPU, this should be called after calling SDL_GDKSuspendGPU.

If you're writing your own D3D12 renderer, this should be called after calling ID3D12CommandQueue::SuspendX.

This function is only needed for Xbox GDK support; all other platforms will do nothing and set an "unsupported" error message.

Thread safety
This function is not thread safe.
See also
SDL_AddEventWatch
C declaration
SDL_GDKSuspendComplete, defined at SDL3/SDL_main.h 688:34

Since: 3.2.0