getViewerPose_emulatedPosition.https.html (1824B)
1 <!DOCTYPE html> 2 <body> 3 <script src=/resources/testharness.js></script> 4 <script src=/resources/testharnessreport.js></script> 5 <script src="resources/webxr_util.js"></script> 6 <script src="resources/webxr_test_constants.js"></script> 7 8 <script> 9 10 let testName = "XRFrame getViewerPose has emulatedPosition set properly."; 11 12 const poseTransform = { 13 position: [1, 1, 1], 14 orientation: [0.5, 0.5, 0.5, 0.5] 15 }; 16 17 let testFunction = function(session, fakeDeviceController, t) { 18 let debug = xr_debug.bind(this, 'testFunction'); 19 return session.requestReferenceSpace('local') 20 .then((referenceSpace) => new Promise((resolve, reject) => { 21 debug('refSpace promise'); 22 function CheckPositionNotEmulated(time, vrFrame){ 23 debug('rAF 1: checkPositionNotEmulated'); 24 t.step(() => { 25 let pose = vrFrame.getViewerPose(referenceSpace); 26 assert_not_equals(pose, null); 27 assert_equals(pose.emulatedPosition, false); 28 fakeDeviceController.setViewerOrigin(poseTransform, true); 29 }); 30 31 session.requestAnimationFrame(CheckPositionEmulated); 32 } 33 34 function CheckPositionEmulated(time, vrFrame) { 35 debug('rAF 2: checkPositionEmulated'); 36 t.step(() => { 37 let pose = vrFrame.getViewerPose(referenceSpace); 38 assert_not_equals(pose, null); 39 assert_equals(pose.emulatedPosition, true); 40 }); 41 42 // Finished. 43 debug('resolve'); 44 resolve(); 45 } 46 47 requestSkipAnimationFrame(session, CheckPositionNotEmulated); 48 })); 49 }; 50 51 xr_session_promise_test(testName, testFunction, 52 TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); 53 54 </script> 55 </body>