Explorar o código

Final working version of the Polyfill

Morgan Villedieu %!s(int64=6) %!d(string=hai) anos
pai
achega
81de0318df

+ 26 - 20
examples/js/vr/Polyfill.js → examples/js/vr/HelioWebXRPolyfill.js

@@ -1,22 +1,22 @@
+if ('xr' in navigator && /(Helio)/g.test(navigator.userAgent)) {
 
 
-
-if( 'xr' in navigator ) {
-
-	console.log('Helio - (Chrome m73) WebXR Polyfill', navigator.xr);
+	console.log('Helio WebXR Polyfill', navigator.xr);
 
 
 	// WebXRManager - XR.supportSession() Polyfill - WebVR.js line 147
 	// WebXRManager - XR.supportSession() Polyfill - WebVR.js line 147
 
 
-	navigator.xr.supportsSession = navigator.xr.supportsSessionMode;
+	if ('supportsSession' in navigator.xr === false) navigator.xr.supportsSession = navigator.xr.supportsSessionMode;
 
 
-	if( 'supportsSessionMode' in navigator.xr ) {
+	if ('requestSession' in navigator.xr) {
 
 
 		const tempRequestSession = navigator.xr.requestSession.bind(navigator.xr);
 		const tempRequestSession = navigator.xr.requestSession.bind(navigator.xr);
 
 
 		navigator.xr.requestSession = function (sessionType) {
 		navigator.xr.requestSession = function (sessionType) {
 
 
 			return new Promise((resolve, reject) => {
 			return new Promise((resolve, reject) => {
-				tempRequestSession({ mode: sessionType })
-					.then(session => {
+				tempRequestSession({
+						mode: sessionType
+					})
+					.then(function (session) {
 
 
 						// WebXRManager - xrFrame.getPose() Polyfill - line 279
 						// WebXRManager - xrFrame.getPose() Polyfill - line 279
 
 
@@ -31,11 +31,11 @@ if( 'xr' in navigator ) {
 
 
 								const tempGetViewerPose = frame.getViewerPose.bind(frame);
 								const tempGetViewerPose = frame.getViewerPose.bind(frame);
 
 
-								frame.getViewerPose = function ( referenceSpace ) {
+								frame.getViewerPose = function (referenceSpace) {
 
 
-									const pose = tempGetViewerPose( referenceSpace );
+									const pose = tempGetViewerPose(referenceSpace);
 
 
-									pose.views.forEach(view => {
+									pose.views.forEach(function (view) {
 
 
 										view.transform = {
 										view.transform = {
 											inverse: {
 											inverse: {
@@ -63,11 +63,11 @@ if( 'xr' in navigator ) {
 
 
 								}
 								}
 
 
-								callback(time, frame);
+								callback(time, frame)
 
 
 							})
 							})
 
 
-						};
+						}
 
 
 						// WebXRManager - xrFrame.getPose( inputSource.targetRaySpace, referenceSpace) Polyfill - line 279
 						// WebXRManager - xrFrame.getPose( inputSource.targetRaySpace, referenceSpace) Polyfill - line 279
 
 
@@ -83,9 +83,9 @@ if( 'xr' in navigator ) {
 									get: function () {
 									get: function () {
 										return xrInputSource
 										return xrInputSource
 									},
 									},
-								});
+								})
 
 
-							});
+							})
 
 
 							return res;
 							return res;
 						}
 						}
@@ -98,7 +98,9 @@ if( 'xr' in navigator ) {
 
 
 						// WebXRManager - xrSession.updateRenderState() Polyfill Line 129
 						// WebXRManager - xrSession.updateRenderState() Polyfill Line 129
 
 
-						session.updateRenderState = function ({ baseLayer }) {
+						session.updateRenderState = function ({
+							baseLayer
+						}) {
 
 
 							session.baseLayer = baseLayer;
 							session.baseLayer = baseLayer;
 
 
@@ -116,13 +118,19 @@ if( 'xr' in navigator ) {
 
 
 						session.requestReferenceSpace = function () {
 						session.requestReferenceSpace = function () {
 
 
-							return temp({ type: 'stationary', subtype: 'floor-level' });
+							return temp({
+								type: 'stationary',
+								subtype: 'floor-level'
+							})
 
 
 						}
 						}
 
 
 						resolve(session);
 						resolve(session);
 
 
-					});
+					})
+					.catch(function (error) {
+						return reject(error);
+					})
 			})
 			})
 
 
 		}
 		}
@@ -130,5 +138,3 @@ if( 'xr' in navigator ) {
 	}
 	}
 
 
 }
 }
-
-

+ 0 - 6
examples/js/vr/WebVR.js

