| OLD | NEW |
| 1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
| 2 <script src="../resources/testharness.js"></script> | 2 <script src="../resources/testharness.js"></script> |
| 3 <script src="../resources/testharnessreport.js"></script> | 3 <script src="../resources/testharnessreport.js"></script> |
| 4 <script src="../resources/mojo-helpers.js"></script> | 4 <script src="../resources/mojo-helpers.js"></script> |
| 5 <script src="resources/fake-vr-displays.js"></script> | 5 <script src="resources/fake-vr-displays.js"></script> |
| 6 <script src="resources/mock-vr-service.js"></script> | 6 <script src="resources/mock-vr-service.js"></script> |
| 7 <script src="resources/test-constants.js"></script> | 7 <script src="resources/test-constants.js"></script> |
| 8 <canvas id="webgl-canvas"></canvas> | 8 <canvas id="webgl-canvas"></canvas> |
| 9 <script src="resources/presentation-setup.js"></script> | 9 <script src="resources/presentation-setup.js"></script> |
| 10 <canvas id="webgl-canvas2"></canvas> |
| 10 <script> | 11 <script> |
| 12 var webglCanvas2 = document.getElementById("webgl-canvas2"); |
| 13 var gl2 = webglCanvas2.getContext("webgl", glAttributes); |
| 11 let fakeDisplays = fakeVRDisplays(); | 14 let fakeDisplays = fakeVRDisplays(); |
| 12 | 15 |
| 13 vr_test( (t) => { | 16 vr_test( (t) => { |
| 14 return navigator.getVRDisplays().then( (displays) => { | 17 return navigator.getVRDisplays().then( (displays) => { |
| 15 var display = displays[0]; | 18 var display = displays[0]; |
| 16 | 19 |
| 17 t.step( () => { | 20 t.step( () => { |
| 18 assert_equals(display.getLayers().length, 0); | 21 assert_equals(display.getLayers().length, 0); |
| 19 }, "No layers initially returned"); | 22 }, "No layers initially returned"); |
| 20 | 23 |
| 21 runWithUserGesture( () => { | 24 runWithUserGesture( () => { |
| 22 display.requestPresent([{ source : webglCanvas }]).then( () => { | 25 display.requestPresent([{ source : webglCanvas }]).then( () => { |
| 23 t.step( () => { | 26 t.step( () => { |
| 24 let layers = display.getLayers(); | 27 assert_equals(display.getLayers()[0].source, webglCanvas); |
| 25 assert_equals(layers.length, 1); | 28 }, "Initial layer source matches first canvas"); |
| 26 let layer = layers[0]; | 29 display.requestPresent([{ source : webglCanvas2 }]).then( () => { |
| 27 | 30 t.step( () => { |
| 28 assert_equals(layer.source, webglCanvas); | 31 assert_equals(display.getLayers()[0].source, webglCanvas2); |
| 29 assert_equals(layer.leftBounds.length, 4); | 32 assert_not_equals(display.getLayers()[0].source, webglCanvas); |
| 30 assert_equals(layer.rightBounds.length, 4); | 33 }, "Source now matches second canvas"); |
| 31 | 34 }, (err) => { |
| 32 let expectedLeft = [0.0, 0.0, 0.5, 1.0]; | 35 t.step( () => { |
| 33 let expectedRight = [0.5, 0.0, 0.5, 1.0]; | 36 assert_unreached(err); |
| 34 for (let i = 0; i < layer.leftBounds.length; i++) { | 37 }, "Second requestPresent failed") |
| 35 assert_approx_equals(layer.leftBounds[i], expectedLeft[i], | 38 }).then( () => { |
| 36 FLOAT_EPSILON); | 39 t.done(); |
| 37 assert_approx_equals(layer.rightBounds[i], expectedRight[i], | 40 }); |
| 38 FLOAT_EPSILON); | |
| 39 } | |
| 40 }, "Layer is correct"); | |
| 41 }, (err) => { | 41 }, (err) => { |
| 42 t.step( () => { | 42 t.step( () => { |
| 43 assert_unreached(); | 43 assert_unreached(); |
| 44 }, "requestPresent failed"); | 44 }, "First requestPresent failed"); |
| 45 }).then( () => { | |
| 46 t.done(); | |
| 47 }); | 45 }); |
| 48 }); | 46 }); |
| 49 }, (err) => { | 47 }, (err) => { |
| 50 t.step( () => { | 48 t.step( () => { |
| 51 assert_unreached(); | 49 assert_unreached(); |
| 52 }, "getVRDisplays rejected"); | 50 }, "getVRDisplays rejected"); |
| 53 t.done(); | 51 t.done(); |
| 54 }); | 52 }); |
| 55 }, [fakeDisplays["Pixel"]], | 53 }, [fakeDisplays["Pixel"]], |
| 56 "Test getLayers returns an empty array when not presenting"); | 54 "Test getLayers returns updated source layer when requestPresent is re-called"); |
| 57 | 55 |
| 58 </script> | 56 </script> |
| OLD | NEW |