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

Side by Side Diff: third_party/WebKit/Source/modules/vr/VRDisplay.h

Issue 2624633002: Remove Sync GetPose VRService call, implement VRVSyncProvider (Closed)
Patch Set: oops 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #ifndef VRDisplay_h 5 #ifndef VRDisplay_h
6 #define VRDisplay_h 6 #define VRDisplay_h
7 7
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/dom/FrameRequestCallback.h" 9 #include "core/dom/FrameRequestCallback.h"
10 #include "core/events/EventTarget.h" 10 #include "core/events/EventTarget.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 double depthNear() const { return m_depthNear; } 65 double depthNear() const { return m_depthNear; }
66 double depthFar() const { return m_depthFar; } 66 double depthFar() const { return m_depthFar; }
67 67
68 void setDepthNear(double value) { m_depthNear = value; } 68 void setDepthNear(double value) { m_depthNear = value; }
69 void setDepthFar(double value) { m_depthFar = value; } 69 void setDepthFar(double value) { m_depthFar = value; }
70 70
71 VREyeParameters* getEyeParameters(const String&); 71 VREyeParameters* getEyeParameters(const String&);
72 72
73 int requestAnimationFrame(FrameRequestCallback*); 73 int requestAnimationFrame(FrameRequestCallback*);
74 void cancelAnimationFrame(int id); 74 void cancelAnimationFrame(int id);
75 void serviceScriptedAnimations(double monotonicAnimationStartTime);
76 75
77 ScriptPromise requestPresent(ScriptState*, const HeapVector<VRLayer>& layers); 76 ScriptPromise requestPresent(ScriptState*, const HeapVector<VRLayer>& layers);
78 ScriptPromise exitPresent(ScriptState*); 77 ScriptPromise exitPresent(ScriptState*);
79 78
80 HeapVector<VRLayer> getLayers(); 79 HeapVector<VRLayer> getLayers();
81 80
82 void submitFrame(); 81 void submitFrame();
83 82
84 Document* document(); 83 Document* document();
85 84
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 void OnPresentChange(); 123 void OnPresentChange();
125 124
126 // VRDisplayClient 125 // VRDisplayClient
127 void OnChanged(device::mojom::blink::VRDisplayInfoPtr) override; 126 void OnChanged(device::mojom::blink::VRDisplayInfoPtr) override;
128 void OnExitPresent() override; 127 void OnExitPresent() override;
129 void OnBlur() override; 128 void OnBlur() override;
130 void OnFocus() override; 129 void OnFocus() override;
131 void OnActivate(device::mojom::blink::VRDisplayEventReason) override; 130 void OnActivate(device::mojom::blink::VRDisplayEventReason) override;
132 void OnDeactivate(device::mojom::blink::VRDisplayEventReason) override; 131 void OnDeactivate(device::mojom::blink::VRDisplayEventReason) override;
133 132
133 void OnVSync(device::mojom::blink::VRPosePtr,
134 mojo::common::mojom::blink::TimeDeltaPtr);
135 void ConnectVSyncProvider();
136
134 ScriptedAnimationController& ensureScriptedAnimationController(Document*); 137 ScriptedAnimationController& ensureScriptedAnimationController(Document*);
135 138
136 Member<NavigatorVR> m_navigatorVR; 139 Member<NavigatorVR> m_navigatorVR;
137 unsigned m_displayId; 140 unsigned m_displayId = 0;
138 String m_displayName; 141 String m_displayName;
139 bool m_isConnected; 142 bool m_isConnected = false;
140 bool m_isPresenting; 143 bool m_isPresenting = false;
141 bool m_isValidDeviceForPresenting; 144 bool m_isValidDeviceForPresenting = true;
142 bool m_canUpdateFramePose;
143 Member<VRDisplayCapabilities> m_capabilities; 145 Member<VRDisplayCapabilities> m_capabilities;
144 Member<VRStageParameters> m_stageParameters; 146 Member<VRStageParameters> m_stageParameters;
145 Member<VREyeParameters> m_eyeParametersLeft; 147 Member<VREyeParameters> m_eyeParametersLeft;
146 Member<VREyeParameters> m_eyeParametersRight; 148 Member<VREyeParameters> m_eyeParametersRight;
147 device::mojom::blink::VRPosePtr m_framePose; 149 device::mojom::blink::VRPosePtr m_framePose;
148 VRLayer m_layer; 150 VRLayer m_layer;
149 double m_depthNear; 151 double m_depthNear = 0.01;
150 double m_depthFar; 152 double m_depthFar = 10000.0;
151 153
152 void dispose(); 154 void dispose();
153 155
154 TaskRunnerTimer<VRDisplay> m_fullscreenCheckTimer; 156 TaskRunnerTimer<VRDisplay> m_fullscreenCheckTimer;
155 String m_fullscreenOrigWidth; 157 String m_fullscreenOrigWidth;
156 String m_fullscreenOrigHeight; 158 String m_fullscreenOrigHeight;
157 gpu::gles2::GLES2Interface* m_contextGL; 159 gpu::gles2::GLES2Interface* m_contextGL = nullptr;
158 Member<WebGLRenderingContextBase> m_renderingContext; 160 Member<WebGLRenderingContextBase> m_renderingContext;
159 161
160 Member<ScriptedAnimationController> m_scriptedAnimationController; 162 Member<ScriptedAnimationController> m_scriptedAnimationController;
161 bool m_animationCallbackRequested; 163 bool m_pendingRaf = false;
162 bool m_inAnimationFrame; 164 bool m_inAnimationFrame = false;
163 bool m_displayBlurred; 165 bool m_displayBlurred = false;
164 bool m_reenteredFullscreen; 166 bool m_reenteredFullscreen = false;
167 double m_timebase = -1;
165 168
166 device::mojom::blink::VRDisplayPtr m_display; 169 device::mojom::blink::VRDisplayPtr m_display;
167 170
168 mojo::Binding<device::mojom::blink::VRDisplayClient> m_binding; 171 mojo::Binding<device::mojom::blink::VRDisplayClient> m_displayClientBinding;
172 device::mojom::blink::VRVSyncProviderPtr m_vrVSyncProvider;
169 173
170 HeapDeque<Member<ScriptPromiseResolver>> m_pendingPresentResolvers; 174 HeapDeque<Member<ScriptPromiseResolver>> m_pendingPresentResolvers;
171 }; 175 };
172 176
173 using VRDisplayVector = HeapVector<Member<VRDisplay>>; 177 using VRDisplayVector = HeapVector<Member<VRDisplay>>;
174 178
175 enum class PresentationResult { 179 enum class PresentationResult {
176 Requested = 0, 180 Requested = 0,
177 Success = 1, 181 Success = 1,
178 SuccessAlreadyPresenting = 2, 182 SuccessAlreadyPresenting = 2,
179 VRDisplayCannotPresent = 3, 183 VRDisplayCannotPresent = 3,
180 PresentationNotSupportedByDisplay = 4, 184 PresentationNotSupportedByDisplay = 4,
181 VRDisplayNotFound = 5, 185 VRDisplayNotFound = 5,
182 NotInitiatedByUserGesture = 6, 186 NotInitiatedByUserGesture = 6,
183 InvalidNumberOfLayers = 7, 187 InvalidNumberOfLayers = 7,
184 InvalidLayerSource = 8, 188 InvalidLayerSource = 8,
185 LayerSourceMissingWebGLContext = 9, 189 LayerSourceMissingWebGLContext = 9,
186 InvalidLayerBounds = 10, 190 InvalidLayerBounds = 10,
187 ServiceInactive = 11, 191 ServiceInactive = 11,
188 RequestDenied = 12, 192 RequestDenied = 12,
189 PresentationResultMax, // Must be last member of enum. 193 PresentationResultMax, // Must be last member of enum.
190 }; 194 };
191 195
192 void ReportPresentationResult(PresentationResult); 196 void ReportPresentationResult(PresentationResult);
193 197
194 } // namespace blink 198 } // namespace blink
195 199
196 #endif // VRDisplay_h 200 #endif // VRDisplay_h
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/vr/resources/mock-vr-service.js ('k') | third_party/WebKit/Source/modules/vr/VRDisplay.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698