@babylonjs/core 7.11.4 → 7.13.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 (513) hide show
  1. package/Actions/abstractActionManager.d.ts +1 -1
  2. package/Actions/abstractActionManager.js +1 -1
  3. package/Actions/abstractActionManager.js.map +1 -1
  4. package/Animations/animation.js +1 -2
  5. package/Animations/animation.js.map +1 -1
  6. package/Animations/animationGroupMask.d.ts +1 -1
  7. package/Animations/animationGroupMask.js +2 -2
  8. package/Animations/animationGroupMask.js.map +1 -1
  9. package/Animations/animationKey.d.ts +1 -1
  10. package/Animations/animationKey.js.map +1 -1
  11. package/Behaviors/Meshes/handConstraintBehavior.d.ts +3 -3
  12. package/Behaviors/Meshes/handConstraintBehavior.js +16 -17
  13. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  14. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -3
  15. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  16. package/Bones/bone.js +31 -32
  17. package/Bones/bone.js.map +1 -1
  18. package/Bones/boneIKController.js +5 -6
  19. package/Bones/boneIKController.js.map +1 -1
  20. package/Bones/boneLookController.js +13 -13
  21. package/Bones/boneLookController.js.map +1 -1
  22. package/Cameras/Inputs/freeCameraMouseWheelInput.js +5 -6
  23. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  24. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js +5 -5
  25. package/Cameras/Inputs/freeCameraVirtualJoystickInput.js.map +1 -1
  26. package/Cameras/VR/vrExperienceHelper.js +8 -10
  27. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  28. package/Compute/computeEffect.js +2 -3
  29. package/Compute/computeEffect.js.map +1 -1
  30. package/Compute/computeShader.js +19 -20
  31. package/Compute/computeShader.js.map +1 -1
  32. package/Culling/Helper/IBoundingInfoHelperPlatform.d.ts +4 -0
  33. package/Culling/Helper/IBoundingInfoHelperPlatform.js.map +1 -1
  34. package/Culling/Helper/boundingInfoHelper.d.ts +26 -4
  35. package/Culling/Helper/boundingInfoHelper.js +41 -10
  36. package/Culling/Helper/boundingInfoHelper.js.map +1 -1
  37. package/Culling/Helper/computeShaderBoundingHelper.d.ts +12 -3
  38. package/Culling/Helper/computeShaderBoundingHelper.js +164 -76
  39. package/Culling/Helper/computeShaderBoundingHelper.js.map +1 -1
  40. package/Culling/Helper/transformFeedbackBoundingHelper.d.ts +11 -0
  41. package/Culling/Helper/transformFeedbackBoundingHelper.js +46 -14
  42. package/Culling/Helper/transformFeedbackBoundingHelper.js.map +1 -1
  43. package/Debug/debugLayer.d.ts +1 -1
  44. package/Debug/debugLayer.js.map +1 -1
  45. package/Decorators/nodeDecorator.d.ts +1 -1
  46. package/Decorators/nodeDecorator.js +1 -1
  47. package/Decorators/nodeDecorator.js.map +1 -1
  48. package/DeviceInput/InputDevices/deviceEnums.d.ts +5 -5
  49. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  50. package/DeviceInput/eventFactory.js +3 -3
  51. package/DeviceInput/eventFactory.js.map +1 -1
  52. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +2 -2
  53. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -1
  54. package/Engines/Extensions/engine.computeShader.d.ts +1 -1
  55. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  56. package/Engines/Extensions/engine.cubeTexture.js +2 -2
  57. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  58. package/Engines/Extensions/engine.dynamicTexture.js +2 -2
  59. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  60. package/Engines/Extensions/engine.multiRender.js +3 -3
  61. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  62. package/Engines/Extensions/engine.multiview.js +2 -2
  63. package/Engines/Extensions/engine.multiview.js.map +1 -1
  64. package/Engines/Extensions/engine.prefilteredCubeTexture.js +3 -3
  65. package/Engines/Extensions/engine.prefilteredCubeTexture.js.map +1 -1
  66. package/Engines/Extensions/engine.rawTexture.js +4 -4
  67. package/Engines/Extensions/engine.rawTexture.js.map +1 -1
  68. package/Engines/Extensions/engine.renderTarget.js +3 -3
  69. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  70. package/Engines/Extensions/engine.renderTargetCube.js +2 -2
  71. package/Engines/Extensions/engine.renderTargetCube.js.map +1 -1
  72. package/Engines/Native/nativeShaderProcessors.js +1 -2
  73. package/Engines/Native/nativeShaderProcessors.js.map +1 -1
  74. package/Engines/Processors/shaderProcessor.js +2 -3
  75. package/Engines/Processors/shaderProcessor.js.map +1 -1
  76. package/Engines/WebGL/webGL2ShaderProcessors.js +1 -2
  77. package/Engines/WebGL/webGL2ShaderProcessors.js.map +1 -1
  78. package/Engines/WebGL/webGLShaderProcessors.js +1 -2
  79. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  80. package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -2
  81. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  82. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +2 -2
  83. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  84. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +2 -2
  85. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  86. package/Engines/WebGPU/Extensions/engine.multiRender.js +2 -2
  87. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  88. package/Engines/WebGPU/Extensions/engine.rawTexture.js +5 -5
  89. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  90. package/Engines/WebGPU/Extensions/engine.renderTarget.js +3 -3
  91. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  92. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js +2 -2
  93. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  94. package/Engines/WebGPU/webgpuBufferManager.js +1 -1
  95. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  96. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +81 -82
  97. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  98. package/Engines/WebGPU/webgpuCacheSampler.js +60 -64
  99. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  100. package/Engines/WebGPU/webgpuClearQuad.js +1 -2
  101. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  102. package/Engines/WebGPU/webgpuComputeContext.js +13 -15
  103. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  104. package/Engines/WebGPU/webgpuConstants.d.ts +39 -39
  105. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  106. package/Engines/WebGPU/webgpuHardwareTexture.js +6 -8
  107. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  108. package/Engines/WebGPU/webgpuOcclusionQuery.js +1 -2
  109. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  110. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  111. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  112. package/Engines/WebGPU/webgpuShaderProcessor.js +15 -19
  113. package/Engines/WebGPU/webgpuShaderProcessor.js.map +1 -1
  114. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +8 -10
  115. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  116. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +26 -28
  117. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  118. package/Engines/WebGPU/webgpuTextureHelper.js +413 -416
  119. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  120. package/Engines/WebGPU/webgpuTextureManager.js +50 -51
  121. package/Engines/WebGPU/webgpuTextureManager.js.map +1 -1
  122. package/Engines/WebGPU/webgpuTimestampQuery.js +1 -2
  123. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  124. package/Engines/abstractEngine.js +4 -4
  125. package/Engines/abstractEngine.js.map +1 -1
  126. package/Engines/engine.js +2 -2
  127. package/Engines/engine.js.map +1 -1
  128. package/Engines/nativeEngine.js +9 -9
  129. package/Engines/nativeEngine.js.map +1 -1
  130. package/Engines/nullEngine.js +5 -5
  131. package/Engines/nullEngine.js.map +1 -1
  132. package/Engines/renderTargetWrapper.js +1 -2
  133. package/Engines/renderTargetWrapper.js.map +1 -1
  134. package/Engines/shaderStore.js +6 -7
  135. package/Engines/shaderStore.js.map +1 -1
  136. package/Engines/thinEngine.js +4 -5
  137. package/Engines/thinEngine.js.map +1 -1
  138. package/Engines/webgpuEngine.d.ts +11 -0
  139. package/Engines/webgpuEngine.js +91 -72
  140. package/Engines/webgpuEngine.js.map +1 -1
  141. package/Events/deviceInputEvents.d.ts +1 -1
  142. package/Events/deviceInputEvents.js.map +1 -1
  143. package/FlowGraph/flowGraph.d.ts +1 -1
  144. package/FlowGraph/flowGraph.js +5 -5
  145. package/FlowGraph/flowGraph.js.map +1 -1
  146. package/FlowGraph/flowGraphBlock.js +2 -3
  147. package/FlowGraph/flowGraphBlock.js.map +1 -1
  148. package/FlowGraph/flowGraphConnection.d.ts +1 -1
  149. package/FlowGraph/flowGraphConnection.js.map +1 -1
  150. package/FlowGraph/flowGraphDataConnection.js +3 -3
  151. package/FlowGraph/flowGraphDataConnection.js.map +1 -1
  152. package/FlowGraph/flowGraphExecutionBlock.js +2 -3
  153. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  154. package/FlowGraph/flowGraphSignalConnection.js +3 -3
  155. package/FlowGraph/flowGraphSignalConnection.js.map +1 -1
  156. package/Gamepads/dualShockGamepad.d.ts +2 -2
  157. package/Gamepads/dualShockGamepad.js +14 -14
  158. package/Gamepads/dualShockGamepad.js.map +1 -1
  159. package/Gamepads/xboxGamepad.d.ts +2 -2
  160. package/Gamepads/xboxGamepad.js +14 -14
  161. package/Gamepads/xboxGamepad.js.map +1 -1
  162. package/Gizmos/gizmo.d.ts +2 -2
  163. package/Gizmos/gizmo.js +4 -4
  164. package/Gizmos/gizmo.js.map +1 -1
  165. package/Gizmos/gizmoManager.js +2 -2
  166. package/Gizmos/gizmoManager.js.map +1 -1
  167. package/Gizmos/scaleGizmo.js +3 -3
  168. package/Gizmos/scaleGizmo.js.map +1 -1
  169. package/Loading/sceneLoader.d.ts +1 -1
  170. package/Loading/sceneLoader.js +6 -6
  171. package/Loading/sceneLoader.js.map +1 -1
  172. package/Materials/GreasedLine/greasedLineMaterialInterfaces.d.ts +3 -3
  173. package/Materials/GreasedLine/greasedLineMaterialInterfaces.js.map +1 -1
  174. package/Materials/GreasedLine/greasedLinePluginMaterial.js +10 -11
  175. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  176. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +8 -9
  177. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  178. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +3 -4
  179. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  180. package/Materials/Node/Blocks/Dual/fogBlock.js +2 -3
  181. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  182. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +1 -2
  183. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  184. package/Materials/Node/Blocks/Dual/lightBlock.js +5 -6
  185. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  186. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +4 -5
  187. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  188. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -8
  189. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  190. package/Materials/Node/Blocks/Dual/textureBlock.js +4 -6
  191. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  192. package/Materials/Node/Blocks/Fragment/TBNBlock.js +2 -4
  193. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  194. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +1 -2
  195. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  196. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -2
  197. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  198. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js +1 -2
  199. package/Materials/Node/Blocks/Fragment/fragDepthBlock.js.map +1 -1
  200. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +5 -6
  201. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  202. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -2
  203. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  204. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +5 -6
  205. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +3 -4
  207. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +7 -9
  209. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -2
  211. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/Input/inputBlock.js +19 -21
  213. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/Input/prePassTextureBlock.js +3 -4
  215. package/Materials/Node/Blocks/Input/prePassTextureBlock.js.map +1 -1
  216. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +2 -3
  217. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  218. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +4 -5
  219. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  220. package/Materials/Node/Blocks/PBR/iridescenceBlock.js +1 -2
  221. package/Materials/Node/Blocks/PBR/iridescenceBlock.js.map +1 -1
  222. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +28 -29
  223. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  224. package/Materials/Node/Blocks/PBR/reflectionBlock.js +4 -5
  225. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  226. package/Materials/Node/Blocks/PBR/refractionBlock.js +5 -6
  227. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  228. package/Materials/Node/Blocks/PBR/sheenBlock.js +4 -5
  229. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  230. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +2 -3
  231. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  232. package/Materials/Node/Blocks/Vertex/instancesBlock.js +1 -2
  233. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  234. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +1 -2
  235. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  236. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +1 -2
  237. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  238. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -2
  239. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  240. package/Materials/Node/Blocks/arcTan2Block.js +1 -2
  241. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  242. package/Materials/Node/Blocks/biPlanarBlock.js +3 -4
  243. package/Materials/Node/Blocks/biPlanarBlock.js.map +1 -1
  244. package/Materials/Node/Blocks/clampBlock.js +4 -5
  245. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  246. package/Materials/Node/Blocks/cloudBlock.js +3 -4
  247. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  248. package/Materials/Node/Blocks/curveBlock.js +1 -2
  249. package/Materials/Node/Blocks/curveBlock.js.map +1 -1
  250. package/Materials/Node/Blocks/customBlock.js +1 -2
  251. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  252. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -2
  253. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  254. package/Materials/Node/Blocks/meshAttributeExistsBlock.d.ts +1 -1
  255. package/Materials/Node/Blocks/meshAttributeExistsBlock.js +35 -35
  256. package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
  257. package/Materials/Node/Blocks/modBlock.js +1 -2
  258. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  259. package/Materials/Node/Blocks/remapBlock.js +3 -3
  260. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  261. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -2
  262. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  263. package/Materials/Node/Blocks/transformBlock.js +1 -2
  264. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  265. package/Materials/Node/Blocks/triPlanarBlock.js +10 -12
  266. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  267. package/Materials/Node/Blocks/voronoiNoiseBlock.js +3 -4
  268. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  269. package/Materials/Node/Blocks/waveBlock.d.ts +1 -1
  270. package/Materials/Node/Blocks/waveBlock.js +4 -4
  271. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  272. package/Materials/Node/Blocks/worleyNoise3DBlock.js +3 -4
  273. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  274. package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.d.ts +1 -1
  275. package/Materials/Node/Enums/nodeMaterialBlockConnectionPointMode.js.map +1 -1
  276. package/Materials/Node/nodeMaterial.js +3 -4
  277. package/Materials/Node/nodeMaterial.js.map +1 -1
  278. package/Materials/Node/nodeMaterialBlock.js +5 -6
  279. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  280. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +2 -2
  281. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +10 -10
  282. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  283. package/Materials/Node/nodeMaterialBuildState.js +18 -19
  284. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  285. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js +3 -3
  286. package/Materials/Node/nodeMaterialConnectionPointCustomObject.js.map +1 -1
  287. package/Materials/PBR/pbrBaseMaterial.js +3 -4
  288. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  289. package/Materials/Textures/internalTexture.d.ts +1 -1
  290. package/Materials/Textures/internalTexture.js +13 -13
  291. package/Materials/Textures/internalTexture.js.map +1 -1
  292. package/Materials/Textures/ktx2decoderTypes.d.ts +1 -1
  293. package/Materials/Textures/ktx2decoderTypes.js.map +1 -1
  294. package/Materials/Textures/rawCubeTexture.js +1 -2
  295. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  296. package/Materials/effect.functions.js +2 -3
  297. package/Materials/effect.functions.js.map +1 -1
  298. package/Materials/effect.js +3 -4
  299. package/Materials/effect.js.map +1 -1
  300. package/Materials/effect.webgl.functions.js +1 -2
  301. package/Materials/effect.webgl.functions.js.map +1 -1
  302. package/Materials/material.js +7 -9
  303. package/Materials/material.js.map +1 -1
  304. package/Materials/materialPluginEvent.d.ts +1 -1
  305. package/Materials/materialPluginEvent.js.map +1 -1
  306. package/Materials/materialPluginManager.js +9 -11
  307. package/Materials/materialPluginManager.js.map +1 -1
  308. package/Materials/meshDebugPluginMaterial.d.ts +1 -1
  309. package/Materials/meshDebugPluginMaterial.js +2 -2
  310. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  311. package/Materials/shaderLanguage.d.ts +1 -1
  312. package/Materials/shaderLanguage.js.map +1 -1
  313. package/Materials/shadowDepthWrapper.js +1 -2
  314. package/Materials/shadowDepthWrapper.js.map +1 -1
  315. package/Materials/standardMaterial.js +2 -3
  316. package/Materials/standardMaterial.js.map +1 -1
  317. package/Maths/math.axis.d.ts +2 -2
  318. package/Maths/math.axis.js.map +1 -1
  319. package/Maths/math.path.d.ts +1 -1
  320. package/Maths/math.path.js +3 -3
  321. package/Maths/math.path.js.map +1 -1
  322. package/Meshes/Builders/greasedLineBuilder.d.ts +2 -2
  323. package/Meshes/Builders/greasedLineBuilder.js +21 -23
  324. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  325. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +3 -3
  326. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  327. package/Meshes/GreasedLine/greasedLineRibbonMesh.js +14 -14
  328. package/Meshes/GreasedLine/greasedLineRibbonMesh.js.map +1 -1
  329. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +2 -2
  330. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  331. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js +2 -2
  332. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.js.map +1 -1
  333. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js +3 -3
  334. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.js.map +1 -1
  335. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js +3 -3
  336. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.js.map +1 -1
  337. package/Meshes/Node/Blocks/Set/setColorsBlock.js +2 -2
  338. package/Meshes/Node/Blocks/Set/setColorsBlock.js.map +1 -1
  339. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js +2 -2
  340. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.js.map +1 -1
  341. package/Meshes/Node/Blocks/Set/setNormalsBlock.js +2 -2
  342. package/Meshes/Node/Blocks/Set/setNormalsBlock.js.map +1 -1
  343. package/Meshes/Node/Blocks/Set/setPositionsBlock.js +2 -2
  344. package/Meshes/Node/Blocks/Set/setPositionsBlock.js.map +1 -1
  345. package/Meshes/Node/Blocks/Set/setTangentsBlock.js +2 -2
  346. package/Meshes/Node/Blocks/Set/setTangentsBlock.js.map +1 -1
  347. package/Meshes/Node/Blocks/Set/setUVsBlock.js +3 -3
  348. package/Meshes/Node/Blocks/Set/setUVsBlock.js.map +1 -1
  349. package/Meshes/Node/Blocks/Sources/boxBlock.js +2 -2
  350. package/Meshes/Node/Blocks/Sources/boxBlock.js.map +1 -1
  351. package/Meshes/Node/Blocks/Sources/capsuleBlock.js +2 -2
  352. package/Meshes/Node/Blocks/Sources/capsuleBlock.js.map +1 -1
  353. package/Meshes/Node/Blocks/Sources/cylinderBlock.js +2 -2
  354. package/Meshes/Node/Blocks/Sources/cylinderBlock.js.map +1 -1
  355. package/Meshes/Node/Blocks/Sources/discBlock.js +2 -2
  356. package/Meshes/Node/Blocks/Sources/discBlock.js.map +1 -1
  357. package/Meshes/Node/Blocks/Sources/gridBlock.js +2 -2
  358. package/Meshes/Node/Blocks/Sources/gridBlock.js.map +1 -1
  359. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js +2 -2
  360. package/Meshes/Node/Blocks/Sources/icoSphereBlock.js.map +1 -1
  361. package/Meshes/Node/Blocks/Sources/meshBlock.js +2 -2
  362. package/Meshes/Node/Blocks/Sources/meshBlock.js.map +1 -1
  363. package/Meshes/Node/Blocks/Sources/planeBlock.js +2 -2
  364. package/Meshes/Node/Blocks/Sources/planeBlock.js.map +1 -1
  365. package/Meshes/Node/Blocks/Sources/sphereBlock.js +2 -2
  366. package/Meshes/Node/Blocks/Sources/sphereBlock.js.map +1 -1
  367. package/Meshes/Node/Blocks/Sources/torusBlock.js +2 -2
  368. package/Meshes/Node/Blocks/Sources/torusBlock.js.map +1 -1
  369. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js +2 -2
  370. package/Meshes/Node/Blocks/Textures/geometryTextureBlock.js.map +1 -1
  371. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js +2 -2
  372. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.js.map +1 -1
  373. package/Meshes/Node/Blocks/booleanGeometryBlock.js +3 -3
  374. package/Meshes/Node/Blocks/booleanGeometryBlock.js.map +1 -1
  375. package/Meshes/Node/Blocks/conditionBlock.js +2 -2
  376. package/Meshes/Node/Blocks/conditionBlock.js.map +1 -1
  377. package/Meshes/Node/Blocks/geometryClampBlock.js +3 -3
  378. package/Meshes/Node/Blocks/geometryClampBlock.js.map +1 -1
  379. package/Meshes/Node/Blocks/geometryCollectionBlock.js +2 -2
  380. package/Meshes/Node/Blocks/geometryCollectionBlock.js.map +1 -1
  381. package/Meshes/Node/Blocks/geometryCurveBlock.js +2 -2
  382. package/Meshes/Node/Blocks/geometryCurveBlock.js.map +1 -1
  383. package/Meshes/Node/Blocks/geometryOptimizeBlock.js +3 -3
  384. package/Meshes/Node/Blocks/geometryOptimizeBlock.js.map +1 -1
  385. package/Meshes/Node/Blocks/geometryTransformBlock.js +2 -2
  386. package/Meshes/Node/Blocks/geometryTransformBlock.js.map +1 -1
  387. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js +2 -2
  388. package/Meshes/Node/Blocks/geometryTrigonometryBlock.js.map +1 -1
  389. package/Meshes/Node/Blocks/mappingBlock.js +2 -2
  390. package/Meshes/Node/Blocks/mappingBlock.js.map +1 -1
  391. package/Meshes/Node/Blocks/mathBlock.js +2 -2
  392. package/Meshes/Node/Blocks/mathBlock.js.map +1 -1
  393. package/Meshes/Node/Blocks/mergeGeometryBlock.js +2 -2
  394. package/Meshes/Node/Blocks/mergeGeometryBlock.js.map +1 -1
  395. package/Meshes/Node/Blocks/randomBlock.js +2 -2
  396. package/Meshes/Node/Blocks/randomBlock.js.map +1 -1
  397. package/Meshes/Node/nodeGeometryBlock.js +3 -3
  398. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  399. package/Meshes/Node/nodeGeometryBlockConnectionPoint.d.ts +2 -2
  400. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js +7 -7
  401. package/Meshes/Node/nodeGeometryBlockConnectionPoint.js.map +1 -1
  402. package/Meshes/abstractMesh.js +4 -5
  403. package/Meshes/abstractMesh.js.map +1 -1
  404. package/Meshes/mesh.js +1 -2
  405. package/Meshes/mesh.js.map +1 -1
  406. package/Meshes/meshSimplification.d.ts +1 -1
  407. package/Meshes/meshSimplification.js +1 -1
  408. package/Meshes/meshSimplification.js.map +1 -1
  409. package/Meshes/meshSimplificationSceneComponent.js +2 -2
  410. package/Meshes/meshSimplificationSceneComponent.js.map +1 -1
  411. package/Meshes/transformNode.js +7 -8
  412. package/Meshes/transformNode.js.map +1 -1
  413. package/Misc/assetsManager.d.ts +1 -1
  414. package/Misc/assetsManager.js +9 -9
  415. package/Misc/assetsManager.js.map +1 -1
  416. package/Misc/basis.js +2 -2
  417. package/Misc/basis.js.map +1 -1
  418. package/Misc/copyTextureToTexture.d.ts +1 -1
  419. package/Misc/copyTextureToTexture.js +1 -1
  420. package/Misc/copyTextureToTexture.js.map +1 -1
  421. package/Misc/environmentTextureTools.js +3 -3
  422. package/Misc/environmentTextureTools.js.map +1 -1
  423. package/Misc/iInspectable.d.ts +1 -1
  424. package/Misc/iInspectable.js.map +1 -1
  425. package/Misc/khronosTextureContainer2.js +2 -2
  426. package/Misc/khronosTextureContainer2.js.map +1 -1
  427. package/Misc/timer.d.ts +1 -1
  428. package/Misc/timer.js +5 -5
  429. package/Misc/timer.js.map +1 -1
  430. package/Misc/virtualJoystick.d.ts +1 -1
  431. package/Misc/virtualJoystick.js +16 -16
  432. package/Misc/virtualJoystick.js.map +1 -1
  433. package/Particles/particleSystem.js +3 -3
  434. package/Particles/particleSystem.js.map +1 -1
  435. package/Particles/particleSystemComponent.js +1 -2
  436. package/Particles/particleSystemComponent.js.map +1 -1
  437. package/Particles/pointsCloudSystem.d.ts +1 -1
  438. package/Particles/pointsCloudSystem.js +14 -14
  439. package/Particles/pointsCloudSystem.js.map +1 -1
  440. package/Particles/subEmitter.d.ts +1 -1
  441. package/Particles/subEmitter.js +1 -1
  442. package/Particles/subEmitter.js.map +1 -1
  443. package/Physics/physicsHelper.d.ts +2 -2
  444. package/Physics/physicsHelper.js +6 -7
  445. package/Physics/physicsHelper.js.map +1 -1
  446. package/Physics/v1/physicsImpostor.js +4 -5
  447. package/Physics/v1/physicsImpostor.js.map +1 -1
  448. package/Physics/v2/IPhysicsEnginePlugin.d.ts +16 -8
  449. package/Physics/v2/IPhysicsEnginePlugin.js +9 -0
  450. package/Physics/v2/IPhysicsEnginePlugin.js.map +1 -1
  451. package/Physics/v2/Plugins/havokPlugin.js +96 -79
  452. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  453. package/Physics/v2/physicsAggregate.js +8 -9
  454. package/Physics/v2/physicsAggregate.js.map +1 -1
  455. package/Physics/v2/physicsBody.d.ts +14 -2
  456. package/Physics/v2/physicsBody.js +30 -11
  457. package/Physics/v2/physicsBody.js.map +1 -1
  458. package/Physics/v2/physicsConstraint.js +8 -9
  459. package/Physics/v2/physicsConstraint.js.map +1 -1
  460. package/Physics/v2/physicsMaterial.d.ts +1 -1
  461. package/Physics/v2/physicsMaterial.js.map +1 -1
  462. package/Physics/v2/physicsShape.js +9 -10
  463. package/Physics/v2/physicsShape.js.map +1 -1
  464. package/Physics/v2/ragdoll.js +11 -12
  465. package/Physics/v2/ragdoll.js.map +1 -1
  466. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +2 -2
  467. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  468. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  469. package/PostProcesses/depthOfFieldEffect.js +3 -3
  470. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  471. package/PostProcesses/postProcess.js +2 -3
  472. package/PostProcesses/postProcess.js.map +1 -1
  473. package/PostProcesses/tonemapPostProcess.d.ts +1 -1
  474. package/PostProcesses/tonemapPostProcess.js +4 -4
  475. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  476. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +1 -1
  477. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +10 -10
  478. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  479. package/Shaders/spriteMap.fragment.js +3 -2
  480. package/Shaders/spriteMap.fragment.js.map +1 -1
  481. package/ShadersWGSL/boundingInfo.compute.js +8 -8
  482. package/ShadersWGSL/boundingInfo.compute.js.map +1 -1
  483. package/XR/features/WebXRDepthSensing.js +2 -2
  484. package/XR/features/WebXRDepthSensing.js.map +1 -1
  485. package/XR/features/WebXRHandTracking.d.ts +2 -2
  486. package/XR/features/WebXRHandTracking.js +76 -76
  487. package/XR/features/WebXRHandTracking.js.map +1 -1
  488. package/XR/features/WebXRLightEstimation.js +2 -2
  489. package/XR/features/WebXRLightEstimation.js.map +1 -1
  490. package/XR/features/WebXRNearInteraction.d.ts +1 -1
  491. package/XR/features/WebXRNearInteraction.js +5 -5
  492. package/XR/features/WebXRNearInteraction.js.map +1 -1
  493. package/XR/features/WebXRRawCameraAccess.js +2 -2
  494. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  495. package/XR/motionController/webXRProfiledMotionController.js +2 -2
  496. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  497. package/XR/webXRCamera.js +3 -4
  498. package/XR/webXRCamera.js.map +1 -1
  499. package/XR/webXREnterExitUI.js +3 -4
  500. package/XR/webXREnterExitUI.js.map +1 -1
  501. package/XR/webXRExperienceHelper.js +12 -13
  502. package/XR/webXRExperienceHelper.js.map +1 -1
  503. package/XR/webXRManagedOutputCanvas.d.ts +1 -1
  504. package/XR/webXRManagedOutputCanvas.js +15 -6
  505. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  506. package/XR/webXRRenderTargetTextureProvider.js +2 -2
  507. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  508. package/XR/webXRTypes.d.ts +2 -2
  509. package/XR/webXRTypes.js.map +1 -1
  510. package/package.json +1 -1
  511. package/scene.d.ts +1 -1
  512. package/scene.js +4 -4
  513. package/scene.js.map +1 -1
