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

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

Issue 2729523002: Re-land^2 WebVR compositor bypass via BrowserMain context + mailbox (Closed)
Patch Set: Further cleanups Created 3 years, 9 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 module device.mojom; 5 module device.mojom;
6 6
7 import "mojo/common/time.mojom"; 7 import "mojo/common/time.mojom";
8 import "gpu/ipc/common/mailbox.mojom";
9 import "gpu/ipc/common/sync_token.mojom";
8 10
9 // A field of view, given by 4 degrees describing the view from a center point. 11 // A field of view, given by 4 degrees describing the view from a center point.
10 struct VRFieldOfView { 12 struct VRFieldOfView {
11 float upDegrees; 13 float upDegrees;
12 float downDegrees; 14 float downDegrees;
13 float leftDegrees; 15 float leftDegrees;
14 float rightDegrees; 16 float rightDegrees;
15 }; 17 };
16 18
17 // A display's position, orientation, velocity, and acceleration state at the 19 // A display's position, orientation, velocity, and acceleration state at the
18 // given timestamp. 20 // given timestamp.
19 struct VRPose { 21 struct VRPose {
20 double timestamp; 22 double timestamp;
21 array<float, 4>? orientation; 23 array<float, 4>? orientation;
22 array<float, 3>? position; 24 array<float, 3>? position;
23 array<float, 3>? angularVelocity; 25 array<float, 3>? angularVelocity;
24 array<float, 3>? linearVelocity; 26 array<float, 3>? linearVelocity;
25 array<float, 3>? angularAcceleration; 27 array<float, 3>? angularAcceleration;
26 array<float, 3>? linearAcceleration; 28 array<float, 3>? linearAcceleration;
29 int32 surfaceId;
30 int32 frameId;
31 gpu.mojom.Mailbox? mailbox;
32 // gpu.mojom.SyncToken syncToken;
27 }; 33 };
28 34
29 struct VRDisplayCapabilities { 35 struct VRDisplayCapabilities {
30 bool hasOrientation; 36 bool hasOrientation;
31 bool hasPosition; 37 bool hasPosition;
32 bool hasExternalDisplay; 38 bool hasExternalDisplay;
33 bool canPresent; 39 bool canPresent;
34 }; 40 };
35 41
36 // Information about the optical properties for an eye in a VRDisplay. 42 // Information about the optical properties for an eye in a VRDisplay.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices); 84 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices);
79 // Inform the service that the page is listening for vrdisplayactivate events. 85 // Inform the service that the page is listening for vrdisplayactivate events.
80 SetListeningForActivate(bool listening); 86 SetListeningForActivate(bool listening);
81 }; 87 };
82 88
83 interface VRServiceClient { 89 interface VRServiceClient {
84 OnDisplayConnected(VRDisplay display, VRDisplayClient& request, 90 OnDisplayConnected(VRDisplay display, VRDisplayClient& request,
85 VRDisplayInfo displayInfo); 91 VRDisplayInfo displayInfo);
86 }; 92 };
87 93
94 interface VRSubmitFrameClient {
95 OnSubmitFrameTransferred();
96 OnSubmitFrameRendered();
97 };
98
88 interface VRDisplay { 99 interface VRDisplay {
89 ResetPose(); 100 ResetPose();
90 101
91 RequestPresent(bool secureOrigin) => (bool success); 102 RequestPresent(bool secureOrigin) => (bool success);
92 ExitPresent(); 103 ExitPresent();
93 SubmitFrame(VRPose? pose); 104 SubmitFrame(VRPose? pose, VRSubmitFrameClient client);
94 UpdateLayerBounds(int16 frameId, VRLayerBounds leftBounds, 105 UpdateLayerBounds(int16 frameId, VRLayerBounds leftBounds,
95 VRLayerBounds rightBounds); 106 VRLayerBounds rightBounds);
96 GetVRVSyncProvider(VRVSyncProvider& request); 107 GetVRVSyncProvider(VRVSyncProvider& request);
97 }; 108 };
98 109
99 interface VRVSyncProvider { 110 interface VRVSyncProvider {
100 enum Status { SUCCESS, RETRY }; 111 enum Status { SUCCESS, RETRY };
101 112
102 // The frameId maps a VSync to a frame arriving from the compositor. IDs will 113 // The frameId maps a VSync to a frame arriving from the compositor. IDs will
103 // be reused after the frame arrives from the compositor. Negative IDs imply 114 // be reused after the frame arrives from the compositor. Negative IDs imply
104 // no mapping. 115 // no mapping.
105 GetVSync() => (VRPose? pose, mojo.common.mojom.TimeDelta time, int16 frameId, 116 GetVSync() => (VRPose? pose, mojo.common.mojom.TimeDelta time, int16 frameId,
106 Status status); 117 Status status);
107 }; 118 };
108 119
109 interface VRDisplayClient { 120 interface VRDisplayClient {
110 OnChanged(VRDisplayInfo display); 121 OnChanged(VRDisplayInfo display);
111 OnExitPresent(); 122 OnExitPresent();
112 OnBlur(); 123 OnBlur();
113 OnFocus(); 124 OnFocus();
114 OnActivate(VRDisplayEventReason reason); 125 OnActivate(VRDisplayEventReason reason);
115 OnDeactivate(VRDisplayEventReason reason); 126 OnDeactivate(VRDisplayEventReason reason);
116 }; 127 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698