101 lines
3.5 KiB
Odin
101 lines
3.5 KiB
Odin
package sdl3
|
|
|
|
import "core:c"
|
|
|
|
// Windows
|
|
|
|
import win32 "core:sys/windows"
|
|
|
|
WindowsMessageHook :: #type proc(userdata: rawptr, msg: ^win32.MSG) -> bool
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_")
|
|
foreign lib {
|
|
SetWindowsMessageHook :: proc(callback: WindowsMessageHook, userdata: rawptr) ---
|
|
GetDirect3D9AdapterIndex :: proc(displayID: DisplayID) -> c.int ---
|
|
GetDXGIOutputInfo :: proc(displayID: DisplayID, adapterIndex: ^c.int, outputIndex: ^c.int) -> bool ---
|
|
}
|
|
|
|
// UNIX
|
|
|
|
X11EventHook :: #type proc "c" (userdata: rawptr, xevent: rawptr /* ^xlib.XEvent */) -> bool
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_")
|
|
foreign lib {
|
|
SetX11EventHook :: proc(callback: X11EventHook, userdata: rawptr) ---
|
|
}
|
|
|
|
// Linux
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_")
|
|
foreign lib {
|
|
SetLinuxThreadPriority :: proc(threadID: Sint64, priority: c.int) -> bool ---
|
|
SetLinuxThreadPriorityAndPolicy :: proc(threadID: Sint64, sdlPriority: c.int, schedPolicy: c.int) -> bool ---
|
|
}
|
|
|
|
// iOS
|
|
|
|
iOSAnimationCallback :: #type proc "c" (userdata: rawptr)
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_")
|
|
foreign lib {
|
|
SetiOSAnimationCallback :: proc(window: ^Window, interval: c.int, callback: iOSAnimationCallback, callbackParam: rawptr) -> bool ---
|
|
SetiOSEventPump :: proc(enabled: bool) ---
|
|
}
|
|
|
|
// Android
|
|
|
|
RequestAndroidPermissionCallback :: #type proc "c" (userdata: rawptr, permission: cstring, granted: bool)
|
|
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_", require_results)
|
|
foreign lib {
|
|
GetAndroidJNIEnv :: proc() -> rawptr ---
|
|
GetAndroidActivity :: proc() -> rawptr ---
|
|
GetAndroidSDKVersion :: proc() -> c.int ---
|
|
IsChromebook :: proc() -> bool ---
|
|
IsDeXMode :: proc() -> bool ---
|
|
SendAndroidBackButton :: proc() ---
|
|
GetAndroidInternalStoragePath :: proc() -> cstring ---
|
|
GetAndroidExternalStorageState :: proc() -> Uint32 ---
|
|
GetAndroidExternalStoragePath :: proc() -> cstring ---
|
|
GetAndroidCachePath :: proc() -> cstring ---
|
|
RequestAndroidPermission :: proc(permission: cstring, cb: RequestAndroidPermissionCallback, userdata: rawptr) -> bool ---
|
|
ShowAndroidToast :: proc(message: cstring, duration: c.int, gravity: c.int, xoffset, yoffset: c.int) -> bool ---
|
|
SendAndroidMessage :: proc(command: Uint32, param: c.int) -> bool ---
|
|
}
|
|
|
|
// General
|
|
|
|
Sandbox :: enum c.int {
|
|
NONE = 0,
|
|
UNKNOWN_CONTAINER,
|
|
FLATPAK,
|
|
SNAP,
|
|
MACOS,
|
|
}
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_", require_results)
|
|
foreign lib {
|
|
IsTablet :: proc() -> bool ---
|
|
IsTV :: proc() -> bool ---
|
|
GetSandbox :: proc() -> Sandbox ---
|
|
OnApplicationWillTerminate :: proc() ---
|
|
OnApplicationDidReceiveMemoryWarning :: proc() ---
|
|
OnApplicationWillEnterBackground :: proc() ---
|
|
OnApplicationDidEnterBackground :: proc() ---
|
|
OnApplicationWillEnterForeground :: proc() ---
|
|
OnApplicationDidEnterForeground :: proc() ---
|
|
OnApplicationDidChangeStatusBarOrientation :: proc() ---
|
|
}
|
|
|
|
|
|
// GDK
|
|
|
|
XTaskQueueHandle :: distinct rawptr
|
|
XUserHandle :: distinct rawptr
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_", require_results)
|
|
foreign lib {
|
|
GetGDKTaskQueue :: proc(outTaskQueue: ^XTaskQueueHandle) -> bool ---
|
|
GetGDKDefaultUser :: proc(outUserHandle: ^XUserHandle) -> bool ---
|
|
} |