@babylonjs/core 5.0.1 → 5.0.4

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 (43) hide show
  1. package/Engines/Extensions/engine.readTexture.d.ts +2 -2
  2. package/Engines/Extensions/engine.readTexture.js +8 -4
  3. package/Engines/Extensions/engine.readTexture.js.map +1 -1
  4. package/Engines/WebGPU/Extensions/engine.readTexture.js +4 -2
  5. package/Engines/WebGPU/Extensions/engine.readTexture.js.map +1 -1
  6. package/Engines/engine.d.ts +7 -1
  7. package/Engines/engine.js +14 -0
  8. package/Engines/engine.js.map +1 -1
  9. package/Engines/nativeEngine.d.ts +24 -0
  10. package/Engines/nativeEngine.js +39 -0
  11. package/Engines/nativeEngine.js.map +1 -1
  12. package/Engines/thinEngine.d.ts +2 -1
  13. package/Engines/thinEngine.js +16 -6
  14. package/Engines/thinEngine.js.map +1 -1
  15. package/Engines/webgpuEngine.d.ts +13 -1
  16. package/Engines/webgpuEngine.js +25 -1
  17. package/Engines/webgpuEngine.js.map +1 -1
  18. package/Materials/PBR/pbrBaseMaterial.js +3 -0
  19. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  20. package/Materials/Textures/MultiviewRenderTarget.js +1 -0
  21. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  22. package/Materials/Textures/baseTexture.d.ts +5 -1
  23. package/Materials/Textures/baseTexture.js +21 -11
  24. package/Materials/Textures/baseTexture.js.map +1 -1
  25. package/Materials/Textures/texture.d.ts +3 -0
  26. package/Materials/Textures/texture.js +4 -2
  27. package/Materials/Textures/texture.js.map +1 -1
  28. package/Maths/math.color.d.ts +11 -2
  29. package/Maths/math.color.js +12 -7
  30. package/Maths/math.color.js.map +1 -1
  31. package/Meshes/abstractMesh.js +1 -1
  32. package/Meshes/abstractMesh.js.map +1 -1
  33. package/Meshes/mesh.js +0 -1
  34. package/Meshes/mesh.js.map +1 -1
  35. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +6 -1
  36. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +13 -2
  37. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  38. package/XR/features/WebXRHandTracking.js +1 -1
  39. package/XR/features/WebXRHandTracking.js.map +1 -1
  40. package/assetContainer.d.ts +13 -1
  41. package/assetContainer.js +130 -17
  42. package/assetContainer.js.map +1 -1
  43. package/package.json +1 -1
@@ -621,6 +621,17 @@ export declare class WebGPUEngine extends Engine {
621
621
  * @returns a InternalTexture for assignment back into BABYLON.Texture
622
622
  */
623
623
  createTexture(url: Nullable<string>, noMipmap: boolean, invertY: boolean, scene: Nullable<ISceneLike>, samplingMode?: number, onLoad?: Nullable<() => void>, onError?: Nullable<(message: string, exception: any) => void>, buffer?: Nullable<string | ArrayBuffer | ArrayBufferView | HTMLImageElement | Blob | ImageBitmap>, fallback?: Nullable<InternalTexture>, format?: Nullable<number>, forcedExtension?: Nullable<string>, mimeType?: string, loaderOptions?: any, creationFlags?: number, useSRGBBuffer?: boolean): InternalTexture;
624
+ /**
625
+ * Wraps an external web gpu texture in a Babylon texture.
626
+ * @param texture defines the external texture
627
+ * @returns the babylon internal texture
628
+ */
629
+ wrapWebGPUTexture(texture: GPUTexture): InternalTexture;
630
+ /**
631
+ * Wraps an external web gl texture in a Babylon texture.
632
+ * @returns the babylon internal texture
633
+ */
634
+ wrapWebGLTexture(): InternalTexture;
624
635
  generateMipMapsForCubemap(texture: InternalTexture): void;
625
636
  /**
626
637
  * Update the sampling mode of a given texture
@@ -704,8 +715,9 @@ export declare class WebGPUEngine extends Engine {
704
715
  * @param height defines the height of the update rectangle
705
716
  * @param faceIndex defines the face index if texture is a cube (0 by default)
706
717
  * @param lod defines the lod level to update (0 by default)
718
+ * @param generateMipMaps defines whether to generate mipmaps or not
707
719
  */
708
- updateTextureData(texture: InternalTexture, imageData: ArrayBufferView, xOffset: number, yOffset: number, width: number, height: number, faceIndex?: number, lod?: number): void;
720
+ updateTextureData(texture: InternalTexture, imageData: ArrayBufferView, xOffset: number, yOffset: number, width: number, height: number, faceIndex?: number, lod?: number, generateMipMaps?: boolean): void;
709
721
  /**
710
722
  * @param texture
711
723
  * @param internalFormat
@@ -1570,6 +1570,25 @@ var WebGPUEngine = /** @class */ (function (_super) {
1570
1570
  texture.onLoadedObservable.clear();
1571
1571
  }, function () { return false; }, buffer, fallback, format, forcedExtension, mimeType, loaderOptions, useSRGBBuffer);
1572
1572
  };
