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

Side by Side Diff: chrome/browser/android/vr_shell/vr_shell.h

Issue 2354373002: Implement UI web contents for Vr Shell (Closed)
Patch Set: Addressed comments Created 4 years, 3 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
« no previous file with comments | « chrome/browser/android/vr_shell/BUILD.gn ('k') | chrome/browser/android/vr_shell/vr_shell.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 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 #include <memory> 9 #include <memory>
10 #include <vector> 10 #include <vector>
(...skipping 15 matching lines...) Expand all
26 26
27 namespace vr_shell { 27 namespace vr_shell {
28 28
29 class VrCompositor; 29 class VrCompositor;
30 class VrShellRenderer; 30 class VrShellRenderer;
31 31
32 32
33 class VrShell : public device::GvrDelegate { 33 class VrShell : public device::GvrDelegate {
34 public: 34 public:
35 VrShell(JNIEnv* env, jobject obj, 35 VrShell(JNIEnv* env, jobject obj,
36 content::ContentViewCore* content_view_core, 36 content::ContentViewCore* content_cvc,
37 ui::WindowAndroid* content_window); 37 ui::WindowAndroid* content_window,
38 content::ContentViewCore* ui_cvc,
39 ui::WindowAndroid* ui_window);
38 40
39 void UpdateCompositorLayers(JNIEnv* env, 41 void UpdateCompositorLayers(JNIEnv* env,
40 const base::android::JavaParamRef<jobject>& obj); 42 const base::android::JavaParamRef<jobject>& obj);
41 void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); 43 void Destroy(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
42 void GvrInit(JNIEnv* env, 44 void GvrInit(JNIEnv* env,
43 const base::android::JavaParamRef<jobject>& obj, 45 const base::android::JavaParamRef<jobject>& obj,
44 jlong native_gvr_api); 46 jlong native_gvr_api);
45 void InitializeGl(JNIEnv* env, 47 void InitializeGl(JNIEnv* env,
46 const base::android::JavaParamRef<jobject>& obj, 48 const base::android::JavaParamRef<jobject>& obj,
47 jint texture_data_handle); 49 jint content_texture_handle,
50 jint ui_texture_handle);
48 void DrawFrame(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); 51 void DrawFrame(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
49 void OnPause(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); 52 void OnPause(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
50 void OnResume(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj); 53 void OnResume(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
51 54
52 // GvrDelegate 55 // GvrDelegate
53 void RequestWebVRPresent() override; 56 void RequestWebVRPresent() override;
54 void ExitWebVRPresent() override; 57 void ExitWebVRPresent() override;
55 void SubmitWebVRFrame() override; 58 void SubmitWebVRFrame() override;
56 void UpdateWebVRTextureBounds( 59 void UpdateWebVRTextureBounds(
57 int eye, float left, float top, float width, float height) override; 60 int eye, float left, float top, float width, float height) override;
58 gvr::GvrApi* gvr_api() override; 61 gvr::GvrApi* gvr_api() override;
59 62
60 void ContentSurfaceDestroyed( 63 void ContentSurfaceChanged(
61 JNIEnv* env, 64 JNIEnv* env,
62 const base::android::JavaParamRef<jobject>& object); 65 const base::android::JavaParamRef<jobject>& object,
63 void ContentSurfaceChanged( 66 jint width,
67 jint height,
68 const base::android::JavaParamRef<jobject>& surface);
69 void UiSurfaceChanged(
64 JNIEnv* env, 70 JNIEnv* env,
65 const base::android::JavaParamRef<jobject>& object, 71 const base::android::JavaParamRef<jobject>& object,
66 jint width, 72 jint width,
67 jint height, 73 jint height,
68 const base::android::JavaParamRef<jobject>& surface); 74 const base::android::JavaParamRef<jobject>& surface);
69 75
70 private: 76 private:
71 virtual ~VrShell(); 77 virtual ~VrShell();
78 void LoadUIContent();
72 void DrawVrShell(); 79 void DrawVrShell();
73 void DrawEye(const gvr::Mat4f& view_matrix, 80 void DrawEye(const gvr::Mat4f& view_matrix,
74 const gvr::BufferViewport& params); 81 const gvr::BufferViewport& params);
75 void DrawContentRect(); 82 void DrawContentRect();
76 void DrawWebVr(); 83 void DrawWebVr();
77 void DrawUI(); 84 void DrawUI();
78 void DrawCursor(); 85 void DrawCursor();
79 86
80 void UpdateTransforms(float screen_width_meters, 87 void UpdateTransforms(float screen_width_meters,
81 float screen_height_meters, 88 float screen_height_meters,
82 float scree_tilt); 89 float scree_tilt);
83 void UpdateController(); 90 void UpdateController();
84 91
85 // samplerExternalOES texture data for content area image. 92 // samplerExternalOES texture data for UI content image.
93 jint ui_texture_id_ = 0;
94 // samplerExternalOES texture data for main content image.
86 jint content_texture_id_ = 0; 95 jint content_texture_id_ = 0;
87 96
88 float desktop_screen_tilt_; 97 float desktop_screen_tilt_;
89 float desktop_height_; 98 float desktop_height_;
90 99
91 ContentRectangle* desktop_plane_; 100 ContentRectangle* desktop_plane_;
92 gvr::Vec3f desktop_position_; 101 gvr::Vec3f desktop_position_;
93 102
94 std::vector<std::unique_ptr<ContentRectangle>> ui_rects_; 103 std::vector<std::unique_ptr<ContentRectangle>> ui_rects_;
95 104
96 std::unique_ptr<gvr::GvrApi> gvr_api_; 105 std::unique_ptr<gvr::GvrApi> gvr_api_;
97 std::unique_ptr<gvr::BufferViewportList> buffer_viewport_list_; 106 std::unique_ptr<gvr::BufferViewportList> buffer_viewport_list_;
98 std::unique_ptr<gvr::BufferViewport> buffer_viewport_; 107 std::unique_ptr<gvr::BufferViewport> buffer_viewport_;
99 std::unique_ptr<gvr::SwapChain> swap_chain_; 108 std::unique_ptr<gvr::SwapChain> swap_chain_;
100 109
101 gvr::Mat4f view_matrix_; 110 gvr::Mat4f view_matrix_;
102 gvr::Mat4f projection_matrix_; 111 gvr::Mat4f projection_matrix_;
103 112
104 gvr::Mat4f head_pose_; 113 gvr::Mat4f head_pose_;
105 gvr::Vec3f forward_vector_; 114 gvr::Vec3f forward_vector_;
106 115
107 gvr::Sizei render_size_; 116 gvr::Sizei render_size_;
108 117
109 std::unique_ptr<VrCompositor> content_compositor_view_; 118 std::unique_ptr<VrCompositor> content_compositor_;
110 content::ContentViewCore* content_cvc_; 119 content::ContentViewCore* content_cvc_;
120 std::unique_ptr<VrCompositor> ui_compositor_;
121 content::ContentViewCore* ui_cvc_;
122
Ted C 2016/09/23 19:40:02 one too many blank lines
111 123
112 std::unique_ptr<VrShellRenderer> vr_shell_renderer_; 124 std::unique_ptr<VrShellRenderer> vr_shell_renderer_;
113 base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_; 125 base::android::ScopedJavaGlobalRef<jobject> j_vr_shell_;
114 126
115 gvr::Quatf controller_quat_; 127 gvr::Quatf controller_quat_;
116 bool controller_active_ = false; 128 bool controller_active_ = false;
117 gvr::Vec3f look_at_vector_; 129 gvr::Vec3f look_at_vector_;
118 130
119 bool webvr_mode_ = false; 131 bool webvr_mode_ = false;
120 132
121 DISALLOW_COPY_AND_ASSIGN(VrShell); 133 DISALLOW_COPY_AND_ASSIGN(VrShell);
122 }; 134 };
123 135
124 bool RegisterVrShell(JNIEnv* env); 136 bool RegisterVrShell(JNIEnv* env);
125 137
126 } // namespace vr_shell 138 } // namespace vr_shell
127 139
128 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_ 140 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_H_
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/BUILD.gn ('k') | chrome/browser/android/vr_shell/vr_shell.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698