Exemple #1
0
// Gets a snapshot of the current keyboard state
func GetKeyState() []uint8 {
	var numkeys C.int
	array := C.SDL_GetKeyState(&numkeys)

	var ptr = make([]uint8, numkeys)

	*((**C.Uint8)(unsafe.Pointer(&ptr))) = array // TODO

	return ptr

}
Exemple #2
0
func IsKeyDown(key KeySym) bool {
	var numKeys C.int
	keys := C.SDL_GetKeyState(&numKeys)

	if int(key) < 0 || int(key) >= int(numKeys) {
		return false
	}

	// Keys is a byte array
	// XXX: Is this idiomatic for accessing C arrays?
	result := (*byte)(unsafe.Pointer(uintptr(unsafe.Pointer(keys)) + uintptr(key)))

	return *result != 0
}
Exemple #3
0
// Gets a snapshot of the current keyboard state
func GetKeyState() []uint8 {
	GlobalMutex.Lock()

	var numkeys C.int
	array := C.SDL_GetKeyState(&numkeys)

	var ptr = make([]uint8, numkeys)

	*((**C.Uint8)(unsafe.Pointer(&ptr))) = array // TODO

	GlobalMutex.Unlock()

	return ptr

}
Exemple #4
0
func GetKeyState() []uint8 {
	ks := C.SDL_GetKeyState(nil)
	ptr := (*[K_LAST]byte)(unsafe.Pointer(ks))
	res := ptr[0:K_LAST]
	return res
}