| OLD | NEW |
| 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 CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ | 5 #ifndef CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ |
| 6 #define CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ | 6 #define CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ |
| 7 | 7 |
| 8 #include <jni.h> | 8 #include <jni.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 127 void SetContentCssSize(float width, float height, float dpr); | 127 void SetContentCssSize(float width, float height, float dpr); |
| 128 void SetUiCssSize(float width, float height, float dpr); | 128 void SetUiCssSize(float width, float height, float dpr); |
| 129 | 129 |
| 130 void ContentFrameWasResized(bool width_changed); | 130 void ContentFrameWasResized(bool width_changed); |
| 131 | 131 |
| 132 void ForceExitVr(); | 132 void ForceExitVr(); |
| 133 | 133 |
| 134 void ProcessUIGesture(std::unique_ptr<blink::WebInputEvent> event); | 134 void ProcessUIGesture(std::unique_ptr<blink::WebInputEvent> event); |
| 135 void ProcessContentGesture(std::unique_ptr<blink::WebInputEvent> event); | 135 void ProcessContentGesture(std::unique_ptr<blink::WebInputEvent> event); |
| 136 | 136 |
| 137 // TODO(mthiesse): Find a better place for these functions to live. |
| 137 static device::mojom::VRPosePtr VRPosePtrFromGvrPose(gvr::Mat4f head_mat); | 138 static device::mojom::VRPosePtr VRPosePtrFromGvrPose(gvr::Mat4f head_mat); |
| 139 static device::mojom::VRDisplayInfoPtr CreateVRDisplayInfo( |
| 140 gvr::GvrApi* gvr_api, |
| 141 gvr::Sizei compositor_size, |
| 142 uint32_t device_id); |
| 138 | 143 |
| 139 private: | 144 private: |
| 140 ~VrShell() override; | 145 ~VrShell() override; |
| 141 void PostToGlThreadWhenReady(const base::Closure& task); | 146 void PostToGlThreadWhenReady(const base::Closure& task); |
| 142 | 147 |
| 143 // content::WebContentsObserver implementation. | 148 // content::WebContentsObserver implementation. |
| 144 void RenderViewHostChanged(content::RenderViewHost* old_host, | 149 void RenderViewHostChanged(content::RenderViewHost* old_host, |
| 145 content::RenderViewHost* new_host) override; | 150 content::RenderViewHost* new_host) override; |
| 146 void MainFrameWasResized(bool width_changed) override; | 151 void MainFrameWasResized(bool width_changed) override; |
| 147 void WebContentsDestroyed() override; | 152 void WebContentsDestroyed() override; |
| 148 | 153 |
| 149 // device::GvrDelegate implementation | 154 // device::GvrDelegate implementation |
| 150 void SetWebVRSecureOrigin(bool secure_origin) override; | 155 void SetWebVRSecureOrigin(bool secure_origin) override; |
| 151 void SubmitWebVRFrame() override; | 156 void SubmitWebVRFrame() override; |
| 152 void UpdateWebVRTextureBounds(int16_t frame_index, | 157 void UpdateWebVRTextureBounds(int16_t frame_index, |
| 153 const gvr::Rectf& left_bounds, | 158 const gvr::Rectf& left_bounds, |
| 154 const gvr::Rectf& right_bounds) override; | 159 const gvr::Rectf& right_bounds) override; |
| 155 gvr::GvrApi* gvr_api() override; | |
| 156 void SetWebVRRenderSurfaceSize(int width, int height) override; | |
| 157 gvr::Sizei GetWebVRCompositorSurfaceSize() override; | |
| 158 void OnVRVsyncProviderRequest( | 160 void OnVRVsyncProviderRequest( |
| 159 device::mojom::VRVSyncProviderRequest request) override; | 161 device::mojom::VRVSyncProviderRequest request) override; |
| 160 void UpdateVSyncInterval(long timebase_nanos, | 162 void UpdateVSyncInterval(long timebase_nanos, |
| 161 double interval_seconds) override; | 163 double interval_seconds) override; |
| 164 bool SupportsPresentation() override; |
| 165 void ResetPose() override; |
| 166 void CreateVRDisplayInfo( |
| 167 const base::Callback<void(device::mojom::VRDisplayInfoPtr)>& callback, |
| 168 uint32_t device_id) override; |
| 162 | 169 |
| 163 std::unique_ptr<UiInterface> html_interface_; | 170 std::unique_ptr<UiInterface> html_interface_; |
| 164 | 171 |
| 165 content::WebContents* main_contents_; | 172 content::WebContents* main_contents_; |
| 166 std::unique_ptr<VrCompositor> content_compositor_; | 173 std::unique_ptr<VrCompositor> content_compositor_; |
| 167 content::WebContents* ui_contents_; | 174 content::WebContents* ui_contents_; |
| 168 std::unique_ptr<VrCompositor> ui_compositor_; | 175 std::unique_ptr<VrCompositor> ui_compositor_; |
| 169 | 176 |
| 170 std::unique_ptr<VrWebContentsObserver> vr_web_contents_observer_; | 177 std::unique_ptr<VrWebContentsObserver> vr_web_contents_observer_; |
| 171 | 178 |
| 172 VrShellDelegate* delegate_provider_ = nullptr; | 179 VrShellDelegate* delegate_provider_ = nullptr; |
| 173 base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_; | 180 base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_; |
| 174 | 181 |
| 175 std::unique_ptr<VrInputManager> content_input_manager_; | 182 std::unique_ptr<VrInputManager> content_input_manager_; |
| 176 std::unique_ptr<VrInputManager> ui_input_manager_; | 183 std::unique_ptr<VrInputManager> ui_input_manager_; |
| 177 std::unique_ptr<VrMetricsHelper> metrics_helper_; | 184 std::unique_ptr<VrMetricsHelper> metrics_helper_; |
| 178 | 185 |
| 179 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; | 186 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; |
| 180 std::unique_ptr<VrGLThread> gl_thread_; | 187 std::unique_ptr<VrGLThread> gl_thread_; |
| 181 bool reprojected_rendering_; | 188 bool reprojected_rendering_; |
| 182 | 189 |
| 190 // TODO(mthiesse): Remove the need for this to be stored here. |
| 191 // crbug.com/674594 |
| 192 gvr_context* gvr_api_; |
| 193 |
| 183 base::WeakPtrFactory<VrShell> weak_ptr_factory_; | 194 base::WeakPtrFactory<VrShell> weak_ptr_factory_; |
| 184 | 195 |
| 185 DISALLOW_COPY_AND_ASSIGN(VrShell); | 196 DISALLOW_COPY_AND_ASSIGN(VrShell); |
| 186 }; | 197 }; |
| 187 | 198 |
| 188 bool RegisterVrShell(JNIEnv* env); | 199 bool RegisterVrShell(JNIEnv* env); |
| 189 | 200 |
| 190 } // namespace vr_shell | 201 } // namespace vr_shell |
| 191 | 202 |
| 192 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ | 203 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ |
| OLD | NEW |