mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-08 08:38:51 +00:00
Embed the SDL2 libraries into vendor:sdl2
This commit is contained in:
Vendored
+54
@@ -0,0 +1,54 @@
|
||||
package sdl2
|
||||
|
||||
import "core:c"
|
||||
|
||||
when ODIN_OS == "windows" do foreign import lib "SDL2.lib"
|
||||
when ODIN_OS == "linux" do foreign import lib "system:SDL2"
|
||||
when ODIN_OS == "darwin" do foreign import lib "system:SDL2"
|
||||
when ODIN_OS == "freebsd" do foreign import lib "system:SDL2"
|
||||
|
||||
Keysym :: struct {
|
||||
scancode: Scancode, /**< SDL physical key code - see ::SDL_Scancode for details */
|
||||
sym: KeyCode, /**< SDL virtual key code - see ::SDL_KeyCode for details */
|
||||
mod: Keymod, /**< current key modifiers */
|
||||
unused: u32,
|
||||
}
|
||||
|
||||
|
||||
@(default_calling_convention="c", link_prefix="SDL_")
|
||||
foreign lib {
|
||||
GetKeyboardFocus :: proc() -> ^Window ---
|
||||
GetKeyboardState :: proc(numkeys: ^c.int) -> [^]u8 ---
|
||||
GetKeyFromScancode :: proc(scancode: Scancode) -> KeyCode ---
|
||||
GetScancodeFromKey :: proc(key: KeyCode) -> Scancode ---
|
||||
GetScancodeName :: proc(scancode: Scancode) -> cstring ---
|
||||
GetScancodeFromName :: proc(name: cstring) -> Scancode ---
|
||||
GetKeyName :: proc(key: KeyCode) -> cstring ---
|
||||
GetKeyFromName :: proc(name: cstring) -> KeyCode ---
|
||||
StartTextInput :: proc() ---
|
||||
IsTextInputActive :: proc() -> bool ---
|
||||
StopTextInput :: proc() ---
|
||||
SetTextInputRect :: proc(rect: ^Rect) ---
|
||||
HasScreenKeyboardSupport:: proc() -> bool ---
|
||||
IsScreenKeyboardShown :: proc(window: ^Window) -> bool ---
|
||||
}
|
||||
|
||||
GetKeyboardStateAsSlice :: proc "c" () -> []u8 {
|
||||
numkeys: c.int;
|
||||
keys := GetKeyboardState(&numkeys);
|
||||
if keys != nil {
|
||||
return keys[:numkeys];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
GetModState :: #force_inline proc "c" () -> Keymod { return transmute(Keymod)u16(SDL_GetModState()) }
|
||||
SetModState :: #force_inline proc "c" (modstate: Keymod) { SDL_SetModState(c.int(transmute(u16)modstate)) }
|
||||
|
||||
@(default_calling_convention="c")
|
||||
@(private="file")
|
||||
foreign lib {
|
||||
SDL_GetModState :: proc() -> c.int ---
|
||||
SDL_SetModState :: proc(modstate: c.int) ---
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user