mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-24 18:58:54 +01:00
parent
9e1a2bcb30
commit
e5a6ab436f
@ -32,8 +32,32 @@ var (
|
||||
procGameInputCreate = gameInput.NewProc("GameInputCreate")
|
||||
)
|
||||
|
||||
const _APP_LOCAL_DEVICE_ID_SIZE = 32
|
||||
|
||||
type _GameInputCallbackToken uint64
|
||||
|
||||
type _GameInputDeviceCapabilities int32
|
||||
|
||||
const (
|
||||
_GameInputDeviceCapabilityNone _GameInputDeviceCapabilities = 0x00000000
|
||||
_GameInputDeviceCapabilityAudio _GameInputDeviceCapabilities = 0x00000001
|
||||
_GameInputDeviceCapabilityPluginModule _GameInputDeviceCapabilities = 0x00000002
|
||||
_GameInputDeviceCapabilityPowerOff _GameInputDeviceCapabilities = 0x00000004
|
||||
_GameInputDeviceCapabilitySynchronization _GameInputDeviceCapabilities = 0x00000008
|
||||
_GameInputDeviceCapabilityWireless _GameInputDeviceCapabilities = 0x00000010
|
||||
)
|
||||
|
||||
type _GameInputDeviceFamily int32
|
||||
|
||||
const (
|
||||
_GameInputFamilyVirtual _GameInputDeviceFamily = -1
|
||||
_GameInputFamilyAggregate _GameInputDeviceFamily = 0
|
||||
_GameInputFamilyXboxOne _GameInputDeviceFamily = 1
|
||||
_GameInputFamilyXbox360 _GameInputDeviceFamily = 2
|
||||
_GameInputFamilyHid _GameInputDeviceFamily = 3
|
||||
_GameInputFamilyI8042 _GameInputDeviceFamily = 4
|
||||
)
|
||||
|
||||
type _GameInputDeviceStatus int32
|
||||
|
||||
const (
|
||||
@ -58,6 +82,19 @@ const (
|
||||
_GameInputBlockingEnumeration _GameInputEnumerationKind = 2
|
||||
)
|
||||
|
||||
type _GameInputFeedbackAxes int32
|
||||
|
||||
const (
|
||||
_GameInputFeedbackAxisNone _GameInputFeedbackAxes = 0x00000000
|
||||
_GameInputFeedbackAxisLinearX _GameInputFeedbackAxes = 0x00000001
|
||||
_GameInputFeedbackAxisLinearY _GameInputFeedbackAxes = 0x00000002
|
||||
_GameInputFeedbackAxisLinearZ _GameInputFeedbackAxes = 0x00000004
|
||||
_GameInputFeedbackAxisAngularX _GameInputFeedbackAxes = 0x00000008
|
||||
_GameInputFeedbackAxisAngularY _GameInputFeedbackAxes = 0x00000010
|
||||
_GameInputFeedbackAxisAngularZ _GameInputFeedbackAxes = 0x00000020
|
||||
_GameInputFeedbackAxisNormal _GameInputFeedbackAxes = 0x00000040
|
||||
)
|
||||
|
||||
type _GameInputGamepadButtons int32
|
||||
|
||||
const (
|
||||
@ -99,6 +136,320 @@ const (
|
||||
_GameInputKindAny _GameInputKind = 0x0FFFFFFF
|
||||
)
|
||||
|
||||
type _GameInputLabel int32
|
||||
|
||||
const (
|
||||
_GameInputLabelUnknown _GameInputLabel = -1
|
||||
_GameInputLabelNone _GameInputLabel = 0
|
||||
_GameInputLabelXboxGuide _GameInputLabel = 1
|
||||
_GameInputLabelXboxBack _GameInputLabel = 2
|
||||
_GameInputLabelXboxStart _GameInputLabel = 3
|
||||
_GameInputLabelXboxMenu _GameInputLabel = 4
|
||||
_GameInputLabelXboxView _GameInputLabel = 5
|
||||
_GameInputLabelXboxA _GameInputLabel = 7
|
||||
_GameInputLabelXboxB _GameInputLabel = 8
|
||||
_GameInputLabelXboxX _GameInputLabel = 9
|
||||
_GameInputLabelXboxY _GameInputLabel = 10
|
||||
_GameInputLabelXboxDPadUp _GameInputLabel = 11
|
||||
_GameInputLabelXboxDPadDown _GameInputLabel = 12
|
||||
_GameInputLabelXboxDPadLeft _GameInputLabel = 13
|
||||
_GameInputLabelXboxDPadRight _GameInputLabel = 14
|
||||
_GameInputLabelXboxLeftShoulder _GameInputLabel = 15
|
||||
_GameInputLabelXboxLeftTrigger _GameInputLabel = 16
|
||||
_GameInputLabelXboxLeftStickButton _GameInputLabel = 17
|
||||
_GameInputLabelXboxRightShoulder _GameInputLabel = 18
|
||||
_GameInputLabelXboxRightTrigger _GameInputLabel = 19
|
||||
_GameInputLabelXboxRightStickButton _GameInputLabel = 20
|
||||
_GameInputLabelXboxPaddle1 _GameInputLabel = 21
|
||||
_GameInputLabelXboxPaddle2 _GameInputLabel = 22
|
||||
_GameInputLabelXboxPaddle3 _GameInputLabel = 23
|
||||
_GameInputLabelXboxPaddle4 _GameInputLabel = 24
|
||||
_GameInputLabelLetterA _GameInputLabel = 25
|
||||
_GameInputLabelLetterB _GameInputLabel = 26
|
||||
_GameInputLabelLetterC _GameInputLabel = 27
|
||||
_GameInputLabelLetterD _GameInputLabel = 28
|
||||
_GameInputLabelLetterE _GameInputLabel = 29
|
||||
_GameInputLabelLetterF _GameInputLabel = 30
|
||||
_GameInputLabelLetterG _GameInputLabel = 31
|
||||
_GameInputLabelLetterH _GameInputLabel = 32
|
||||
_GameInputLabelLetterI _GameInputLabel = 33
|
||||
_GameInputLabelLetterJ _GameInputLabel = 34
|
||||
_GameInputLabelLetterK _GameInputLabel = 35
|
||||
_GameInputLabelLetterL _GameInputLabel = 36
|
||||
_GameInputLabelLetterM _GameInputLabel = 37
|
||||
_GameInputLabelLetterN _GameInputLabel = 38
|
||||
_GameInputLabelLetterO _GameInputLabel = 39
|
||||
_GameInputLabelLetterP _GameInputLabel = 40
|
||||
_GameInputLabelLetterQ _GameInputLabel = 41
|
||||
_GameInputLabelLetterR _GameInputLabel = 42
|
||||
_GameInputLabelLetterS _GameInputLabel = 43
|
||||
_GameInputLabelLetterT _GameInputLabel = 44
|
||||
_GameInputLabelLetterU _GameInputLabel = 45
|
||||
_GameInputLabelLetterV _GameInputLabel = 46
|
||||
_GameInputLabelLetterW _GameInputLabel = 47
|
||||
_GameInputLabelLetterX _GameInputLabel = 48
|
||||
_GameInputLabelLetterY _GameInputLabel = 49
|
||||
_GameInputLabelLetterZ _GameInputLabel = 50
|
||||
_GameInputLabelNumber0 _GameInputLabel = 51
|
||||
_GameInputLabelNumber1 _GameInputLabel = 52
|
||||
_GameInputLabelNumber2 _GameInputLabel = 53
|
||||
_GameInputLabelNumber3 _GameInputLabel = 54
|
||||
_GameInputLabelNumber4 _GameInputLabel = 55
|
||||
_GameInputLabelNumber5 _GameInputLabel = 56
|
||||
_GameInputLabelNumber6 _GameInputLabel = 57
|
||||
_GameInputLabelNumber7 _GameInputLabel = 58
|
||||
_GameInputLabelNumber8 _GameInputLabel = 59
|
||||
_GameInputLabelNumber9 _GameInputLabel = 60
|
||||
_GameInputLabelArrowUp _GameInputLabel = 61
|
||||
_GameInputLabelArrowUpRight _GameInputLabel = 62
|
||||
_GameInputLabelArrowRight _GameInputLabel = 63
|
||||
_GameInputLabelArrowDownRight _GameInputLabel = 64
|
||||
_GameInputLabelArrowDown _GameInputLabel = 65
|
||||
_GameInputLabelArrowDownLLeft _GameInputLabel = 66
|
||||
_GameInputLabelArrowLeft _GameInputLabel = 67
|
||||
_GameInputLabelArrowUpLeft _GameInputLabel = 68
|
||||
_GameInputLabelArrowUpDown _GameInputLabel = 69
|
||||
_GameInputLabelArrowLeftRight _GameInputLabel = 70
|
||||
_GameInputLabelArrowUpDownLeftRight _GameInputLabel = 71
|
||||
_GameInputLabelArrowClockwise _GameInputLabel = 72
|
||||
_GameInputLabelArrowCounterClockwise _GameInputLabel = 73
|
||||
_GameInputLabelArrowReturn _GameInputLabel = 74
|
||||
_GameInputLabelIconBranding _GameInputLabel = 75
|
||||
_GameInputLabelIconHome _GameInputLabel = 76
|
||||
_GameInputLabelIconMenu _GameInputLabel = 77
|
||||
_GameInputLabelIconCross _GameInputLabel = 78
|
||||
_GameInputLabelIconCircle _GameInputLabel = 79
|
||||
_GameInputLabelIconSquare _GameInputLabel = 80
|
||||
_GameInputLabelIconTriangle _GameInputLabel = 81
|
||||
_GameInputLabelIconStar _GameInputLabel = 82
|
||||
_GameInputLabelIconDPadUp _GameInputLabel = 83
|
||||
_GameInputLabelIconDPadDown _GameInputLabel = 84
|
||||
_GameInputLabelIconDPadLeft _GameInputLabel = 85
|
||||
_GameInputLabelIconDPadRight _GameInputLabel = 86
|
||||
_GameInputLabelIconDialClockwise _GameInputLabel = 87
|
||||
_GameInputLabelIconDialCounterClockwise _GameInputLabel = 88
|
||||
_GameInputLabelIconSliderLeftRight _GameInputLabel = 89
|
||||
_GameInputLabelIconSliderUpDown _GameInputLabel = 90
|
||||
_GameInputLabelIconWheelUpDown _GameInputLabel = 91
|
||||
_GameInputLabelIconPlus _GameInputLabel = 92
|
||||
_GameInputLabelIconMinus _GameInputLabel = 93
|
||||
_GameInputLabelIconSuspension _GameInputLabel = 94
|
||||
_GameInputLabelHome _GameInputLabel = 95
|
||||
_GameInputLabelGuide _GameInputLabel = 96
|
||||
_GameInputLabelMode _GameInputLabel = 97
|
||||
_GameInputLabelSelect _GameInputLabel = 98
|
||||
_GameInputLabelMenu _GameInputLabel = 99
|
||||
_GameInputLabelView _GameInputLabel = 100
|
||||
_GameInputLabelBack _GameInputLabel = 101
|
||||
_GameInputLabelStart _GameInputLabel = 102
|
||||
_GameInputLabelOptions _GameInputLabel = 103
|
||||
_GameInputLabelShare _GameInputLabel = 104
|
||||
_GameInputLabelUp _GameInputLabel = 105
|
||||
_GameInputLabelDown _GameInputLabel = 106
|
||||
_GameInputLabelLeft _GameInputLabel = 107
|
||||
_GameInputLabelRight _GameInputLabel = 108
|
||||
_GameInputLabelLB _GameInputLabel = 109
|
||||
_GameInputLabelLT _GameInputLabel = 110
|
||||
_GameInputLabelLSB _GameInputLabel = 111
|
||||
_GameInputLabelL1 _GameInputLabel = 112
|
||||
_GameInputLabelL2 _GameInputLabel = 113
|
||||
_GameInputLabelL3 _GameInputLabel = 114
|
||||
_GameInputLabelRB _GameInputLabel = 115
|
||||
_GameInputLabelRT _GameInputLabel = 116
|
||||
_GameInputLabelRSB _GameInputLabel = 117
|
||||
_GameInputLabelR1 _GameInputLabel = 118
|
||||
_GameInputLabelR2 _GameInputLabel = 119
|
||||
_GameInputLabelR3 _GameInputLabel = 120
|
||||
_GameInputLabelP1 _GameInputLabel = 121
|
||||
_GameInputLabelP2 _GameInputLabel = 122
|
||||
_GameInputLabelP3 _GameInputLabel = 123
|
||||
_GameInputLabelP4 _GameInputLabel = 124
|
||||
)
|
||||
|
||||
type _GameInputLocation int32
|
||||
|
||||
const (
|
||||
_GameInputLocationUnknown _GameInputLocation = -1
|
||||
_GameInputLocationChassis _GameInputLocation = 0
|
||||
_GameInputLocationDisplay _GameInputLocation = 1
|
||||
_GameInputLocationAxis _GameInputLocation = 2
|
||||
_GameInputLocationButton _GameInputLocation = 3
|
||||
_GameInputLocationSwitch _GameInputLocation = 4
|
||||
_GameInputLocationKey _GameInputLocation = 5
|
||||
_GameInputLocationTouchPad _GameInputLocation = 6
|
||||
)
|
||||
|
||||
type _GameInputRumbleMotors int32
|
||||
|
||||
const (
|
||||
_GameInputRumbleNone _GameInputRumbleMotors = 0x00000000
|
||||
_GameInputRumbleLowFrequency _GameInputRumbleMotors = 0x00000001
|
||||
_GameInputRumbleHighFrequency _GameInputRumbleMotors = 0x00000002
|
||||
_GameInputRumbleLeftTrigger _GameInputRumbleMotors = 0x00000004
|
||||
_GameInputRumbleRightTrigger _GameInputRumbleMotors = 0x00000008
|
||||
)
|
||||
|
||||
type _GameInputSwitchKind int32
|
||||
|
||||
const (
|
||||
_GameInputUnknownSwitchKind _GameInputSwitchKind = -1
|
||||
_GameInput2WaySwitch _GameInputSwitchKind = 0
|
||||
_GameInput4WaySwitch _GameInputSwitchKind = 1
|
||||
_GameInput8WaySwitch _GameInputSwitchKind = 2
|
||||
)
|
||||
|
||||
type _APP_LOCAL_DEVICE_ID struct {
|
||||
value [_APP_LOCAL_DEVICE_ID_SIZE]byte
|
||||
}
|
||||
|
||||
type _GameInputArcadeStickInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputControllerAxisInfo struct {
|
||||
mappedInputKinds _GameInputKind
|
||||
label _GameInputLabel
|
||||
isContinuous bool // Assume that the byte size of C++'s bool is 1.
|
||||
isNonlinear bool
|
||||
isQuantized bool
|
||||
hasRestValue bool
|
||||
restValue float32
|
||||
resolution uint64
|
||||
legacyDInputIndex uint16
|
||||
legacyHidIndex uint16
|
||||
rawReportIndex uint32
|
||||
inputReport *_GameInputRawDeviceReportInfo
|
||||
inputReportItem *_GameInputRawDeviceReportItemInfo
|
||||
}
|
||||
|
||||
type _GameInputControllerButtonInfo struct {
|
||||
mappedInputKinds _GameInputKind
|
||||
label _GameInputLabel
|
||||
legacyDInputIndex uint16
|
||||
legacyHidIndex uint16
|
||||
rawReportIndex uint32
|
||||
inputReport *_GameInputRawDeviceReportInfo
|
||||
inputReportItem *_GameInputRawDeviceReportItemInfo
|
||||
}
|
||||
|
||||
type _GameInputControllerSwitchInfo struct {
|
||||
mappedInputKinds _GameInputKind
|
||||
label _GameInputLabel
|
||||
positionLabels [9]_GameInputLabel
|
||||
kind _GameInputSwitchKind
|
||||
legacyDInputIndex uint16
|
||||
legacyHidIndex uint16
|
||||
rawReportIndex uint32
|
||||
inputReport *_GameInputRawDeviceReportInfo
|
||||
inputReportItem *_GameInputRawDeviceReportItemInfo
|
||||
}
|
||||
|
||||
type _GameInputDeviceInfo struct {
|
||||
infoSize uint32
|
||||
vendorId uint16
|
||||
productId uint16
|
||||
revisionNumber uint16
|
||||
interfaceNumber uint8
|
||||
collectionNumber uint8
|
||||
usage _GameInputUsage
|
||||
hardwareVersion _GameInputVersion
|
||||
firmwareVersion _GameInputVersion
|
||||
deviceId _APP_LOCAL_DEVICE_ID
|
||||
deviceRootId _APP_LOCAL_DEVICE_ID
|
||||
deviceFamily _GameInputDeviceFamily
|
||||
capabilities _GameInputDeviceCapabilities
|
||||
supportedInput _GameInputKind
|
||||
supportedRumbleMotors _GameInputRumbleMotors
|
||||
inputReportCount uint32
|
||||
outputReportCount uint32
|
||||
featureReportCount uint32
|
||||
controllerAxisCount uint32
|
||||
controllerButtonCount uint32
|
||||
controllerSwitchCount uint32
|
||||
touchPointCount uint32
|
||||
touchSensorCount uint32
|
||||
forceFeedbackMotorCount uint32
|
||||
hapticFeedbackMotorCount uint32
|
||||
deviceStringCount uint32
|
||||
deviceDescriptorSize uint32
|
||||
inputReportInfo *_GameInputRawDeviceReportInfo
|
||||
outputReportInfo *_GameInputRawDeviceReportInfo
|
||||
featureReportInfo *_GameInputRawDeviceReportInfo
|
||||
controllerAxisInfo *_GameInputControllerAxisInfo
|
||||
controllerButtonInfo *_GameInputControllerButtonInfo
|
||||
controllerSwitchInfo *_GameInputControllerSwitchInfo
|
||||
keyboardInfo *_GameInputKeyboardInfo
|
||||
mouseInfo *_GameInputMouseInfo
|
||||
touchSensorInfo *_GameInputTouchSensorInfo
|
||||
motionInfo *_GameInputMotionInfo
|
||||
arcadeStickInfo *_GameInputArcadeStickInfo
|
||||
flightStickInfo *_GameInputFlightStickInfo
|
||||
gamepadInfo *_GameInputGamepadInfo
|
||||
racingWheelInfo *_GameInputRacingWheelInfo
|
||||
uiNavigationInfo *_GameInputUiNavigationInfo
|
||||
forceFeedbackMotorInfo *_GameInputForceFeedbackMotorInfo
|
||||
hapticFeedbackMotorInfo *_GameInputHapticFeedbackMotorInfo
|
||||
displayName *_GameInputString
|
||||
deviceStrings *_GameInputString
|
||||
deviceDescriptorData unsafe.Pointer
|
||||
}
|
||||
|
||||
type _GameInputFlightStickInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputForceFeedbackMotorInfo struct {
|
||||
supportedAxes _GameInputFeedbackAxes
|
||||
location _GameInputLocation
|
||||
locationId uint32
|
||||
maxSimultaneousEffects uint32
|
||||
isConstantEffectSupported bool
|
||||
isRampEffectSupported bool
|
||||
isSineWaveEffectSupported bool
|
||||
isSquareWaveEffectSupported bool
|
||||
isTriangleWaveEffectSupported bool
|
||||
isSawtoothUpWaveEffectSupported bool
|
||||
isSawtoothDownWaveEffectSupported bool
|
||||
isSpringEffectSupported bool
|
||||
isFrictionEffectSupported bool
|
||||
isDamperEffectSupported bool
|
||||
isInertiaEffectSupported bool
|
||||
}
|
||||
|
||||
type _GameInputHapticFeedbackMotorInfo struct {
|
||||
mappedRumbleMotors _GameInputRumbleMotors
|
||||
location _GameInputLocation
|
||||
locationId uint32
|
||||
waveformCount uint32
|
||||
waveformInfo *_GameInputHapticWaveformInfo
|
||||
}
|
||||
|
||||
type _GameInputHapticWaveformInfo struct {
|
||||
usage _GameInputUsage
|
||||
isDurationSupported bool
|
||||
isIntensitySupported bool
|
||||
isRepeatSupported bool
|
||||
isRepeatDelaySupported bool
|
||||
defaultDuration uint64
|
||||
}
|
||||
|
||||
type _GameInputGamepadInfo struct {
|
||||
menuButtonLabel _GameInputLabel
|
||||
viewButtonLabel _GameInputLabel
|
||||
aButtonLabel _GameInputLabel
|
||||
bButtonLabel _GameInputLabel
|
||||
xButtonLabel _GameInputLabel
|
||||
yButtonLabel _GameInputLabel
|
||||
dpadUpLabel _GameInputLabel
|
||||
dpadDownLabel _GameInputLabel
|
||||
dpadLeftLabel _GameInputLabel
|
||||
dpadRightLabel _GameInputLabel
|
||||
leftShoulderButtonLabel _GameInputLabel
|
||||
rightShoulderButtonLabel _GameInputLabel
|
||||
leftThumbstickButtonLabel _GameInputLabel
|
||||
rightThumbstickButtonLabel _GameInputLabel
|
||||
}
|
||||
|
||||
type _GameInputGamepadState struct {
|
||||
buttons _GameInputGamepadButtons
|
||||
leftTrigger float32
|
||||
@ -109,6 +460,34 @@ type _GameInputGamepadState struct {
|
||||
rightThumbstickY float32
|
||||
}
|
||||
|
||||
type _GameInputKeyboardInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputMotionInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputMouseInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputRacingWheelInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputRawDeviceItemCollectionInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputRawDeviceReportInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputRawDeviceReportItemInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputRumbleParams struct {
|
||||
lowFrequency float32
|
||||
highFrequency float32
|
||||
@ -116,6 +495,32 @@ type _GameInputRumbleParams struct {
|
||||
rightTrigger float32
|
||||
}
|
||||
|
||||
type _GameInputString struct {
|
||||
sizeInBytes uint32
|
||||
codePointCount uint32
|
||||
data *byte
|
||||
}
|
||||
|
||||
type _GameInputTouchSensorInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputUiNavigationInfo struct {
|
||||
// TODO: Implement this
|
||||
}
|
||||
|
||||
type _GameInputUsage struct {
|
||||
page uint16
|
||||
id uint16
|
||||
}
|
||||
|
||||
type _GameInputVersion struct {
|
||||
major uint16
|
||||
minor uint16
|
||||
build uint16
|
||||
revision uint16
|
||||
}
|
||||
|
||||
func _GameInputCreate() (*_IGameInput, error) {
|
||||
var gameInput *_IGameInput
|
||||
r, _, _ := procGameInputCreate.Call(uintptr(unsafe.Pointer(&gameInput)))
|
||||
@ -215,6 +620,12 @@ type _IGameInputDevice_Vtbl struct {
|
||||
ReleaseExclusiveRawDeviceAccess uintptr
|
||||
}
|
||||
|
||||
func (i *_IGameInputDevice) GetDeviceInfo() *_GameInputDeviceInfo {
|
||||
r, _, _ := syscall.Syscall(i.vtbl.GetDeviceInfo, 1, uintptr(unsafe.Pointer(i)), 0, 0)
|
||||
// The lifetime of the returned value is the same as i.
|
||||
return (*_GameInputDeviceInfo)(unsafe.Pointer(r))
|
||||
}
|
||||
|
||||
func (i *_IGameInputDevice) SetRumbleState(params *_GameInputRumbleParams, timestamp uint64) {
|
||||
syscall.Syscall(i.vtbl.SetRumbleState, 3, uintptr(unsafe.Pointer(i)), uintptr(unsafe.Pointer(params)), uintptr(timestamp))
|
||||
runtime.KeepAlive(params)
|
||||
|
Loading…
Reference in New Issue
Block a user