index.html 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>BabylonJS - Build validation page</title>
  5. <link href="index.css" rel="stylesheet" />
  6. <script src="https://preview.babylonjs.com/draco_decoder_gltf.js"></script>
  7. <script src="https://unpkg.com/earcut@2.1.1/dist/earcut.min.js"></script>
  8. <script src="../../Tools/DevLoader/BabylonLoader.js"></script>
  9. </head>
  10. <body>
  11. <script>
  12. function QueryString() {
  13. const idx = window.location.search.indexOf('?');
  14. if (idx < 0) {
  15. return {};
  16. }
  17. const queryString = {},
  18. query = window.location.search.substring(idx + 1),
  19. vars = query.split("&");
  20. for (let i = 0; i < vars.length; i++) {
  21. const pair = vars[i].split("=");
  22. const name = decodeURIComponent(pair[0]);
  23. const val = pair.length > 1 ? decodeURIComponent(pair[1]) : null;
  24. if (val === null) {
  25. queryString["test"] = name;
  26. } else if (queryString[name] === undefined) {
  27. queryString[name] = val;
  28. } else if (typeof queryString[name] === "string") {
  29. queryString[name] = [ queryString[name], val ];
  30. } else {
  31. queryString[name].push(val);
  32. }
  33. }
  34. return queryString;
  35. }
  36. BABYLONDEVTOOLS.Loader.require('validation.js')
  37. .load(function() {
  38. // Loading tests
  39. var xhr = new XMLHttpRequest();
  40. var qs = QueryString();
  41. xhr.open("GET", qs.list ? qs.list + ".json" : "config.json", true);
  42. xhr.addEventListener("load", async function() {
  43. if (xhr.status === 200) {
  44. config = JSON.parse(xhr.responseText);
  45. // Run tests
  46. var index = 0;
  47. if (qs.test) {
  48. justOnce = true;
  49. for (var index = 0; index < config.tests.length; index++) {
  50. if (config.tests[index].title === qs.test) {
  51. break;
  52. }
  53. }
  54. }
  55. if (qs.fromtest) {
  56. for (var index = 0; index < config.tests.length; index++) {
  57. if (config.tests[index].title === qs.fromtest) {
  58. break;
  59. }
  60. }
  61. }
  62. await init(qs.engine || "webgl2");
  63. var recursiveRunTest = function(i) {
  64. runTest(i, function() {
  65. i++;
  66. if (justOnce || i >= config.tests.length) {
  67. return;
  68. }
  69. recursiveRunTest(i);
  70. }, qs.list !== "config" && qs.list || "");
  71. }
  72. recursiveRunTest(index);
  73. }
  74. }, false);
  75. xhr.send();
  76. });
  77. </script>
  78. </body>
  79. </html>