| 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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 }; | 54 }; |
| 55 | 55 |
| 56 class VrMetricsHelper; | 56 class VrMetricsHelper; |
| 57 | 57 |
| 58 class VrShell : public device::GvrDelegate, content::WebContentsObserver { | 58 class VrShell : public device::GvrDelegate, content::WebContentsObserver { |
| 59 public: | 59 public: |
| 60 VrShell(JNIEnv* env, jobject obj, | 60 VrShell(JNIEnv* env, jobject obj, |
| 61 content::WebContents* main_contents, | 61 content::WebContents* main_contents, |
| 62 ui::WindowAndroid* content_window, | 62 ui::WindowAndroid* content_window, |
| 63 content::WebContents* ui_contents, | 63 content::WebContents* ui_contents, |
| 64 ui::WindowAndroid* ui_window); | 64 ui::WindowAndroid* ui_window, |
| 65 bool for_web_vr); |
| 65 | 66 |
| 66 void UpdateCompositorLayers(JNIEnv* env, | 67 void UpdateCompositorLayers(JNIEnv* env, |
| 67 const base::android::JavaParamRef<jobject>& obj); | 68 const base::android::JavaParamRef<jobject>& obj); |
| 68 void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); | 69 void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); |
| 69 void SetDelegate(JNIEnv* env, | 70 void SetDelegate(JNIEnv* env, |
| 70 const base::android::JavaParamRef<jobject>& obj, | 71 const base::android::JavaParamRef<jobject>& obj, |
| 71 const base::android::JavaParamRef<jobject>& delegate); | 72 const base::android::JavaParamRef<jobject>& delegate); |
| 72 void GvrInit(JNIEnv* env, | 73 void GvrInit(JNIEnv* env, |
| 73 const base::android::JavaParamRef<jobject>& obj, | 74 const base::android::JavaParamRef<jobject>& obj, |
| 74 jlong native_gvr_api); | 75 jlong native_gvr_api); |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 189 | 190 |
| 190 gvr::Vec3f target_point_; | 191 gvr::Vec3f target_point_; |
| 191 const ContentRectangle* target_element_ = nullptr; | 192 const ContentRectangle* target_element_ = nullptr; |
| 192 VrInputManager* current_input_target_ = nullptr; | 193 VrInputManager* current_input_target_ = nullptr; |
| 193 int ui_tex_width_ = 0; | 194 int ui_tex_width_ = 0; |
| 194 int ui_tex_height_ = 0; | 195 int ui_tex_height_ = 0; |
| 195 int content_tex_width_ = 0; | 196 int content_tex_width_ = 0; |
| 196 int content_tex_height_ = 0; | 197 int content_tex_height_ = 0; |
| 197 gvr::Sizei content_tex_pixels_for_webvr_ = {0, 0}; | 198 gvr::Sizei content_tex_pixels_for_webvr_ = {0, 0}; |
| 198 | 199 |
| 199 bool webvr_mode_ = false; | |
| 200 | |
| 201 // The pose ring buffer size must be a power of two to avoid glitches when | 200 // The pose ring buffer size must be a power of two to avoid glitches when |
| 202 // the pose index wraps around. It should be large enough to handle the | 201 // the pose index wraps around. It should be large enough to handle the |
| 203 // current backlog of poses which is 2-3 frames. | 202 // current backlog of poses which is 2-3 frames. |
| 204 static constexpr int kPoseRingBufferSize = 8; | 203 static constexpr int kPoseRingBufferSize = 8; |
| 205 std::vector<gvr::Mat4f> webvr_head_pose_; | 204 std::vector<gvr::Mat4f> webvr_head_pose_; |
| 206 jint webvr_texture_id_ = 0; | 205 jint webvr_texture_id_ = 0; |
| 207 | 206 |
| 208 std::unique_ptr<VrController> controller_; | 207 std::unique_ptr<VrController> controller_; |
| 209 scoped_refptr<VrInputManager> content_input_manager_; | 208 scoped_refptr<VrInputManager> content_input_manager_; |
| 210 scoped_refptr<VrInputManager> ui_input_manager_; | 209 scoped_refptr<VrInputManager> ui_input_manager_; |
| 211 scoped_refptr<VrMetricsHelper> metrics_helper_; | 210 scoped_refptr<VrMetricsHelper> metrics_helper_; |
| 212 | 211 |
| 213 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; | 212 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; |
| 214 | 213 |
| 215 base::WeakPtrFactory<VrShell> weak_ptr_factory_; | 214 base::WeakPtrFactory<VrShell> weak_ptr_factory_; |
| 216 | 215 |
| 217 DISALLOW_COPY_AND_ASSIGN(VrShell); | 216 DISALLOW_COPY_AND_ASSIGN(VrShell); |
| 218 }; | 217 }; |
| 219 | 218 |
| 220 bool RegisterVrShell(JNIEnv* env); | 219 bool RegisterVrShell(JNIEnv* env); |
| 221 | 220 |
| 222 } // namespace vr_shell | 221 } // namespace vr_shell |
| 223 | 222 |
| 224 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ | 223 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ |
| OLD | NEW |