1573
+ /**
1574
+ * Wraps an external web gpu texture in a Babylon texture.
1575
+ * @param texture defines the external texture
1576
+ * @returns the babylon internal texture
1577
+ */
1578
+ WebGPUEngine.prototype.wrapWebGPUTexture = function (texture) {
1579
+ var hardwareTexture = new WebGPUHardwareTexture(texture);
1580
+ var internalTexture = new InternalTexture(this, InternalTextureSource.Unknown, true);
1581
+ internalTexture._hardwareTexture = hardwareTexture;
1582
+ internalTexture.isReady = true;
1583
+ return internalTexture;
1584
+ };
1585
+ /**
1586
+ * Wraps an external web gl texture in a Babylon texture.
1587
+ * @returns the babylon internal texture
1588
+ */
1589
+ WebGPUEngine.prototype.wrapWebGLTexture = function () {
1590
+ throw new Error("wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.");
1591
+ };
1573
1592
  WebGPUEngine.prototype.generateMipMapsForCubemap = function (texture) {
1574
1593
  var _a;
1575
1594
  if (texture.generateMipMaps) {
@@ -1820,17 +1839,22 @@ var WebGPUEngine = /** @class */ (function (_super) {
1820
1839
  * @param height defines the height of the update rectangle
1821
1840
  * @param faceIndex defines the face index if texture is a cube (0 by default)
1822
1841
  * @param lod defines the lod level to update (0 by default)
1842
+ * @param generateMipMaps defines whether to generate mipmaps or not
1823
1843
  */
1824
- WebGPUEngine.prototype.updateTextureData = function (texture, imageData, xOffset, yOffset, width, height, faceIndex, lod) {
1844
+ WebGPUEngine.prototype.updateTextureData = function (texture, imageData, xOffset, yOffset, width, height, faceIndex, lod, generateMipMaps) {
1825
1845
  var _a;
1826
1846
  if (faceIndex === void 0) { faceIndex = 0; }
1827
1847
  if (lod === void 0) { lod = 0; }
1848
+ if (generateMipMaps === void 0) { generateMipMaps = false; }
1828
1849
  var gpuTextureWrapper = texture._hardwareTexture;
1829
1850
  if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
1830
1851
  gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
1831
1852
  }
1832
1853
  var data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
1833
1854
  this._textureHelper.updateTexture(data, texture, width, height, texture.depth, gpuTextureWrapper.format, faceIndex, lod, texture.invertY, false, xOffset, yOffset);
1855
+ if (generateMipMaps) {
1856
+ this._generateMipmaps(texture, this._renderTargetEncoder);
1857
+ }
1834
1858
  };
1835
1859
  /**
1836
1860
  * @param texture