index.js 4.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. // Version
  2. var Versions = {
  3. "Latest": [
  4. "https://preview.babylonjs.com/babylon.js",
  5. "https://preview.babylonjs.com/gui/babylon.gui.min.js",
  6. "https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js",
  7. "https://preview.babylonjs.com/nodeEditor/babylon.nodeEditor.js",
  8. "https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js",
  9. "https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  10. "https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js",
  11. "https://preview.babylonjs.com/loaders/babylonjs.loaders.min.js",
  12. "https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"
  13. ],
  14. "4.1.0": [
  15. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/babylon.js",
  16. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/gui/babylon.gui.min.js",
  17. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/inspector/babylon.inspector.bundle.js",
  18. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/materialsLibrary/babylonjs.materials.min.js",
  19. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  20. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  21. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/loaders/babylonjs.loaders.min.js",
  22. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/serializers/babylonjs.serializers.min.js"
  23. ],
  24. "4.0.3": [
  25. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/babylon.js",
  26. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/gui/babylon.gui.min.js",
  27. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/inspector/babylon.inspector.bundle.js",
  28. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/materialsLibrary/babylonjs.materials.min.js",
  29. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  30. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  31. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/loaders/babylonjs.loaders.min.js",
  32. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/serializers/babylonjs.serializers.min.js"
  33. ],
  34. "3.3": [
  35. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/babylon.js",
  36. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/gui/babylon.gui.min.js",
  37. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/inspector/babylon.inspector.bundle.js",
  38. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/materialsLibrary/babylonjs.materials.min.js",
  39. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  40. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  41. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/loaders/babylonjs.loaders.min.js",
  42. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/serializers/babylonjs.serializers.min.js"
  43. ]
  44. };
  45. let loadScriptAsync = function(url) {
  46. return new Promise((resolve, reject) => {
  47. let script = document.createElement('script');
  48. script.src = url;
  49. script.onload = () => {
  50. resolve();
  51. }
  52. document.head.appendChild(script);
  53. });
  54. }
  55. let readStringFromStore = function(key, defaultValue) {
  56. if (localStorage.getItem(key) === null) {
  57. return defaultValue;
  58. }
  59. return localStorage.getItem(key);
  60. }
  61. let checkBabylonVersionAsync= function () {
  62. let activeVersion = readStringFromStore("version", "Latest");
  63. if (activeVersion === "Latest") {
  64. return Promise.resolve();
  65. }
  66. let tasks = [];
  67. for (var file of Versions[activeVersion]) {
  68. tasks.push(loadScriptAsync(file));
  69. }
  70. return Promise.all(tasks);
  71. }
  72. checkBabylonVersionAsync().then(() => {
  73. loadScriptAsync("dist/babylon.playground.js").then(() => {
  74. var hostElement = document.getElementById("host-element");
  75. BABYLON.Playground.Show(hostElement);
  76. });
  77. });