| Index: chrome/browser/android/vr_shell/vr_shell_gl.h
|
| diff --git a/chrome/browser/android/vr_shell/vr_shell_gl.h b/chrome/browser/android/vr_shell/vr_shell_gl.h
|
| index df5d8a107200cfd8e30923f76fd5926eb73e24c3..5da1123ffc9e45def827eb7875c5a7aa3a5cda10 100644
|
| --- a/chrome/browser/android/vr_shell/vr_shell_gl.h
|
| +++ b/chrome/browser/android/vr_shell/vr_shell_gl.h
|
| @@ -15,6 +15,7 @@
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/single_thread_task_runner.h"
|
| +#include "chrome/browser/android/vr_shell/vr_controller.h"
|
| #include "chrome/browser/android/vr_shell/vr_controller_model.h"
|
| #include "device/vr/vr_service.mojom.h"
|
| #include "device/vr/vr_types.h"
|
| @@ -63,11 +64,6 @@ struct WebVrBounds {
|
| // It is not threadsafe and must only be used on the GL thread.
|
| class VrShellGl : public device::mojom::VRVSyncProvider {
|
| public:
|
| - enum class InputTarget {
|
| - NONE = 0,
|
| - CONTENT,
|
| - };
|
| -
|
| VrShellGl(VrBrowserInterface* browser,
|
| gvr_context* gvr_api,
|
| bool initially_web_vr,
|
| @@ -135,11 +131,36 @@ class VrShellGl : public device::mojom::VRVSyncProvider {
|
| bool WebVrPoseByteIsValid(int pose_index_byte);
|
|
|
| void UpdateController(const gfx::Vector3dF& head_direction);
|
| + void HandleWebVrCompatibilityClick();
|
| + void SendFlingCancel(GestureList& gesture_list);
|
| + void SendScrollEnd(GestureList& gesture_list);
|
| + bool SendScrollBegin(UiElement* target, GestureList& gesture_list);
|
| + void SendScrollUpdate(GestureList& gesture_list);
|
| + void SendHoverLeave(UiElement* target);
|
| + bool SendHoverEnter(UiElement* target,
|
| + const gfx::PointF& target_point,
|
| + const gfx::Point& local_point_pixels);
|
| + void SendHoverMove(const gfx::PointF& target_point,
|
| + const gfx::Point& local_point_pixels);
|
| + void SendButtonDown(UiElement* target, const gfx::PointF& target_point);
|
| + bool SendButtonUp(UiElement* target, const gfx::PointF& target_point);
|
| + void SendTap(UiElement* target,
|
| + const gfx::PointF& target_point,
|
| + const gfx::Point& local_point_pixels);
|
| + void GetVisualTargetElement(const gfx::Vector3dF& controller_direction,
|
| + gfx::Vector3dF& eye_to_target,
|
| + gfx::Point3F& target_point,
|
| + UiElement** target_element,
|
| + gfx::PointF& target_local_point) const;
|
| + bool GetTargetLocalPoint(const gfx::Vector3dF& eye_to_target,
|
| + const UiElement& element,
|
| + float max_distance_to_plane,
|
| + gfx::PointF& target_local_point,
|
| + gfx::Point3F& target_point,
|
| + float& distance_to_plane) const;
|
| void HandleControllerInput(const gfx::Vector3dF& head_direction);
|
| void HandleControllerAppButtonActivity(
|
| const gfx::Vector3dF& controller_direction);
|
| - void SendInputToContent(InputTarget input_target, int pixel_x, int pixel_y);
|
| - void SendInputToUiElements(UiElement* target_element);
|
| void SendGestureToContent(std::unique_ptr<blink::WebInputEvent> event);
|
| void CreateUiSurface();
|
| void OnContentFrameAvailable();
|
| @@ -195,15 +216,17 @@ class VrShellGl : public device::mojom::VRVSyncProvider {
|
|
|
| gfx::Point3F target_point_;
|
|
|
| - // Input targeting for non-content elements.
|
| - UiElement* target_element_ = nullptr;
|
| - UiElement* previous_target_element_ = nullptr;
|
| - UiElement* click_target_element_ = nullptr;
|
| -
|
| - // Input targeting for the content element.
|
| - InputTarget current_input_target_ = InputTarget::NONE;
|
| - InputTarget current_scroll_target_ = InputTarget::NONE;
|
| - InputTarget current_fling_target_ = InputTarget::NONE;
|
| + // TODO(mthiesse): We need to handle elements being removed, and update this
|
| + // state appropriately.
|
| + UiElement* cursor_render_target_ = nullptr;
|
| + UiElement* hover_target_ = nullptr;
|
| + // TODO(mthiesse): We shouldn't have a fling target. Elements should fling
|
| + // independently and we should only cancel flings on the relevant element
|
| + // when we do cancel flings.
|
| + UiElement* fling_target_ = nullptr;
|
| + UiElement* input_locked_element_ = nullptr;
|
| + bool in_scroll_ = false;
|
| + bool in_click_ = false;
|
|
|
| int content_tex_css_width_ = 0;
|
| int content_tex_css_height_ = 0;
|
|
|