tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

xrReferenceSpace_originOffset_viewer.https.html (1828B)


      1 <!DOCTYPE html>
      2 <script src="/resources/testharness.js"></script>
      3 <script src="/resources/testharnessreport.js"></script>
      4 <script src="resources/webxr_util.js"></script>
      5 <script src="resources/webxr_test_constants.js"></script>
      6 <script src="resources/webxr_test_asserts.js"></script>
      7 
      8 <script>
      9 let testName = "Creating XRReferenceSpace origin offset off of `viewer` space works.";
     10 
     11 let fakeDeviceInitParams = {
     12  supportsImmersive: true,
     13  supportedModes: ["inline", "immersive-vr"],
     14  viewerOrigin: VALID_POSE_TRANSFORM,
     15  views: VALID_VIEWS,
     16  supportedFeatures: ALL_FEATURES
     17 };
     18 
     19 let originOffsetPosition = new DOMPointReadOnly(0, 0, 1);
     20 
     21 let testFunction =
     22  (session, fakeDeviceController, t) => new Promise((resolve) => {
     23 
     24    session.requestReferenceSpace('local').then( (localSpace) => {
     25      session.requestReferenceSpace('viewer').then( (viewerSpace) => {
     26 
     27        let offsetSpace = viewerSpace.getOffsetReferenceSpace(
     28          new XRRigidTransform(originOffsetPosition));
     29 
     30        function OnFrame(time, frame) {
     31          let viewerPose = frame.getPose(viewerSpace, localSpace);
     32          let offsetPose = frame.getPose(offsetSpace, localSpace);
     33 
     34          let viewerPose2 = frame.getPose(localSpace ,viewerSpace);
     35          let offsetPose2 = frame.getPose(localSpace, offsetSpace);
     36 
     37          t.step(() => {
     38            assert_point_significantly_not_equals(viewerPose.transform.position, offsetPose.transform.position);
     39            assert_point_significantly_not_equals(viewerPose2.transform.position, offsetPose2.transform.position);
     40          });
     41 
     42          resolve();
     43        }
     44 
     45        // Can only request input poses in an xr frame.
     46        session.requestAnimationFrame(OnFrame);
     47      });
     48    });
     49  });
     50 
     51 xr_session_promise_test(
     52  testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
     53 
     54 </script>