aboutsummaryrefslogtreecommitdiff
path: root/vendor/sdl3/sdl3_mutex.odin
blob: 8067473f356489bf56f3bc11c89fd638bdfa8274 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package sdl3

Mutex     :: struct {}
RWLock    :: struct {}
Semaphore :: struct {}

@(default_calling_convention="c", link_prefix="SDL_", require_results)
foreign lib {
	CreateMutex             :: proc() -> ^Mutex ---
	LockMutex               :: proc(mutex: ^Mutex) ---
	TryLockMutex            :: proc(mutex: ^Mutex) -> bool ---
	UnlockMutex             :: proc(mutex: ^Mutex) ---
	DestroyMutex            :: proc(mutex: ^Mutex) ---

	CreateRWLock            :: proc() -> ^RWLock ---
	LockRWLockForReading    :: proc(rwlock: ^RWLock) ---
	LockRWLockForWriting    :: proc(rwlock: ^RWLock) ---
	TryLockRWLockForReading :: proc(rwlock: ^RWLock) -> bool ---
	TryLockRWLockForWriting :: proc(rwlock: ^RWLock) -> bool ---
	UnlockRWLock            :: proc(rwlock: ^RWLock) ---
	DestroyRWLock           :: proc(rwlock: ^RWLock) ---

	CreateSemaphore         :: proc(initial_value: Uint32) -> ^Semaphore ---
	DestroySemaphore        :: proc(sem: ^Semaphore) ---
	GetSemaphoreValue       :: proc(sem: ^Semaphore) -> Uint32 ---
	SignalSemaphore         :: proc(sem: ^Semaphore) ---
	TryWaitSemaphore        :: proc(sem: ^Semaphore) -> bool ---
	WaitSemaphore           :: proc(sem: ^Semaphore) ---
	WaitSemaphoreTimeout    :: proc(sem: ^Semaphore, timeout_ms: Sint32) ---
}