summaryrefslogtreecommitdiffstats
path: root/dom/webidl/VRServiceTest.webidl
blob: f27f072e6bf4830362ede0237b28d327d5842038 (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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
 * You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This WebIDL is just for WebVR testing.
 */

[Pref="dom.vr.puppet.enabled",
 HeaderFile="mozilla/dom/VRServiceTest.h",
 Exposed=Window]
interface VRMockDisplay {
  void create();
  attribute boolean capPosition;
  attribute boolean capOrientation;
  attribute boolean capPresent;
  attribute boolean capExternal;
  attribute boolean capAngularAcceleration;
  attribute boolean capLinearAcceleration;
  attribute boolean capStageParameters;
  attribute boolean capMountDetection;
  attribute boolean capPositionEmulated;
  void setEyeFOV(VREye eye,
                 double upDegree, double rightDegree,
                 double downDegree, double leftDegree);
  void setEyeOffset(VREye eye, double offsetX,
                    double offsetY, double offsetZ);
  void setEyeResolution(unsigned long renderWidth,
                        unsigned long renderHeight);
  void setConnected(boolean connected);
  void setMounted(boolean mounted);
  void setStageSize(double width, double height);
  [Throws] void setSittingToStandingTransform(Float32Array sittingToStandingTransform);
  [Throws] void setPose(Float32Array? position, Float32Array? linearVelocity,
                        Float32Array? linearAcceleration, Float32Array? orientation,
                        Float32Array? angularVelocity, Float32Array? angularAcceleration);
};

[Pref="dom.vr.puppet.enabled",
 HeaderFile="mozilla/dom/VRServiceTest.h",
 Exposed=Window]
interface VRMockController {
  void create();
  void clear();
  attribute GamepadHand hand;
  attribute boolean capPosition;
  attribute boolean capOrientation;
  attribute boolean capAngularAcceleration;
  attribute boolean capLinearAcceleration;
  attribute unsigned long axisCount;
  attribute unsigned long buttonCount;
  attribute unsigned long hapticCount;
  [Throws] void setPose(Float32Array? position, Float32Array? linearVelocity,
                        Float32Array? linearAcceleration, Float32Array? orientation,
                        Float32Array? angularVelocity, Float32Array? angularAcceleration);
  void setButtonPressed(unsigned long buttonIdx, boolean pressed);
  void setButtonTouched(unsigned long buttonIdx, boolean touched);
  void setButtonTrigger(unsigned long buttonIdx, double trigger);
  void setAxisValue(unsigned long axisIdx, double value);
};

[Pref="dom.vr.puppet.enabled",
 HeaderFile="mozilla/dom/VRServiceTest.h",
 Exposed=Window]
interface VRServiceTest {
  VRMockDisplay getVRDisplay();
  [Throws] VRMockController getVRController(unsigned long controllerIdx);
  [Throws] Promise<void> run();
  [Throws] Promise<void> reset();
  void commit();
  void end();
  void clearAll();
  void timeout(unsigned long duration);
  void wait(unsigned long duration);
  void waitSubmit();
  void waitPresentationStart();
  void waitPresentationEnd();
  [Throws]
  void waitHapticIntensity(unsigned long controllerIdx, unsigned long hapticIdx, double intensity);
  void captureFrame();
  void acknowledgeFrame();
  void rejectFrame();
  void startTimer();
  void stopTimer();
};