@@ -1032,6 +1032,7 @@ export declare class WebGPUEngine extends AbstractEngine {
1032
1032
  * @param byteLength the byte length of the data
1033
1033
  */
1034
1034
  updateStorageBuffer(buffer: DataBuffer, data: DataArray, byteOffset?: number, byteLength?: number): void;
1035
+ private _readFromGPUBuffer;
1035
1036
  /**
1036
1037
  * Read data from a storage buffer
1037
1038
  * @param storageBuffer The storage buffer to read from
@@ -1042,6 +1043,16 @@ export declare class WebGPUEngine extends AbstractEngine {
1042
1043
  * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
1043
1044
  */
1044
1045
  readFromStorageBuffer(storageBuffer: DataBuffer, offset?: number, size?: number, buffer?: ArrayBufferView, noDelay?: boolean): Promise<ArrayBufferView>;
1046
+ /**
1047
+ * Read data from multiple storage buffers
1048
+ * @param storageBuffers The list of storage buffers to read from
1049
+ * @param offset The offset in the storage buffer to start reading from (default: 0). This is the same offset for all storage buffers!
1050
+ * @param size The number of bytes to read from each storage buffer (default: capacity of the first buffer)
1051
+ * @param buffer The buffer to write the data we have read from the storage buffers to (optional). If provided, the buffer should be large enough to hold the data from all storage buffers!
1052
+ * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
1053
+ * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
1054
+ */
1055
+ readFromMultipleStorageBuffers(storageBuffers: DataBuffer[], offset?: number, size?: number, buffer?: ArrayBufferView, noDelay?: boolean): Promise<ArrayBufferView>;
1045
1056
  /**
1046
1057
  * Sets a storage buffer in the shader
1047
1058
  * @param name Defines the name of the storage buffer as defined in the shader
@@ -2,7 +2,7 @@
2
2
  import { Logger } from "../Misc/logger.js";
3
3
  import { Color4 } from "../Maths/math.js";
4
4
  import { Engine } from "../Engines/engine.js";
5
- import { InternalTexture, InternalTextureSource } from "../Materials/Textures/internalTexture.js";
5
+ import { InternalTexture } from "../Materials/Textures/internalTexture.js";
6
6
  import { Effect } from "../Materials/effect.js";
7
7
 
8
8
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -33,7 +33,6 @@ import { WebGPUOcclusionQuery } from "./WebGPU/webgpuOcclusionQuery.js";
33
33
  import { ShaderCodeInliner } from "./Processors/shaderCodeInliner.js";
34
34
  import { WebGPUTintWASM } from "./WebGPU/webgpuTintWASM.js";
35
35
  import { WebGPUShaderProcessor } from "./WebGPU/webgpuShaderProcessor.js";
36
- import { ShaderLanguage } from "../Materials/shaderLanguage.js";
37
36
  import { WebGPUSnapshotRendering } from "./WebGPU/webgpuSnapshotRendering.js";
38
37
  import "../Buffers/buffer.align.js";
39
38
  import "../ShadersWGSL/postprocess.vertex.js";
@@ -52,14 +51,14 @@ import { resetCachedPipeline } from "../Materials/effect.functions.js";
52
51
  import { WebGPUExternalTexture } from "./WebGPU/webgpuExternalTexture.js";
53
52
  const viewDescriptorSwapChainAntialiasing = {
54
53
  label: `TextureView_SwapChain_ResolveTarget`,
55
- dimension: WebGPUConstants.TextureDimension.E2d,
54
+ dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
56
55
  format: undefined,
57
56
  mipLevelCount: 1,
58
57
  arrayLayerCount: 1,
59
58
  };
60
59
  const viewDescriptorSwapChain = {
61
60
  label: `TextureView_SwapChain`,
62
- dimension: WebGPUConstants.TextureDimension.E2d,
61
+ dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
63
62
  format: undefined,
64
63
  mipLevelCount: 1,
65
64
  arrayLayerCount: 1,
@@ -568,21 +567,21 @@ export class WebGPUEngine extends AbstractEngine {
568
567
  maxFragmentUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),
569
568
  maxVertexUniformVectors: Math.floor(this._deviceLimits.maxUniformBufferBindingSize / 4),
570
569
  standardDerivatives: true,
571
- astc: (this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionASTC) >= 0 ? true : undefined),
572
- s3tc: (this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionBC) >= 0 ? true : undefined),
570
+ astc: (this._deviceEnabledExtensions.indexOf("texture-compression-astc" /* WebGPUConstants.FeatureName.TextureCompressionASTC */) >= 0 ? true : undefined),
571
+ s3tc: (this._deviceEnabledExtensions.indexOf("texture-compression-bc" /* WebGPUConstants.FeatureName.TextureCompressionBC */) >= 0 ? true : undefined),
573
572
  pvrtc: null,
