Working example
This commit is contained in:
101
sdl3/sdl3_system.odin
Normal file
101
sdl3/sdl3_system.odin
Normal file
@@ -0,0 +1,101 @@
|
||||
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 ---
|
||||
}
|
||||
Reference in New Issue
Block a user