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

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

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

Powered by Google App Engine
This is Rietveld 408576698