@@ -48,8 +48,6 @@ var WEBVR = {
 
 
 			function onSessionStarted( session ) {
 			function onSessionStarted( session ) {
 
 
-				console.log(session);
-
 				session.addEventListener( 'end', onSessionEnded );
 				session.addEventListener( 'end', onSessionEnded );
 
 
 				renderer.vr.setSession( session );
 				renderer.vr.setSession( session );
@@ -135,16 +133,12 @@ var WEBVR = {
 
 
 		}
 		}
 
 
-		console.log(navigator);
-
 		if ( 'xr' in navigator ) {
 		if ( 'xr' in navigator ) {
 
 
-			console.log('test');
 			var button = document.createElement( 'button' );
 			var button = document.createElement( 'button' );
 			button.style.display = 'none';
 			button.style.display = 'none';
 
 
 			stylizeElement( button );
 			stylizeElement( button );
-			console.log(navigator.xr)
 			navigator.xr.supportsSession( sessionType ).then( showEnterXR );
 			navigator.xr.supportsSession( sessionType ).then( showEnterXR );
 
 
 			return button;
 			return button;

+ 1 - 1
examples/webvr_ballshooter.html

@@ -12,8 +12,8 @@
 			<a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - ball shooter
 			<a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - ball shooter
 		</div>
 		</div>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
-		<script src="js/vr/Polyfill.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<script src="js/geometries/BoxLineGeometry.js"></script>
 		<script src="js/geometries/BoxLineGeometry.js"></script>

+ 2 - 1
examples/webvr_cubes.html

@@ -11,7 +11,8 @@
 		<div id="info">
 		<div id="info">
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - interactive cubes
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - interactive cubes
 		</div>
 		</div>
-
+		
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 

+ 1 - 0
examples/webvr_dragging.html

@@ -12,6 +12,7 @@
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - dragging
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - dragging
 		</div>
 		</div>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 

+ 1 - 1
examples/webvr_lorenzattractor.html

@@ -8,8 +8,8 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
-
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<script>
 		<script>

+ 1 - 1
examples/webvr_paint.html

@@ -12,9 +12,9 @@
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - paint
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - paint
 		</div>
 		</div>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
-
 		<script src="js/loaders/OBJLoader.js"></script>
 		<script src="js/loaders/OBJLoader.js"></script>
 
 
 		<script>
 		<script>

+ 1 - 1
examples/webvr_panorama.html

@@ -7,8 +7,8 @@
 		<link type="text/css" rel="stylesheet" href="main.css">
 		<link type="text/css" rel="stylesheet" href="main.css">
 	</head>
 	</head>
 	<body>
 	<body>
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
-
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<script>
 		<script>

+ 1 - 1
examples/webvr_rollercoaster.html

@@ -8,10 +8,10 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 
 
 		<script src="js/RollerCoaster.js"></script>
 		<script src="js/RollerCoaster.js"></script>
-
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<script>
 		<script>

+ 1 - 0
examples/webvr_sandbox.html

@@ -8,6 +8,7 @@
 	</head>
 	</head>
 	<body>
 	<body>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 
 
 		<script src="js/objects/Lensflare.js"></script>
 		<script src="js/objects/Lensflare.js"></script>

+ 2 - 0
examples/webvr_sculpt.html

@@ -12,6 +12,8 @@
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - sculpt
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - sculpt
 		</div>
 		</div>
 
 
+		
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 

+ 2 - 1
examples/webvr_video.html

@@ -14,8 +14,9 @@
 			stereoscopic panoramic render by <a href="http://pedrofe.com/rendering-for-oculus-rift-with-arnold/" target="_blank" rel="noopener">pedrofe</a>. scene from <a href="http://www.meryproject.com/" target="_blank" rel="noopener">mery project</a>.
 			stereoscopic panoramic render by <a href="http://pedrofe.com/rendering-for-oculus-rift-with-arnold/" target="_blank" rel="noopener">pedrofe</a>. scene from <a href="http://www.meryproject.com/" target="_blank" rel="noopener">mery project</a>.
 		</div>
 		</div>
 
 
-		<script src="../build/three.js"></script>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
+		<script src="../build/three.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<video id="video" loop muted crossOrigin="anonymous" webkit-playsinline style="display:none">
 		<video id="video" loop muted crossOrigin="anonymous" webkit-playsinline style="display:none">

+ 1 - 0
examples/webvr_vive_paint.html

@@ -12,6 +12,7 @@
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - paint
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - paint
 		</div>
 		</div>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 
 
 		<script src="js/vr/ViveController.js"></script>
 		<script src="js/vr/ViveController.js"></script>

+ 2 - 0
examples/webvr_vive_sculpt.html

@@ -12,9 +12,11 @@
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - sculpt
 			<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - sculpt
 		</div>
 		</div>
 
 
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="../build/three.js"></script>
 		<script src="../build/three.js"></script>
 
 
 		<script src="js/vr/ViveController.js"></script>
 		<script src="js/vr/ViveController.js"></script>
+		<script src="js/vr/HelioWebXRPolyfill.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 		<script src="js/vr/WebVR.js"></script>
 
 
 		<script src="js/loaders/OBJLoader.js"></script>
 		<script src="js/loaders/OBJLoader.js"></script>

+ 0 - 1
src/renderers/webvr/WebXRManager.js

@@ -261,7 +261,6 @@ function WebXRManager( renderer ) {
 				if ( inputPose !== null ) {
 				if ( inputPose !== null ) {
 
 
 					controller.matrix.fromArray( inputPose.transform.matrix );
 					controller.matrix.fromArray( inputPose.transform.matrix );
-
 					controller.matrix.decompose( controller.position, controller.rotation, controller.scale );
 					controller.matrix.decompose( controller.position, controller.rotation, controller.scale );
 					controller.visible = true;
 					controller.visible = true;