@babylonjs/core 5.27.0 → 5.28.0

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 (432) hide show
  1. package/Animations/animatable.js +2 -1
  2. package/Animations/animatable.js.map +1 -1
  3. package/Animations/runtimeAnimation.js +1 -1
  4. package/Animations/runtimeAnimation.js.map +1 -1
  5. package/Audio/audioSceneComponent.js +2 -1
  6. package/Audio/audioSceneComponent.js.map +1 -1
  7. package/Audio/sound.js +70 -45
  8. package/Audio/sound.js.map +1 -1
  9. package/Audio/soundTrack.js +12 -6
  10. package/Audio/soundTrack.js.map +1 -1
  11. package/BakedVertexAnimation/bakedVertexAnimationManager.js +2 -1
  12. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  13. package/Behaviors/Cameras/autoRotationBehavior.js +1 -1
  14. package/Behaviors/Cameras/autoRotationBehavior.js.map +1 -1
  15. package/Behaviors/Meshes/followBehavior.js +2 -1
  16. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  17. package/Behaviors/Meshes/handConstraintBehavior.js +6 -6
  18. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  19. package/Bones/bone.js +2 -1
  20. package/Bones/bone.js.map +1 -1
  21. package/Bones/skeleton.js +3 -2
  22. package/Bones/skeleton.js.map +1 -1
  23. package/Cameras/Inputs/BaseCameraPointersInput.js +2 -2
  24. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  25. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +5 -3
  26. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  27. package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
  28. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  29. package/Cameras/Inputs/freeCameraMouseInput.js +2 -2
  30. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  31. package/Cameras/arcRotateCamera.js +2 -1
  32. package/Cameras/arcRotateCamera.js.map +1 -1
  33. package/Cameras/camera.js +6 -4
  34. package/Cameras/camera.js.map +1 -1
  35. package/Compute/computeEffect.js +8 -5
  36. package/Compute/computeEffect.js.map +1 -1
  37. package/Compute/computeShader.js +12 -11
  38. package/Compute/computeShader.js.map +1 -1
  39. package/Culling/Octrees/octreeSceneComponent.js +2 -1
  40. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  41. package/Culling/boundingBox.js +3 -2
  42. package/Culling/boundingBox.js.map +1 -1
  43. package/Culling/ray.js +2 -1
  44. package/Culling/ray.js.map +1 -1
  45. package/Debug/directionalLightFrustumViewer.js +9 -7
  46. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  47. package/Debug/rayHelper.js +2 -1
  48. package/Debug/rayHelper.js.map +1 -1
  49. package/Debug/skeletonViewer.js +29 -24
  50. package/Debug/skeletonViewer.js.map +1 -1
  51. package/DeviceInput/InputDevices/deviceSourceManager.js +5 -3
  52. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  53. package/DeviceInput/internalDeviceSourceManager.js +2 -1
  54. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  55. package/DeviceInput/webDeviceInputSystem.js +12 -9
  56. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  57. package/Engines/Extensions/engine.rawTexture.js +4 -4
  58. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  59. package/Engines/Extensions/engine.readTexture.js +3 -2
  60. package/Engines/Extensions/engine.readTexture.js.map +1 -1
  61. package/Engines/Extensions/engine.views.js +2 -1
  62. package/Engines/Extensions/engine.views.js.map +1 -1
  63. package/Engines/Processors/shaderProcessor.js +11 -6
  64. package/Engines/Processors/shaderProcessor.js.map +1 -1
  65. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +1 -1
  66. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  67. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +2 -1
  68. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  69. package/Engines/WebGPU/Extensions/engine.multiRender.js +2 -1
  70. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  71. package/Engines/WebGPU/Extensions/engine.query.js +4 -2
  72. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  73. package/Engines/WebGPU/Extensions/engine.rawTexture.js +4 -4
  74. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  75. package/Engines/WebGPU/Extensions/engine.renderTarget.js +2 -1
  76. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  77. package/Engines/WebGPU/Extensions/engine.storageBuffer.js +3 -2
  78. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
  79. package/Engines/WebGPU/Extensions/engine.textureSampler.js +2 -1
  80. package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +1 -1
  81. package/Engines/WebGPU/Extensions/engine.videoTexture.js +2 -1
  82. package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
  83. package/Engines/WebGPU/webgpuCacheBindGroups.js +7 -6
  84. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  85. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +18 -14
  86. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  87. package/Engines/WebGPU/webgpuCacheSampler.js +4 -3
  88. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  89. package/Engines/WebGPU/webgpuClearQuad.js +3 -2
  90. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  91. package/Engines/WebGPU/webgpuComputePipelineContext.js +2 -1
  92. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  93. package/Engines/WebGPU/webgpuDepthCullingState.js +2 -2
  94. package/Engines/WebGPU/webgpuDepthCullingState.js.map +1 -1
  95. package/Engines/WebGPU/webgpuDrawContext.js +2 -1
  96. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  97. package/Engines/WebGPU/webgpuHardwareTexture.js +4 -3
  98. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  99. package/Engines/WebGPU/webgpuMaterialContext.js +5 -4
  100. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  101. package/Engines/WebGPU/webgpuOcclusionQuery.js +5 -3
  102. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  103. package/Engines/WebGPU/webgpuPipelineContext.js +4 -2
  104. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  105. package/Engines/WebGPU/webgpuShaderProcessingContext.js +4 -2
  106. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  107. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +2 -1
  108. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  109. package/Engines/WebGPU/webgpuSnapshotRendering.js +3 -2
  110. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -1
  111. package/Engines/WebGPU/webgpuStencilStateComposer.js +2 -1
  112. package/Engines/WebGPU/webgpuStencilStateComposer.js.map +1 -1
  113. package/Engines/WebGPU/webgpuTextureHelper.js +40 -38
  114. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  115. package/Engines/engine.d.ts +898 -273
  116. package/Engines/engine.js +5 -3
  117. package/Engines/engine.js.map +1 -1
  118. package/Engines/nativeEngine.js +7 -5
  119. package/Engines/nativeEngine.js.map +1 -1
  120. package/Engines/nullEngine.d.ts +7 -0
  121. package/Engines/nullEngine.js +42 -0
  122. package/Engines/nullEngine.js.map +1 -1
  123. package/Engines/renderTargetWrapper.js +14 -9
  124. package/Engines/renderTargetWrapper.js.map +1 -1
  125. package/Engines/thinEngine.js +25 -16
  126. package/Engines/thinEngine.js.map +1 -1
  127. package/Engines/webgpuEngine.js +87 -61
  128. package/Engines/webgpuEngine.js.map +1 -1
  129. package/Gamepads/gamepadManager.js +1 -1
  130. package/Gamepads/gamepadManager.js.map +1 -1
  131. package/Gizmos/axisDragGizmo.js +4 -2
  132. package/Gizmos/axisDragGizmo.js.map +1 -1
  133. package/Gizmos/axisScaleGizmo.js +6 -4
  134. package/Gizmos/axisScaleGizmo.js.map +1 -1
  135. package/Gizmos/gizmo.js +21 -6
  136. package/Gizmos/gizmo.js.map +1 -1
  137. package/Gizmos/gizmoManager.js +3 -2
  138. package/Gizmos/gizmoManager.js.map +1 -1
  139. package/Gizmos/planeDragGizmo.js +4 -2
  140. package/Gizmos/planeDragGizmo.js.map +1 -1
  141. package/Gizmos/planeRotationGizmo.js +4 -2
  142. package/Gizmos/planeRotationGizmo.js.map +1 -1
  143. package/Helpers/videoDome.js +2 -1
  144. package/Helpers/videoDome.js.map +1 -1
  145. package/Layers/effectLayer.js +5 -3
  146. package/Layers/effectLayer.js.map +1 -1
  147. package/Layers/glowLayer.js +4 -3
  148. package/Layers/glowLayer.js.map +1 -1
  149. package/Layers/highlightLayer.js +2 -1
  150. package/Layers/highlightLayer.js.map +1 -1
  151. package/LensFlares/lensFlareSystem.js +2 -1
  152. package/LensFlares/lensFlareSystem.js.map +1 -1
  153. package/Lights/Shadows/cascadedShadowGenerator.js +25 -21
  154. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  155. package/Lights/Shadows/shadowGenerator.js +13 -8
  156. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  157. package/Loading/Plugins/babylonFileLoader.js +2 -1
  158. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  159. package/Loading/sceneLoader.d.ts +1 -1
  160. package/Loading/sceneLoader.js +3 -3
  161. package/Loading/sceneLoader.js.map +1 -1
  162. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +2 -1
  163. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  164. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +2 -1
  165. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  166. package/Materials/Node/Blocks/Dual/textureBlock.js +10 -6
  167. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  168. package/Materials/Node/Blocks/Fragment/TBNBlock.js +3 -2
  169. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  170. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +2 -1
  171. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  172. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +2 -1
  173. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  174. package/Materials/Node/Blocks/Input/inputBlock.js +2 -1
  175. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  176. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +26 -24
  177. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  178. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +3 -3
  179. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  180. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +48 -44
  181. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  182. package/Materials/Node/Blocks/PBR/reflectionBlock.js +2 -1
  183. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  184. package/Materials/Node/Blocks/PBR/refractionBlock.js +2 -1
  185. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  186. package/Materials/Node/Blocks/PBR/sheenBlock.js +13 -13
  187. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  188. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +27 -26
  189. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  190. package/Materials/Node/Blocks/Vertex/instancesBlock.js +2 -2
  191. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  192. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +6 -6
  193. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  194. package/Materials/Node/Blocks/cloudBlock.js +3 -2
  195. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  196. package/Materials/Node/Blocks/colorMergerBlock.js +5 -4
  197. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  198. package/Materials/Node/Blocks/customBlock.js +4 -3
  199. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  200. package/Materials/Node/Blocks/vectorMergerBlock.js +5 -4
  201. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  202. package/Materials/Node/nodeMaterial.js +7 -6
  203. package/Materials/Node/nodeMaterial.js.map +1 -1
  204. package/Materials/Node/nodeMaterialBlock.js +4 -3
  205. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  206. package/Materials/Node/nodeMaterialDecorator.js +1 -1
  207. package/Materials/Node/nodeMaterialDecorator.js.map +1 -1
  208. package/Materials/PBR/pbrBaseMaterial.js +25 -19
  209. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  210. package/Materials/PBR/pbrClearCoatConfiguration.js +9 -6
  211. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  212. package/Materials/PBR/pbrIridescenceConfiguration.js +7 -4
  213. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  214. package/Materials/PBR/pbrSheenConfiguration.js +7 -4
  215. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  216. package/Materials/Textures/Loaders/envTextureLoader.js +2 -2
  217. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  218. package/Materials/Textures/Packer/packer.js +14 -13
  219. package/Materials/Textures/Packer/packer.js.map +1 -1
  220. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -1
  221. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  222. package/Materials/Textures/Procedurals/noiseProceduralTexture.js +2 -1
  223. package/Materials/Textures/Procedurals/noiseProceduralTexture.js.map +1 -1
  224. package/Materials/Textures/Procedurals/proceduralTexture.js +7 -4
  225. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  226. package/Materials/Textures/baseTexture.d.ts +5 -4
  227. package/Materials/Textures/baseTexture.js +1 -0
  228. package/Materials/Textures/baseTexture.js.map +1 -1
  229. package/Materials/Textures/cubeTexture.js +8 -4
  230. package/Materials/Textures/cubeTexture.js.map +1 -1
  231. package/Materials/Textures/hdrCubeTexture.js +4 -2
  232. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  233. package/Materials/Textures/internalTexture.js +4 -2
  234. package/Materials/Textures/internalTexture.js.map +1 -1
  235. package/Materials/Textures/mirrorTexture.js +6 -3
  236. package/Materials/Textures/mirrorTexture.js.map +1 -1
  237. package/Materials/Textures/multiRenderTarget.js +6 -4
  238. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  239. package/Materials/Textures/rawTexture.js +1 -1
  240. package/Materials/Textures/rawTexture.js.map +1 -1
  241. package/Materials/Textures/renderTargetTexture.js +26 -15
  242. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  243. package/Materials/Textures/texture.js +16 -13
  244. package/Materials/Textures/texture.js.map +1 -1
  245. package/Materials/Textures/thinRenderTargetTexture.js +4 -2
  246. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  247. package/Materials/Textures/thinTexture.d.ts +3 -3
  248. package/Materials/Textures/thinTexture.js.map +1 -1
  249. package/Materials/Textures/videoTexture.js +3 -3
  250. package/Materials/Textures/videoTexture.js.map +1 -1
  251. package/Materials/drawWrapper.js +4 -2
  252. package/Materials/drawWrapper.js.map +1 -1
  253. package/Materials/effect.js +15 -10
  254. package/Materials/effect.js.map +1 -1
  255. package/Materials/material.d.ts +14 -0
  256. package/Materials/material.detailMapConfiguration.js +2 -1
  257. package/Materials/material.detailMapConfiguration.js.map +1 -1
  258. package/Materials/material.js +35 -3
  259. package/Materials/material.js.map +1 -1
  260. package/Materials/materialDefines.js +6 -5
  261. package/Materials/materialDefines.js.map +1 -1
  262. package/Materials/materialHelper.js +1 -1
  263. package/Materials/materialHelper.js.map +1 -1
  264. package/Materials/materialPluginManager.js +3 -2
  265. package/Materials/materialPluginManager.js.map +1 -1
  266. package/Materials/multiMaterial.js +2 -1
  267. package/Materials/multiMaterial.js.map +1 -1
  268. package/Materials/shaderMaterial.js +12 -9
  269. package/Materials/shaderMaterial.js.map +1 -1
  270. package/Materials/shadowDepthWrapper.js +13 -8
  271. package/Materials/shadowDepthWrapper.js.map +1 -1
  272. package/Materials/standardMaterial.js +12 -10
  273. package/Materials/standardMaterial.js.map +1 -1
  274. package/Materials/uniformBuffer.js +1 -1
  275. package/Materials/uniformBuffer.js.map +1 -1
  276. package/Maths/math.vector.d.ts +7 -6
  277. package/Maths/math.vector.js +10 -8
  278. package/Maths/math.vector.js.map +1 -1
  279. package/Meshes/Builders/groundBuilder.js +1 -1
  280. package/Meshes/Builders/groundBuilder.js.map +1 -1
  281. package/Meshes/abstractMesh.js +8 -5
  282. package/Meshes/abstractMesh.js.map +1 -1
  283. package/Meshes/csg.js +2 -1
  284. package/Meshes/csg.js.map +1 -1
  285. package/Meshes/instancedMesh.js +2 -1
  286. package/Meshes/instancedMesh.js.map +1 -1
  287. package/Meshes/mesh.d.ts +1 -1
  288. package/Meshes/mesh.js +23 -13
  289. package/Meshes/mesh.js.map +1 -1
  290. package/Meshes/mesh.vertexData.js +4 -3
  291. package/Meshes/mesh.vertexData.js.map +1 -1
  292. package/Meshes/subMesh.js +14 -8
  293. package/Meshes/subMesh.js.map +1 -1
  294. package/Meshes/thinInstanceMesh.js +18 -12
  295. package/Meshes/thinInstanceMesh.js.map +1 -1
  296. package/Meshes/transformNode.d.ts +7 -1
  297. package/Meshes/transformNode.js +15 -4
  298. package/Meshes/transformNode.js.map +1 -1
  299. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -1
  300. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  301. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +12 -8
  302. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  303. package/Misc/PerformanceViewer/performanceViewerCollector.js +3 -2
  304. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  305. package/Misc/arrayTools.js +1 -1
  306. package/Misc/arrayTools.js.map +1 -1
  307. package/Misc/assetsManager.d.ts +22 -4
  308. package/Misc/assetsManager.js +20 -8
  309. package/Misc/assetsManager.js.map +1 -1
  310. package/Misc/computePressure.js +9 -6
  311. package/Misc/computePressure.js.map +1 -1
  312. package/Misc/dataStorage.js +1 -1
  313. package/Misc/dataStorage.js.map +1 -1
  314. package/Misc/dds.js +1 -1
  315. package/Misc/dds.js.map +1 -1
  316. package/Misc/environmentTextureTools.js +3 -2
  317. package/Misc/environmentTextureTools.js.map +1 -1
  318. package/Misc/fileTools.js +31 -8
  319. package/Misc/fileTools.js.map +1 -1
  320. package/Misc/logger.js +2 -1
  321. package/Misc/logger.js.map +1 -1
  322. package/Misc/minMaxReducer.js +3 -2
  323. package/Misc/minMaxReducer.js.map +1 -1
  324. package/Misc/sceneRecorder.js +1 -1
  325. package/Misc/sceneRecorder.js.map +1 -1
  326. package/Misc/textureTools.js +3 -3
  327. package/Misc/textureTools.js.map +1 -1
  328. package/Misc/timer.js +5 -3
  329. package/Misc/timer.js.map +1 -1
  330. package/Misc/tools.js +4 -4
  331. package/Misc/tools.js.map +1 -1
  332. package/Misc/trajectoryClassifier.js +3 -3
  333. package/Misc/trajectoryClassifier.js.map +1 -1
  334. package/Particles/EmitterTypes/meshParticleEmitter.js +2 -1
  335. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  336. package/Particles/computeShaderParticleSystem.js +6 -3
  337. package/Particles/computeShaderParticleSystem.js.map +1 -1
  338. package/Particles/gpuParticleSystem.js +13 -8
  339. package/Particles/gpuParticleSystem.js.map +1 -1
  340. package/Particles/particleSystem.js +22 -14
  341. package/Particles/particleSystem.js.map +1 -1
  342. package/Particles/particleSystemComponent.js +2 -1
  343. package/Particles/particleSystemComponent.js.map +1 -1
  344. package/Particles/pointsCloudSystem.js +7 -4
  345. package/Particles/pointsCloudSystem.js.map +1 -1
  346. package/Particles/solidParticleSystem.js +2 -2
  347. package/Particles/solidParticleSystem.js.map +1 -1
  348. package/Particles/webgl2ParticleSystem.js +2 -1
  349. package/Particles/webgl2ParticleSystem.js.map +1 -1
  350. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +5 -4
  351. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  352. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +4 -2
  353. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  354. package/PostProcesses/colorCorrectionPostProcess.js +1 -1
  355. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  356. package/PostProcesses/postProcess.js +8 -5
  357. package/PostProcesses/postProcess.js.map +1 -1
  358. package/PostProcesses/postProcessManager.js +6 -4
  359. package/PostProcesses/postProcessManager.js.map +1 -1
  360. package/PostProcesses/screenSpaceReflectionPostProcess.js +1 -1
  361. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  362. package/PostProcesses/volumetricLightScatteringPostProcess.js +7 -4
  363. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  364. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +1 -1
  365. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
  366. package/Probes/reflectionProbe.js +4 -2
  367. package/Probes/reflectionProbe.js.map +1 -1
  368. package/Rendering/boundingBoxRenderer.js +3 -2
  369. package/Rendering/boundingBoxRenderer.js.map +1 -1
  370. package/Rendering/depthPeelingRenderer.d.ts +12 -0
  371. package/Rendering/depthPeelingRenderer.js +30 -6
  372. package/Rendering/depthPeelingRenderer.js.map +1 -1
  373. package/Rendering/depthPeelingSceneComponent.js +4 -2
  374. package/Rendering/depthPeelingSceneComponent.js.map +1 -1
  375. package/Rendering/depthRenderer.js +10 -6
  376. package/Rendering/depthRenderer.js.map +1 -1
  377. package/Rendering/edgesRenderer.js +11 -8
  378. package/Rendering/edgesRenderer.js.map +1 -1
  379. package/Rendering/outlineRenderer.js +2 -2
  380. package/Rendering/outlineRenderer.js.map +1 -1
  381. package/Rendering/prePassRenderer.js +4 -2
  382. package/Rendering/prePassRenderer.js.map +1 -1
  383. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js +3 -3
  384. package/Shaders/ShadersInclude/shadowsFragmentFunctions.js.map +1 -1
  385. package/Shaders/pbr.fragment.js +4 -1
  386. package/Shaders/pbr.fragment.js.map +1 -1
  387. package/Sprites/spriteManager.js +2 -1
  388. package/Sprites/spriteManager.js.map +1 -1
  389. package/Sprites/spriteRenderer.js +2 -1
  390. package/Sprites/spriteRenderer.js.map +1 -1
  391. package/States/stencilStateComposer.js +4 -2
  392. package/States/stencilStateComposer.js.map +1 -1
  393. package/XR/features/WebXRAnchorSystem.js +2 -1
  394. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  395. package/XR/features/WebXRControllerMovement.js +7 -6
  396. package/XR/features/WebXRControllerMovement.js.map +1 -1
  397. package/XR/features/WebXRControllerPhysics.js +6 -4
  398. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  399. package/XR/features/WebXRControllerPointerSelection.js +2 -1
  400. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  401. package/XR/features/WebXRHandTracking.d.ts +3 -3
  402. package/XR/features/WebXRHandTracking.js +126 -118
  403. package/XR/features/WebXRHandTracking.js.map +1 -1
  404. package/XR/features/WebXRHitTest.js.map +1 -1
  405. package/XR/features/WebXRLayers.js +1 -1
  406. package/XR/features/WebXRLayers.js.map +1 -1
  407. package/XR/features/WebXRLightEstimation.js +7 -4
  408. package/XR/features/WebXRLightEstimation.js.map +1 -1
  409. package/XR/features/WebXRMeshDetector.js +2 -1
  410. package/XR/features/WebXRMeshDetector.js.map +1 -1
  411. package/XR/features/WebXRNearInteraction.js +7 -4
  412. package/XR/features/WebXRNearInteraction.js.map +1 -1
  413. package/XR/features/WebXRPlaneDetector.js +2 -1
  414. package/XR/features/WebXRPlaneDetector.js.map +1 -1
  415. package/XR/native/nativeXRFrame.js +2 -1
  416. package/XR/native/nativeXRFrame.js.map +1 -1
  417. package/XR/webXRCamera.js +2 -1
  418. package/XR/webXRCamera.js.map +1 -1
  419. package/XR/webXRExperienceHelper.js +7 -5
  420. package/XR/webXRExperienceHelper.js.map +1 -1
  421. package/XR/webXRInput.js.map +1 -1
  422. package/XR/webXRInputSource.js +2 -1
  423. package/XR/webXRInputSource.js.map +1 -1
  424. package/XR/webXRManagedOutputCanvas.js +0 -1
  425. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  426. package/XR/webXRSessionManager.js +27 -14
  427. package/XR/webXRSessionManager.js.map +1 -1
  428. package/XR/webXRWebGLLayer.js +3 -0
  429. package/XR/webXRWebGLLayer.js.map +1 -1
  430. package/package.json +1 -1
  431. package/scene.js +17 -11
  432. package/scene.js.map +1 -1
