sdl3.c3l/sdl3_init.c3i

48 lines
2.3 KiB
Plaintext

module sdl3::sdl;
typedef InitFlags = uint;
const InitFlags INIT_AUDIO @builtin = 0x00000010;
const InitFlags INIT_VIDEO @builtin = 0x00000020;
const InitFlags INIT_JOYSTICK @builtin = 0x00000200;
const InitFlags INIT_HAPTIC @builtin = 0x00001000;
const InitFlags INIT_GAMEPAD @builtin = 0x00002000;
const InitFlags INIT_EVENTS @builtin = 0x00004000;
const InitFlags INIT_SENSOR @builtin = 0x00008000;
const InitFlags INIT_CAMERA @builtin = 0x00010000;
enum AppResult : inline CInt {
APP_CONTINUE,
APP_SUCCESS,
APP_FAILURE
}
alias AppInit_func = fn AppResult(void **appstate, int argc, char[]* argv);
alias AppIterate_func = fn AppResult(void *appstate);
alias AppEvent_func = fn AppResult(void *appstate, Event *event);
alias AppQuit_func = fn void(void *appstate, AppResult result);
extern fn bool init(InitFlags flags) @extern("SDL_Init");
extern fn bool init_sub_system(InitFlags flags) @extern("SDL_InitSubSystem");
extern fn void quit_sub_system(InitFlags flags) @extern("SDL_QuitSubSystem");
extern fn InitFlags was_init(InitFlags flags) @extern("SDL_WasInit");
extern fn void quit() @extern("SDL_Quit");
extern fn bool is_main_thread() @extern("SDL_IsMainThread");
alias MainThreadCallback = fn void(void *userdata);
extern fn bool run_on_main_thread(MainThreadCallback callback, void *userdata, bool wait_complete) @extern("SDL_RunOnMainThread");
extern fn bool set_app_metadata(ZString appname, ZString appversion, ZString appidentifier) @extern("SDL_SetAppMetadata");
extern fn bool set_app_metadata_property(ZString name, ZString value) @extern("SDL_SetAppMetadataProperty");
const ZString PROP_APP_METADATA_NAME_STRING @builtin = "SDL.app.metadata.name";
const ZString PROP_APP_METADATA_VERSION_STRING @builtin = "SDL.app.metadata.version";
const ZString PROP_APP_METADATA_IDENTIFIER_STRING @builtin = "SDL.app.metadata.identifier";
const ZString PROP_APP_METADATA_CREATOR_STRING @builtin = "SDL.app.metadata.creator";
const ZString PROP_APP_METADATA_COPYRIGHT_STRING @builtin = "SDL.app.metadata.copyright";
const ZString PROP_APP_METADATA_URL_STRING @builtin = "SDL.app.metadata.url";
const ZString PROP_APP_METADATA_TYPE_STRING @builtin = "SDL.app.metadata.type";
extern fn ZString get_app_metadata_property(ZString name) @extern("SDL_GetAppMetadataProperty");