Chromium Code Reviews| 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 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 117 // Perform a UI action triggered by the javascript API. | 117 // Perform a UI action triggered by the javascript API. |
| 118 void DoUiAction(const UiAction action); | 118 void DoUiAction(const UiAction action); |
| 119 | 119 |
| 120 void SetContentCssSize(float width, float height, float dpr); | 120 void SetContentCssSize(float width, float height, float dpr); |
| 121 void SetUiCssSize(float width, float height, float dpr); | 121 void SetUiCssSize(float width, float height, float dpr); |
| 122 | 122 |
| 123 void ContentFrameWasResized(bool width_changed); | 123 void ContentFrameWasResized(bool width_changed); |
| 124 | 124 |
| 125 void ForceExitVr(); | 125 void ForceExitVr(); |
| 126 | 126 |
| 127 // TODO(mthiesse): Find a better place for these functions to live. | |
| 127 static device::mojom::VRPosePtr VRPosePtrFromGvrPose(gvr::Mat4f head_mat); | 128 static device::mojom::VRPosePtr VRPosePtrFromGvrPose(gvr::Mat4f head_mat); |
| 129 static device::mojom::VRDisplayInfoPtr CreateVRDisplayInfo( | |
| 130 gvr::GvrApi* gvr_api, | |
| 131 gvr::Sizei compositor_size, | |
| 132 uint32_t device_id); | |
| 128 | 133 |
| 129 private: | 134 private: |
| 130 ~VrShell() override; | 135 ~VrShell() override; |
| 131 void SetIsInVR(bool is_in_vr); | 136 void SetIsInVR(bool is_in_vr); |
| 132 void PostToGlThreadWhenReady(const base::Closure& task); | 137 void PostToGlThreadWhenReady(const base::Closure& task); |
| 133 | 138 |
| 134 // content::WebContentsObserver implementation. | 139 // content::WebContentsObserver implementation. |
| 135 void RenderViewHostChanged(content::RenderViewHost* old_host, | 140 void RenderViewHostChanged(content::RenderViewHost* old_host, |
| 136 content::RenderViewHost* new_host) override; | 141 content::RenderViewHost* new_host) override; |
| 137 void MainFrameWasResized(bool width_changed) override; | 142 void MainFrameWasResized(bool width_changed) override; |
| 138 void WebContentsDestroyed() override; | 143 void WebContentsDestroyed() override; |
| 139 | 144 |
| 140 // device::GvrDelegate implementation | 145 // device::GvrDelegate implementation |
| 141 void SetWebVRSecureOrigin(bool secure_origin) override; | 146 void SetWebVRSecureOrigin(bool secure_origin) override; |
| 142 void SubmitWebVRFrame() override; | 147 void SubmitWebVRFrame() override; |
| 143 void UpdateWebVRTextureBounds(int16_t frame_index, | 148 void UpdateWebVRTextureBounds(int16_t frame_index, |
| 144 const gvr::Rectf& left_bounds, | 149 const gvr::Rectf& left_bounds, |
| 145 const gvr::Rectf& right_bounds) override; | 150 const gvr::Rectf& right_bounds) override; |
| 146 gvr::GvrApi* gvr_api() override; | |
| 147 void SetWebVRRenderSurfaceSize(int width, int height) override; | |
| 148 gvr::Sizei GetWebVRCompositorSurfaceSize() override; | |
| 149 void OnVRVsyncProviderRequest( | 151 void OnVRVsyncProviderRequest( |
| 150 device::mojom::VRVSyncProviderRequest request) override; | 152 device::mojom::VRVSyncProviderRequest request) override; |
| 151 void UpdateVSyncInterval(long timebase_nanos, | 153 void UpdateVSyncInterval(long timebase_nanos, |
| 152 double interval_seconds) override; | 154 double interval_seconds) override; |
| 155 bool SupportsPresentation() override; | |
| 156 void ResetPose() override; | |
| 157 void CreateVRDisplayInfo( | |
| 158 const base::Callback<void(device::mojom::VRDisplayInfoPtr)>& callback, | |
| 159 uint32_t device_id) override; | |
| 153 | 160 |
| 154 std::unique_ptr<UiInterface> html_interface_; | 161 std::unique_ptr<UiInterface> html_interface_; |
| 155 | 162 |
| 156 content::WebContents* main_contents_; | 163 content::WebContents* main_contents_; |
| 157 std::unique_ptr<VrCompositor> content_compositor_; | 164 std::unique_ptr<VrCompositor> content_compositor_; |
| 158 content::WebContents* ui_contents_; | 165 content::WebContents* ui_contents_; |
| 159 std::unique_ptr<VrCompositor> ui_compositor_; | 166 std::unique_ptr<VrCompositor> ui_compositor_; |
| 160 | 167 |
| 161 std::unique_ptr<VrWebContentsObserver> vr_web_contents_observer_; | 168 std::unique_ptr<VrWebContentsObserver> vr_web_contents_observer_; |
| 162 | 169 |
| 163 VrShellDelegate* delegate_provider_ = nullptr; | 170 VrShellDelegate* delegate_provider_ = nullptr; |
| 164 base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_; | 171 base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_; |
| 165 | 172 |
| 166 std::unique_ptr<VrInputManager> content_input_manager_; | 173 std::unique_ptr<VrInputManager> content_input_manager_; |
| 167 std::unique_ptr<VrInputManager> ui_input_manager_; | 174 std::unique_ptr<VrInputManager> ui_input_manager_; |
| 168 std::unique_ptr<VrMetricsHelper> metrics_helper_; | 175 std::unique_ptr<VrMetricsHelper> metrics_helper_; |
| 169 | 176 |
| 170 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; | 177 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; |
| 171 std::unique_ptr<VrGLThread> gl_thread_; | 178 std::unique_ptr<VrGLThread> gl_thread_; |
| 172 bool reprojected_rendering_; | 179 bool reprojected_rendering_; |
| 173 | 180 |
| 181 // TODO(mthiesse): Remove the need for this to stored here. crbug.com/674594 | |
|
cjgrant
2017/01/25 21:45:31
s/to/to be/
mthiesse
2017/01/30 19:47:26
Done.
| |
| 182 gvr_context* gvr_api_; | |
|
cjgrant
2017/01/25 21:45:31
Could we convince the GVR team to typedef this to
mthiesse
2017/01/30 19:47:26
Be my guest ;)
| |
| 183 | |
| 174 base::WeakPtrFactory<VrShell> weak_ptr_factory_; | 184 base::WeakPtrFactory<VrShell> weak_ptr_factory_; |
| 175 | 185 |
| 176 DISALLOW_COPY_AND_ASSIGN(VrShell); | 186 DISALLOW_COPY_AND_ASSIGN(VrShell); |
| 177 }; | 187 }; |
| 178 | 188 |
| 179 bool RegisterVrShell(JNIEnv* env); | 189 bool RegisterVrShell(JNIEnv* env); |
| 180 | 190 |
| 181 } // namespace vr_shell | 191 } // namespace vr_shell |
| 182 | 192 |
| 183 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ | 193 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ |
| OLD | NEW |