@@ -47,6 +47,7 @@ export class WebGPUEngine extends Engine {
47
47
  * @param options Defines the options passed to the engine to create the GPU context dependencies
48
48
  */
49
49
  constructor(canvas, options = {}) {
50
+ var _a, _b, _c, _d;
50
51
  super(null);
51
52
  // Page Life cycle and constants
52
53
  this._uploadEncoderDescriptor = { label: "upload" };
@@ -135,8 +136,8 @@ export class WebGPUEngine extends Engine {
135
136
  this.hasOriginBottomLeft = false;
136
137
  options.deviceDescriptor = options.deviceDescriptor || {};
137
138
  options.antialiasing = options.antialiasing === undefined ? true : options.antialiasing;
138
- options.stencil = options.stencil ?? true;
139
- options.enableGPUDebugMarkers = options.enableGPUDebugMarkers ?? false;
139
+ options.stencil = (_a = options.stencil) !== null && _a !== void 0 ? _a : true;
140
+ options.enableGPUDebugMarkers = (_b = options.enableGPUDebugMarkers) !== null && _b !== void 0 ? _b : false;
140
141
  PerformanceConfigurator.SetMatrixPrecision(!!options.useHighPrecisionMatrix);
141
142
  Logger.Log(`Babylon.js v${Engine.Version} - ${this.description} engine`);
142
143
  if (!navigator.gpu) {
@@ -161,10 +162,10 @@ export class WebGPUEngine extends Engine {
161
162
  this._doNotHandleContextLost = !!options.doNotHandleContextLost;
162
163
  this._canvas = canvas;
163
164
  this._options = options;
164
- this.premultipliedAlpha = options.premultipliedAlpha ?? true;
165
+ this.premultipliedAlpha = (_c = options.premultipliedAlpha) !== null && _c !== void 0 ? _c : true;
165
166
  const devicePixelRatio = IsWindowObjectExist() ? window.devicePixelRatio || 1.0 : 1.0;
166
167
  const limitDeviceRatio = options.limitDeviceRatio || devicePixelRatio;
167
- const adaptToDeviceRatio = options.adaptToDeviceRatio ?? false;
168
+ const adaptToDeviceRatio = (_d = options.adaptToDeviceRatio) !== null && _d !== void 0 ? _d : false;
168
169
  this._hardwareScalingLevel = adaptToDeviceRatio ? 1.0 / Math.min(limitDeviceRatio, devicePixelRatio) : 1.0;
169
170
  this._mainPassSampleCount = options.antialiasing ? this._defaultSampleCount : 1;
170
171
  this._isStencilEnable = options.stencil;
@@ -323,12 +324,14 @@ export class WebGPUEngine extends Engine {
323
324
  * @returns a promise notifying the readiness of the engine.
324
325
  */
325
326
  initAsync(glslangOptions, twgslOptions) {
326
- return this._initGlslang(glslangOptions ?? this._options?.glslangOptions)
327
+ var _a;
328
+ return this._initGlslang(glslangOptions !== null && glslangOptions !== void 0 ? glslangOptions : (_a = this._options) === null || _a === void 0 ? void 0 : _a.glslangOptions)
327
329
  .then((glslang) => {
330
+ var _a;
328
331
  this._glslang = glslang;
329
332
  this._tintWASM = WebGPUEngine.UseTWGSL ? new WebGPUTintWASM() : null;
330
333
  return this._tintWASM
331
- ? this._tintWASM.initTwgsl(twgslOptions ?? this._options?.twgslOptions).then(() => {
334
+ ? this._tintWASM.initTwgsl(twgslOptions !== null && twgslOptions !== void 0 ? twgslOptions : (_a = this._options) === null || _a === void 0 ? void 0 : _a.twgslOptions).then(() => {
332
335
  return navigator.gpu.requestAdapter(this._options);
333
336
  }, (msg) => {
334
337
  Logger.Error("Can not initialize twgsl!");
@@ -342,15 +345,16 @@ export class WebGPUEngine extends Engine {
342
345
  throw Error("WebGPU initializations stopped.");
343
346
  })
344
347
  .then((adapter) => {
348
+ var _a;
345
349
  if (!adapter) {
346
350
  throw "Could not retrieve a WebGPU adapter (adapter is null).";
347
351
  }
348
352
  else {
349
353
  this._adapter = adapter;
350
354
  this._adapterSupportedExtensions = [];
351
- this._adapter.features?.forEach((feature) => this._adapterSupportedExtensions.push(feature));
355
+ (_a = this._adapter.features) === null || _a === void 0 ? void 0 : _a.forEach((feature) => this._adapterSupportedExtensions.push(feature));
352
356
  const deviceDescriptor = this._options.deviceDescriptor;
353
- if (deviceDescriptor?.requiredFeatures) {
357
+ if (deviceDescriptor === null || deviceDescriptor === void 0 ? void 0 : deviceDescriptor.requiredFeatures) {
354
358
  const requestedExtensions = deviceDescriptor.requiredFeatures;
355
359
  const validExtensions = [];
356
360
  for (const extension of requestedExtensions) {
@@ -364,9 +368,10 @@ export class WebGPUEngine extends Engine {
364
368
  }
365
369
  })
366
370
  .then((device) => {
371
+ var _a, _b;
367
372
  this._device = device;
368
373
  this._deviceEnabledExtensions = [];
369
- this._device.features?.forEach((feature) => this._deviceEnabledExtensions.push(feature));
374
+ (_a = this._device.features) === null || _a === void 0 ? void 0 : _a.forEach((feature) => this._deviceEnabledExtensions.push(feature));
370
375
  let numUncapturedErrors = -1;
371
376
  this._device.addEventListener("uncapturederror", (event) => {
372
377
  if (++numUncapturedErrors < this.numMaxUncapturedErrors) {
@@ -377,7 +382,7 @@ export class WebGPUEngine extends Engine {
377
382
  }
378
383
  });
379
384
  if (!this._doNotHandleContextLost) {
380
- this._device.lost?.then((info) => {
385
+ (_b = this._device.lost) === null || _b === void 0 ? void 0 : _b.then((info) => {
381
386
  this._contextWasLost = true;
382
387
  Logger.Warn("WebGPU context lost. " + info);
383
388
  this.onContextLostObservable.notifyObservers(this);
@@ -551,6 +556,7 @@ export class WebGPUEngine extends Engine {
551
556
  }
552
557
  // Set default values as WebGL with depth and stencil attachment for the broadest Compat.
553
558
  _initializeMainAttachments() {
559
+ var _a;
554
560
  if (!this._bufferManager) {
555
561
  return;
556
562
  }
@@ -572,7 +578,7 @@ export class WebGPUEngine extends Engine {
572
578
  format: this._options.swapChainFormat,
573
579
  usage: WebGPUConstants.TextureUsage.RenderAttachment,
574
580
  };
575
- this._mainTexture?.destroy();
581
+ (_a = this._mainTexture) === null || _a === void 0 ? void 0 : _a.destroy();
576
582
  this._mainTexture = this._device.createTexture(mainTextureDescriptor);
577
583
  mainColorAttachments = [
578
584
  {
@@ -836,7 +842,8 @@ export class WebGPUEngine extends Engine {
836
842
  * @internal
837
843
  */
838
844
  _applyStencilRef(renderPass) {
839
- renderPass.setStencilReference(this._stencilStateComposer.funcRef ?? 0);
845
+ var _a;
846
+ renderPass.setStencilReference((_a = this._stencilStateComposer.funcRef) !== null && _a !== void 0 ? _a : 0);
840
847
  }
841
848
  _resetCurrentColorBlend(index) {
842
849
  this._blendColorsCurrent[index][0] = this._blendColorsCurrent[index][1] = this._blendColorsCurrent[index][2] = this._blendColorsCurrent[index][3] = null;
@@ -917,12 +924,13 @@ export class WebGPUEngine extends Engine {
917
924
  }
918
925
  }
919
926
  _clearFullQuad(clearColor, clearDepth, clearStencil) {
927
+ var _a, _b, _c;
920
928
  const renderPass = !this.compatibilityMode ? null : this._getCurrentRenderPass();
921
929
  const renderPassIndex = this._getCurrentRenderPassIndex();
922
930
  const bundleList = renderPassIndex === 0 ? this._bundleList : this._bundleListRenderTarget;
923
931
  this._clearQuad.setColorFormat(this._colorFormat);
924
932
  this._clearQuad.setDepthStencilFormat(this._depthTextureFormat);
925
- this._clearQuad.setMRTAttachments(this._cacheRenderPipeline.mrtAttachments ?? [], this._cacheRenderPipeline.mrtTextureArray ?? [], this._cacheRenderPipeline.mrtTextureCount);
933
+ this._clearQuad.setMRTAttachments((_a = this._cacheRenderPipeline.mrtAttachments) !== null && _a !== void 0 ? _a : [], (_b = this._cacheRenderPipeline.mrtTextureArray) !== null && _b !== void 0 ? _b : [], this._cacheRenderPipeline.mrtTextureCount);
926
934
  if (!this.compatibilityMode) {
927
935
  bundleList.addItem(new WebGPURenderItemStencilRef(this._clearStencilValue));
928
936
  }
@@ -932,7 +940,7 @@ export class WebGPUEngine extends Engine {
932
940
  const bundle = this._clearQuad.clear(renderPass, clearColor, clearDepth, clearStencil, this.currentSampleCount);
933
941
  if (!this.compatibilityMode) {
934
942
  bundleList.addBundle(bundle);
935
- bundleList.addItem(new WebGPURenderItemStencilRef(this._stencilStateComposer.funcRef ?? 0));
943
+ bundleList.addItem(new WebGPURenderItemStencilRef((_c = this._stencilStateComposer.funcRef) !== null && _c !== void 0 ? _c : 0));
936
944
  this._reportDrawCall();
937
945
  }
938
946
  else {
@@ -1053,7 +1061,7 @@ export class WebGPUEngine extends Engine {
1053
1061
  */
1054
1062
  bindBuffers(vertexBuffers, indexBuffer, effect, overrideVertexBuffers) {
1055
1063
  this._currentIndexBuffer = indexBuffer;
1056
- this._currentOverrideVertexBuffers = overrideVertexBuffers ?? null;
1064
+ this._currentOverrideVertexBuffers = overrideVertexBuffers !== null && overrideVertexBuffers !== void 0 ? overrideVertexBuffers : null;
1057
1065
  this._cacheRenderPipeline.setBuffers(vertexBuffers, indexBuffer, this._currentOverrideVertexBuffers);
1058
1066
  }
1059
1067
  /**
@@ -1080,10 +1088,11 @@ export class WebGPUEngine extends Engine {
1080
1088
  * @returns the new Effect
1081
1089
  */
1082
1090
  createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = ShaderLanguage.GLSL) {
1091
+ var _a;
1083
1092
  const vertex = baseName.vertexElement || baseName.vertex || baseName.vertexToken || baseName.vertexSource || baseName;
1084
1093
  const fragment = baseName.fragmentElement || baseName.fragment || baseName.fragmentToken || baseName.fragmentSource || baseName;
1085
1094
  const globalDefines = this._getGlobalDefines();
1086
- let fullDefines = defines ?? attributesNamesOrOptions.defines ?? "";
1095
+ let fullDefines = (_a = defines !== null && defines !== void 0 ? defines : attributesNamesOrOptions.defines) !== null && _a !== void 0 ? _a : "";
1087
1096
  if (globalDefines) {
1088
1097
  fullDefines += "\n" + globalDefines;
1089
1098
  }
@@ -1358,15 +1367,16 @@ export class WebGPUEngine extends Engine {
1358
1367
  * @returns a new internal texture
1359
1368
  */
1360
1369
  _createInternalTexture(size, options, delayGPUTextureCreation = true, source = InternalTextureSource.Unknown) {
1370
+ var _a, _b, _c;
1361
1371
  const fullOptions = {};
1362
1372
  if (options !== undefined && typeof options === "object") {
1363
1373
  fullOptions.generateMipMaps = options.generateMipMaps;
1364
1374
  fullOptions.type = options.type === undefined ? 0 : options.type;
1365
1375
  fullOptions.samplingMode = options.samplingMode === undefined ? 3 : options.samplingMode;
1366
1376
  fullOptions.format = options.format === undefined ? 5 : options.format;
1367
- fullOptions.samples = options.samples ?? 1;
1368
- fullOptions.creationFlags = options.creationFlags ?? 0;
1369
- fullOptions.useSRGBBuffer = options.useSRGBBuffer ?? false;
1377
+ fullOptions.samples = (_a = options.samples) !== null && _a !== void 0 ? _a : 1;
1378
+ fullOptions.creationFlags = (_b = options.creationFlags) !== null && _b !== void 0 ? _b : 0;
1379
+ fullOptions.useSRGBBuffer = (_c = options.useSRGBBuffer) !== null && _c !== void 0 ? _c : false;
1370
1380
  }
1371
1381
  else {
1372
1382
  fullOptions.generateMipMaps = options;
@@ -1437,14 +1447,15 @@ export class WebGPUEngine extends Engine {
1437
1447
  */
1438
1448
  createTexture(url, noMipmap, invertY, scene, samplingMode = 3, onLoad = null, onError = null, buffer = null, fallback = null, format = null, forcedExtension = null, mimeType, loaderOptions, creationFlags, useSRGBBuffer) {
1439
1449
  return this._createTextureBase(url, noMipmap, invertY, scene, samplingMode, onLoad, onError, (texture, extension, scene, img, invertY, noMipmap, isCompressed, processFunction) => {
1450
+ var _a;
1440
1451
  const imageBitmap = img; // we will never get an HTMLImageElement in WebGPU
1441
1452
  texture.baseWidth = imageBitmap.width;
1442
1453
  texture.baseHeight = imageBitmap.height;
1443
1454
  texture.width = imageBitmap.width;
1444
1455
  texture.height = imageBitmap.height;
1445
- texture.format = format ?? -1;
1456
+ texture.format = format !== null && format !== void 0 ? format : -1;
1446
1457
  processFunction(texture.width, texture.height, imageBitmap, extension, texture, () => { });
1447
- if (!texture._hardwareTexture?.underlyingResource) {
1458
+ if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
1448
1459
  // the texture could have been created before reaching this point so don't recreate it if already existing
1449
1460
  const gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, imageBitmap.width, imageBitmap.height, undefined, creationFlags);
1450
1461
  if (WebGPUTextureHelper.IsImageBitmap(imageBitmap)) {
@@ -1485,8 +1496,9 @@ export class WebGPUEngine extends Engine {
1485
1496
  throw new Error("wrapWebGLTexture is not supported, use wrapWebGPUTexture instead.");
1486
1497
  }
1487
1498
  generateMipMapsForCubemap(texture) {
1499
+ var _a;
1488
1500
  if (texture.generateMipMaps) {
1489
- const gpuTexture = texture._hardwareTexture?.underlyingResource;
1501
+ const gpuTexture = (_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource;
1490
1502
  if (!gpuTexture) {
1491
1503
  this._textureHelper.createGPUTextureForInternalTexture(texture);
1492
1504
  }
@@ -1547,7 +1559,7 @@ export class WebGPUEngine extends Engine {
1547
1559
  * @internal
1548
1560
  */
1549
1561
  _setInternalTexture(name, texture, baseName) {
1550
- baseName = baseName ?? name;
1562
+ baseName = baseName !== null && baseName !== void 0 ? baseName : name;
1551
1563
  if (this._currentEffect) {
1552
1564
  const webgpuPipelineContext = this._currentEffect._pipelineContext;
1553
1565
  const availableTexture = webgpuPipelineContext.shaderProcessingContext.availableTextures[baseName];
@@ -1587,7 +1599,7 @@ export class WebGPUEngine extends Engine {
1587
1599
  // Else, name is something like 'myTexture0' / 'myTexture1' / ... and baseName is 'myTexture'
1588
1600
  // baseName is used to look up the texture in the shaderProcessingContext.availableTextures map
1589
1601
  // name is used to look up the texture in the _currentMaterialContext.textures map
1590
- baseName = baseName ?? name;
1602
+ baseName = baseName !== null && baseName !== void 0 ? baseName : name;
1591
1603
  if (this._currentEffect) {
1592
1604
  if (!texture) {
1593
1605
  this._currentMaterialContext.setTexture(name, null);
@@ -1687,8 +1699,7 @@ export class WebGPUEngine extends Engine {
1687
1699
  // try as much as possible to use the command encoder corresponding to the current pass.
1688
1700
  // If not possible (because the pass is started - generateMipmaps itself creates a pass and it's not allowed to have a pass inside a pass), use _uploadEncoder
1689
1701
  commandEncoder =
1690
- commandEncoder ??
1691
- (this._currentRenderTarget && !this._currentRenderPass ? this._renderTargetEncoder : !this._currentRenderPass ? this._renderEncoder : this._uploadEncoder);
1702
+ commandEncoder !== null && commandEncoder !== void 0 ? commandEncoder : (this._currentRenderTarget && !this._currentRenderPass ? this._renderTargetEncoder : !this._currentRenderPass ? this._renderEncoder : this._uploadEncoder);
1692
1703
  const format = texture._hardwareTexture.format;
1693
1704
  const mipmapCount = WebGPUTextureHelper.ComputeNumMipmapLevels(texture.width, texture.height);
1694
1705
  if (this.dbgVerboseLogsForFirstFrames) {
@@ -1719,8 +1730,9 @@ export class WebGPUEngine extends Engine {
1719
1730
  * @param generateMipMaps defines whether to generate mipmaps or not
1720
1731
  */
1721
1732
  updateTextureData(texture, imageData, xOffset, yOffset, width, height, faceIndex = 0, lod = 0, generateMipMaps = false) {
1733
+ var _a;
1722
1734
  let gpuTextureWrapper = texture._hardwareTexture;
1723
- if (!texture._hardwareTexture?.underlyingResource) {
1735
+ if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
1724
1736
  gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
1725
1737
  }
1726
1738
  const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
@@ -1733,8 +1745,9 @@ export class WebGPUEngine extends Engine {
1733
1745
  * @internal
1734
1746
  */
1735
1747
  _uploadCompressedDataToTextureDirectly(texture, internalFormat, width, height, imageData, faceIndex = 0, lod = 0) {
1748
+ var _a;
1736
1749
  let gpuTextureWrapper = texture._hardwareTexture;
1737
- if (!texture._hardwareTexture?.underlyingResource) {
1750
+ if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
1738
1751
  texture.format = internalFormat;
1739
1752
  gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);
1740
1753
  }
@@ -1745,12 +1758,13 @@ export class WebGPUEngine extends Engine {
1745
1758
  * @internal
1746
1759
  */
1747
1760
  _uploadDataToTextureDirectly(texture, imageData, faceIndex = 0, lod = 0, babylonInternalFormat, useTextureWidthAndHeight = false) {
1761
+ var _a;
1748
1762
  const lodMaxWidth = Math.round(Math.log(texture.width) * Math.LOG2E);
1749
1763
  const lodMaxHeight = Math.round(Math.log(texture.height) * Math.LOG2E);
1750
1764
  const width = useTextureWidthAndHeight ? texture.width : Math.pow(2, Math.max(lodMaxWidth - lod, 0));
1751
1765
  const height = useTextureWidthAndHeight ? texture.height : Math.pow(2, Math.max(lodMaxHeight - lod, 0));
1752
1766
  let gpuTextureWrapper = texture._hardwareTexture;
1753
- if (!texture._hardwareTexture?.underlyingResource) {
1767
+ if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
1754
1768
  gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture, width, height);
1755
1769
  }
1756
1770
  const data = new Uint8Array(imageData.buffer, imageData.byteOffset, imageData.byteLength);
@@ -1766,8 +1780,9 @@ export class WebGPUEngine extends Engine {
1766
1780
  * @internal
1767
1781
  */
1768
1782
  _uploadImageToTexture(texture, image, faceIndex = 0, lod = 0) {
1783
+ var _a;
1769
1784
  let gpuTextureWrapper = texture._hardwareTexture;
1770
- if (!texture._hardwareTexture?.underlyingResource) {
1785
+ if (!((_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource)) {
1771
1786
  gpuTextureWrapper = this._textureHelper.createGPUTextureForInternalTexture(texture);
1772
1787
  }
1773
1788
  const bitmap = image; // in WebGPU we will always get an ImageBitmap, not an HTMLImageElement
@@ -1921,13 +1936,14 @@ export class WebGPUEngine extends Engine {
1921
1936
  // Render Pass
1922
1937
  //------------------------------------------------------------------------------
1923
1938
  _startRenderTargetRenderPass(renderTargetWrapper, setClearStates, clearColor, clearDepth, clearStencil) {
1939
+ var _a, _b, _c;
1924
1940
  const rtWrapper = renderTargetWrapper;
1925
1941
  const depthStencilTexture = rtWrapper._depthStencilTexture;
1926
- const gpuDepthStencilWrapper = depthStencilTexture?._hardwareTexture;
1927
- const gpuDepthStencilTexture = gpuDepthStencilWrapper?.underlyingResource;
1928
- const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper?.msaaTexture;
1929
- const depthTextureView = gpuDepthStencilTexture?.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
1930
- const depthMSAATextureView = gpuDepthStencilMSAATexture?.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
1942
+ const gpuDepthStencilWrapper = depthStencilTexture === null || depthStencilTexture === void 0 ? void 0 : depthStencilTexture._hardwareTexture;
1943
+ const gpuDepthStencilTexture = gpuDepthStencilWrapper === null || gpuDepthStencilWrapper === void 0 ? void 0 : gpuDepthStencilWrapper.underlyingResource;
1944
+ const gpuDepthStencilMSAATexture = gpuDepthStencilWrapper === null || gpuDepthStencilWrapper === void 0 ? void 0 : gpuDepthStencilWrapper.msaaTexture;
1945
+ const depthTextureView = gpuDepthStencilTexture === null || gpuDepthStencilTexture === void 0 ? void 0 : gpuDepthStencilTexture.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
1946
+ const depthMSAATextureView = gpuDepthStencilMSAATexture === null || gpuDepthStencilMSAATexture === void 0 ? void 0 : gpuDepthStencilMSAATexture.createView(this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
1931
1947
  const depthTextureHasStencil = gpuDepthStencilWrapper ? WebGPUTextureHelper.HasStencilAspect(gpuDepthStencilWrapper.format) : false;
1932
1948
  const colorAttachments = [];
1933
1949
  if (this.useReverseDepthBuffer) {
@@ -1944,8 +1960,8 @@ export class WebGPUEngine extends Engine {
1944
1960
  for (let i = 0; i < this._mrtAttachments.length; ++i) {
1945
1961
  const index = this._mrtAttachments[i]; // if index == 0 it means the texture should not be written to => at render pass creation time, it means we should not clear it
1946
1962
  const mrtTexture = rtWrapper.textures[i];
1947
- const gpuMRTWrapper = mrtTexture?._hardwareTexture;
1948
- const gpuMRTTexture = gpuMRTWrapper?.underlyingResource;
1963
+ const gpuMRTWrapper = mrtTexture === null || mrtTexture === void 0 ? void 0 : mrtTexture._hardwareTexture;
1964
+ const gpuMRTTexture = gpuMRTWrapper === null || gpuMRTWrapper === void 0 ? void 0 : gpuMRTWrapper.underlyingResource;
1949
1965
  if (gpuMRTWrapper && gpuMRTTexture) {
1950
1966
  const viewDescriptor = {
1951
1967
  ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
@@ -1953,7 +1969,7 @@ export class WebGPUEngine extends Engine {
1953
1969
  };
1954
1970
  const gpuMSAATexture = gpuMRTWrapper.msaaTexture;
1955
1971
  const colorTextureView = gpuMRTTexture.createView(viewDescriptor);
1956
- const colorMSAATextureView = gpuMSAATexture?.createView(viewDescriptor);
1972
+ const colorMSAATextureView = gpuMSAATexture === null || gpuMSAATexture === void 0 ? void 0 : gpuMSAATexture.createView(viewDescriptor);
1957
1973
  colorAttachments.push({
1958
1974
  view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
1959
1975
  resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
@@ -1974,7 +1990,7 @@ export class WebGPUEngine extends Engine {
1974
1990
  const gpuTexture = gpuWrapper.underlyingResource;
1975
1991
  const gpuMSAATexture = gpuWrapper.msaaTexture;
1976
1992
  const colorTextureView = gpuTexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
1977
- const colorMSAATextureView = gpuMSAATexture?.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
1993
+ const colorMSAATextureView = gpuMSAATexture === null || gpuMSAATexture === void 0 ? void 0 : gpuMSAATexture.createView(this._rttRenderPassWrapper.colorAttachmentViewDescriptor);
1978
1994
  colorAttachments.push({
1979
1995
  view: colorMSAATextureView ? colorMSAATextureView : colorTextureView,
1980
1996
  resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
@@ -1987,7 +2003,7 @@ export class WebGPUEngine extends Engine {
1987
2003
  colorAttachments.push(null);
1988
2004
  }
1989
2005
  }
1990
- this._debugPushGroup?.("render target pass", 1);
2006
+ (_a = this._debugPushGroup) === null || _a === void 0 ? void 0 : _a.call(this, "render target pass", 1);
1991
2007
  this._rttRenderPassWrapper.renderPassDescriptor = {
1992
2008
  colorAttachments,
1993
2009
  depthStencilAttachment: depthStencilTexture && gpuDepthStencilTexture
@@ -2005,7 +2021,7 @@ export class WebGPUEngine extends Engine {
2005
2021
  stencilStoreOp: !depthTextureHasStencil ? undefined : WebGPUConstants.StoreOp.Store,
2006
2022
  }
2007
2023
  : undefined,
2008
- occlusionQuerySet: this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined,
2024
+ occlusionQuerySet: ((_b = this._occlusionQuery) === null || _b === void 0 ? void 0 : _b.hasQueries) ? this._occlusionQuery.querySet : undefined,
2009
2025
  };
2010
2026
  this._rttRenderPassWrapper.renderPass = this._renderTargetEncoder.beginRenderPass(this._rttRenderPassWrapper.renderPassDescriptor);
2011
2027
  if (this.dbgVerboseLogsForFirstFrames) {
@@ -2018,7 +2034,7 @@ export class WebGPUEngine extends Engine {
2018
2034
  }
2019
2035
  }
2020
2036
  this._currentRenderPass = this._rttRenderPassWrapper.renderPass;
2021
- this._debugFlushPendingCommands?.();
2037
+ (_c = this._debugFlushPendingCommands) === null || _c === void 0 ? void 0 : _c.call(this);
2022
2038
  this._resetCurrentViewport(1);
2023
2039
  this._resetCurrentScissor(1);
2024
2040
  this._resetCurrentStencilRef(1);
@@ -2029,8 +2045,9 @@ export class WebGPUEngine extends Engine {
2029
2045
  }
2030
2046
  /** @internal */
2031
2047
  _endRenderTargetRenderPass() {
2048
+ var _a, _b, _c, _d;
2032
2049
  if (this._currentRenderPass) {
2033
- const gpuWrapper = this._currentRenderTarget.texture?._hardwareTexture;
2050
+ const gpuWrapper = (_a = this._currentRenderTarget.texture) === null || _a === void 0 ? void 0 : _a._hardwareTexture;
2034
2051
  if (gpuWrapper && !this._snapshotRendering.endRenderTargetPass(this._currentRenderPass, gpuWrapper) && !this.compatibilityMode) {
2035
2052
  this._bundleListRenderTarget.run(this._currentRenderPass);
2036
2053
  this._bundleListRenderTarget.reset();
@@ -2041,10 +2058,10 @@ export class WebGPUEngine extends Engine {
2041
2058
  this._count = 0;
2042
2059
  }
2043
2060
  if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
2044
- console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", this._currentRenderTarget?.texture?.uniqueId);
2061
+ console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", (_c = (_b = this._currentRenderTarget) === null || _b === void 0 ? void 0 : _b.texture) === null || _c === void 0 ? void 0 : _c.uniqueId);
2045
2062
  }
2046
2063
  }
2047
- this._debugPopGroup?.(1);
2064
+ (_d = this._debugPopGroup) === null || _d === void 0 ? void 0 : _d.call(this, 1);
2048
2065
  this._resetCurrentViewport(1);
2049
2066
  this._resetCurrentScissor(1);
2050
2067
  this._resetCurrentStencilRef(1);
@@ -2068,6 +2085,7 @@ export class WebGPUEngine extends Engine {
2068
2085
  return this._currentRenderPass === null ? -1 : this._currentRenderPass === this._mainRenderPassWrapper.renderPass ? 0 : 1;
2069
2086
  }
2070
2087
  _startMainRenderPass(setClearStates, clearColor, clearDepth, clearStencil) {
2088
+ var _a, _b, _c;
2071
2089
  if (this._mainRenderPassWrapper.renderPass) {
2072
2090
  this._endMainRenderPass();
2073
2091
  }
@@ -2091,7 +2109,7 @@ export class WebGPUEngine extends Engine {
2091
2109
  : mustClearStencil
2092
2110
  ? WebGPUConstants.LoadOp.Clear
2093
2111
  : WebGPUConstants.LoadOp.Load;
2094
- this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined;
2112
+ this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = ((_a = this._occlusionQuery) === null || _a === void 0 ? void 0 : _a.hasQueries) ? this._occlusionQuery.querySet : undefined;
2095
2113
  this._swapChainTexture = this._context.getCurrentTexture();
2096
2114
  this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(this._swapChainTexture);
2097
2115
  // Resolve in case of MSAA
@@ -2109,10 +2127,10 @@ export class WebGPUEngine extends Engine {
2109
2127
  console.log("frame #" + this._count + " - main begin pass - texture width=" + this._mainTextureExtends.width, " height=" + this._mainTextureExtends.height, this._mainRenderPassWrapper.renderPassDescriptor);
2110
2128
  }
2111
2129
  }
2112
- this._debugPushGroup?.("main pass", 0);
2130
+ (_b = this._debugPushGroup) === null || _b === void 0 ? void 0 : _b.call(this, "main pass", 0);
2113
2131
  this._currentRenderPass = this._renderEncoder.beginRenderPass(this._mainRenderPassWrapper.renderPassDescriptor);
2114
2132
  this._mainRenderPassWrapper.renderPass = this._currentRenderPass;
2115
- this._debugFlushPendingCommands?.();
2133
+ (_c = this._debugFlushPendingCommands) === null || _c === void 0 ? void 0 : _c.call(this);
2116
2134
  this._resetCurrentViewport(0);
2117
2135
  this._resetCurrentScissor(0);
2118
2136
  this._resetCurrentStencilRef(0);
@@ -2122,6 +2140,7 @@ export class WebGPUEngine extends Engine {
2122
2140
  }
2123
2141
  }
2124
2142
  _endMainRenderPass() {
2143
+ var _a;
2125
2144
  if (this._mainRenderPassWrapper.renderPass !== null) {
2126
2145
  this._snapshotRendering.endMainRenderPass();
2127
2146
  if (!this.compatibilityMode && !this._snapshotRendering.play) {
@@ -2137,7 +2156,7 @@ export class WebGPUEngine extends Engine {
2137
2156
  console.log("frame #" + this._count + " - main end pass");
2138
2157
  }
2139
2158
  }
2140
- this._debugPopGroup?.(0);
2159
+ (_a = this._debugPopGroup) === null || _a === void 0 ? void 0 : _a.call(this, 0);
2141
2160
  this._resetCurrentViewport(0);
2142
2161
  this._resetCurrentScissor(0);
2143
2162
  this._resetCurrentStencilRef(0);
@@ -2159,7 +2178,8 @@ export class WebGPUEngine extends Engine {
2159
2178
  * @param layer defines the 2d array index to bind to frame buffer to
2160
2179
  */
2161
2180
  bindFramebuffer(texture, faceIndex = 0, requiredWidth, requiredHeight, forceFullscreenViewport, lodLevel = 0, layer = 0) {
2162
- const hardwareTexture = texture.texture?._hardwareTexture;
2181
+ var _a, _b;
2182
+ const hardwareTexture = (_a = texture.texture) === null || _a === void 0 ? void 0 : _a._hardwareTexture;
2163
2183
  if (this._currentRenderTarget) {
2164
2184
  this.unBindFramebuffer(this._currentRenderTarget);
2165
2185
  }
@@ -2196,7 +2216,7 @@ export class WebGPUEngine extends Engine {
2196
2216
  this._count = 0;
2197
2217
  }
2198
2218
  if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
2199
- console.log("frame #" + this._count + " - bindFramebuffer called - internalTexture.uniqueId=", texture.texture?.uniqueId, "face=", faceIndex, "lodLevel=", lodLevel, "layer=", layer, this._rttRenderPassWrapper.colorAttachmentViewDescriptor, this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
2219
+ console.log("frame #" + this._count + " - bindFramebuffer called - internalTexture.uniqueId=", (_b = texture.texture) === null || _b === void 0 ? void 0 : _b.uniqueId, "face=", faceIndex, "lodLevel=", lodLevel, "layer=", layer, this._rttRenderPassWrapper.colorAttachmentViewDescriptor, this._rttRenderPassWrapper.depthAttachmentViewDescriptor);
2200
2220
  }
2201
2221
  }
2202
2222
  this._currentRenderPass = null; // lazy creation of the render pass, hoping the render pass will be created by a call to clear()...
@@ -2231,6 +2251,7 @@ export class WebGPUEngine extends Engine {
2231
2251
  * @param onBeforeUnbind defines a function which will be called before the effective unbind
2232
2252
  */
2233
2253
  unBindFramebuffer(texture, disableGenerateMipMaps = false, onBeforeUnbind) {
2254
+ var _a, _b;
2234
2255
  const saveCRT = this._currentRenderTarget;
2235
2256
  this._currentRenderTarget = null; // to be iso with thinEngine, this._currentRenderTarget must be null when onBeforeUnbind is called
2236
2257
  if (onBeforeUnbind) {
@@ -2240,7 +2261,7 @@ export class WebGPUEngine extends Engine {
2240
2261
  if (this._currentRenderPass && this._currentRenderPass !== this._mainRenderPassWrapper.renderPass) {
2241
2262
  this._endRenderTargetRenderPass();
2242
2263
  }
2243
- if (texture.texture?.generateMipMaps && !disableGenerateMipMaps && !texture.isCube) {
2264
+ if (((_a = texture.texture) === null || _a === void 0 ? void 0 : _a.generateMipMaps) && !disableGenerateMipMaps && !texture.isCube) {
2244
2265
  this._generateMipmaps(texture.texture);
2245
2266
  }
2246
2267
  this._currentRenderTarget = null;
@@ -2250,7 +2271,7 @@ export class WebGPUEngine extends Engine {
2250
2271
  this._count = 0;
2251
2272
  }
2252
2273
  if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
2253
- console.log("frame #" + this._count + " - unBindFramebuffer called - internalTexture.uniqueId=", texture.texture?.uniqueId);
2274
+ console.log("frame #" + this._count + " - unBindFramebuffer called - internalTexture.uniqueId=", (_b = texture.texture) === null || _b === void 0 ? void 0 : _b.uniqueId);
2254
2275
  }
2255
2276
  }
2256
2277
  this._mrtAttachments = [];
@@ -2286,7 +2307,8 @@ export class WebGPUEngine extends Engine {
2286
2307
  * @internal
2287
2308
  */
2288
2309
  _setColorFormat(wrapper) {
2289
- const format = wrapper.colorAttachmentGPUTextures[0]?.format ?? null;
2310
+ var _a, _b;
2311
+ const format = (_b = (_a = wrapper.colorAttachmentGPUTextures[0]) === null || _a === void 0 ? void 0 : _a.format) !== null && _b !== void 0 ? _b : null;
2290
2312
  this._cacheRenderPipeline.setColorFormat(format);
2291
2313
  if (this._colorFormat === format) {
2292
2314
  return;
@@ -2320,12 +2342,13 @@ export class WebGPUEngine extends Engine {
2320
2342
  * @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)
2321
2343
  */
2322
2344
  setState(culling, zOffset = 0, force, reverseSide = false, cullBackFaces, stencil, zOffsetUnits = 0) {
2345
+ var _a, _b;
2323
2346
  // Culling
2324
2347
  if (this._depthCullingState.cull !== culling || force) {
2325
2348
  this._depthCullingState.cull = culling;
2326
2349
  }
2327
2350
  // Cull face
2328
- const cullFace = this.cullBackFaces ?? cullBackFaces ?? true ? 1 : 2;
2351
+ const cullFace = ((_b = (_a = this.cullBackFaces) !== null && _a !== void 0 ? _a : cullBackFaces) !== null && _b !== void 0 ? _b : true) ? 1 : 2;
2329
2352
  if (this._depthCullingState.cullFace !== cullFace || force) {
2330
2353
  this._depthCullingState.cullFace = cullFace;
2331
2354
  }
@@ -2340,6 +2363,7 @@ export class WebGPUEngine extends Engine {
2340
2363
  this._stencilStateComposer.stencilMaterial = stencil;
2341
2364
  }
2342
2365
  _applyRenderPassChanges(renderPass, bundleList) {
2366
+ var _a;
2343
2367
  const mustUpdateViewport = this._mustUpdateViewport(renderPass);
2344
2368
  const mustUpdateScissor = this._mustUpdateScissor(renderPass);
2345
2369
  const mustUpdateStencilRef = !this._stencilStateComposer.enabled ? false : this._mustUpdateStencilRef(renderPass);
@@ -2352,7 +2376,7 @@ export class WebGPUEngine extends Engine {
2352
2376
  bundleList.addItem(new WebGPURenderItemScissor(this._scissorCached.x, this._scissorCached.y, this._scissorCached.z, this._scissorCached.w));
2353
2377
  }
2354
2378
  if (mustUpdateStencilRef) {
2355
- bundleList.addItem(new WebGPURenderItemStencilRef(this._stencilStateComposer.funcRef ?? 0));
2379
+ bundleList.addItem(new WebGPURenderItemStencilRef((_a = this._stencilStateComposer.funcRef) !== null && _a !== void 0 ? _a : 0));
2356
2380
  }
2357
2381
  if (mustUpdateBlendColor) {
2358
2382
  bundleList.addItem(new WebGPURenderItemBlendColor(this._alphaState._blendConstants.slice()));
@@ -2374,6 +2398,7 @@ export class WebGPUEngine extends Engine {
2374
2398
  }
2375
2399
  }
2376
2400
  _draw(drawType, fillMode, start, count, instancesCount) {
2401
+ var _a;
2377
2402
  const renderPass = this._getCurrentRenderPass();
2378
2403
  const renderPassIndex = this._getCurrentRenderPassIndex();
2379
2404
  const bundleList = renderPassIndex === 0 ? this._bundleList : this._bundleListRenderTarget;
@@ -2413,8 +2438,8 @@ export class WebGPUEngine extends Engine {
2413
2438
  let bitVal = 1;
2414
2439
  for (let i = 0; i < webgpuPipelineContext.shaderProcessingContext.textureNames.length; ++i) {
2415
2440
  const textureName = webgpuPipelineContext.shaderProcessingContext.textureNames[i];
2416
- const texture = this._currentMaterialContext.textures[textureName]?.texture;
2417
- if (texture?.type === 1) {
2441
+ const texture = (_a = this._currentMaterialContext.textures[textureName]) === null || _a === void 0 ? void 0 : _a.texture;
2442
+ if ((texture === null || texture === void 0 ? void 0 : texture.type) === 1) {
2418
2443
  textureState |= bitVal;
2419
2444
  }
2420
2445
  bitVal = bitVal << 1;
@@ -2502,9 +2527,10 @@ export class WebGPUEngine extends Engine {
2502
2527
  * Dispose and release all associated resources
2503
2528
  */
2504
2529
  dispose() {
2505
- this._mainTexture?.destroy();
2506
- this._mainTextureLastCopy?.destroy();
2507
- this._depthTexture?.destroy();
2530
+ var _a, _b, _c;
2531
+ (_a = this._mainTexture) === null || _a === void 0 ? void 0 : _a.destroy();
2532
+ (_b = this._mainTextureLastCopy) === null || _b === void 0 ? void 0 : _b.destroy();
2533
+ (_c = this._depthTexture) === null || _c === void 0 ? void 0 : _c.destroy();
2508
2534
  super.dispose();
2509
2535
  }
2510
2536
  //------------------------------------------------------------------------------