index.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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/guiEditor/babylon.guiEditor.js",
  9. "https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js",
  10. "https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  11. "https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js",
  12. "https://preview.babylonjs.com/loaders/babylonjs.loaders.min.js",
  13. "https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js"
  14. ],
  15. "4.2.0": [
  16. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/babylon.js",
  17. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/gui/babylon.gui.min.js",
  18. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/inspector/babylon.inspector.bundle.js",
  19. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/materialsLibrary/babylonjs.materials.min.js",
  20. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  21. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  22. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/loaders/babylonjs.loaders.min.js",
  23. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.2.0/dist/serializers/babylonjs.serializers.min.js"
  24. ],
  25. "4.1.0": [
  26. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/babylon.js",
  27. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/gui/babylon.gui.min.js",
  28. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/inspector/babylon.inspector.bundle.js",
  29. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/materialsLibrary/babylonjs.materials.min.js",
  30. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  31. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  32. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/loaders/babylonjs.loaders.min.js",
  33. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.1.0/dist/serializers/babylonjs.serializers.min.js"
  34. ],
  35. "4.0.3": [
  36. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/babylon.js",
  37. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/gui/babylon.gui.min.js",
  38. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/inspector/babylon.inspector.bundle.js",
  39. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/materialsLibrary/babylonjs.materials.min.js",
  40. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  41. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  42. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/loaders/babylonjs.loaders.min.js",
  43. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@4.0.3/dist/serializers/babylonjs.serializers.min.js"
  44. ],
  45. "3.3": [
  46. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/babylon.js",
  47. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/gui/babylon.gui.min.js",
  48. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/inspector/babylon.inspector.bundle.js",
  49. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/materialsLibrary/babylonjs.materials.min.js",
  50. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js",
  51. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/postProcessesLibrary/babylonjs.postProcess.min.js",
  52. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/loaders/babylonjs.loaders.min.js",
  53. "https://cdn.jsdelivr.net/gh/BabylonJS/Babylon.js@3.3.0/dist/serializers/babylonjs.serializers.min.js"
  54. ]
  55. };
  56. let loadScriptAsync = function(url) {
  57. return new Promise((resolve, reject) => {
  58. let script = document.createElement('script');
  59. script.src = url;
  60. script.onload = () => {
  61. resolve();
  62. }
  63. document.head.appendChild(script);
  64. });
  65. }
  66. let readStringFromStore = function(key, defaultValue) {
  67. if (localStorage.getItem(key) === null) {
  68. return defaultValue;
  69. }
  70. return localStorage.getItem(key);
  71. }
  72. let loadInSequence = async function(versions, index, resolve) {
  73. if (index >= versions.length) {
  74. resolve();
  75. return;
  76. }
  77. await loadScriptAsync(versions[index]);
  78. loadInSequence(versions, index + 1, resolve);
  79. }
  80. let checkBabylonVersionAsync= function () {
  81. let activeVersion = readStringFromStore("version", "Latest");
  82. if (activeVersion === "Latest") {
  83. return Promise.resolve();
  84. }
  85. return new Promise((resolve, reject) => {
  86. loadInSequence(Versions[activeVersion], 0, resolve);
  87. });
  88. }
  89. var storedPGObbject = BABYLON.Playground;
  90. checkBabylonVersionAsync().then(() => {
  91. if (typeof BABYLONDEVTOOLS !== 'undefined') {
  92. var hostElement = document.getElementById("host-element");
  93. storedPGObbject.Show(hostElement);
  94. return;
  95. }
  96. loadScriptAsync("/dist/babylon.playground.js").then(() => {
  97. var hostElement = document.getElementById("host-element");
  98. BABYLON.Playground.Show(hostElement);
  99. });
  100. });