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

Unified Diff: chrome/browser/android/vr_shell/vr_gesture.h

Issue 2350253004: Controller support for VrShell (Closed)
Patch Set: Clean up 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/android/vr_shell/vr_gesture.h
diff --git a/chrome/browser/android/vr_shell/vr_gesture.h b/chrome/browser/android/vr_shell/vr_gesture.h
new file mode 100644
index 0000000000000000000000000000000000000000..3a61c24b1ad39f1d08fd5b56a979796712077c0f
--- /dev/null
+++ b/chrome/browser/android/vr_shell/vr_gesture.h
@@ -0,0 +1,98 @@
+// Copyright 2016 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_ANDROID_VR_SHELL_VR_GESTURE_H_
+#define CHROME_BROWSER_ANDROID_VR_SHELL_VR_GESTURE_H_
+
+#include "third_party/WebKit/public/web/WebInputEvent.h"
+#include "third_party/gvr-android-sdk/src/ndk-beta/include/vr/gvr/capi/include/gvr_types.h"
+
+using blink::WebInputEvent;
+
+namespace vr_shell {
+
+typedef enum {
+ GESTURE_DIRECTION_UP,
+ GESTURE_DIRECTION_DOWN,
+ GESTURE_DIRECTION_LEFT,
+ GESTURE_DIRECTION_RIGHT
+} gesture_direction;
+
+typedef struct {
+ gvr_vec3f delta;
+ int type;
+} GestureAngularMove;
+
+typedef struct {
+ gvr_vec2f delta;
+
+ // If set, stop_fling means that this scroll should stop flinging, thus
+ // if an interpreter suppresses it for any reason (e.g., rounds the size
+ // down to 0, thus making it a noop), it will replace it with a Fling
+ // TAP_DOWN gesture
+ unsigned stop_fling : 1;
+ gvr_vec2f initial_touch_pos;
+} GestureScroll;
+
+typedef struct {
+ // If a bit is set in both down and up, client should process down first
+ gvr_vec2f pos;
+ unsigned down; // bit field, use GESTURES_BUTTON_*
+ unsigned up; // bit field, use GESTURES_BUTTON_*
+} GestureButtonsChange;
+
+struct VrGesture {
+ VrGesture() : type(WebInputEvent::Undefined) {}
+ VrGesture(const GestureAngularMove&,
+ int64_t start,
+ int64_t end,
+ gvr::Quatf quat)
+ : start_time(start),
+ end_time(end),
+ type(WebInputEvent::MouseMove),
+ quat(quat) {}
+ VrGesture(const GestureScroll&,
+ int64_t start,
+ int64_t end,
+ float dx,
+ float dy,
+ WebInputEvent::Type state,
+ gvr::Quatf quat)
+ : start_time(start), end_time(end), type(state), quat(quat) {
+ details.scroll.delta.x = dx;
+ details.scroll.delta.y = dy;
+ details.scroll.stop_fling = 0;
+ }
+ VrGesture(const GestureButtonsChange&,
+ int64_t start,
+ int64_t end,
+ unsigned down,
+ unsigned up,
+ gvr::Quatf quat)
+ : start_time(start),
+ end_time(end),
+ type(WebInputEvent::GestureTap),
+ quat(quat) {
+ details.buttons.down = down;
+ details.buttons.up = up;
+ details.buttons.pos.x = 0;
+ details.buttons.pos.y = 0;
+ }
+
+ int64_t start_time, end_time;
+ enum WebInputEvent::Type type;
+ union {
+ GestureScroll scroll;
+ GestureButtonsChange buttons;
+ GestureAngularMove move;
+ } details;
+ gvr::Quatf quat;
+ gvr::Vec2f velocity;
+ gvr::Vec2f displacement;
+ gesture_direction direction;
+};
+
+} // namespace vr_shell
+
+#endif // CHROME_BROWSER_ANDROID_VR_SHELL_VR_GESTURE_H_
« no previous file with comments | « chrome/browser/android/vr_shell/vr_controller_manager.cc ('k') | chrome/browser/android/vr_shell/vr_input_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698