Files
cocos-engine/@types/pal/input.d.ts
QingliWang 6a8f53b186 Add features for XR developement. (#12413)
* Change Android mainloop, add global config and template projects for XR.

* Change gfx/gles device's process flow for XR, working with other PRs, waiting.

* Change gfx/Vulkan device's process flow for XR, working with other PRs, waiting.

* Change render process for XR.

* Develop XR input and events.

* Develop 3D feature of UI widgets and raycast effect for XR.

Co-authored-by: fqamic <fqamic@vip.qq.com>
2022-08-22 16:34:45 +08:00

362 lines
11 KiB
TypeScript

declare module 'pal/input' {
type InputSourceButton = import('pal/input/input-source').InputSourceButton;
type InputSourceStick = import('pal/input/input-source').InputSourceStick;
type InputSourceDpad = import('pal/input/input-source').InputSourceDpad;
type InputSourcePosition = import('pal/input/input-source').InputSourcePosition;
type InputSourceOrientation = import('pal/input/input-source').InputSourceOrientation;
type TouchCallback = (res: import('cocos/input/types').EventTouch) => void;
/**
* Class designed for touch input.
*/
export class TouchInputSource {
/**
* Register the touch event callback.
*/
public on (eventType: import('cocos/input/types/event-enum').InputEventType, callback: TouchCallback, target?: any);
}
type MouseCallback = (res: import('cocos/input/types').EventMouse) => void;
/**
* Class designed for mouse input.
*/
export class MouseInputSource {
/**
* Register the mouse event callback.
*/
public on (eventType: import('cocos/input/types/event-enum').InputEventType, callback: MouseCallback, target?: any);
public dispatchMouseDownEvent? (nativeMouseEvent: any);
public dispatchMouseMoveEvent? (nativeMouseEvent: any);
public dispatchMouseUpEvent? (nativeMouseEvent: any);
public dispatchScrollEvent? (nativeMouseEvent: any);
}
type KeyboardCallback = (res: import('cocos/input/types').EventKeyboard) => void;
/**
* Class Designed for keyboard input.
*/
export class KeyboardInputSource {
/**
* Register the keyboard event callback.
*/
public on (eventType: import('cocos/input/types/event-enum').InputEventType, callback: KeyboardCallback, target?: any);
public dispatchKeyboardDownEvent? (nativeKeyboardEvent: any);
public dispatchKeyboardUpEvent? (nativeKeyboardEvent: any);
}
type GamepadCallback = (res: import('cocos/input/types/event').EventGamepad) => void;
/**
* Class designed for gamepad input
*/
export class GamepadInputDevice {
/**
* @engineInternal
*/
public static _init ();
/**
* @engineInternal
*/
public static _on (eventType: import('cocos/input/types/event-enum').InputEventType, cb: GamepadCallback, target?: any);
public static all: GamepadInputDevice[];
/**
* @en The gamepad device id
* @zh 手柄设备 id
*/
public get deviceId (): number;
/**
* @en whether the gamepad is connected
* @zh 手柄是否处于连接状态
*/
public get connected (): boolean;
/**
* @en The control button in the north direction which is generally the button Y
* @zh 处于北向的控制按键,一般是按键 Y
*/
public get buttonNorth (): InputSourceButton;
/**
* @en The control button in the east direction which is generally the button B
* @zh 处于东向的控制按键,一般是按键 B
*/
public get buttonEast (): InputSourceButton;
/**
* @en The control button in the west direction which is generally the button X
* @zh 处于西向的控制按键,一般是按键 X
*/
public get buttonWest (): InputSourceButton;
/**
* @en The control button in the south direction which is generally the button A
* @zh 处于南向的控制按键,一般是按键 A
*/
public get buttonSouth (): InputSourceButton;
/**
* @en The button L1
* @zh 按键 L1
*/
public get buttonL1 (): InputSourceButton;
/**
* @en The button L2
* @zh 按键 L2
*/
public get buttonL2 (): InputSourceButton;
/**
* @en The button L3
* @zh 按键 L3
*/
public get buttonL3 (): InputSourceButton;
/**
* @en The button R1
* @zh 按键 R1
*/
public get buttonR1 (): InputSourceButton;
/**
* @en The button R2
* @zh 按键 R2
*/
public get buttonR2 (): InputSourceButton;
/**
* @en The button R3
* @zh 按键 R3
*/
public get buttonR3 (): InputSourceButton;
// public get buttonTouchPad (): InputSourceButton;
// public get buttonHome (): InputSourceButton;
/**
* @en The button Share
* @zh 分享按键
*/
public get buttonShare (): InputSourceButton;
/**
* @en The button Options
* @zh 选项按键
*/
public get buttonOptions (): InputSourceButton;
/**
* @en The dpad buttons
* @zh 方向按键
*/
public get dpad (): InputSourceDpad;
/**
* @en The left stick
* @zh 左摇杆
*/
public get leftStick (): InputSourceStick;
/**
* @en The right stick
* @zh 右摇杆
*/
public get rightStick (): InputSourceStick;
/**
* @en The button Start
* @zh 开始按键
*/
public get buttonStart (): InputSourceButton;
}
type AccelerometerCallback = (res: import('cocos/input/types').EventAcceleration) => void;
/**
* Class designed for accelerometer input
*/
export class AccelerometerInputSource {
/**
* Asynchronously start the accelerometer.
* TODO: return a promise.
*/
public start ();
/**
* Stop the accelerometer.
* TODO: return a promise.
*/
public stop ();
/**
* Set interval of the accelerometer callback.
* The interval is in mile seconds.
* @param intervalInMileSeconds interval in mile seconds.
*/
public setInterval (intervalInMileSeconds: number);
/**
* Register the acceleration event callback.
*/
public on (eventType: import('cocos/input/types/event-enum').InputEventType, callback: AccelerometerCallback, target?: any);
}
type HandleCallback = (res: import('cocos/input/types').EventHandle) => void;
/**
* Class designed for handle input.
*/
export class HandleInputDevice {
/**
* Register the handle event callback.
* @engineInternal
*/
public _on (eventType: import('cocos/input/types/event-enum').InputEventType, callback: HandleCallback, target?: any);
/**
* @en The control button in the north direction which is generally the button Y
* @zh 处于北向的控制按键,一般是按键 Y
*/
public get buttonNorth (): InputSourceButton;
/**
* @en The control button in the east direction which is generally the button B
* @zh 处于东向的控制按键,一般是按键 B
*/
public get buttonEast (): InputSourceButton;
/**
* @en The control button in the west direction which is generally the button X
* @zh 处于西向的控制按键,一般是按键 X
*/
public get buttonWest (): InputSourceButton;
/**
* @en The control button in the south direction which is generally the button A
* @zh 处于南向的控制按键,一般是按键 A
*/
public get buttonSouth (): InputSourceButton;
/**
* @en The button Left Trigger
* @zh 左扳机按键
*/
public get buttonTriggerLeft (): InputSourceButton;
/**
* @en The button Right Trigger
* @zh 右扳机按键
*/
public get buttonTriggerRight (): InputSourceButton;
/**
* @en The grab Left Trigger
* @zh 左扳机扣动
*/
public get triggerLeft (): InputSourceButton;
/**
* @en The grab Right Trigger
* @zh 右扳机扣动
*/
public get triggerRight (): InputSourceButton;
/**
* @en The grab Left Grip
* @zh 左手柄握住
*/
public get gripLeft (): InputSourceButton;
/**
* @en The grab Right Grip
* @zh 右手柄握住
*/
public get gripRight (): InputSourceButton;
/**
* @en The left stick
* @zh 左摇杆
*/
public get leftStick (): InputSourceStick;
/**
* @en The right stick
* @zh 右摇杆
*/
public get rightStick (): InputSourceStick;
/**
* @en The button Left Stick
* @zh 左摇杆按键
*/
public get buttonLeftStick (): InputSourceButton;
/**
* @en The button Right Stick
* @zh 右摇杆按键
*/
public get buttonRightStick (): InputSourceButton;
/**
* @en The position Left hand
* @zh 左手位置
*/
public get handLeftPosition (): InputSourcePosition;
/**
* @en The orientation Left hand
* @zh 左手方向
*/
public get handLeftOrientation (): InputSourceOrientation;
/**
* @en The position Right hand
* @zh 右手位置
*/
public get handRightPosition (): InputSourcePosition;
/**
* @en The orientation Right hand
* @zh 右手方向
*/
public get handRightOrientation (): InputSourceOrientation;
/**
* @en The position Left aim
* @zh 左射线位置
*/
public get aimLeftPosition (): InputSourcePosition;
/**
* @en The orientation Left aim
* @zh 左射线方向
*/
public get aimLeftOrientation (): InputSourceOrientation;
/**
* @en The position Right aim
* @zh 右射线位置
*/
public get aimRightPosition (): InputSourcePosition;
/**
* @en The orientation Right aim
* @zh 右射线方向
*/
public get aimRightOrientation (): InputSourceOrientation;
}
type HMDCallback = (res: import('cocos/input/types').EventHMD) => void;
/**
* Class designed for HMD input.
*/
export class HMDInputDevice {
/**
* Register the hmd event callback.
* @engineInternal
*/
public _on (eventType: import('cocos/input/types/event-enum').InputEventType, callback: HMDCallback, target?: any);
/**
* @en The position Left view
* @zh 左窗口位置
*/
public get viewLeftPosition (): InputSourcePosition;
/**
* @en The orientation Left view
* @zh 左窗口方向
*/
public get viewLeftOrientation (): InputSourceOrientation;
/**
* @en The position Right view
* @zh 右窗口位置
*/
public get viewRightPosition (): InputSourcePosition;
/**
* @en The orientation Right view
* @zh 右窗口方向
*/
public get viewRightOrientation (): InputSourceOrientation;
/**
* @en The position Middle head
* @zh 头部中间位置
*/
public get headMiddlePosition (): InputSourcePosition;
/**
* @en The orientation Middle head
* @zh 头部中间方向
*/
public get headMiddleOrientation (): InputSourceOrientation;
}
}