Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / content / common / vr_service.mojom
blob2d81ec70a11571e6758028b0ea075ffeb7f726d0
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 module content;
7 struct VRVector3 {
8   float x;
9   float y;
10   float z;
13 struct VRVector4 {
14   float x;
15   float y;
16   float z;
17   float w;
20 struct VRRect {
21   int32 x;
22   int32 y;
23   int32 width;
24   int32 height;
27 // A field of view, given by 4 degrees describing the view from a center point.
28 struct VRFieldOfView {
29   float upDegrees;
30   float downDegrees;
31   float leftDegrees;
32   float rightDegrees;
35 // A sensor's position, orientation, velocity, and acceleration state at the
36 // given timestamp.
37 struct VRSensorState {
38   double timestamp;
39   uint32 frameIndex;
40   VRVector4? orientation;
41   VRVector3? position;
42   VRVector3? angularVelocity;
43   VRVector3? linearVelocity;
44   VRVector3? angularAcceleration;
45   VRVector3? linearAcceleration;
48 // Information about the optical properties for an eye in an HMD.
49 struct VREyeParameters {
50   VRFieldOfView minimumFieldOfView;
51   VRFieldOfView maximumFieldOfView;
52   VRFieldOfView recommendedFieldOfView;
53   VRVector3 eyeTranslation;
54   VRRect renderRect;
57 // Information pertaining to Head Mounted Displays.
58 struct VRHMDInfo {
59   VREyeParameters leftEye;
60   VREyeParameters rightEye;
63 struct VRDeviceInfo {
64    uint32 index;
65    string deviceName;
66    VRHMDInfo? hmdInfo;
69 interface VRService {
70   GetDevices() => (array<VRDeviceInfo> devices);
71   GetSensorState(uint32 index) => (VRSensorState state);
72   ResetSensor(uint32 index);