574
573
  etc1: null,
575
- etc2: (this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionETC2) >= 0 ? true : undefined),
576
- bptc: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TextureCompressionBC) >= 0 ? true : undefined,
574
+ etc2: (this._deviceEnabledExtensions.indexOf("texture-compression-etc2" /* WebGPUConstants.FeatureName.TextureCompressionETC2 */) >= 0 ? true : undefined),
575
+ bptc: this._deviceEnabledExtensions.indexOf("texture-compression-bc" /* WebGPUConstants.FeatureName.TextureCompressionBC */) >= 0 ? true : undefined,
577
576
  maxAnisotropy: 16,
578
577
  uintIndices: true,
579
578
  fragmentDepthSupported: true,
580
579
  highPrecisionShaderSupported: true,
581
580
  colorBufferFloat: true,
582
581
  supportFloatTexturesResolve: false,
583
- rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.RG11B10UFloatRenderable) >= 0,
582
+ rg11b10ufColorRenderable: this._deviceEnabledExtensions.indexOf("rg11b10ufloat-renderable" /* WebGPUConstants.FeatureName.RG11B10UFloatRenderable */) >= 0,
584
583
  textureFloat: true,
585
- textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.Float32Filterable) >= 0,
584
+ textureFloatLinearFiltering: this._deviceEnabledExtensions.indexOf("float32-filterable" /* WebGPUConstants.FeatureName.Float32Filterable */) >= 0,
586
585
  textureFloatRender: true,
