@babylonjs/core 5.48.0 → 5.48.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/Bones/skeleton.js +1 -1
  2. package/Bones/skeleton.js.map +1 -1
  3. package/Debug/physicsViewer.js +4 -0
  4. package/Debug/physicsViewer.js.map +1 -1
  5. package/Engines/Native/nativeInterfaces.d.ts +0 -1
  6. package/Engines/Native/nativeInterfaces.js.map +1 -1
  7. package/Engines/engine.d.ts +3 -1
  8. package/Engines/engine.js +14 -5
  9. package/Engines/engine.js.map +1 -1
  10. package/Engines/engineStore.d.ts +6 -0
  11. package/Engines/engineStore.js +6 -0
  12. package/Engines/engineStore.js.map +1 -1
  13. package/Engines/nativeEngine.d.ts +3 -2
  14. package/Engines/nativeEngine.js +9 -5
  15. package/Engines/nativeEngine.js.map +1 -1
  16. package/Engines/thinEngine.d.ts +4 -3
  17. package/Engines/thinEngine.js +11 -13
  18. package/Engines/thinEngine.js.map +1 -1
  19. package/Helpers/environmentHelper.d.ts +1 -0
  20. package/Helpers/environmentHelper.js +6 -5
  21. package/Helpers/environmentHelper.js.map +1 -1
  22. package/Loading/Plugins/babylonFileLoader.js +1 -0
  23. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  24. package/Materials/Background/backgroundMaterial.js +1 -1
  25. package/Materials/Background/backgroundMaterial.js.map +1 -1
  26. package/Materials/Node/Blocks/Input/inputBlock.js +8 -8
  27. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  28. package/Materials/Textures/thinTexture.d.ts +4 -2
  29. package/Materials/Textures/thinTexture.js +5 -2
  30. package/Materials/Textures/thinTexture.js.map +1 -1
  31. package/Materials/material.js +5 -0
  32. package/Materials/material.js.map +1 -1
  33. package/Materials/materialHelper.js +1 -1
  34. package/Materials/materialHelper.js.map +1 -1
  35. package/Materials/materialPluginBase.js +3 -0
  36. package/Materials/materialPluginBase.js.map +1 -1
  37. package/Materials/pushMaterial.d.ts +2 -1
  38. package/Materials/pushMaterial.js +4 -0
  39. package/Materials/pushMaterial.js.map +1 -1
  40. package/Maths/math.color.d.ts +20 -12
  41. package/Maths/math.color.js +85 -31
  42. package/Maths/math.color.js.map +1 -1
  43. package/Misc/decorators.js +2 -2
  44. package/Misc/decorators.js.map +1 -1
  45. package/Misc/fileTools.js +3 -0
  46. package/Misc/fileTools.js.map +1 -1
  47. package/Misc/khronosTextureContainer2.d.ts +3 -3
  48. package/Misc/khronosTextureContainer2.js +4 -3
  49. package/Misc/khronosTextureContainer2.js.map +1 -1
  50. package/Misc/observable.d.ts +18 -1
  51. package/Misc/observable.js +28 -2
  52. package/Misc/observable.js.map +1 -1
  53. package/Physics/v2/IPhysicsEnginePlugin.d.ts +3 -0
  54. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  55. package/Physics/v2/physicsAggregate.js +1 -1
  56. package/Physics/v2/physicsAggregate.js.map +1 -1
  57. package/Physics/v2/physicsBody.d.ts +12 -0
  58. package/Physics/v2/physicsBody.js +19 -0
  59. package/Physics/v2/physicsBody.js.map +1 -1
  60. package/Physics/v2/physicsShape.d.ts +24 -4
  61. package/Physics/v2/physicsShape.js +24 -13
  62. package/Physics/v2/physicsShape.js.map +1 -1
  63. package/package.json +1 -1
  64. package/scene.d.ts +1 -1
  65. package/scene.js +47 -46
  66. package/scene.js.map +1 -1
package/Engines/engine.js CHANGED
@@ -839,7 +839,7 @@ export class Engine extends ThinEngine {
839
839
  _renderLoop() {
840
840
  if (!this._contextWasLost) {
841
841
  let shouldRender = true;
842
- if (!this.renderEvenInBackground && this._windowIsBackground) {
842
+ if (this.isDisposed || (!this.renderEvenInBackground && this._windowIsBackground)) {
843
843
  shouldRender = false;
844
844
  }
845
845
  if (shouldRender) {
@@ -1163,13 +1163,17 @@ export class Engine extends ThinEngine {
1163
1163
  /**
1164
1164
  * Wraps an external web gl texture in a Babylon texture.
1165
1165
  * @param texture defines the external texture
1166
+ * @param hasMipMaps defines whether the external texture has mip maps (default: false)
1167
+ * @param samplingMode defines the sampling mode for the external texture (default: 3)
1166
1168
  * @returns the babylon internal texture
1167
1169
  */
1168
- wrapWebGLTexture(texture) {
1170
+ wrapWebGLTexture(texture, hasMipMaps = false, samplingMode = 3) {
1169
1171
  const hardwareTexture = new WebGLHardwareTexture(texture, this._gl);
1170
1172
  const internalTexture = new InternalTexture(this, InternalTextureSource.Unknown, true);
1171
1173
  internalTexture._hardwareTexture = hardwareTexture;
1172
1174
  internalTexture.isReady = true;
1175
+ internalTexture.useMipMaps = hasMipMaps;
1176
+ this.updateTextureSamplingMode(samplingMode, internalTexture);
1173
1177
  return internalTexture;
1174
1178
  }
1175
1179
  /**
@@ -1317,7 +1321,7 @@ export class Engine extends ThinEngine {
1317
1321
  this._virtualScenes[0].dispose();
1318
1322
  }
1319
1323
  // Release audio engine
1320
- if (Engine.Instances.length === 1 && Engine.audioEngine) {
1324
+ if (EngineStore.Instances.length === 1 && Engine.audioEngine) {
1321
1325
  Engine.audioEngine.dispose();
1322
1326
  Engine.audioEngine = null;
1323
1327
  }
@@ -1347,9 +1351,14 @@ export class Engine extends ThinEngine {
1347
1351
  }
1348
1352
  super.dispose();
1349
1353
  // Remove from Instances
1350
- const index = Engine.Instances.indexOf(this);
1354
+ const index = EngineStore.Instances.indexOf(this);
1351
1355
  if (index >= 0) {
1352
- Engine.Instances.splice(index, 1);
1356
+ EngineStore.Instances.splice(index, 1);
1357
+ }
1358
+ // no more engines left in the engine store? Notify!
1359
+ if (!Engine.Instances.length) {
1360
+ EngineStore.OnEnginesDisposedObservable.notifyObservers(this);
1361
+ EngineStore.OnEnginesDisposedObservable.clear();
1353
1362
  }
1354
1363
  // Observables
1355
1364
  this.onResizeObservable.clear();