worker.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. importScripts('../Tools/DevLoader/BabylonLoader.js');
  2. // Global to simulate PG.
  3. var engine = null;
  4. var canvas = null;
  5. onmessage = function(evt) {
  6. canvas = evt.data.canvas;
  7. // Load the scripts + map file to allow vscode debug.
  8. BABYLONDEVTOOLS.Loader
  9. .require("src/index.js")
  10. .load(function() {
  11. if (typeof createEngine !== "undefined") {
  12. engine = createEngine();
  13. } else {
  14. engine = new BABYLON.Engine(canvas, true, { premultipliedAlpha: false, stencil: true, disableWebGL2Support: false, preserveDrawingBuffer: true });
  15. }
  16. // call the scene creation from the js.
  17. if (typeof delayCreateScene !== "undefined") {
  18. var scene = delayCreateScene();
  19. if (scene) {
  20. // Register a render loop to repeatedly render the scene
  21. engine.runRenderLoop(function() {
  22. if (scene.activeCamera) {
  23. scene.render();
  24. }
  25. // divFps.innerHTML = engine.getFps().toFixed() + " fps";
  26. });
  27. }
  28. }
  29. else {
  30. var scene = createScene();
  31. if (scene) {
  32. var processCurrentScene = function(scene) {
  33. engine.runRenderLoop(function() {
  34. scene.render();
  35. //divFps.innerHTML = engine.getFps().toFixed() + " fps";
  36. });
  37. }
  38. if (scene.then) {
  39. // Handle if createScene returns a promise
  40. scene.then(function(currentScene) {
  41. processCurrentScene(currentScene);
  42. }).catch(function(e) {
  43. console.error(e);
  44. onError();
  45. });
  46. } else {
  47. // Register a render loop to repeatedly render the scene
  48. processCurrentScene(scene);
  49. }
  50. }
  51. }
  52. });
  53. }