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

Side by Side Diff: content/public/android/java/src/org/chromium/content/browser/input/CardboardVRDevice.java

Issue 829803003: Adding Chrome-side WebVR interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed the rest of sievers@ input Created 5 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
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
no sievers 2015/03/26 19:55:15 nit: 2015
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 package org.chromium.content.browser.input;
6
7 import android.content.Context;
8
9 import com.google.vrtoolkit.cardboard.CardboardDeviceParams;
10 import com.google.vrtoolkit.cardboard.FieldOfView;
11 import com.google.vrtoolkit.cardboard.HeadMountedDisplay;
12 import com.google.vrtoolkit.cardboard.HeadMountedDisplayManager;
13 import com.google.vrtoolkit.cardboard.ScreenParams;
14 import com.google.vrtoolkit.cardboard.sensors.HeadTracker;
15
16 import org.chromium.base.CalledByNative;
17 import org.chromium.base.JNINamespace;
18
19 /**
20 * This is the implementation of the C++ counterpart CardboardVRDevice.
21 */
22 @JNINamespace("content")
23 class CardboardVRDevice {
24 private static final String TAG = "CardboardVRDevice";
25 private HeadMountedDisplayManager mHMDManager;
26 private HeadTracker mHeadTracker;
27 private long mVrDevicePtr;
28
29 @CalledByNative
30 private static CardboardVRDevice create(Context context, long vrDevicePtr) {
31 return new CardboardVRDevice(context, vrDevicePtr);
32 }
33
34 private CardboardVRDevice(Context context, long vrDevicePtr) {
35 mVrDevicePtr = vrDevicePtr;
36
37 mHMDManager = new HeadMountedDisplayManager(context);
38
39 mHeadTracker = HeadTracker.createFromContext(context);
40 mHeadTracker.setNeckModelEnabled(true);
41 mHeadTracker.startTracking();
42 }
43
44 @CalledByNative
45 private void getFieldOfView(float[] outFov) {
46 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
47 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams();
48 FieldOfView fov = deviceParams.getLeftEyeMaxFov();
49 outFov[0] = fov.getTop();
50 outFov[1] = fov.getBottom();
51 outFov[2] = fov.getLeft();
52 outFov[3] = fov.getRight();
53 }
54
55 @CalledByNative
56 private float getIPD() {
57 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
58 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams();
59 return deviceParams.getInterLensDistance();
60 }
61
62 @CalledByNative
63 private String getDeviceName() {
64 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
65 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams();
66 return deviceParams.getVendor() + " " + deviceParams.getModel();
67 }
68
69 @CalledByNative
70 private void getScreenSize(int[] outSize) {
71 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
72 ScreenParams screenParams = hmd.getScreenParams();
73 outSize[0] = screenParams.getWidth();
74 outSize[1] = screenParams.getHeight();
75 }
76
77 @CalledByNative
78 private void getSensorState(float[] outMatrix) {
79 mHeadTracker.getLastHeadView(outMatrix, 0);
80 }
81
82 @CalledByNative
83 private void stopTracking() {
84 mHeadTracker.stopTracking();
85 }
86
87 @CalledByNative
88 private void resetSensor() {
89 mHeadTracker.resetTracker();
90 }
91 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698