587
586
  textureHalfFloat: true,
588
587
  textureHalfFloatLinearFiltering: true,
@@ -593,7 +592,7 @@ export class WebGPUEngine extends AbstractEngine {
593
592
  depthTextureExtension: true,
594
593
  vertexArrayObject: false,
595
594
  instancedArrays: true,
596
- timerQuery: typeof BigUint64Array !== "undefined" && this._deviceEnabledExtensions.indexOf(WebGPUConstants.FeatureName.TimestampQuery) !== -1 ? true : undefined,
595
+ timerQuery: typeof BigUint64Array !== "undefined" && this._deviceEnabledExtensions.indexOf("timestamp-query" /* WebGPUConstants.FeatureName.TimestampQuery */) !== -1 ? true : undefined,
597
596
  supportOcclusionQuery: typeof BigUint64Array !== "undefined",
598
597
  canUseTimestampForTimerQuery: true,
599
598
  multiview: false,
@@ -672,9 +671,9 @@ export class WebGPUEngine extends AbstractEngine {
672
671
  size: this._mainTextureExtends,
673
672
  mipLevelCount: 1,
674
673
  sampleCount: this._mainPassSampleCount,
675
- dimension: WebGPUConstants.TextureDimension.E2d,
674
+ dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
676
675
  format: this._options.swapChainFormat,
677
- usage: WebGPUConstants.TextureUsage.RenderAttachment,
676
+ usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */,
678
677
  };
679
678
  if (this._mainTexture) {
680
679
  this._textureHelper.releaseTexture(this._mainTexture);
@@ -684,14 +683,14 @@ export class WebGPUEngine extends AbstractEngine {
684
683
  {
685
684
  view: this._mainTexture.createView({
686
685
  label: "TextureView_MainColor_antialiasing",
687
- dimension: WebGPUConstants.TextureDimension.E2d,
686
+ dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
688
687
  format: this._options.swapChainFormat,
689
688
  mipLevelCount: 1,
690
689
  arrayLayerCount: 1,
691
690
  }),
692
691
  clearValue: new Color4(0, 0, 0, 1),
693
- loadOp: WebGPUConstants.LoadOp.Clear,
694
- storeOp: WebGPUConstants.StoreOp.Store, // don't use StoreOp.Discard, else using several cameras with different viewports or using scissors will fail because we call beginRenderPass / endPass several times for the same color attachment!
692
+ loadOp: "clear" /* WebGPUConstants.LoadOp.Clear */,
693
+ storeOp: "store" /* WebGPUConstants.StoreOp.Store */, // don't use StoreOp.Discard, else using several cameras with different viewports or using scissors will fail because we call beginRenderPass / endPass several times for the same color attachment!
695
694
  },
696
695
  ];
697
696
  }
@@ -700,12 +699,12 @@ export class WebGPUEngine extends AbstractEngine {
700
699
  {
701
700
  view: undefined,
702
701
  clearValue: new Color4(0, 0, 0, 1),
703
- loadOp: WebGPUConstants.LoadOp.Clear,
704
- storeOp: WebGPUConstants.StoreOp.Store,
702
+ loadOp: "clear" /* WebGPUConstants.LoadOp.Clear */,
703
+ storeOp: "store" /* WebGPUConstants.StoreOp.Store */,
705
704
  },
706
705
  ];
707
706
  }
