render_state_update_inline.https.html (1496B)
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 fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE; 9 10 let testParams = function(session, fakeDeviceController, t, sessionObjects) { 11 return new Promise((resolve, reject) => { 12 let gl = sessionObjects.gl; 13 try { 14 gl.makeXRCompatible().then(() => { 15 t.step(() => { 16 let fov = Math.PI; 17 let near = 0.2; 18 let far = 0.8; 19 let layer = new XRWebGLLayer(session, gl); 20 session.updateRenderState({ inlineVerticalFieldOfView: fov, depthNear: near, depthFar: far, baseLayer: layer }); 21 // The update can only happen between frame boundaries, updateRenderState only queues changes. 22 assert_not_equals(session.renderState.inlineVerticalFieldOfView, fov); 23 assert_not_equals(session.renderState.depthNear, near); 24 assert_not_equals(session.renderState.depthFar, far); 25 assert_not_equals(session.renderState.baseLayer, layer); 26 }); 27 }); 28 } catch (err) { 29 assert_unreached("updateRenderState should not fail when all params are specified"); 30 } 31 resolve(); 32 }); 33 }; 34 35 let testName = "updateRenderState handles appropriately XRRenderStateInit params"; 36 xr_session_promise_test(testName, testParams, fakeDeviceInitParams, 'inline'); 37 38 </script>