Files
Odin/vendor/sdl2/sdl_system.odin

129 lines
3.8 KiB
Odin

package sdl2
import "core:c"
when ODIN_OS == .Windows {
@(ignore_duplicates)
foreign import lib "SDL2.lib"
} else {
@(ignore_duplicates)
foreign import lib "system:SDL2"
}
// General
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
IsTablet :: proc() -> bool ---
/* Functions used by iOS application delegates to notify SDL about state changes */
OnApplicationWillTerminate :: proc() ---
OnApplicationDidReceiveMemoryWarning :: proc() ---
OnApplicationWillResignActive :: proc() ---
OnApplicationDidEnterBackground :: proc() ---
OnApplicationWillEnterForeground :: proc() ---
OnApplicationDidBecomeActive :: proc() ---
// iPhoneOS
OnApplicationDidChangeStatusBarOrientation :: proc() ---
}
// Windows & WinRT
WindowsMessageHook :: proc "c" (userdata: rawptr, hWnd: rawptr, message: c.uint, wParam: u64, lParam: i64)
IDirect3DDevice9 :: struct {}
ID3D11Device :: struct {}
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
SetWindowsMessageHook :: proc(callback: WindowsMessageHook, userdata: rawptr) ---
Direct3D9GetAdapterIndex :: proc(displayIndex: c.int) -> c.int ---
RenderGetD3D9Device :: proc(renderer: ^Renderer) -> ^IDirect3DDevice9 ---
RenderGetD3D11Device :: proc(renderer: ^Renderer) -> ^ID3D11Device ---
DXGIGetOutputInfo :: proc(displayIndex: c.int, adapterIndex: ^c.int, outputIndex: ^c.int) -> bool ---
}
WinRT_Path :: enum c.int {
/** \brief The installed app's root directory.
Files here are likely to be read-only. */
INSTALLED_LOCATION,
/** \brief The app's local data store. Files may be written here */
LOCAL_FOLDER,
/** \brief The app's roaming data store. Unsupported on Windows Phone.
Files written here may be copied to other machines via a network
connection.
*/
ROAMING_FOLDER,
/** \brief The app's temporary data store. Unsupported on Windows Phone.
Files written here may be deleted at any time. */
TEMP_FOLDER,
}
WinRT_DeviceFamily :: enum {
/** \brief Unknown family */
UNKNOWN,
/** \brief Desktop family*/
DESKTOP,
/** \brief Mobile family (for example smartphone) */
MOBILE,
/** \brief XBox family */
XBOX,
}
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
WinRTGetFSPathUNICODE :: proc(pathType: WinRT_Path) -> ^u16 ---
WinRTGetFSPathUTF8 :: proc(pathType: WinRT_Path) -> cstring ---
WinRTGetDeviceFamily :: proc() -> WinRT_DeviceFamily ---
}
// Linux
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
LinuxSetThreadPriority :: proc(threadID: i64, priority: c.int) -> c.int ---
}
// iOS
iOSSetAnimationCallback :: iPhoneSetAnimationCallback
iOSSetEventPump :: iPhoneSetEventPump
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
iPhoneSetAnimationCallback :: proc(window: ^Window, interval: c.int, callback: proc "c" (rawptr), callbackParam: rawptr) -> c.int ---
iPhoneSetEventPump :: proc(enabled: bool) ---
}
// Android
ANDROID_EXTERNAL_STORAGE_READ :: 0x01
ANDROID_EXTERNAL_STORAGE_WRITE :: 0x02
@(default_calling_convention="c", link_prefix="SDL_")
foreign lib {
AndroidGetJNIEnv :: proc() -> rawptr ---
AndroidGetActivity :: proc() -> rawptr ---
GetAndroidSDKVersion :: proc() -> c.int ---
IsAndroidTV :: proc() -> bool ---
IsChromebook :: proc() -> bool ---
IsDeXMode :: proc() -> bool ---
AndroidBackButton :: proc() ---
AndroidGetInternalStoragePath :: proc() -> cstring ---
AndroidGetExternalStorageState :: proc() -> c.int ---
AndroidGetExternalStoragePath :: proc() -> cstring ---
AndroidRequestPermission :: proc(permission: cstring) -> bool ---
AndroidShowToast :: proc(message: cstring, duration, gravity, xoffset, yoffset: c.int) -> c.int ---
}