708
- this._mainRenderPassWrapper.depthTextureFormat = this.isStencilEnable ? WebGPUConstants.TextureFormat.Depth24PlusStencil8 : WebGPUConstants.TextureFormat.Depth32Float;
707
+ this._mainRenderPassWrapper.depthTextureFormat = this.isStencilEnable ? "depth24plus-stencil8" /* WebGPUConstants.TextureFormat.Depth24PlusStencil8 */ : "depth32float" /* WebGPUConstants.TextureFormat.Depth32Float */;
709
708
  this._setDepthTextureFormat(this._mainRenderPassWrapper);
710
709
  this._setColorFormat(this._mainRenderPassWrapper);
711
710
  const depthTextureDescriptor = {
@@ -713,9 +712,9 @@ export class WebGPUEngine extends AbstractEngine {
713
712
  size: this._mainTextureExtends,
714
713
  mipLevelCount: 1,
715
714
  sampleCount: this._mainPassSampleCount,
716
- dimension: WebGPUConstants.TextureDimension.E2d,
715
+ dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
717
716
  format: this._mainRenderPassWrapper.depthTextureFormat,
718
- usage: WebGPUConstants.TextureUsage.RenderAttachment,
717
+ usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */,
719
718
  };
720
719
  if (this._depthTexture) {
721
720
  this._textureHelper.releaseTexture(this._depthTexture);
@@ -724,17 +723,17 @@ export class WebGPUEngine extends AbstractEngine {
724
723
  const mainDepthAttachment = {
725
724
  view: this._depthTexture.createView({
726
725
  label: `TextureView_MainDepthStencil_${this._mainTextureExtends.width}x${this._mainTextureExtends.height}`,
727
- dimension: WebGPUConstants.TextureDimension.E2d,
726
+ dimension: "2d" /* WebGPUConstants.TextureDimension.E2d */,
728
727
  format: this._depthTexture.format,
729
728
  mipLevelCount: 1,
730
729
  arrayLayerCount: 1,
731
730
  }),
732
731
  depthClearValue: this._clearDepthValue,
733
- depthLoadOp: WebGPUConstants.LoadOp.Clear,
734
- depthStoreOp: WebGPUConstants.StoreOp.Store,
732
+ depthLoadOp: "clear" /* WebGPUConstants.LoadOp.Clear */,
733
+ depthStoreOp: "store" /* WebGPUConstants.StoreOp.Store */,
735
734
  stencilClearValue: this._clearStencilValue,
736
- stencilLoadOp: !this.isStencilEnable ? undefined : WebGPUConstants.LoadOp.Clear,
737
- stencilStoreOp: !this.isStencilEnable ? undefined : WebGPUConstants.StoreOp.Store,
735
+ stencilLoadOp: !this.isStencilEnable ? undefined : "clear" /* WebGPUConstants.LoadOp.Clear */,
736
+ stencilStoreOp: !this.isStencilEnable ? undefined : "store" /* WebGPUConstants.StoreOp.Store */,
738
737
  };
739
738
  this._mainRenderPassWrapper.renderPassDescriptor = {
740
739
  label: "MainRenderPass",
@@ -754,8 +753,8 @@ export class WebGPUEngine extends AbstractEngine {
754
753
  this._context.configure({
755
754
  device: this._device,
756
755
  format: this._options.swapChainFormat,
757
- usage: WebGPUConstants.TextureUsage.RenderAttachment | WebGPUConstants.TextureUsage.CopySrc,
758
- alphaMode: this.premultipliedAlpha ? WebGPUConstants.CanvasAlphaMode.Premultiplied : WebGPUConstants.CanvasAlphaMode.Opaque,
756
+ usage: 16 /* WebGPUConstants.TextureUsage.RenderAttachment */ | 1 /* WebGPUConstants.TextureUsage.CopySrc */,
757
+ alphaMode: this.premultipliedAlpha ? "premultiplied" /* WebGPUConstants.CanvasAlphaMode.Premultiplied */ : "opaque" /* WebGPUConstants.CanvasAlphaMode.Opaque */,
759
758
  });
760
759
  }
761
760
  /**
@@ -894,7 +893,7 @@ export class WebGPUEngine extends AbstractEngine {
894
893
  * @internal
895
894
  */
896
895
  _getShaderProcessor(shaderLanguage) {
897
- if (shaderLanguage === ShaderLanguage.WGSL) {
896
+ if (shaderLanguage === 1 /* ShaderLanguage.WGSL */) {
898
897
  return this._shaderProcessorWGSL;
899
898
  }
900
899
  return this._shaderProcessor;
@@ -1472,7 +1471,7 @@ export class WebGPUEngine extends AbstractEngine {
1472
1471
  * @param shaderLanguage the language the shader is written in (default: GLSL)
1473
1472
  * @returns the new Effect
1474
1473
  */
1475
- createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = ShaderLanguage.GLSL) {
1474
+ createEffect(baseName, attributesNamesOrOptions, uniformsNamesOrEngine, samplers, defines, fallbacks, onCompiled, onError, indexParameters, shaderLanguage = 0 /* ShaderLanguage.GLSL */) {
1476
1475
  const vertex = typeof baseName === "string" ? baseName : baseName.vertexToken || baseName.vertexSource || baseName.vertexElement || baseName.vertex;
1477
1476
  const fragment = typeof baseName === "string" ? baseName : baseName.fragmentToken || baseName.fragmentSource || baseName.fragmentElement || baseName.fragment;
1478
1477
  const globalDefines = this._getGlobalDefines();
@@ -1508,7 +1507,7 @@ export class WebGPUEngine extends AbstractEngine {
1508
1507
  return defines + source;
1509
1508
  }
1510
1509
  _createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment) {
1511
- if (this._tintWASM && shaderLanguage === ShaderLanguage.GLSL) {
1510
+ if (this._tintWASM && shaderLanguage === 0 /* ShaderLanguage.GLSL */) {
1512
1511
  vertexShader = this._tintWASM.convertSpirV2WGSL(vertexShader, disableUniformityAnalysisInVertex);
1513
1512
  fragmentShader = this._tintWASM.convertSpirV2WGSL(fragmentShader, disableUniformityAnalysisInFragment);
1514
1513
  }
@@ -1530,8 +1529,8 @@ export class WebGPUEngine extends AbstractEngine {
1530
1529
  _compileRawPipelineStageDescriptor(vertexCode, fragmentCode, shaderLanguage) {
1531
1530
  const disableUniformityAnalysisInVertex = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
1532
1531
  const disableUniformityAnalysisInFragment = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
1533
- const vertexShader = shaderLanguage === ShaderLanguage.GLSL ? this._compileRawShaderToSpirV(vertexCode, "vertex") : vertexCode;
1534
- const fragmentShader = shaderLanguage === ShaderLanguage.GLSL ? this._compileRawShaderToSpirV(fragmentCode, "fragment") : fragmentCode;
1532
+ const vertexShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileRawShaderToSpirV(vertexCode, "vertex") : vertexCode;
1533
+ const fragmentShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileRawShaderToSpirV(fragmentCode, "fragment") : fragmentCode;
1535
1534
  return this._createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment);
1536
1535
  }
1537
1536
  _compilePipelineStageDescriptor(vertexCode, fragmentCode, defines, shaderLanguage) {
@@ -1539,8 +1538,8 @@ export class WebGPUEngine extends AbstractEngine {
1539
1538
  const disableUniformityAnalysisInVertex = vertexCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
1540
1539
  const disableUniformityAnalysisInFragment = fragmentCode.indexOf(`#define DISABLE_UNIFORMITY_ANALYSIS`) >= 0;
1541
1540
  const shaderVersion = "#version 450\n";
1542
- const vertexShader = shaderLanguage === ShaderLanguage.GLSL ? this._compileShaderToSpirV(vertexCode, "vertex", defines, shaderVersion) : this._getWGSLShader(vertexCode, "vertex", defines);
1543
- const fragmentShader = shaderLanguage === ShaderLanguage.GLSL
1541
+ const vertexShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */ ? this._compileShaderToSpirV(vertexCode, "vertex", defines, shaderVersion) : this._getWGSLShader(vertexCode, "vertex", defines);
1542
+ const fragmentShader = shaderLanguage === 0 /* ShaderLanguage.GLSL */
1544
1543
  ? this._compileShaderToSpirV(fragmentCode, "fragment", defines, shaderVersion)
1545
1544
  : this._getWGSLShader(fragmentCode, "fragment", defines);
1546
1545
  const program = this._createPipelineStageDescriptor(vertexShader, fragmentShader, shaderLanguage, disableUniformityAnalysisInVertex, disableUniformityAnalysisInFragment);
@@ -1754,7 +1753,7 @@ export class WebGPUEngine extends AbstractEngine {
1754
1753
  * @param source source type of the texture
1755
1754
  * @returns a new internal texture
1756
1755
  */
1757
- _createInternalTexture(size, options, delayGPUTextureCreation = true, source = InternalTextureSource.Unknown) {
1756
+ _createInternalTexture(size, options, delayGPUTextureCreation = true, source = 0 /* InternalTextureSource.Unknown */) {
1758
1757
  const fullOptions = {};
1759
1758
  if (options !== undefined && typeof options === "object") {
1760
1759
  fullOptions.generateMipMaps = options.generateMipMaps;
@@ -1875,7 +1874,7 @@ export class WebGPUEngine extends AbstractEngine {
1875
1874
  */
1876
1875
  wrapWebGPUTexture(texture) {
1877
1876
  const hardwareTexture = new WebGPUHardwareTexture(texture);
1878
- const internalTexture = new InternalTexture(this, InternalTextureSource.Unknown, true);
1877
+ const internalTexture = new InternalTexture(this, 0 /* InternalTextureSource.Unknown */, true);
1879
1878
  internalTexture._hardwareTexture = hardwareTexture;
1880
1879
  internalTexture.isReady = true;
1881
1880
  return internalTexture;
@@ -1991,7 +1990,7 @@ export class WebGPUEngine extends AbstractEngine {
1991
1990
  else if (loadData.info.sphericalPolynomial) {
1992
1991
  texture._sphericalPolynomial = loadData.info.sphericalPolynomial;
1993
1992
  }
1994
- texture._source = InternalTextureSource.CubePrefiltered;
1993
+ texture._source = 9 /* InternalTextureSource.CubePrefiltered */;
1995
1994
  if (onLoad) {
1996
1995
  onLoad(texture);
1997
1996
  }
@@ -2401,13 +2400,13 @@ export class WebGPUEngine extends AbstractEngine {
2401
2400
  const faceIndex = rtWrapper.faceIndices?.[i] ?? 0;
2402
2401
  const viewDescriptor = {
2403
2402
  ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
2404
- dimension: mrtTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2403
+ dimension: mrtTexture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
2405
2404
  format: gpuMRTWrapper.format,
2406
2405
  baseArrayLayer: mrtTexture.isCube ? layerIndex * 6 + faceIndex : mrtTexture.is3D ? 0 : layerIndex,
2407
2406
  };
2408
2407
  const msaaViewDescriptor = {
2409
2408
  ...this._rttRenderPassWrapper.colorAttachmentViewDescriptor,
2410
- dimension: mrtTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2409
+ dimension: mrtTexture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
2411
2410
  format: gpuMRTWrapper.format,
2412
2411
  baseArrayLayer: 0,
2413
2412
  };
@@ -2419,8 +2418,8 @@ export class WebGPUEngine extends AbstractEngine {
2419
2418
  resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
2420
2419
  depthSlice: mrtTexture.is3D ? layerIndex : undefined,
2421
2420
  clearValue: index !== 0 && mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,
2422
- loadOp: index !== 0 && mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load,
2423
- storeOp: WebGPUConstants.StoreOp.Store,
2421
+ loadOp: index !== 0 && mustClearColor ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */,
2422
+ storeOp: "store" /* WebGPUConstants.StoreOp.Store */,
2424
2423
  });
2425
2424
  }
2426
2425
  }
@@ -2447,8 +2446,8 @@ export class WebGPUEngine extends AbstractEngine {
2447
2446
  resolveTarget: gpuMSAATexture ? colorTextureView : undefined,
2448
2447
  depthSlice,
2449
2448
  clearValue: mustClearColor ? (isRTInteger ? clearColorForIntegerRT : clearColor) : undefined,
2450
- loadOp: mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load,
2451
- storeOp: WebGPUConstants.StoreOp.Store,
2449
+ loadOp: mustClearColor ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */,
2450
+ storeOp: "store" /* WebGPUConstants.StoreOp.Store */,
2452
2451
  });
2453
2452
  }
2454
2453
  else {
@@ -2463,15 +2462,15 @@ export class WebGPUEngine extends AbstractEngine {
2463
2462
  ? {
2464
2463
  view: depthMSAATextureView ? depthMSAATextureView : depthTextureView,
2465
2464
  depthClearValue: mustClearDepth ? (this.useReverseDepthBuffer ? this._clearReverseDepthValue : this._clearDepthValue) : undefined,
2466
- depthLoadOp: mustClearDepth ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load,
2467
- depthStoreOp: WebGPUConstants.StoreOp.Store,
2465
+ depthLoadOp: mustClearDepth ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */,
2466
+ depthStoreOp: "store" /* WebGPUConstants.StoreOp.Store */,
2468
2467
  stencilClearValue: rtWrapper._depthStencilTextureWithStencil && mustClearStencil ? this._clearStencilValue : undefined,
2469
2468
  stencilLoadOp: !depthTextureHasStencil
2470
2469
  ? undefined
2471
2470
  : rtWrapper._depthStencilTextureWithStencil && mustClearStencil
2472
- ? WebGPUConstants.LoadOp.Clear
2473
- : WebGPUConstants.LoadOp.Load,
2474
- stencilStoreOp: !depthTextureHasStencil ? undefined : WebGPUConstants.StoreOp.Store,
2471
+ ? "clear" /* WebGPUConstants.LoadOp.Clear */
2472
+ : "load" /* WebGPUConstants.LoadOp.Load */,
2473
+ stencilStoreOp: !depthTextureHasStencil ? undefined : "store" /* WebGPUConstants.StoreOp.Store */,
2475
2474
  }
2476
2475
  : undefined,
2477
2476
  occlusionQuerySet: this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined,
@@ -2517,19 +2516,19 @@ export class WebGPUEngine extends AbstractEngine {
2517
2516
  const mustClearDepth = setClearStates && clearDepth;
2518
2517
  const mustClearStencil = setClearStates && clearStencil;
2519
2518
  this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].clearValue = mustClearColor ? clearColor : undefined;
2520
- this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp = mustClearColor ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load;
2519
+ this._mainRenderPassWrapper.renderPassDescriptor.colorAttachments[0].loadOp = mustClearColor ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */;
2521
2520
  this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthClearValue = mustClearDepth
2522
2521
  ? this.useReverseDepthBuffer
2523
2522
  ? this._clearReverseDepthValue
2524
2523
  : this._clearDepthValue
2525
2524
  : undefined;
2526
- this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp = mustClearDepth ? WebGPUConstants.LoadOp.Clear : WebGPUConstants.LoadOp.Load;
2525
+ this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.depthLoadOp = mustClearDepth ? "clear" /* WebGPUConstants.LoadOp.Clear */ : "load" /* WebGPUConstants.LoadOp.Load */;
2527
2526
  this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilClearValue = mustClearStencil ? this._clearStencilValue : undefined;
2528
2527
  this._mainRenderPassWrapper.renderPassDescriptor.depthStencilAttachment.stencilLoadOp = !this.isStencilEnable
2529
2528
  ? undefined
2530
2529
  : mustClearStencil
2531
- ? WebGPUConstants.LoadOp.Clear
2532
- : WebGPUConstants.LoadOp.Load;
2530
+ ? "clear" /* WebGPUConstants.LoadOp.Clear */
2531
+ : "load" /* WebGPUConstants.LoadOp.Load */;
2533
2532
  this._mainRenderPassWrapper.renderPassDescriptor.occlusionQuerySet = this._occlusionQuery?.hasQueries ? this._occlusionQuery.querySet : undefined;
2534
2533
  const swapChainTexture = this._context.getCurrentTexture();
2535
2534
  this._mainRenderPassWrapper.colorAttachmentGPUTextures[0].set(swapChainTexture);
@@ -2624,21 +2623,21 @@ export class WebGPUEngine extends AbstractEngine {
2624
2623
  this._setColorFormat(this._rttRenderPassWrapper);
2625
2624
  this._rttRenderPassWrapper.colorAttachmentViewDescriptor = {
2626
2625
  format: this._colorFormat,
2627
- dimension: texture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2626
+ dimension: texture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
2628
2627
  mipLevelCount: 1,
2629
2628
  baseArrayLayer: texture.isCube ? layer * 6 + faceIndex : layer,
2630
2629
  baseMipLevel: lodLevel,
2631
2630
  arrayLayerCount: 1,
2632
- aspect: WebGPUConstants.TextureAspect.All,
2631
+ aspect: "all" /* WebGPUConstants.TextureAspect.All */,
2633
2632
  };
2634
2633
  this._rttRenderPassWrapper.depthAttachmentViewDescriptor = {
2635
2634
  format: this._depthTextureFormat,
2636
- dimension: depthStencilTexture && depthStencilTexture.is3D ? WebGPUConstants.TextureViewDimension.E3d : WebGPUConstants.TextureViewDimension.E2d,
2635
+ dimension: depthStencilTexture && depthStencilTexture.is3D ? "3d" /* WebGPUConstants.TextureViewDimension.E3d */ : "2d" /* WebGPUConstants.TextureViewDimension.E2d */,
2637
2636
  mipLevelCount: 1,
2638
2637
  baseArrayLayer: depthStencilTexture ? (depthStencilTexture.isCube ? layer * 6 + faceIndex : layer) : 0,
2639
2638
  baseMipLevel: 0,
2640
2639
  arrayLayerCount: 1,
2641
- aspect: WebGPUConstants.TextureAspect.All,
2640
+ aspect: "all" /* WebGPUConstants.TextureAspect.All */,
2642
2641
  };
2643
2642
  if (this.dbgVerboseLogsForFirstFrames) {
2644
2643
  if (this._count === undefined) {
@@ -2894,7 +2893,7 @@ export class WebGPUEngine extends AbstractEngine {
2894
2893
  renderPass2.setPipeline(pipeline);
2895
2894
  // bind index/vertex buffers
2896
2895
  if (this._currentIndexBuffer) {
2897
- renderPass2.setIndexBuffer(this._currentIndexBuffer.underlyingResource, this._currentIndexBuffer.is32Bits ? WebGPUConstants.IndexFormat.Uint32 : WebGPUConstants.IndexFormat.Uint16, 0);
2896
+ renderPass2.setIndexBuffer(this._currentIndexBuffer.underlyingResource, this._currentIndexBuffer.is32Bits ? "uint32" /* WebGPUConstants.IndexFormat.Uint32 */ : "uint16" /* WebGPUConstants.IndexFormat.Uint16 */, 0);
2898
2897
  }
2899
2898
  const vertexBuffers = this._cacheRenderPipeline.vertexBuffers;
2900
2899
  for (let index = 0; index < vertexBuffers.length; index++) {
@@ -3092,22 +3091,10 @@ export class WebGPUEngine extends AbstractEngine {
3092
3091
  }
3093
3092
  this._bufferManager.setSubData(dataBuffer, byteOffset, view, 0, byteLength);
3094
3093
  }
3095
- /**
3096
- * Read data from a storage buffer
3097
- * @param storageBuffer The storage buffer to read from
3098
- * @param offset The offset in the storage buffer to start reading from (default: 0)
3099
- * @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)
3100
- * @param buffer The buffer to write the data we have read from the storage buffer to (optional)
3101
- * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
3102
- * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
3103
- */
3104
- readFromStorageBuffer(storageBuffer, offset, size, buffer, noDelay) {
3105
- size = size || storageBuffer.capacity;
3106
- const gpuBuffer = this._bufferManager.createRawBuffer(size, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, "TempReadFromStorageBuffer");
3107
- this._renderEncoder.copyBufferToBuffer(storageBuffer.underlyingResource, offset ?? 0, gpuBuffer, 0, size);
3094
+ _readFromGPUBuffer(gpuBuffer, size, buffer, noDelay) {
3108
3095
  return new Promise((resolve, reject) => {
3109
3096
  const readFromBuffer = () => {
3110
- gpuBuffer.mapAsync(WebGPUConstants.MapMode.Read, 0, size).then(() => {
3097
+ gpuBuffer.mapAsync(1 /* WebGPUConstants.MapMode.Read */, 0, size).then(() => {
3111
3098
  const copyArrayBuffer = gpuBuffer.getMappedRange(0, size);
3112
3099
  let data = buffer;
3113
3100
  if (data === undefined) {
@@ -3144,6 +3131,38 @@ export class WebGPUEngine extends AbstractEngine {
3144
3131
  }
3145
3132
  });
3146
3133
  }
3134
+ /**
3135
+ * Read data from a storage buffer
3136
+ * @param storageBuffer The storage buffer to read from
3137
+ * @param offset The offset in the storage buffer to start reading from (default: 0)
3138
+ * @param size The number of bytes to read from the storage buffer (default: capacity of the buffer)
3139
+ * @param buffer The buffer to write the data we have read from the storage buffer to (optional)
3140
+ * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
3141
+ * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
3142
+ */
3143
+ readFromStorageBuffer(storageBuffer, offset, size, buffer, noDelay) {
3144
+ size = size || storageBuffer.capacity;
3145
+ const gpuBuffer = this._bufferManager.createRawBuffer(size, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, "TempReadFromStorageBuffer");
3146
+ this._renderEncoder.copyBufferToBuffer(storageBuffer.underlyingResource, offset ?? 0, gpuBuffer, 0, size);
3147
+ return this._readFromGPUBuffer(gpuBuffer, size, buffer, noDelay);
3148
+ }
3149
+ /**
3150
+ * Read data from multiple storage buffers
3151
+ * @param storageBuffers The list of storage buffers to read from
3152
+ * @param offset The offset in the storage buffer to start reading from (default: 0). This is the same offset for all storage buffers!
3153
+ * @param size The number of bytes to read from each storage buffer (default: capacity of the first buffer)
3154
+ * @param buffer The buffer to write the data we have read from the storage buffers to (optional). If provided, the buffer should be large enough to hold the data from all storage buffers!
3155
+ * @param noDelay If true, a call to flushFramebuffer will be issued so that the data can be read back immediately and not in engine.onEndFrameObservable. This can speed up data retrieval, at the cost of a small perf penalty (default: false).
3156
+ * @returns If not undefined, returns the (promise) buffer (as provided by the 4th parameter) filled with the data, else it returns a (promise) Uint8Array with the data read from the storage buffer
3157
+ */
3158
+ readFromMultipleStorageBuffers(storageBuffers, offset, size, buffer, noDelay) {
3159
+ size = size || storageBuffers[0].capacity;
3160
+ const gpuBuffer = this._bufferManager.createRawBuffer(size * storageBuffers.length, WebGPUConstants.BufferUsage.MapRead | WebGPUConstants.BufferUsage.CopyDst, undefined, "TempReadFromMultipleStorageBuffers");
3161
+ for (let i = 0; i < storageBuffers.length; i++) {
3162
+ this._renderEncoder.copyBufferToBuffer(storageBuffers[i].underlyingResource, offset ?? 0, gpuBuffer, i * size, size);
3163
+ }
3164
+ return this._readFromGPUBuffer(gpuBuffer, size * storageBuffers.length, buffer, noDelay);
3165
+ }
3147
3166
  /**
3148
3167
  * Sets a storage buffer in the shader
3149
3168
  * @param name Defines the name of the storage buffer as defined in the shader