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

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

Issue 2729523002: Re-land^2 WebVR compositor bypass via BrowserMain context + mailbox (Closed)
Patch Set: Comments only, add explanations from review thread. 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_holder.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;
klausw 2017/03/10 02:49:32 Not my change, this is from rebase: commit f4b1ca
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;
27 }; 29 };
28 30
29 struct VRDisplayCapabilities { 31 struct VRDisplayCapabilities {
30 bool hasOrientation; 32 bool hasOrientation;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices); 80 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices);
79 // Inform the service that the page is listening for vrdisplayactivate events. 81 // Inform the service that the page is listening for vrdisplayactivate events.
80 SetListeningForActivate(bool listening); 82 SetListeningForActivate(bool listening);
81 }; 83 };
82 84
83 interface VRServiceClient { 85 interface VRServiceClient {
84 OnDisplayConnected(VRDisplay display, VRDisplayClient& request, 86 OnDisplayConnected(VRDisplay display, VRDisplayClient& request,
85 VRDisplayInfo displayInfo); 87 VRDisplayInfo displayInfo);
86 }; 88 };
87 89
90 interface VRSubmitFrameClient {
91 OnSubmitFrameTransferred();
92 OnSubmitFrameRendered();
93 };
94
88 interface VRDisplay { 95 interface VRDisplay {
89 ResetPose(); 96 ResetPose();
90 97
91 RequestPresent(bool secureOrigin) => (bool success); 98 RequestPresent(bool secureOrigin, VRSubmitFrameClient client) => (bool success );
92 ExitPresent(); 99 ExitPresent();
93 SubmitFrame(VRPose? pose); 100 SubmitFrame(int16 frameId, gpu.mojom.MailboxHolder mailboxHolder);
94 UpdateLayerBounds(int16 frameId, VRLayerBounds leftBounds, 101 UpdateLayerBounds(int16 frameId, VRLayerBounds leftBounds,
95 VRLayerBounds rightBounds); 102 VRLayerBounds rightBounds, int16 sourceWidth,
103 int16 sourceHeight);
96 GetVRVSyncProvider(VRVSyncProvider& request); 104 GetVRVSyncProvider(VRVSyncProvider& request);
97 }; 105 };
98 106
99 interface VRVSyncProvider { 107 interface VRVSyncProvider {
100 enum Status { SUCCESS, RETRY }; 108 enum Status { SUCCESS, CLOSING };
101 109
102 // The frameId maps a VSync to a frame arriving from the compositor. IDs will 110 // 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 111 // be reused after the frame arrives from the compositor. Negative IDs imply
104 // no mapping. 112 // no mapping.
105 GetVSync() => (VRPose? pose, mojo.common.mojom.TimeDelta time, int16 frameId, 113 GetVSync() => (VRPose? pose, mojo.common.mojom.TimeDelta time, int16 frameId,
106 Status status); 114 Status status);
107 }; 115 };
108 116
109 interface VRDisplayClient { 117 interface VRDisplayClient {
110 OnChanged(VRDisplayInfo display); 118 OnChanged(VRDisplayInfo display);
111 OnExitPresent(); 119 OnExitPresent();
112 OnBlur(); 120 OnBlur();
113 OnFocus(); 121 OnFocus();
114 OnActivate(VRDisplayEventReason reason); 122 OnActivate(VRDisplayEventReason reason);
115 OnDeactivate(VRDisplayEventReason reason); 123 OnDeactivate(VRDisplayEventReason reason);
116 }; 124 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698