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

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

Issue 2840183003: VR: Route hover and click events to UI elements. (Closed)
Patch Set: Offer both OnButtonDown() and OnButtonUp(), rather than a combined OnClick() Created 3 years, 8 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 CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_GL_H_ 5 #ifndef CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_GL_H_
6 #define CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_GL_H_ 6 #define CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_GL_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <queue> 9 #include <queue>
10 #include <utility> 10 #include <utility>
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 void DrawCursor(const vr::Mat4f& render_matrix); 127 void DrawCursor(const vr::Mat4f& render_matrix);
128 void DrawController(const vr::Mat4f& view_proj_matrix); 128 void DrawController(const vr::Mat4f& view_proj_matrix);
129 bool ShouldDrawWebVr(); 129 bool ShouldDrawWebVr();
130 void DrawWebVr(); 130 void DrawWebVr();
131 bool WebVrPoseByteIsValid(int pose_index_byte); 131 bool WebVrPoseByteIsValid(int pose_index_byte);
132 132
133 void UpdateController(); 133 void UpdateController();
134 void HandleControllerInput(const gfx::Vector3dF& forward_vector); 134 void HandleControllerInput(const gfx::Vector3dF& forward_vector);
135 void HandleControllerAppButtonActivity( 135 void HandleControllerAppButtonActivity(
136 const gfx::Vector3dF& controller_direction); 136 const gfx::Vector3dF& controller_direction);
137 void SendEventsToTarget(InputTarget input_target, int pixel_x, int pixel_y); 137 void SendInputToContent(InputTarget input_target, int pixel_x, int pixel_y);
138 void SendGesture(InputTarget input_target, 138 void SendInputToUiElements(UiElement* target_element);
139 std::unique_ptr<blink::WebInputEvent> event); 139 void SendGestureToContent(std::unique_ptr<blink::WebInputEvent> event);
140 void CreateUiSurface(); 140 void CreateUiSurface();
141 void OnContentFrameAvailable(); 141 void OnContentFrameAvailable();
142 void OnWebVRFrameAvailable(); 142 void OnWebVRFrameAvailable();
143 bool GetPixelEncodedFrameIndex(uint16_t* frame_index); 143 bool GetPixelEncodedFrameIndex(uint16_t* frame_index);
144 144
145 void OnVSync(); 145 void OnVSync();
146 146
147 // VRVSyncProvider 147 // VRVSyncProvider
148 void GetVSync(const GetVSyncCallback& callback) override; 148 void GetVSync(const GetVSyncCallback& callback) override;
149 149
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 // Intended render_size_primary_ for use by VrShell, so that it 183 // Intended render_size_primary_ for use by VrShell, so that it
184 // can be restored after exiting WebVR mode. 184 // can be restored after exiting WebVR mode.
185 gfx::Size render_size_vrshell_; 185 gfx::Size render_size_vrshell_;
186 186
187 std::unique_ptr<VrShellRenderer> vr_shell_renderer_; 187 std::unique_ptr<VrShellRenderer> vr_shell_renderer_;
188 188
189 bool touch_pending_ = false; 189 bool touch_pending_ = false;
190 vr::Quatf controller_quat_; 190 vr::Quatf controller_quat_;
191 191
192 gfx::Point3F target_point_; 192 gfx::Point3F target_point_;
193 const UiElement* target_element_ = nullptr; 193
194 // Input targeting for non-content elements.
195 UiElement* target_element_ = nullptr;
196 UiElement* previous_target_element_ = nullptr;
197 UiElement* click_target_element_ = nullptr;
198
199 // Input targeting for the content element.
194 InputTarget current_input_target_ = InputTarget::NONE; 200 InputTarget current_input_target_ = InputTarget::NONE;
195 InputTarget current_scroll_target_ = InputTarget::NONE; 201 InputTarget current_scroll_target_ = InputTarget::NONE;
196 InputTarget current_fling_target_ = InputTarget::NONE; 202 InputTarget current_fling_target_ = InputTarget::NONE;
203
197 int content_tex_css_width_ = 0; 204 int content_tex_css_width_ = 0;
198 int content_tex_css_height_ = 0; 205 int content_tex_css_height_ = 0;
199 gfx::Size content_tex_physical_size_ = {0, 0}; 206 gfx::Size content_tex_physical_size_ = {0, 0};
200 gfx::Size webvr_surface_size_ = {0, 0}; 207 gfx::Size webvr_surface_size_ = {0, 0};
201 208
202 std::vector<vr::Mat4f> webvr_head_pose_; 209 std::vector<vr::Mat4f> webvr_head_pose_;
203 bool web_vr_mode_; 210 bool web_vr_mode_;
204 bool ready_to_draw_ = false; 211 bool ready_to_draw_ = false;
205 bool surfaceless_rendering_; 212 bool surfaceless_rendering_;
206 213
(...skipping 26 matching lines...) Expand all
233 std::unique_ptr<FPSMeter> fps_meter_; 240 std::unique_ptr<FPSMeter> fps_meter_;
234 241
235 base::WeakPtrFactory<VrShellGl> weak_ptr_factory_; 242 base::WeakPtrFactory<VrShellGl> weak_ptr_factory_;
236 243
237 DISALLOW_COPY_AND_ASSIGN(VrShellGl); 244 DISALLOW_COPY_AND_ASSIGN(VrShellGl);
238 }; 245 };
239 246
240 } // namespace vr_shell 247 } // namespace vr_shell
241 248
242 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_GL_H_ 249 #endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_SHELL_GL_H_
OLDNEW
« no previous file with comments | « chrome/browser/android/vr_shell/ui_elements/ui_element.cc ('k') | chrome/browser/android/vr_shell/vr_shell_gl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698