|
@@ -7,7 +7,7 @@ THREE.VRControls = function ( object, onError ) {
|
|
|
|
|
|
var scope = this;
|
|
|
|
|
|
- var vrDisplay;
|
|
|
+ var vrDisplay, vrDisplays;
|
|
|
|
|
|
var standingMatrix = new THREE.Matrix4();
|
|
|
|
|
@@ -16,6 +16,28 @@ THREE.VRControls = function ( object, onError ) {
|
|
|
frameData = new VRFrameData();
|
|
|
}
|
|
|
|
|
|
+ function gotVRDisplays( displays ) {
|
|
|
+
|
|
|
+ vrDisplays = displays;
|
|
|
+
|
|
|
+ if ( displays.length > 0 ) {
|
|
|
+
|
|
|
+ vrDisplay = displays[ 0 ];
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if ( onError ) onError( 'VR input not available.' );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ if ( navigator.getVRDisplays ) {
|
|
|
+
|
|
|
+ navigator.getVRDisplays().then( gotVRDisplays );
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
// the Rift SDK returns the position in meters
|
|
|
// this scale factor allows the user to define how meters
|
|
|
// are converted to scene units.
|