@babylonjs/core 5.0.0-alpha.60 → 5.0.0-alpha.61

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 (332) hide show
  1. package/Animations/animation.d.ts +20 -0
  2. package/Animations/animation.js +57 -8
  3. package/Animations/animation.js.map +1 -1
  4. package/Animations/animationKey.d.ts +4 -0
  5. package/Animations/animationKey.js +4 -0
  6. package/Animations/animationKey.js.map +1 -1
  7. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +130 -0
  8. package/BakedVertexAnimation/bakedVertexAnimationManager.js +134 -0
  9. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -0
  10. package/BakedVertexAnimation/index.d.ts +2 -0
  11. package/BakedVertexAnimation/index.js +3 -0
  12. package/BakedVertexAnimation/index.js.map +1 -0
  13. package/BakedVertexAnimation/vertexAnimationBaker.d.ts +65 -0
  14. package/BakedVertexAnimation/vertexAnimationBaker.js +155 -0
  15. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -0
  16. package/Behaviors/Cameras/framingBehavior.d.ts +5 -0
  17. package/Behaviors/Cameras/framingBehavior.js +8 -1
  18. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  19. package/Bones/bone.d.ts +3 -1
  20. package/Bones/bone.js +4 -1
  21. package/Bones/bone.js.map +1 -1
  22. package/Cameras/Inputs/BaseCameraPointersInput.js +4 -6
  23. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  24. package/Cameras/Inputs/flyCameraMouseInput.js +4 -4
  25. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  26. package/Cameras/Inputs/freeCameraMouseInput.js +4 -4
  27. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  28. package/Cameras/camera.js +7 -1
  29. package/Cameras/camera.js.map +1 -1
  30. package/Cameras/targetCamera.js +1 -1
  31. package/Cameras/targetCamera.js.map +1 -1
  32. package/Culling/boundingBox.d.ts +4 -0
  33. package/Culling/boundingBox.js +8 -0
  34. package/Culling/boundingBox.js.map +1 -1
  35. package/Debug/physicsViewer.js +1 -1
  36. package/Debug/physicsViewer.js.map +1 -1
  37. package/Debug/skeletonViewer.js +2 -2
  38. package/Debug/skeletonViewer.js.map +1 -1
  39. package/DeviceInput/Implementations/nativeDeviceInputWrapper.d.ts +6 -1
  40. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js +16 -1
  41. package/DeviceInput/Implementations/nativeDeviceInputWrapper.js.map +1 -1
  42. package/DeviceInput/Implementations/webDeviceInputSystem.js +1 -1
  43. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +1 -1
  44. package/DeviceInput/deviceInputSystem.js +6 -1
  45. package/DeviceInput/deviceInputSystem.js.map +1 -1
  46. package/Engines/Extensions/engine.multiview.js +17 -6
  47. package/Engines/Extensions/engine.multiview.js.map +1 -1
  48. package/Engines/WebGPU/Extensions/engine.query.js +19 -3
  49. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  50. package/Engines/WebGPU/webgpuBundleList.d.ts +13 -0
  51. package/Engines/WebGPU/webgpuBundleList.js +27 -0
  52. package/Engines/WebGPU/webgpuBundleList.js.map +1 -1
  53. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +4 -0
  54. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  55. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +6 -0
  56. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +6 -0
  57. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  58. package/Engines/WebGPU/webgpuSnapshotRendering.d.ts +27 -0
  59. package/Engines/WebGPU/webgpuSnapshotRendering.js +107 -0
  60. package/Engines/WebGPU/webgpuSnapshotRendering.js.map +1 -0
  61. package/Engines/WebGPU/webgpuTextureHelper.d.ts +2 -2
  62. package/Engines/WebGPU/webgpuTextureHelper.js +41 -18
  63. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  64. package/Engines/constants.d.ts +2 -0
  65. package/Engines/constants.js +2 -0
  66. package/Engines/constants.js.map +1 -1
  67. package/Engines/engine.d.ts +12 -1
  68. package/Engines/engine.js +33 -0
  69. package/Engines/engine.js.map +1 -1
  70. package/Engines/engineFeatures.d.ts +2 -0
  71. package/Engines/engineFeatures.js.map +1 -1
  72. package/Engines/index.d.ts +1 -0
  73. package/Engines/index.js +1 -0
  74. package/Engines/index.js.map +1 -1
  75. package/Engines/nativeEngine.js +1 -0
  76. package/Engines/nativeEngine.js.map +1 -1
  77. package/Engines/nullEngine.js +1 -0
  78. package/Engines/nullEngine.js.map +1 -1
  79. package/Engines/thinEngine.d.ts +0 -11
  80. package/Engines/thinEngine.js +12 -40
  81. package/Engines/thinEngine.js.map +1 -1
  82. package/Engines/webgpuEngine.d.ts +6 -6
  83. package/Engines/webgpuEngine.js +26 -67
  84. package/Engines/webgpuEngine.js.map +1 -1
  85. package/Helpers/sceneHelpers.d.ts +3 -3
  86. package/Helpers/sceneHelpers.js +1 -2
  87. package/Helpers/sceneHelpers.js.map +1 -1
  88. package/Inputs/scene.inputManager.js +12 -14
  89. package/Inputs/scene.inputManager.js.map +1 -1
  90. package/Layers/effectLayer.d.ts +13 -1
  91. package/Layers/effectLayer.js +115 -65
  92. package/Layers/effectLayer.js.map +1 -1
  93. package/Layers/highlightLayer.d.ts +2 -1
  94. package/Layers/highlightLayer.js +6 -3
  95. package/Layers/highlightLayer.js.map +1 -1
  96. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -0
  97. package/Lights/Shadows/cascadedShadowGenerator.js +14 -0
  98. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  99. package/Lights/Shadows/shadowGenerator.d.ts +4 -0
  100. package/Lights/Shadows/shadowGenerator.js +31 -3
  101. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  102. package/Lights/light.js +7 -1
  103. package/Lights/light.js.map +1 -1
  104. package/Loading/Plugins/babylonFileLoader.js +17 -4
  105. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  106. package/Materials/Background/backgroundMaterial.js +1 -0
  107. package/Materials/Background/backgroundMaterial.js.map +1 -1
  108. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +10 -0
  109. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +31 -0
  110. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  111. package/Materials/Node/Blocks/Fragment/index.d.ts +1 -0
  112. package/Materials/Node/Blocks/Fragment/index.js +1 -0
  113. package/Materials/Node/Blocks/Fragment/index.js.map +1 -1
  114. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.d.ts +41 -0
  115. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +130 -0
  116. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -0
  117. package/Materials/Node/Blocks/Input/inputBlock.js +1 -1
  118. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  119. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -0
  120. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +15 -0
  121. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  122. package/Materials/Node/Blocks/index.d.ts +1 -0
  123. package/Materials/Node/Blocks/index.js +1 -0
  124. package/Materials/Node/Blocks/index.js.map +1 -1
  125. package/Materials/Node/Blocks/vectorMergerBlock.js +4 -4
  126. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  127. package/Materials/Node/Blocks/voronoiNoiseBlock.d.ts +39 -0
  128. package/Materials/Node/Blocks/voronoiNoiseBlock.js +107 -0
  129. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -0
  130. package/Materials/Node/Blocks/worleyNoise3DBlock.d.ts +8 -0
  131. package/Materials/Node/Blocks/worleyNoise3DBlock.js +34 -2
  132. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  133. package/Materials/Node/nodeMaterial.d.ts +1 -0
  134. package/Materials/Node/nodeMaterial.js +2 -0
  135. package/Materials/Node/nodeMaterial.js.map +1 -1
  136. package/Materials/Node/nodeMaterialBuildStateSharedData.d.ts +5 -0
  137. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  138. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -0
  139. package/Materials/PBR/pbrBaseMaterial.js +11 -4
  140. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  141. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +11 -0
  142. package/Materials/PBR/pbrSubSurfaceConfiguration.js +18 -3
  143. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  144. package/Materials/Textures/hdrCubeTexture.d.ts +9 -0
  145. package/Materials/Textures/hdrCubeTexture.js +21 -5
  146. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  147. package/Materials/Textures/mirrorTexture.d.ts +2 -0
  148. package/Materials/Textures/mirrorTexture.js +13 -0
  149. package/Materials/Textures/mirrorTexture.js.map +1 -1
  150. package/Materials/imageProcessingConfiguration.d.ts +16 -1
  151. package/Materials/imageProcessingConfiguration.js +31 -0
  152. package/Materials/imageProcessingConfiguration.js.map +1 -1
  153. package/Materials/materialHelper.d.ts +15 -1
  154. package/Materials/materialHelper.js +40 -3
  155. package/Materials/materialHelper.js.map +1 -1
  156. package/Materials/pushMaterial.d.ts +2 -2
  157. package/Materials/pushMaterial.js +7 -3
  158. package/Materials/pushMaterial.js.map +1 -1
  159. package/Materials/shaderMaterial.d.ts +6 -5
  160. package/Materials/shaderMaterial.js +58 -28
  161. package/Materials/shaderMaterial.js.map +1 -1
  162. package/Materials/shadowDepthWrapper.js +7 -7
  163. package/Materials/shadowDepthWrapper.js.map +1 -1
  164. package/Materials/standardMaterial.d.ts +2 -0
  165. package/Materials/standardMaterial.js +11 -1
  166. package/Materials/standardMaterial.js.map +1 -1
  167. package/Materials/uniformBuffer.js +1 -2
  168. package/Materials/uniformBuffer.js.map +1 -1
  169. package/Maths/math.color.d.ts +20 -0
  170. package/Maths/math.color.js +45 -2
  171. package/Maths/math.color.js.map +1 -1
  172. package/Maths/math.vector.d.ts +2 -1
  173. package/Maths/math.vector.js +14 -3
  174. package/Maths/math.vector.js.map +1 -1
  175. package/Meshes/Builders/boxBuilder.d.ts +1 -1
  176. package/Meshes/Builders/boxBuilder.js +1 -0
  177. package/Meshes/Builders/boxBuilder.js.map +1 -1
  178. package/Meshes/Builders/cylinderBuilder.d.ts +17 -17
  179. package/Meshes/Builders/cylinderBuilder.js +1 -0
  180. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  181. package/Meshes/Builders/discBuilder.d.ts +1 -1
  182. package/Meshes/Builders/discBuilder.js +1 -0
  183. package/Meshes/Builders/discBuilder.js.map +1 -1
  184. package/Meshes/Builders/groundBuilder.d.ts +8 -8
  185. package/Meshes/Builders/groundBuilder.js +2 -0
  186. package/Meshes/Builders/groundBuilder.js.map +1 -1
  187. package/Meshes/Builders/hemisphereBuilder.d.ts +4 -4
  188. package/Meshes/Builders/hemisphereBuilder.js +1 -0
  189. package/Meshes/Builders/hemisphereBuilder.js.map +1 -1
  190. package/Meshes/Builders/icoSphereBuilder.d.ts +1 -1
  191. package/Meshes/Builders/icoSphereBuilder.js +1 -0
  192. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  193. package/Meshes/Builders/planeBuilder.d.ts +1 -1
  194. package/Meshes/Builders/planeBuilder.js +1 -0
  195. package/Meshes/Builders/planeBuilder.js.map +1 -1
  196. package/Meshes/Builders/polyhedronBuilder.d.ts +1 -1
  197. package/Meshes/Builders/polyhedronBuilder.js +1 -0
  198. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  199. package/Meshes/Builders/sphereBuilder.d.ts +1 -1
  200. package/Meshes/Builders/sphereBuilder.js +1 -0
  201. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  202. package/Meshes/Builders/torusBuilder.d.ts +8 -8
  203. package/Meshes/Builders/torusBuilder.js +1 -0
  204. package/Meshes/Builders/torusBuilder.js.map +1 -1
  205. package/Meshes/Builders/torusKnotBuilder.d.ts +11 -11
  206. package/Meshes/Builders/torusKnotBuilder.js +1 -0
  207. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  208. package/Meshes/abstractMesh.d.ts +22 -2
  209. package/Meshes/abstractMesh.js +55 -6
  210. package/Meshes/abstractMesh.js.map +1 -1
  211. package/Meshes/geometry.d.ts +3 -0
  212. package/Meshes/geometry.js +13 -5
  213. package/Meshes/geometry.js.map +1 -1
  214. package/Meshes/linesMesh.d.ts +0 -2
  215. package/Meshes/linesMesh.js +3 -35
  216. package/Meshes/linesMesh.js.map +1 -1
  217. package/Meshes/mesh.js +4 -4
  218. package/Meshes/mesh.js.map +1 -1
  219. package/Meshes/thinInstanceMesh.js +6 -5
  220. package/Meshes/thinInstanceMesh.js.map +1 -1
  221. package/Meshes/transformNode.d.ts +8 -8
  222. package/Meshes/transformNode.js +25 -17
  223. package/Meshes/transformNode.js.map +1 -1
  224. package/Misc/basis.d.ts +2 -2
  225. package/Misc/basis.js +19 -4
  226. package/Misc/basis.js.map +1 -1
  227. package/Misc/sceneSerializer.js +0 -3
  228. package/Misc/sceneSerializer.js.map +1 -1
  229. package/Misc/tools.d.ts +2 -4
  230. package/Misc/tools.js +6 -10
  231. package/Misc/tools.js.map +1 -1
  232. package/Particles/particleSystem.js +19 -16
  233. package/Particles/particleSystem.js.map +1 -1
  234. package/Particles/solidParticleSystem.js +29 -5
  235. package/Particles/solidParticleSystem.js.map +1 -1
  236. package/Physics/Plugins/ammoJSPlugin.js +10 -8
  237. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  238. package/PostProcesses/imageProcessingPostProcess.js +1 -0
  239. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  240. package/Probes/reflectionProbe.d.ts +2 -0
  241. package/Probes/reflectionProbe.js +21 -0
  242. package/Probes/reflectionProbe.js.map +1 -1
  243. package/Rendering/boundingBoxRenderer.d.ts +3 -0
  244. package/Rendering/boundingBoxRenderer.js +49 -14
  245. package/Rendering/boundingBoxRenderer.js.map +1 -1
  246. package/Rendering/depthRenderer.d.ts +1 -1
  247. package/Rendering/depthRenderer.js +2 -2
  248. package/Rendering/depthRenderer.js.map +1 -1
  249. package/Rendering/edgesRenderer.js +3 -1
  250. package/Rendering/edgesRenderer.js.map +1 -1
  251. package/Rendering/geometryBufferRenderer.d.ts +0 -2
  252. package/Rendering/geometryBufferRenderer.js +13 -10
  253. package/Rendering/geometryBufferRenderer.js.map +1 -1
  254. package/Shaders/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  255. package/Shaders/ShadersInclude/bakedVertexAnimation.js +7 -0
  256. package/Shaders/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  257. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  258. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  259. package/Shaders/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  260. package/Shaders/ShadersInclude/bonesDeclaration.js +1 -1
  261. package/Shaders/ShadersInclude/bonesDeclaration.js.map +1 -1
  262. package/Shaders/ShadersInclude/bonesVertex.js +1 -1
  263. package/Shaders/ShadersInclude/bonesVertex.js.map +1 -1
  264. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js +1 -1
  265. package/Shaders/ShadersInclude/pbrBlockImageProcessing.js.map +1 -1
  266. package/Shaders/background.fragment.js +1 -1
  267. package/Shaders/background.fragment.js.map +1 -1
  268. package/Shaders/background.vertex.d.ts +2 -0
  269. package/Shaders/background.vertex.js +3 -1
  270. package/Shaders/background.vertex.js.map +1 -1
  271. package/Shaders/color.vertex.d.ts +2 -0
  272. package/Shaders/color.vertex.js +3 -1
  273. package/Shaders/color.vertex.js.map +1 -1
  274. package/Shaders/default.vertex.d.ts +2 -0
  275. package/Shaders/default.vertex.js +3 -1
  276. package/Shaders/default.vertex.js.map +1 -1
  277. package/Shaders/depth.vertex.d.ts +2 -0
  278. package/Shaders/depth.vertex.js +3 -1
  279. package/Shaders/depth.vertex.js.map +1 -1
  280. package/Shaders/geometry.vertex.d.ts +2 -0
  281. package/Shaders/geometry.vertex.js +3 -1
  282. package/Shaders/geometry.vertex.js.map +1 -1
  283. package/Shaders/glowMapGeneration.vertex.d.ts +2 -0
  284. package/Shaders/glowMapGeneration.vertex.js +3 -1
  285. package/Shaders/glowMapGeneration.vertex.js.map +1 -1
  286. package/Shaders/outline.vertex.d.ts +2 -0
  287. package/Shaders/outline.vertex.js +3 -1
  288. package/Shaders/outline.vertex.js.map +1 -1
  289. package/Shaders/pbr.vertex.d.ts +2 -0
  290. package/Shaders/pbr.vertex.js +3 -1
  291. package/Shaders/pbr.vertex.js.map +1 -1
  292. package/Shaders/shadowMap.vertex.d.ts +2 -0
  293. package/Shaders/shadowMap.vertex.js +3 -1
  294. package/Shaders/shadowMap.vertex.js.map +1 -1
  295. package/Shaders/volumetricLightScatteringPass.vertex.d.ts +2 -0
  296. package/Shaders/volumetricLightScatteringPass.vertex.js +3 -1
  297. package/Shaders/volumetricLightScatteringPass.vertex.js.map +1 -1
  298. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.d.ts +5 -0
  299. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js +7 -0
  300. package/ShadersWGSL/ShadersInclude/bakedVertexAnimation.js.map +1 -0
  301. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.d.ts +5 -0
  302. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js +7 -0
  303. package/ShadersWGSL/ShadersInclude/bakedVertexAnimationDeclaration.js.map +1 -0
  304. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js +1 -1
  305. package/ShadersWGSL/ShadersInclude/bonesDeclaration.js.map +1 -1
  306. package/ShadersWGSL/ShadersInclude/bonesVertex.js +1 -1
  307. package/ShadersWGSL/ShadersInclude/bonesVertex.js.map +1 -1
  308. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.d.ts +5 -0
  309. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js +7 -0
  310. package/ShadersWGSL/ShadersInclude/clipPlaneFragment.js.map +1 -0
  311. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.d.ts +5 -0
  312. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js +7 -0
  313. package/ShadersWGSL/ShadersInclude/clipPlaneFragmentDeclaration.js.map +1 -0
  314. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.d.ts +5 -0
  315. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js +7 -0
  316. package/ShadersWGSL/ShadersInclude/clipPlaneVertex.js.map +1 -0
  317. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.d.ts +5 -0
  318. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js +7 -0
  319. package/ShadersWGSL/ShadersInclude/clipPlaneVertexDeclaration.js.map +1 -0
  320. package/XR/features/WebXRNearInteraction.d.ts +1 -0
  321. package/XR/features/WebXRNearInteraction.js +2 -0
  322. package/XR/features/WebXRNearInteraction.js.map +1 -1
  323. package/index.d.ts +1 -0
  324. package/index.js +1 -0
  325. package/index.js.map +1 -1
  326. package/node.d.ts +30 -1
  327. package/node.js +12 -0
  328. package/node.js.map +1 -1
  329. package/package.json +43 -1
  330. package/scene.d.ts +10 -0
  331. package/scene.js +27 -0
  332. package/scene.js.map +1 -1
