mirror of
https://github.com/odin-lang/Odin.git
synced 2026-05-29 15:15:08 +00:00
42 lines
1.3 KiB
Odin
42 lines
1.3 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"
|
|
}
|
|
|
|
Thread :: struct {}
|
|
|
|
threadID :: distinct c.ulong
|
|
TLSID :: distinct c.uint
|
|
|
|
ThreadPriority :: enum c.int {
|
|
LOW,
|
|
NORMAL,
|
|
HIGH,
|
|
TIME_CRITICAL,
|
|
}
|
|
|
|
ThreadFunction :: proc "c" (data: rawptr) -> c.int
|
|
|
|
@(default_calling_convention="c", link_prefix="SDL_")
|
|
foreign lib {
|
|
CreateThread :: proc(fn: ThreadFunction, name: cstring, data: rawptr) -> ^Thread ---
|
|
CreateThreadWithStackSize :: proc(fn: ThreadFunction, name: cstring, stacksize: c.size_t, data: rawptr) -> ^Thread ---
|
|
GetThreadName :: proc(thread: ^Thread) -> cstring ---
|
|
ThreadID :: proc() -> threadID ---
|
|
GetThreadID :: proc(thread: ^Thread) -> threadID ---
|
|
SetThreadPriority :: proc(priority: ThreadPriority) -> c.int ---
|
|
WaitThread :: proc(thread: ^Thread, status: ^c.int) ---
|
|
DetachThread :: proc(thread: ^Thread) ---
|
|
TLSCreate :: proc() -> TLSID ---
|
|
TLSGet :: proc(id: TLSID) -> rawptr ---
|
|
TLSSet :: proc(id: TLSID, value: rawptr, destructor: proc "c" (rawptr)) -> c.int ---
|
|
TLSCleanup :: proc() ---
|
|
}
|