提交 81de0318 编写于 作者: M Morgan Villedieu

Final working version of the Polyfill

上级 1acd3d89
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
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);
navigator.xr.requestSession = function (sessionType) {
return new Promise((resolve, reject) => {
tempRequestSession({ mode: sessionType })
.then(session => {
tempRequestSession({
mode: sessionType
})
.then(function (session) {
// WebXRManager - xrFrame.getPose() Polyfill - line 279
......@@ -31,11 +31,11 @@ if( 'xr' in navigator ) {
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 = {
inverse: {
......@@ -63,11 +63,11 @@ if( 'xr' in navigator ) {
}
callback(time, frame);
callback(time, frame)
})
};
}
// WebXRManager - xrFrame.getPose( inputSource.targetRaySpace, referenceSpace) Polyfill - line 279
......@@ -83,9 +83,9 @@ if( 'xr' in navigator ) {
get: function () {
return xrInputSource
},
});
})
});
})
return res;
}
......@@ -98,7 +98,9 @@ if( 'xr' in navigator ) {
// WebXRManager - xrSession.updateRenderState() Polyfill Line 129
session.updateRenderState = function ({ baseLayer }) {
session.updateRenderState = function ({
baseLayer
}) {
session.baseLayer = baseLayer;
......@@ -116,13 +118,19 @@ if( 'xr' in navigator ) {
session.requestReferenceSpace = function () {
return temp({ type: 'stationary', subtype: 'floor-level' });
return temp({
type: 'stationary',
subtype: 'floor-level'
})
}
resolve(session);
});
})
.catch(function (error) {
return reject(error);
})
})
}
......@@ -130,5 +138,3 @@ if( 'xr' in navigator ) {
}
}
......@@ -48,8 +48,6 @@ var WEBVR = {
function onSessionStarted( session ) {
console.log(session);
session.addEventListener( 'end', onSessionEnded );
renderer.vr.setSession( session );
......@@ -135,16 +133,12 @@ var WEBVR = {
}
console.log(navigator);
if ( 'xr' in navigator ) {
console.log('test');
var button = document.createElement( 'button' );
button.style.display = 'none';
stylizeElement( button );
console.log(navigator.xr)
navigator.xr.supportsSession( sessionType ).then( showEnterXR );
return button;
......
......@@ -12,8 +12,8 @@
<a href="https://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - ball shooter
</div>
<script src="js/vr/HelioWebXRPolyfill.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/geometries/BoxLineGeometry.js"></script>
......
......@@ -11,7 +11,8 @@
<div id="info">
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - interactive cubes
</div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script>
......
......@@ -12,6 +12,7 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - dragging
</div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script>
......
......@@ -8,8 +8,8 @@
</head>
<body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script>
<script>
......
......@@ -12,9 +12,9 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - paint
</div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script>
<script src="js/loaders/OBJLoader.js"></script>
<script>
......
......@@ -7,8 +7,8 @@
<link type="text/css" rel="stylesheet" href="main.css">
</head>
<body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script>
<script>
......
......@@ -8,10 +8,10 @@
</head>
<body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/RollerCoaster.js"></script>
<script src="js/vr/WebVR.js"></script>
<script>
......
......@@ -8,6 +8,7 @@
</head>
<body>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/objects/Lensflare.js"></script>
......
......@@ -12,6 +12,8 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webvr - sculpt
</div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/WebVR.js"></script>
......
......@@ -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>.
</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>
<video id="video" loop muted crossOrigin="anonymous" webkit-playsinline style="display:none">
......
......@@ -12,6 +12,7 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - paint
</div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.js"></script>
<script src="js/vr/ViveController.js"></script>
......
......@@ -12,9 +12,11 @@
<a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> webgl - htc vive - sculpt
</div>
<script src="js/vr/HelioWebXRPolyfill.js"></script>
<script src="../build/three.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/loaders/OBJLoader.js"></script>
......
......@@ -261,7 +261,6 @@ function WebXRManager( renderer ) {
if ( inputPose !== null ) {
controller.matrix.fromArray( inputPose.transform.matrix );
controller.matrix.decompose( controller.position, controller.rotation, controller.scale );
controller.visible = true;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册