@@ -22,6 +22,7 @@ import { DrawWrapper } from "../Materials/drawWrapper";
22
22
  import { WebGPUMaterialContext } from "./WebGPU/webgpuMaterialContext";
23
23
  import { WebGPUDrawContext } from "./WebGPU/webgpuDrawContext";
24
24
  import { IStencilState } from "../States/IStencilState";
25
+ import { WebGPUBundleList } from "./WebGPU/webgpuBundleList";
25
26
  import { WebGPUTimestampQuery } from "./WebGPU/webgpuTimestampQuery";
26
27
  import { ComputeEffect } from "../Compute/computeEffect";
27
28
  import { WebGPUOcclusionQuery } from "./WebGPU/webgpuOcclusionQuery";
@@ -234,8 +235,10 @@ export declare class WebGPUEngine extends Engine {
234
235
  _rttRenderPassWrapper: WebGPURenderPassWrapper;
235
236
  /** @hidden */
236
237
  _pendingDebugCommands: Array<[string, Nullable<string>]>;
237
- private _bundleList;
238
- private _bundleListRenderTarget;
238
+ /** @hidden */
239
+ _bundleList: WebGPUBundleList;
240
+ /** @hidden */
241
+ _bundleListRenderTarget: WebGPUBundleList;
239
242
  /** @hidden */
240
243
  _onAfterUnbindFrameBufferObservable: Observable<WebGPUEngine>;
241
244
  private _defaultDrawContext;
@@ -260,10 +263,7 @@ export declare class WebGPUEngine extends Engine {
260
263
  dbgLogIfNotDrawWrapper: boolean;
261
264
  /** @hidden */
262
265
  dbgShowEmptyEnableEffectCalls: boolean;
263
- private _snapshotRenderingRecordBundles;
264
- private _snapshotRenderingPlayBundles;
265
- private _snapshotRenderingMainPassBundleList;
266
- private _snapshotRenderingModeSaved;
266
+ private _snapshotRendering;
267
267
  /**
268
268
  * Gets or sets the snapshot rendering mode
269
269
  */
@@ -34,6 +34,7 @@ import { ShaderCodeInliner } from "./Processors/shaderCodeInliner.js";
34
34
  import { WebGPUTintWASM } from "./WebGPU/webgpuTintWASM.js";
35
35
  import { WebGPUShaderProcessor } from "./WebGPU/webgpuShaderProcessor.js";
36
36
  import { ShaderLanguage } from "../Materials/shaderLanguage.js";
37
+ import { WebGPUSnapshotRendering } from "./WebGPU/webgpuSnapshotRendering.js";
37
38
  /**
38
39
  * The web GPU engine class provides support for WebGPU version of babylon.js.
39
40
  * @since 5.0.0
@@ -114,9 +115,6 @@ var WebGPUEngine = /** @class */ (function (_super) {
114
115
  _this.dbgLogIfNotDrawWrapper = true;
115
116
  /** @hidden */
116
117
  _this.dbgShowEmptyEnableEffectCalls = true;
117
- _this._snapshotRenderingRecordBundles = false;
118
- _this._snapshotRenderingPlayBundles = false;
119
- _this._snapshotRenderingMainPassBundleList = [];
120
118
  //------------------------------------------------------------------------------
121
119
  // Dynamic WebGPU States
122
120
  //------------------------------------------------------------------------------
@@ -179,15 +177,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
179
177
  * Gets or sets the snapshot rendering mode
180
178
  */
181
179
  get: function () {
182
- return this._snapshotRenderingMode;
180
+ return this._snapshotRendering.mode;
183
181
  },
184
182
  set: function (mode) {
185
- if (this._snapshotRenderingRecordBundles) {
186
- this._snapshotRenderingModeSaved = mode;
187
- }
188
- else {
189
- this._snapshotRenderingMode = mode;
190
- }
183
+ this._snapshotRendering.mode = mode;
191
184
  },
192
185
  enumerable: false,
193
186
  configurable: true
@@ -196,8 +189,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
196
189
  * Creates a new snapshot at the next frame using the current snapshotRenderingMode
197
190
  */
198
191
  WebGPUEngine.prototype.snapshotRenderingReset = function () {
199
- this.snapshotRendering = false;
200
- this.snapshotRendering = true;
192
+ this._snapshotRendering.reset();
201
193
  };
202
194
  Object.defineProperty(WebGPUEngine.prototype, "snapshotRendering", {
203
195
  /**
@@ -205,16 +197,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
205
197
  * Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine
206
198
  */
207
199
  get: function () {
208
- return this._snapshotRenderingEnabled;
200
+ return this._snapshotRendering.enabled;
209
201
  },
210
202
  set: function (activate) {
211
- this._snapshotRenderingMainPassBundleList.length = 0;
212
- this._snapshotRenderingRecordBundles = this._snapshotRenderingEnabled = activate;
213
- this._snapshotRenderingPlayBundles = false;
214
- if (activate) {
215
- this._snapshotRenderingModeSaved = this._snapshotRenderingMode;
216
- this._snapshotRenderingMode = 0; // need to reset to standard for the recording pass to avoid some code being bypassed
217
- }
203
+ this._snapshotRendering.enabled = activate;
218
204
  },
219
205
  enumerable: false,
220
206
  configurable: true
@@ -480,6 +466,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
480
466
  _this._occlusionQuery = _this._device.createQuerySet ? new WebGPUOcclusionQuery(_this, _this._device, _this._bufferManager) : undefined;
481
467
  _this._bundleList = new WebGPUBundleList(_this._device);
482
468
  _this._bundleListRenderTarget = new WebGPUBundleList(_this._device);
469
+ _this._snapshotRendering = new WebGPUSnapshotRendering(_this, _this._snapshotRenderingMode, _this._bundleList, _this._bundleListRenderTarget);
483
470
  if (_this.dbgVerboseLogsForFirstFrames) {
484
471
  if (_this._count === undefined) {
485
472
  _this._count = 0;
@@ -612,6 +599,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
612
599
  useUBOBindingCache: false,
613
600
  needShaderCodeInlining: true,
614
601
  needToAlwaysBindUniformBuffers: true,
602
+ supportRenderPasses: true,
615
603
  _collectUbosUpdatedInFrame: false,
616
604
  };
617
605
  };
@@ -1344,7 +1332,8 @@ var WebGPUEngine = /** @class */ (function (_super) {
1344
1332
  }
1345
1333
  else if (!effect.effect || effect.effect === this._currentEffect && effect.materialContext === this._currentMaterialContext && effect.drawContext === this._currentDrawContext && !this._forceEnableEffect) {
1346
1334
  if (!effect.effect && this.dbgShowEmptyEnableEffectCalls) {
1347
- console.warn("Invalid call to enableEffect: the effect property is empty! drawWrapper=", effect);
1335
+ console.error("drawWrapper=", effect);
1336
+ throw "Invalid call to enableEffect: the effect property is empty!";
1348
1337
  }
1349
1338
  return;
1350
1339
  }
@@ -1745,9 +1734,8 @@ var WebGPUEngine = /** @class */ (function (_super) {
1745
1734
  };
1746
1735
  /** @hidden */
1747
1736
  WebGPUEngine.prototype._generateMipmaps = function (texture, commandEncoder) {
1748
- var _a;
1749
- var gpuTexture = (_a = texture._hardwareTexture) === null || _a === void 0 ? void 0 : _a.underlyingResource;
1750
- if (!gpuTexture) {
1737
+ var gpuHardwareTexture = texture._hardwareTexture;
1738
+ if (!gpuHardwareTexture) {
1751
1739
  return;
1752
1740
  }
1753
1741
  // try as much as possible to use the command encoder corresponding to the current pass.
@@ -1764,10 +1752,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
1764
1752
  }
1765
1753
  }
1766
1754
  if (texture.isCube) {
1767
- this._textureHelper.generateCubeMipmaps(gpuTexture, format, mipmapCount, commandEncoder);
1755
+ this._textureHelper.generateCubeMipmaps(gpuHardwareTexture, format, mipmapCount, commandEncoder);
1768
1756
  }
1769
1757
  else {
1770
- this._textureHelper.generateMipmaps(gpuTexture, format, mipmapCount, 0, commandEncoder);
1758
+ this._textureHelper.generateMipmaps(gpuHardwareTexture, format, mipmapCount, 0, commandEncoder);
1771
1759
  }
1772
1760
  };
1773
1761
  /**
@@ -1882,20 +1870,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
1882
1870
  * End the current frame
1883
1871
  */
1884
1872
  WebGPUEngine.prototype.endFrame = function () {
1885
- if (this._snapshotRenderingRecordBundles) {
1886
- this._snapshotRenderingMainPassBundleList.push(this._bundleList.clone());
1887
- this._snapshotRenderingRecordBundles = false;
1888
- this._snapshotRenderingPlayBundles = true;
1889
- this._snapshotRenderingMode = this._snapshotRenderingModeSaved;
1890
- }
1891
- if (this._mainRenderPassWrapper.renderPass !== null && this._snapshotRenderingPlayBundles) {
1892
- for (var i = 0; i < this._snapshotRenderingMainPassBundleList.length; ++i) {
1893
- this._snapshotRenderingMainPassBundleList[i].run(this._mainRenderPassWrapper.renderPass);
1894
- if (this._snapshotRenderingMode === 1) {
1895
- this._reportDrawCall(this._snapshotRenderingMainPassBundleList[i].numDrawCalls);
1896
- }
1897
- }
1898
- }
1873
+ this._snapshotRendering.endFrame(this._mainRenderPassWrapper.renderPass);
1899
1874
  this._endMainRenderPass();
1900
1875
  this._timestampQuery.endFrame(this._renderEncoder);
1901
1876
  if (this._invertYFinalFramebuffer) {
@@ -2098,24 +2073,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
2098
2073
  };
2099
2074
  /** @hidden */
2100
2075
  WebGPUEngine.prototype._endRenderTargetRenderPass = function () {
2101
- var _a, _b, _c, _d, _e, _f, _g;
2076
+ var _a, _b, _c;
2102
2077
  if (this._currentRenderPass) {
2103
2078
  var gpuWrapper = this._currentRenderTarget.texture._hardwareTexture;
2104
- if (this._snapshotRenderingPlayBundles) {
2105
- (_b = (_a = gpuWrapper._bundleLists) === null || _a === void 0 ? void 0 : _a[gpuWrapper._currentLayer]) === null || _b === void 0 ? void 0 : _b.run(this._currentRenderPass);
2106
- if (this._snapshotRenderingMode === 1) {
2107
- this._reportDrawCall((_d = (_c = gpuWrapper._bundleLists) === null || _c === void 0 ? void 0 : _c[gpuWrapper._currentLayer]) === null || _d === void 0 ? void 0 : _d.numDrawCalls);
2108
- }
2109
- }
2110
- else if (this._snapshotRenderingRecordBundles) {
2111
- if (!gpuWrapper._bundleLists) {
2112
- gpuWrapper._bundleLists = [];
2113
- }
2114
- gpuWrapper._bundleLists[gpuWrapper._currentLayer] = this._bundleListRenderTarget.clone();
2115
- gpuWrapper._bundleLists[gpuWrapper._currentLayer].run(this._currentRenderPass);
2116
- this._bundleListRenderTarget.reset();
2117
- }
2118
- else if (!this.compatibilityMode) {
2079
+ if (!this._snapshotRendering.endRenderTargetPass(this._currentRenderPass, gpuWrapper) && !this.compatibilityMode) {
2119
2080
  this._bundleListRenderTarget.run(this._currentRenderPass);
2120
2081
  this._bundleListRenderTarget.reset();
2121
2082
  }
@@ -2125,10 +2086,10 @@ var WebGPUEngine = /** @class */ (function (_super) {
2125
2086
  this._count = 0;
2126
2087
  }
2127
2088
  if (!this._count || this._count < this.dbgVerboseLogsNumFrames) {
2128
- console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", (_f = (_e = this._currentRenderTarget) === null || _e === void 0 ? void 0 : _e.texture) === null || _f === void 0 ? void 0 : _f.uniqueId);
2089
+ console.log("frame #" + this._count + " - render target end pass - internalTexture.uniqueId=", (_b = (_a = this._currentRenderTarget) === null || _a === void 0 ? void 0 : _a.texture) === null || _b === void 0 ? void 0 : _b.uniqueId);
2129
2090
  }
2130
2091
  }
2131
- (_g = this._debugPopGroup) === null || _g === void 0 ? void 0 : _g.call(this, 1);
2092
+ (_c = this._debugPopGroup) === null || _c === void 0 ? void 0 : _c.call(this, 1);
2132
2093
  this._resetCurrentViewport(1);
2133
2094
  this._resetCurrentScissor(1);
2134
2095
  this._resetCurrentStencilRef(1);
@@ -2201,10 +2162,8 @@ var WebGPUEngine = /** @class */ (function (_super) {
2201
2162
  WebGPUEngine.prototype._endMainRenderPass = function () {
2202
2163
  var _a;
2203
2164
  if (this._mainRenderPassWrapper.renderPass !== null) {
2204
- if (this._snapshotRenderingRecordBundles) {
2205
- this._snapshotRenderingMainPassBundleList.push(this._bundleList.clone());
2206
- }
2207
- if (!this.compatibilityMode && !this._snapshotRenderingPlayBundles) {
2165
+ this._snapshotRendering.endMainRenderPass();
2166
+ if (!this.compatibilityMode && !this._snapshotRendering.play) {
2208
2167
  this._bundleList.run(this._mainRenderPassWrapper.renderPass);
2209
2168
  this._bundleList.reset();
2210
2169
  }
@@ -2473,7 +2432,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
2473
2432
  webgpuPipelineContext.uniformBuffer.update();
2474
2433
  this.bindUniformBufferBase(webgpuPipelineContext.uniformBuffer.getBuffer(), 0, WebGPUShaderProcessor.LeftOvertUBOName);
2475
2434
  }
2476
- if (this._snapshotRenderingPlayBundles) {
2435
+ if (this._snapshotRendering.play) {
2477
2436
  this._reportDrawCall();
2478
2437
  return;
2479
2438
  }
@@ -2482,9 +2441,9 @@ var WebGPUEngine = /** @class */ (function (_super) {
2482
2441
  }
2483
2442
  var useFastPath = !this.compatibilityMode && this._currentDrawContext.fastBundle;
2484
2443
  var renderPass2 = renderPass;
2485
- if (useFastPath || this._snapshotRenderingRecordBundles) {
2444
+ if (useFastPath || this._snapshotRendering.record) {
2486
2445
  this._applyRenderPassChanges(renderPass, bundleList);
2487
- if (!this._snapshotRenderingRecordBundles) {
2446
+ if (!this._snapshotRendering.record) {
2488
2447
  this._counters.numBundleReuseNonCompatMode++;
2489
2448
  if (this._currentDrawContext.indirectDrawBuffer) {
2490
2449
  this._currentDrawContext.setIndirectData(count, instancesCount || 1, start);
@@ -2510,7 +2469,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
2510
2469
  }
2511
2470
  var pipeline = this._cacheRenderPipeline.getRenderPipeline(fillMode, this._currentEffect, this.currentSampleCount, textureState);
2512
2471
  var bindGroups = this._cacheBindGroups.getBindGroups(webgpuPipelineContext, this._currentDrawContext, this._currentMaterialContext);
2513
- if (!this._snapshotRenderingRecordBundles) {
2472
+ if (!this._snapshotRendering.record) {
2514
2473
  this._applyRenderPassChanges(renderPass, !this.compatibilityMode ? bundleList : null);
2515
2474
  if (!this.compatibilityMode) {
2516
2475
  this._counters.numBundleCreationNonCompatMode++;
@@ -2540,7 +2499,7 @@ var WebGPUEngine = /** @class */ (function (_super) {
2540
2499
  renderPass2.setBindGroup(i, bindGroups[i]);
2541
2500
  }
2542
2501
  // draw
2543
- var nonCompatMode = !this.compatibilityMode && !this._snapshotRenderingRecordBundles;
2502
+ var nonCompatMode = !this.compatibilityMode && !this._snapshotRendering.record;
2544
2503
  if (nonCompatMode && this._currentDrawContext.indirectDrawBuffer) {
2545
2504
  this._currentDrawContext.setIndirectData(count, instancesCount || 1, start);
2546
2505
  if (drawType === 0) {