xrPose_transform_sameObject.https.html (1565B)
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 7 <script> 8 let testName = "XRPose.transform meets [SameObject] requirement"; 9 10 let testFunction = function(session, fakeDeviceController, t) { 11 return new Promise((resolve) => { 12 let input_source = fakeDeviceController.simulateInputSourceConnection({ 13 handedness: "right", 14 targetRayMode: "tracked-pointer", 15 pointerOrigin: VALID_POINTER_TRANSFORM, 16 gripOrigin: VALID_GRIP_TRANSFORM, 17 profiles: [] 18 }); 19 20 session.requestReferenceSpace('local').then((referenceSpace) => { 21 requestSkipAnimationFrame(session, (time, xrFrame) => { 22 let source = session.inputSources[0]; 23 let input_pose = xrFrame.getPose(source.targetRaySpace, referenceSpace); 24 25 // Make sure that the transform attribute is the same object each time 26 // we access it. This verifies that the XRPose does *not* do something 27 // spec-noncompliant such as creating and returning a new 28 // XRRigidTransform object each time the attribute is accessed. 29 let transform = input_pose.transform; 30 t.step(() => { 31 assert_equals(transform, input_pose.transform, 32 "XRPose.transform returns the same object."); 33 }); 34 resolve(); 35 }); 36 }); 37 }); 38 }; 39 40 xr_session_promise_test( 41 testName, testFunction, TRACKED_IMMERSIVE_DEVICE, 'immersive-vr'); 42 </script>