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

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 tedchoc@'s feedback 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 2015 The Chromium Authors. All rights reserved.
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;
mdempsky 2015/05/11 22:11:09 This appears to be a (publicly) undocumented part
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 final HeadMountedDisplayManager mHMDManager;
mdempsky 2015/05/11 22:11:09 According to the documentation and examples I can
26 private final HeadTracker mHeadTracker;
27
28 @CalledByNative
29 private static CardboardVRDevice create(Context context) {
30 return new CardboardVRDevice(context);
31 }
32
33 private CardboardVRDevice(Context context) {
34 mHMDManager = new HeadMountedDisplayManager(context);
35
36 mHeadTracker = HeadTracker.createFromContext(context);
37 mHeadTracker.setNeckModelEnabled(true);
38 mHeadTracker.startTracking();
39 }
40
41 @CalledByNative
42 private void getFieldOfView(float[] outFov) {
43 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
44 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams();
45 FieldOfView fov = deviceParams.getLeftEyeMaxFov();
46 outFov[0] = fov.getTop();
47 outFov[1] = fov.getBottom();
48 outFov[2] = fov.getLeft();
49 outFov[3] = fov.getRight();
50 }
51
52 @CalledByNative
53 private float getIpd() {
54 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
55 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams();
56 return deviceParams.getInterLensDistance();
57 }
58
59 @CalledByNative
60 private String getDeviceName() {
61 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
62 CardboardDeviceParams deviceParams = hmd.getCardboardDeviceParams();
63 return deviceParams.getVendor() + " " + deviceParams.getModel();
64 }
65
66 @CalledByNative
67 private void getScreenSize(int[] outSize) {
68 HeadMountedDisplay hmd = mHMDManager.getHeadMountedDisplay();
69 ScreenParams screenParams = hmd.getScreenParams();
70 outSize[0] = screenParams.getWidth();
71 outSize[1] = screenParams.getHeight();
72 }
73
74 @CalledByNative
75 private void getSensorState(float[] outMatrix) {
76 mHeadTracker.getLastHeadView(outMatrix, 0);
77 }
78
79 @CalledByNative
80 private void stopTracking() {
81 mHeadTracker.stopTracking();
82 }
83
84 @CalledByNative
85 private void resetSensor() {
86 mHeadTracker.resetTracker();
87 }
88 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698