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

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

Issue 2612333002: Allow VRDisplay to specify which frame the layer bounds should be updated at. (Closed)
Patch Set: rebase + address comments Created 3 years, 10 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
« no previous file with comments | « device/vr/vr_display_impl.cc ('k') | third_party/WebKit/Source/modules/vr/VRDisplay.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
3 // found in the LICENSE file.
3 4
4 module device.mojom; 5 module device.mojom;
5 6
6 import "mojo/common/time.mojom"; 7 import "mojo/common/time.mojom";
7 8
8 // A field of view, given by 4 degrees describing the view from a center point. 9 // A field of view, given by 4 degrees describing the view from a center point.
9 struct VRFieldOfView { 10 struct VRFieldOfView {
10 float upDegrees; 11 float upDegrees;
11 float downDegrees; 12 float downDegrees;
12 float leftDegrees; 13 float leftDegrees;
13 float rightDegrees; 14 float rightDegrees;
14 }; 15 };
15 16
16 // A display's position, orientation, velocity, and acceleration state at the 17 // A display's position, orientation, velocity, and acceleration state at the
17 // given timestamp. 18 // given timestamp.
18 struct VRPose { 19 struct VRPose {
19 double timestamp; 20 double timestamp;
20 array<float, 4>? orientation; 21 array<float, 4>? orientation;
21 array<float, 3>? position; 22 array<float, 3>? position;
22 array<float, 3>? angularVelocity; 23 array<float, 3>? angularVelocity;
23 array<float, 3>? linearVelocity; 24 array<float, 3>? linearVelocity;
24 array<float, 3>? angularAcceleration; 25 array<float, 3>? angularAcceleration;
25 array<float, 3>? linearAcceleration; 26 array<float, 3>? linearAcceleration;
26 // The poseIndex is a sequential ID that's incremented on each distinct
27 // getPose result, it may wrap around for long sessions.
28 uint32 poseIndex;
29 }; 27 };
30 28
31 struct VRDisplayCapabilities { 29 struct VRDisplayCapabilities {
32 bool hasOrientation; 30 bool hasOrientation;
33 bool hasPosition; 31 bool hasPosition;
34 bool hasExternalDisplay; 32 bool hasExternalDisplay;
35 bool canPresent; 33 bool canPresent;
36 }; 34 };
37 35
38 // Information about the optical properties for an eye in a VRDisplay. 36 // Information about the optical properties for an eye in a VRDisplay.
(...skipping 26 matching lines...) Expand all
65 float height; 63 float height;
66 }; 64 };
67 65
68 enum VRDisplayEventReason { 66 enum VRDisplayEventReason {
69 NONE = 0, 67 NONE = 0,
70 NAVIGATION = 1, 68 NAVIGATION = 1,
71 MOUNTED = 2, 69 MOUNTED = 2,
72 UNMOUNTED = 3 70 UNMOUNTED = 3
73 }; 71 };
74 72
75 // TODO(shaobo.yan@intel.com) : Add comments to describe these interfaces about how to use and where they live. 73 // TODO(shaobo.yan@intel.com) : Add comments to describe these interfaces about
74 // how to use and where they live.
76 interface VRService { 75 interface VRService {
77 // TODO(shaobo.yan@intel.com) : Use a factory function which took a VRServiceC lient 76 // TODO(shaobo.yan@intel.com) : Use a factory function which took a
78 // so we would never have a half-initialized VRService. 77 // VRServiceClient so we would never have a half-initialized VRService.
79 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices); 78 SetClient(VRServiceClient client) => (uint32 numberOfConnectedDevices);
80 // Inform the service that the page is listening for vrdisplayactivate events. 79 // Inform the service that the page is listening for vrdisplayactivate events.
81 SetListeningForActivate(bool listening); 80 SetListeningForActivate(bool listening);
82 }; 81 };
83 82
84 interface VRServiceClient { 83 interface VRServiceClient {
85 OnDisplayConnected(VRDisplay display, VRDisplayClient& request, VRDisplayInfo displayInfo); 84 OnDisplayConnected(VRDisplay display, VRDisplayClient& request,
85 VRDisplayInfo displayInfo);
86 }; 86 };
87 87
88 interface VRDisplay { 88 interface VRDisplay {
89 ResetPose(); 89 ResetPose();
90 90
91 RequestPresent(bool secureOrigin) => (bool success); 91 RequestPresent(bool secureOrigin) => (bool success);
92 ExitPresent(); 92 ExitPresent();
93 SubmitFrame(VRPose? pose); 93 SubmitFrame(VRPose? pose);
94 UpdateLayerBounds(VRLayerBounds leftBounds, VRLayerBounds rightBounds); 94 UpdateLayerBounds(int16 frameId, VRLayerBounds leftBounds,
95 VRLayerBounds rightBounds);
95 GetVRVSyncProvider(VRVSyncProvider& request); 96 GetVRVSyncProvider(VRVSyncProvider& request);
96 }; 97 };
97 98
98 interface VRVSyncProvider { 99 interface VRVSyncProvider {
99 GetVSync() => (VRPose? pose, mojo.common.mojom.TimeDelta time); 100 // The frameId maps a VSync to a frame arriving from the compositor. IDs will
101 // be reused after the frame arrives from the compositor. Negative IDs imply
102 // no mapping.
103 GetVSync() => (VRPose? pose, mojo.common.mojom.TimeDelta time, int16 frameId);
100 }; 104 };
101 105
102 interface VRDisplayClient { 106 interface VRDisplayClient {
103 OnChanged(VRDisplayInfo display); 107 OnChanged(VRDisplayInfo display);
104 OnExitPresent(); 108 OnExitPresent();
105 OnBlur(); 109 OnBlur();
106 OnFocus(); 110 OnFocus();
107 OnActivate(VRDisplayEventReason reason); 111 OnActivate(VRDisplayEventReason reason);
108 OnDeactivate(VRDisplayEventReason reason); 112 OnDeactivate(VRDisplayEventReason reason);
109 }; 113 };
OLDNEW
« no previous file with comments | « device/vr/vr_display_impl.cc ('k') | third_party/WebKit/Source/modules/vr/VRDisplay.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698