Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Side by Side Diff: device/vr/vr_service.mojom

Issue 2584343002: WIP: working copy-no-compositor path
Patch Set: StatTracker destructor, delete old magic numbers, mojo export Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 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 // fou nd in the LICENSE file. 2 // Use of this source code is governed by a BSD-style license that can be // fou nd in the LICENSE file.
3 3
4 module device.mojom; 4 module device.mojom;
5 5
6 // A field of view, given by 4 degrees describing the view from a center point. 6 // A field of view, given by 4 degrees describing the view from a center point.
7 struct VRFieldOfView { 7 struct VRFieldOfView {
8 float upDegrees; 8 float upDegrees;
9 float downDegrees; 9 float downDegrees;
10 float leftDegrees; 10 float leftDegrees;
11 float rightDegrees; 11 float rightDegrees;
12 }; 12 };
13 13
14 // A display's position, orientation, velocity, and acceleration state at the 14 // A display's position, orientation, velocity, and acceleration state at the
15 // given timestamp. 15 // given timestamp.
16 struct VRPose { 16 struct VRPose {
17 double timestamp; 17 double timestamp;
18 double ts_frameStart;
19 double ts_getPose;
20 double ts_gotPose;
21 double ts_submit;
18 array<float, 4>? orientation; 22 array<float, 4>? orientation;
19 array<float, 3>? position; 23 array<float, 3>? position;
20 array<float, 3>? angularVelocity; 24 array<float, 3>? angularVelocity;
21 array<float, 3>? linearVelocity; 25 array<float, 3>? linearVelocity;
22 array<float, 3>? angularAcceleration; 26 array<float, 3>? angularAcceleration;
23 array<float, 3>? linearAcceleration; 27 array<float, 3>? linearAcceleration;
24 // The poseIndex is a sequential ID that's incremented on each distinct 28 // The poseIndex is a sequential ID that's incremented on each distinct
25 // getPose result, it may wrap around for long sessions. 29 // getPose result, it may wrap around for long sessions. Always positive
30 // and nonzero.
26 uint32 poseIndex; 31 uint32 poseIndex;
27 }; 32 };
28 33
29 struct VRDisplayCapabilities { 34 struct VRDisplayCapabilities {
30 bool hasOrientation; 35 bool hasOrientation;
31 bool hasPosition; 36 bool hasPosition;
32 bool hasExternalDisplay; 37 bool hasExternalDisplay;
33 bool canPresent; 38 bool canPresent;
34 }; 39 };
35 40
(...skipping 18 matching lines...) Expand all
54 VRStageParameters? stageParameters; 59 VRStageParameters? stageParameters;
55 VREyeParameters leftEye; 60 VREyeParameters leftEye;
56 VREyeParameters rightEye; 61 VREyeParameters rightEye;
57 }; 62 };
58 63
59 struct VRLayerBounds { 64 struct VRLayerBounds {
60 float left; 65 float left;
61 float top; 66 float top;
62 float width; 67 float width;
63 float height; 68 float height;
69 uint32 forPoseIndex;
64 }; 70 };
65 71
66 enum VRDisplayEventReason { 72 enum VRDisplayEventReason {
67 NONE = 0, 73 NONE = 0,
68 NAVIGATION = 1, 74 NAVIGATION = 1,
69 MOUNTED = 2, 75 MOUNTED = 2,
70 UNMOUNTED = 3 76 UNMOUNTED = 3
71 }; 77 };
72 78
73 // TODO(shaobo.yan@intel.com) : Add comments to describe these interfaces about how to use and where they live. 79 // TODO(shaobo.yan@intel.com) : Add comments to describe these interfaces about how to use and where they live.
74 interface VRService { 80 interface VRService {
75 // TODO(shaobo.yan@intel.com) : Use a factory function which took a VRServiceC lient 81 // TODO(shaobo.yan@intel.com) : Use a factory function which took a VRServiceC lient
76 // so we would never have a half-initialized VRService. 82 // so we would never have a half-initialized VRService.
77 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices); 83 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices);
78 // Inform the service that the page is listening for vrdisplayactivate events. 84 // Inform the service that the page is listening for vrdisplayactivate events.
79 SetListeningForActivate(bool listening); 85 SetListeningForActivate(bool listening);
80 }; 86 };
81 87
82 interface VRServiceClient { 88 interface VRServiceClient {
83 OnDisplayConnected(VRDisplay display, VRDisplayClient& request, VRDisplayInfo displayInfo); 89 OnDisplayConnected(VRDisplay display, VRDisplayClient& request, VRDisplayInfo displayInfo);
84 }; 90 };
85 91
92 interface VRPoseClient {
93 OnPoseReceived(VRPose? pose);
94 };
95
86 interface VRDisplay { 96 interface VRDisplay {
87 [Sync] 97 GetPose(VRPoseClient poseClient);
88 GetPose() => (VRPose? pose);
89 ResetPose(); 98 ResetPose();
90 99
91 RequestPresent(bool secureOrigin) => (bool success); 100 RequestPresent(bool secureOrigin) => (bool success);
92 ExitPresent(); 101 ExitPresent();
93 SubmitFrame(VRPose? pose); 102 SubmitFrame(int32 surfaceHandle, VRPose? pose) => (int32 surfaceHandle, uint32 poseIndex, double renderMs);
94 UpdateLayerBounds(VRLayerBounds leftBounds, VRLayerBounds rightBounds); 103 UpdateLayerBounds(VRLayerBounds leftBounds, VRLayerBounds rightBounds);
104
105 GetSurfaceHandle(int32 width, int32 height) => (int32 surfaceHandle);
95 }; 106 };
96 107
97 interface VRDisplayClient { 108 interface VRDisplayClient {
98 OnChanged(VRDisplayInfo display); 109 OnChanged(VRDisplayInfo display);
99 OnExitPresent(); 110 OnExitPresent();
100 OnBlur(); 111 OnBlur();
101 OnFocus(); 112 OnFocus();
102 OnActivate(VRDisplayEventReason reason); 113 OnActivate(VRDisplayEventReason reason);
103 OnDeactivate(VRDisplayEventReason reason); 114 OnDeactivate(VRDisplayEventReason reason);
104 }; 115 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698