@babylonjs/core 5.45.2 → 5.46.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 (525) hide show
  1. package/Actions/condition.js +23 -23
  2. package/Actions/condition.js.map +1 -1
  3. package/Animations/animatable.js +48 -48
  4. package/Animations/animatable.js.map +1 -1
  5. package/Animations/animation.js +53 -53
  6. package/Animations/animation.js.map +1 -1
  7. package/Animations/animationGroup.js +53 -53
  8. package/Animations/animationGroup.js.map +1 -1
  9. package/Animations/runtimeAnimation.js +36 -36
  10. package/Animations/runtimeAnimation.js.map +1 -1
  11. package/Audio/audioEngine.js +14 -14
  12. package/Audio/audioEngine.js.map +1 -1
  13. package/Audio/audioSceneComponent.js +14 -14
  14. package/Audio/audioSceneComponent.js.map +1 -1
  15. package/Audio/sound.js +47 -47
  16. package/Audio/sound.js.map +1 -1
  17. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +1 -1
  18. package/Behaviors/Meshes/fadeInOutBehavior.js +11 -11
  19. package/Behaviors/Meshes/fadeInOutBehavior.js.map +1 -1
  20. package/Behaviors/Meshes/pointerDragBehavior.js +34 -34
  21. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  22. package/Bones/bone.js +15 -15
  23. package/Bones/bone.js.map +1 -1
  24. package/Bones/boneIKController.js +9 -9
  25. package/Bones/boneIKController.js.map +1 -1
  26. package/Bones/boneLookController.js +50 -50
  27. package/Bones/boneLookController.js.map +1 -1
  28. package/Bones/skeleton.js +35 -35
  29. package/Bones/skeleton.js.map +1 -1
  30. package/Buffers/buffer.js +14 -14
  31. package/Buffers/buffer.js.map +1 -1
  32. package/Buffers/dataBuffer.js +6 -6
  33. package/Buffers/dataBuffer.js.map +1 -1
  34. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js +42 -42
  35. package/Cameras/Inputs/freeCameraDeviceOrientationInput.js.map +1 -1
  36. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +18 -18
  37. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  38. package/Cameras/VR/vrExperienceHelper.js +178 -178
  39. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  40. package/Cameras/arcRotateCamera.js +176 -176
  41. package/Cameras/arcRotateCamera.js.map +1 -1
  42. package/Cameras/camera.js +90 -90
  43. package/Cameras/camera.js.map +1 -1
  44. package/Cameras/flyCamera.js +82 -82
  45. package/Cameras/flyCamera.js.map +1 -1
  46. package/Cameras/freeCamera.js +54 -54
  47. package/Cameras/freeCamera.js.map +1 -1
  48. package/Compute/computeShader.js +12 -12
  49. package/Compute/computeShader.js.map +1 -1
  50. package/Culling/ray.d.ts +1 -1
  51. package/Debug/axesViewer.js +12 -12
  52. package/Debug/axesViewer.js.map +1 -1
  53. package/Debug/debugLayer.js +21 -21
  54. package/Debug/debugLayer.js.map +1 -1
  55. package/Debug/directionalLightFrustumViewer.js +20 -20
  56. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  57. package/Debug/rayHelper.js +10 -10
  58. package/Debug/rayHelper.js.map +1 -1
  59. package/Debug/skeletonViewer.js +81 -81
  60. package/Debug/skeletonViewer.js.map +1 -1
  61. package/DeviceInput/InputDevices/deviceSource.d.ts +1 -1
  62. package/DeviceInput/InputDevices/deviceSourceManager.js +31 -31
  63. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  64. package/DeviceInput/InputDevices/deviceTypes.d.ts +1 -1
  65. package/DeviceInput/internalDeviceSourceManager.d.ts +2 -2
  66. package/Engines/Extensions/engine.computeShader.d.ts +3 -3
  67. package/Engines/Extensions/engine.multiRender.js +1 -1
  68. package/Engines/Extensions/engine.multiRender.js.map +1 -1
  69. package/Engines/Extensions/engine.query.d.ts +1 -1
  70. package/Engines/Extensions/engine.renderTarget.d.ts +1 -1
  71. package/Engines/Extensions/engine.renderTarget.js +1 -1
  72. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  73. package/Engines/Native/nativeDataStream.d.ts +1 -1
  74. package/Engines/Native/nativeHardwareTexture.js +3 -3
  75. package/Engines/Native/nativeHardwareTexture.js.map +1 -1
  76. package/Engines/Native/nativeInterfaces.d.ts +5 -5
  77. package/Engines/Native/nativePipelineContext.js +7 -7
  78. package/Engines/Native/nativePipelineContext.js.map +1 -1
  79. package/Engines/Native/nativeRenderTargetWrapper.js +6 -6
  80. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  81. package/Engines/Processors/shaderCodeInliner.js +4 -4
  82. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  83. package/Engines/Processors/shaderProcessingOptions.d.ts +1 -1
  84. package/Engines/WebGL/webGLHardwareTexture.js +3 -3
  85. package/Engines/WebGL/webGLHardwareTexture.js.map +1 -1
  86. package/Engines/WebGPU/webgpuBufferManager.js +3 -3
  87. package/Engines/WebGPU/webgpuBufferManager.js.map +1 -1
  88. package/Engines/WebGPU/webgpuCacheBindGroups.js +6 -6
  89. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  90. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js +5 -5
  91. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  92. package/Engines/WebGPU/webgpuClearQuad.js +11 -11
  93. package/Engines/WebGPU/webgpuClearQuad.js.map +1 -1
  94. package/Engines/WebGPU/webgpuComputeContext.js +7 -7
  95. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  96. package/Engines/WebGPU/webgpuComputePipelineContext.js +4 -4
  97. package/Engines/WebGPU/webgpuComputePipelineContext.js.map +1 -1
  98. package/Engines/WebGPU/webgpuDrawContext.js +7 -7
  99. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  100. package/Engines/WebGPU/webgpuHardwareTexture.js +9 -9
  101. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  102. package/Engines/WebGPU/webgpuMaterialContext.js +5 -5
  103. package/Engines/WebGPU/webgpuMaterialContext.js.map +1 -1
  104. package/Engines/WebGPU/webgpuOcclusionQuery.js +10 -10
  105. package/Engines/WebGPU/webgpuOcclusionQuery.js.map +1 -1
  106. package/Engines/WebGPU/webgpuPipelineContext.js +6 -6
  107. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  108. package/Engines/WebGPU/webgpuQuerySet.js +3 -3
  109. package/Engines/WebGPU/webgpuQuerySet.js.map +1 -1
  110. package/Engines/WebGPU/webgpuShaderProcessingContext.js +3 -3
  111. package/Engines/WebGPU/webgpuShaderProcessingContext.js.map +1 -1
  112. package/Engines/WebGPU/webgpuTextureHelper.js +3 -3
  113. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  114. package/Engines/WebGPU/webgpuTimestampQuery.js +3 -3
  115. package/Engines/WebGPU/webgpuTimestampQuery.js.map +1 -1
  116. package/Engines/engine.js +134 -134
  117. package/Engines/engine.js.map +1 -1
  118. package/Engines/nativeEngine.js +6 -6
  119. package/Engines/nativeEngine.js.map +1 -1
  120. package/Engines/nullEngine.js +25 -25
  121. package/Engines/nullEngine.js.map +1 -1
  122. package/Engines/renderTargetWrapper.js +25 -25
  123. package/Engines/renderTargetWrapper.js.map +1 -1
  124. package/Engines/thinEngine.js +243 -243
  125. package/Engines/thinEngine.js.map +1 -1
  126. package/Engines/webgpuEngine.js +132 -132
  127. package/Engines/webgpuEngine.js.map +1 -1
  128. package/Events/keyboardEvents.js +10 -10
  129. package/Events/keyboardEvents.js.map +1 -1
  130. package/Events/pointerEvents.js +9 -9
  131. package/Events/pointerEvents.js.map +1 -1
  132. package/Gamepads/Controllers/poseEnabledController.js +9 -9
  133. package/Gamepads/Controllers/poseEnabledController.js.map +1 -1
  134. package/Gamepads/Controllers/webVRController.js +13 -13
  135. package/Gamepads/Controllers/webVRController.js.map +1 -1
  136. package/Gamepads/gamepad.js +20 -20
  137. package/Gamepads/gamepad.js.map +1 -1
  138. package/Gizmos/axisDragGizmo.js +45 -45
  139. package/Gizmos/axisDragGizmo.js.map +1 -1
  140. package/Gizmos/axisScaleGizmo.js +12 -12
  141. package/Gizmos/axisScaleGizmo.js.map +1 -1
  142. package/Gizmos/boundingBoxGizmo.js +74 -74
  143. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  144. package/Gizmos/gizmo.js +34 -34
  145. package/Gizmos/gizmo.js.map +1 -1
  146. package/Gizmos/gizmoManager.js +40 -40
  147. package/Gizmos/gizmoManager.js.map +1 -1
  148. package/Gizmos/planeDragGizmo.js +23 -23
  149. package/Gizmos/planeDragGizmo.js.map +1 -1
  150. package/Gizmos/planeRotationGizmo.js +12 -12
  151. package/Gizmos/planeRotationGizmo.js.map +1 -1
  152. package/Gizmos/positionGizmo.js +40 -40
  153. package/Gizmos/positionGizmo.js.map +1 -1
  154. package/Gizmos/rotationGizmo.js +47 -47
  155. package/Gizmos/rotationGizmo.js.map +1 -1
  156. package/Gizmos/scaleGizmo.js +41 -41
  157. package/Gizmos/scaleGizmo.js.map +1 -1
  158. package/Helpers/environmentHelper.js +18 -18
  159. package/Helpers/environmentHelper.js.map +1 -1
  160. package/Helpers/textureDome.js +96 -96
  161. package/Helpers/textureDome.js.map +1 -1
  162. package/IAccessibilityTag.d.ts +2 -2
  163. package/Instrumentation/engineInstrumentation.js +21 -21
  164. package/Instrumentation/engineInstrumentation.js.map +1 -1
  165. package/Instrumentation/sceneInstrumentation.js +90 -90
  166. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  167. package/Layers/effectLayer.js +48 -48
  168. package/Layers/effectLayer.js.map +1 -1
  169. package/Layers/glowLayer.js +32 -32
  170. package/Layers/glowLayer.js.map +1 -1
  171. package/Layers/highlightLayer.js +26 -26
  172. package/Layers/highlightLayer.js.map +1 -1
  173. package/Layers/layer.js +40 -40
  174. package/Layers/layer.js.map +1 -1
  175. package/LensFlares/lensFlare.js +15 -15
  176. package/LensFlares/lensFlare.js.map +1 -1
  177. package/LensFlares/lensFlareSystem.js +4 -4
  178. package/LensFlares/lensFlareSystem.js.map +1 -1
  179. package/Lights/Shadows/cascadedShadowGenerator.js +18 -18
  180. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  181. package/Lights/Shadows/shadowGenerator.js +115 -115
  182. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  183. package/Lights/directionalLight.js +31 -31
  184. package/Lights/directionalLight.js.map +1 -1
  185. package/Lights/light.js +72 -72
  186. package/Lights/light.js.map +1 -1
  187. package/Lights/pointLight.js +18 -18
  188. package/Lights/pointLight.js.map +1 -1
  189. package/Lights/spotLight.js +30 -30
  190. package/Lights/spotLight.js.map +1 -1
  191. package/Loading/sceneLoader.d.ts +1 -1
  192. package/Materials/Background/backgroundMaterial.js +124 -124
  193. package/Materials/Background/backgroundMaterial.js.map +1 -1
  194. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +8 -8
  195. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  196. package/Materials/Node/Blocks/Dual/lightBlock.js +14 -14
  197. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  198. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +9 -9
  199. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  200. package/Materials/Node/Blocks/Dual/textureBlock.js +26 -26
  201. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  202. package/Materials/Node/Blocks/Input/inputBlock.js +34 -34
  203. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  204. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +14 -14
  205. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/PBR/reflectionBlock.js +16 -16
  207. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  208. package/Materials/Node/Blocks/customBlock.js +7 -7
  209. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  210. package/Materials/Node/Blocks/gradientBlock.js +13 -13
  211. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  212. package/Materials/Node/Blocks/triPlanarBlock.js +30 -30
  213. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  214. package/Materials/Node/nodeMaterial.d.ts +1 -1
  215. package/Materials/Node/nodeMaterial.js +60 -60
  216. package/Materials/Node/nodeMaterial.js.map +1 -1
  217. package/Materials/Node/nodeMaterialBlock.js +35 -35
  218. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  219. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +50 -50
  220. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  221. package/Materials/PBR/pbrAnisotropicConfiguration.js +5 -5
  222. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  223. package/Materials/PBR/pbrBRDFConfiguration.js +4 -4
  224. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  225. package/Materials/PBR/pbrBaseMaterial.js +52 -52
  226. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  227. package/Materials/PBR/pbrBaseSimpleMaterial.js +17 -17
  228. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  229. package/Materials/PBR/pbrClearCoatConfiguration.js +5 -5
  230. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  231. package/Materials/PBR/pbrIridescenceConfiguration.js +5 -5
  232. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  233. package/Materials/PBR/pbrMaterial.js +209 -209
  234. package/Materials/PBR/pbrMaterial.js.map +1 -1
  235. package/Materials/PBR/pbrSheenConfiguration.js +5 -5
  236. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  237. package/Materials/PBR/pbrSpecularGlossinessMaterial.js +6 -6
  238. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  239. package/Materials/PBR/pbrSubSurfaceConfiguration.js +51 -51
  240. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  241. package/Materials/Textures/baseTexture.js +99 -99
  242. package/Materials/Textures/baseTexture.js.map +1 -1
  243. package/Materials/Textures/cubeTexture.js +61 -61
  244. package/Materials/Textures/cubeTexture.js.map +1 -1
  245. package/Materials/Textures/externalTexture.js +16 -16
  246. package/Materials/Textures/externalTexture.js.map +1 -1
  247. package/Materials/Textures/hdrCubeTexture.js +44 -44
  248. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  249. package/Materials/Textures/internalTexture.js +31 -31
  250. package/Materials/Textures/internalTexture.js.map +1 -1
  251. package/Materials/Textures/mirrorTexture.js +73 -73
  252. package/Materials/Textures/mirrorTexture.js.map +1 -1
  253. package/Materials/Textures/multiRenderTarget.js +47 -47
  254. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  255. package/Materials/Textures/rawTexture2DArray.js +6 -6
  256. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  257. package/Materials/Textures/renderTargetTexture.js +142 -142
  258. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  259. package/Materials/Textures/texture.d.ts +1 -1
  260. package/Materials/Textures/texture.js +26 -26
  261. package/Materials/Textures/texture.js.map +1 -1
  262. package/Materials/Textures/textureCreationOptions.d.ts +1 -1
  263. package/Materials/Textures/textureSampler.js +20 -20
  264. package/Materials/Textures/textureSampler.js.map +1 -1
  265. package/Materials/Textures/thinRenderTargetTexture.js +6 -6
  266. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  267. package/Materials/Textures/thinTexture.js +39 -39
  268. package/Materials/Textures/thinTexture.js.map +1 -1
  269. package/Materials/Textures/videoTexture.js +40 -40
  270. package/Materials/Textures/videoTexture.js.map +1 -1
  271. package/Materials/drawWrapper.js +6 -6
  272. package/Materials/drawWrapper.js.map +1 -1
  273. package/Materials/effect.js +18 -18
  274. package/Materials/effect.js.map +1 -1
  275. package/Materials/effectRenderer.js +9 -9
  276. package/Materials/effectRenderer.js.map +1 -1
  277. package/Materials/fresnelParameters.d.ts +2 -2
  278. package/Materials/fresnelParameters.js +13 -13
  279. package/Materials/fresnelParameters.js.map +1 -1
  280. package/Materials/material.detailMapConfiguration.js +5 -5
  281. package/Materials/material.detailMapConfiguration.js.map +1 -1
  282. package/Materials/material.js +223 -223
  283. package/Materials/material.js.map +1 -1
  284. package/Materials/materialPluginBase.js +5 -5
  285. package/Materials/materialPluginBase.js.map +1 -1
  286. package/Materials/materialPluginEvent.d.ts +14 -14
  287. package/Materials/materialPluginManager.d.ts +1 -1
  288. package/Materials/multiMaterial.js +16 -16
  289. package/Materials/multiMaterial.js.map +1 -1
  290. package/Materials/shadowDepthWrapper.js +14 -14
  291. package/Materials/shadowDepthWrapper.js.map +1 -1
  292. package/Materials/standardMaterial.js +100 -100
  293. package/Materials/standardMaterial.js.map +1 -1
  294. package/Materials/uniformBufferEffectCommonAccessor.js +3 -3
  295. package/Materials/uniformBufferEffectCommonAccessor.js.map +1 -1
  296. package/Maths/math.functions.js +2 -0
  297. package/Maths/math.functions.js.map +1 -1
  298. package/Maths/math.path.js +11 -11
  299. package/Maths/math.path.js.map +1 -1
  300. package/Maths/math.vector.d.ts +6 -7
  301. package/Maths/math.vector.js +48 -48
  302. package/Maths/math.vector.js.map +1 -1
  303. package/Meshes/Builders/goldbergBuilder.d.ts +2 -2
  304. package/Meshes/Compression/dracoCompression.js +23 -23
  305. package/Meshes/Compression/dracoCompression.js.map +1 -1
  306. package/Meshes/Compression/meshoptCompression.js +9 -9
  307. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  308. package/Meshes/abstractMesh.js +179 -179
  309. package/Meshes/abstractMesh.js.map +1 -1
  310. package/Meshes/geometry.js +32 -32
  311. package/Meshes/geometry.js.map +1 -1
  312. package/Meshes/goldbergMesh.d.ts +1 -1
  313. package/Meshes/linesMesh.js +3 -3
  314. package/Meshes/linesMesh.js.map +1 -1
  315. package/Meshes/mesh.js +165 -165
  316. package/Meshes/mesh.js.map +1 -1
  317. package/Meshes/mesh.vertexData.js.map +1 -1
  318. package/Meshes/polygonMesh.js +5 -5
  319. package/Meshes/polygonMesh.js.map +1 -1
  320. package/Meshes/subMesh.js +59 -59
  321. package/Meshes/subMesh.js.map +1 -1
  322. package/Meshes/transformNode.js +52 -52
  323. package/Meshes/transformNode.js.map +1 -1
  324. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.d.ts +1 -1
  325. package/Misc/PerformanceViewer/performanceViewerCollector.js +12 -12
  326. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  327. package/Misc/arrayTools.d.ts +1 -1
  328. package/Misc/copyTextureToTexture.js +3 -3
  329. package/Misc/copyTextureToTexture.js.map +1 -1
  330. package/Misc/coroutine.d.ts +5 -5
  331. package/Misc/deferred.js +9 -9
  332. package/Misc/deferred.js.map +1 -1
  333. package/Misc/depthReducer.js +7 -7
  334. package/Misc/depthReducer.js.map +1 -1
  335. package/Misc/environmentTextureTools.d.ts +1 -1
  336. package/Misc/error.d.ts +1 -1
  337. package/Misc/fileTools.d.ts +5 -5
  338. package/Misc/filesInput.js +6 -6
  339. package/Misc/filesInput.js.map +1 -1
  340. package/Misc/khronosTextureContainer2.js +9 -9
  341. package/Misc/khronosTextureContainer2.js.map +1 -1
  342. package/Misc/observable.js +12 -12
  343. package/Misc/observable.js.map +1 -1
  344. package/Misc/perfCounter.js +16 -16
  345. package/Misc/perfCounter.js.map +1 -1
  346. package/Misc/sceneOptimizer.js +76 -76
  347. package/Misc/sceneOptimizer.js.map +1 -1
  348. package/Misc/stringDictionary.d.ts +1 -1
  349. package/Misc/trajectoryClassifier.js +67 -67
  350. package/Misc/trajectoryClassifier.js.map +1 -1
  351. package/Misc/videoRecorder.js +15 -15
  352. package/Misc/videoRecorder.js.map +1 -1
  353. package/Misc/virtualJoystick.js +12 -12
  354. package/Misc/virtualJoystick.js.map +1 -1
  355. package/Morph/morphTarget.js +28 -28
  356. package/Morph/morphTarget.js.map +1 -1
  357. package/Morph/morphTargetManager.js +18 -18
  358. package/Morph/morphTargetManager.js.map +1 -1
  359. package/Offline/database.js +12 -12
  360. package/Offline/database.js.map +1 -1
  361. package/Particles/EmitterTypes/coneParticleEmitter.js +25 -25
  362. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  363. package/Particles/EmitterTypes/meshParticleEmitter.js +20 -20
  364. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  365. package/Particles/baseParticleSystem.js +232 -232
  366. package/Particles/baseParticleSystem.js.map +1 -1
  367. package/Particles/cloudPoint.js +9 -9
  368. package/Particles/cloudPoint.js.map +1 -1
  369. package/Particles/gpuParticleSystem.js +123 -123
  370. package/Particles/gpuParticleSystem.js.map +1 -1
  371. package/Particles/particleSystem.js +102 -102
  372. package/Particles/particleSystem.js.map +1 -1
  373. package/Particles/pointsCloudSystem.js +18 -18
  374. package/Particles/pointsCloudSystem.js.map +1 -1
  375. package/Particles/solidParticle.js +23 -23
  376. package/Particles/solidParticle.js.map +1 -1
  377. package/Physics/v1/physicsEngine.js +14 -14
  378. package/Physics/v1/physicsEngine.js.map +1 -1
  379. package/Physics/v1/physicsImpostor.js +149 -149
  380. package/Physics/v1/physicsImpostor.js.map +1 -1
  381. package/Physics/v2/physicsEngine.js +14 -14
  382. package/Physics/v2/physicsEngine.js.map +1 -1
  383. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js +129 -129
  384. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  385. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js +68 -68
  386. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.js.map +1 -1
  387. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +6 -6
  388. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  389. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js +226 -225
  390. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.js.map +1 -1
  391. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +10 -10
  392. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  393. package/PostProcesses/anaglyphPostProcess.js +7 -7
  394. package/PostProcesses/anaglyphPostProcess.js.map +1 -1
  395. package/PostProcesses/blackAndWhitePostProcess.js +7 -7
  396. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  397. package/PostProcesses/bloomEffect.js +28 -28
  398. package/PostProcesses/bloomEffect.js.map +1 -1
  399. package/PostProcesses/bloomMergePostProcess.js +7 -7
  400. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  401. package/PostProcesses/blurPostProcess.js +32 -32
  402. package/PostProcesses/blurPostProcess.js.map +1 -1
  403. package/PostProcesses/chromaticAberrationPostProcess.js +7 -7
  404. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  405. package/PostProcesses/circleOfConfusionPostProcess.js +7 -7
  406. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  407. package/PostProcesses/colorCorrectionPostProcess.js +7 -7
  408. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  409. package/PostProcesses/convolutionPostProcess.js +7 -7
  410. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  411. package/PostProcesses/depthOfFieldBlurPostProcess.js +7 -7
  412. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  413. package/PostProcesses/depthOfFieldEffect.js +36 -36
  414. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  415. package/PostProcesses/depthOfFieldMergePostProcess.js +7 -7
  416. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  417. package/PostProcesses/extractHighlightsPostProcess.js +7 -7
  418. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  419. package/PostProcesses/filterPostProcess.js +7 -7
  420. package/PostProcesses/filterPostProcess.js.map +1 -1
  421. package/PostProcesses/grainPostProcess.js +7 -7
  422. package/PostProcesses/grainPostProcess.js.map +1 -1
  423. package/PostProcesses/imageProcessingPostProcess.js +42 -42
  424. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  425. package/PostProcesses/motionBlurPostProcess.js +41 -41
  426. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  427. package/PostProcesses/passPostProcess.js +15 -15
  428. package/PostProcesses/passPostProcess.js.map +1 -1
  429. package/PostProcesses/postProcess.d.ts +2 -2
  430. package/PostProcesses/postProcess.js +123 -123
  431. package/PostProcesses/postProcess.js.map +1 -1
  432. package/PostProcesses/refractionPostProcess.js +21 -21
  433. package/PostProcesses/refractionPostProcess.js.map +1 -1
  434. package/PostProcesses/screenSpaceCurvaturePostProcess.js +7 -7
  435. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  436. package/PostProcesses/screenSpaceReflectionPostProcess.js +19 -19
  437. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  438. package/PostProcesses/sharpenPostProcess.js +7 -7
  439. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  440. package/PostProcesses/stereoscopicInterlacePostProcess.js +14 -14
  441. package/PostProcesses/stereoscopicInterlacePostProcess.js.map +1 -1
  442. package/PostProcesses/tonemapPostProcess.js +7 -7
  443. package/PostProcesses/tonemapPostProcess.js.map +1 -1
  444. package/PostProcesses/volumetricLightScatteringPostProcess.js +11 -11
  445. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  446. package/PostProcesses/vrDistortionCorrectionPostProcess.js +7 -7
  447. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  448. package/Rendering/depthPeelingRenderer.js +36 -36
  449. package/Rendering/depthPeelingRenderer.js.map +1 -1
  450. package/Rendering/depthRenderer.js +8 -8
  451. package/Rendering/depthRenderer.js.map +1 -1
  452. package/Rendering/edgesRenderer.js +34 -34
  453. package/Rendering/edgesRenderer.js.map +1 -1
  454. package/Rendering/fluidRenderer/fluidRenderer.js +8 -8
  455. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  456. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js +3 -3
  457. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  458. package/Rendering/fluidRenderer/fluidRenderingObject.js +19 -19
  459. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  460. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +12 -12
  461. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  462. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js +18 -18
  463. package/Rendering/fluidRenderer/fluidRenderingObjectParticleSystem.js.map +1 -1
  464. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +68 -68
  465. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  466. package/Rendering/fluidRenderer/fluidRenderingTextures.js +29 -29
  467. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  468. package/Rendering/geometryBufferRenderer.js +44 -44
  469. package/Rendering/geometryBufferRenderer.js.map +1 -1
  470. package/Rendering/prePassRenderer.js +51 -51
  471. package/Rendering/prePassRenderer.js.map +1 -1
  472. package/Rendering/renderingGroup.js +25 -25
  473. package/Rendering/renderingGroup.js.map +1 -1
  474. package/Rendering/renderingManager.js +21 -21
  475. package/Rendering/renderingManager.js.map +1 -1
  476. package/Rendering/subSurfaceConfiguration.js +18 -18
  477. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  478. package/Rendering/utilityLayerRenderer.js +76 -76
  479. package/Rendering/utilityLayerRenderer.js.map +1 -1
  480. package/Sprites/sprite.js +16 -16
  481. package/Sprites/sprite.js.map +1 -1
  482. package/Sprites/spriteManager.js +81 -81
  483. package/Sprites/spriteManager.js.map +1 -1
  484. package/Sprites/spriteMap.js +32 -32
  485. package/Sprites/spriteMap.js.map +1 -1
  486. package/Sprites/spriteRenderer.js +6 -6
  487. package/Sprites/spriteRenderer.js.map +1 -1
  488. package/Sprites/thinSprite.js +22 -22
  489. package/Sprites/thinSprite.js.map +1 -1
  490. package/States/stencilStateComposer.js +10 -10
  491. package/States/stencilStateComposer.js.map +1 -1
  492. package/XR/features/WebXRAnchorSystem.js +7 -7
  493. package/XR/features/WebXRAnchorSystem.js.map +1 -1
  494. package/XR/features/WebXRControllerMovement.d.ts +3 -3
  495. package/XR/features/WebXRControllerMovement.js +97 -97
  496. package/XR/features/WebXRControllerMovement.js.map +1 -1
  497. package/XR/features/WebXRControllerPhysics.js +24 -24
  498. package/XR/features/WebXRControllerPhysics.js.map +1 -1
  499. package/XR/features/WebXRControllerTeleportation.js +26 -26
  500. package/XR/features/WebXRControllerTeleportation.js.map +1 -1
  501. package/XR/features/WebXRDOMOverlay.d.ts +1 -1
  502. package/XR/features/WebXRFeaturePointSystem.js +6 -6
  503. package/XR/features/WebXRFeaturePointSystem.js.map +1 -1
  504. package/XR/features/WebXRHandTracking.d.ts +1 -1
  505. package/XR/features/WebXRHandTracking.js +95 -95
  506. package/XR/features/WebXRHandTracking.js.map +1 -1
  507. package/XR/features/WebXRWalkingLocomotion.js +21 -21
  508. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  509. package/XR/motionController/webXRAbstractMotionController.d.ts +3 -3
  510. package/XR/motionController/webXRMotionControllerManager.d.ts +1 -1
  511. package/XR/native/nativeXRFrame.js +3 -3
  512. package/XR/native/nativeXRFrame.js.map +1 -1
  513. package/XR/webXRFeaturesManager.d.ts +1 -1
  514. package/XR/webXRLayerWrapper.d.ts +2 -2
  515. package/XR/webXRLayerWrapper.js +17 -17
  516. package/XR/webXRLayerWrapper.js.map +1 -1
  517. package/abstractScene.d.ts +2 -2
  518. package/node.d.ts +1 -1
  519. package/node.js +71 -71
  520. package/node.js.map +1 -1
  521. package/package.json +1 -1
  522. package/scene.js +777 -777
  523. package/scene.js.map +1 -1
  524. package/sceneComponent.d.ts +12 -12
  525. package/types.d.ts +11 -11
@@ -3,6 +3,9 @@ import { PerfCounter } from "../../Misc/perfCounter.js";
3
3
  import { WebGPUQuerySet } from "./webgpuQuerySet.js";
4
4
  /** @internal */
5
5
  export class WebGPUTimestampQuery {
6
+ get gpuFrameTimeCounter() {
7
+ return this._gpuFrameTimeCounter;
8
+ }
6
9
  constructor(device, bufferManager) {
7
10
  this._enabled = false;
8
11
  this._gpuFrameTimeCounter = new PerfCounter();
@@ -10,9 +13,6 @@ export class WebGPUTimestampQuery {
10
13
  this._device = device;
11
14
  this._bufferManager = bufferManager;
12
15
  }
13
- get gpuFrameTimeCounter() {
14
- return this._gpuFrameTimeCounter;
15
- }
16
16
  get enable() {
17
17
  return this._enabled;
18
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuTimestampQuery.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Engines/WebGPU/webgpuTimestampQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,gBAAgB;AAChB,MAAM,OAAO,oBAAoB;IAa7B,YAAY,MAAiB,EAAE,aAAkC;QATzD,aAAQ,GAAG,KAAK,CAAC;QACjB,yBAAoB,GAAgB,IAAI,WAAW,EAAE,CAAC;QAEtD,0BAAqB,GAAG,CAAC,CAAC;QAO9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACxC,CAAC;IAPD,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAOD,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,MAAM,CAAC,KAAc;QAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACzB,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,gBAAgB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACxF;aAAM;YACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SACnC;IACL,CAAC;IAEM,UAAU,CAAC,cAAiC;QAC/C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;SAClC;IACL,CAAC;IAEM,QAAQ,CAAC,cAAiC;QAC7C,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACzD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,CAAC,EAAE;oBACpC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;oBAC1C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACtD;gBACD,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ;AAED,gBAAgB;AAChB,MAAM,OAAO,qBAAqB;IAG9B,YAAY,MAAiB,EAAE,aAAkC;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACvG,CAAC;IAEM,KAAK,CAAC,OAA0B;QACnC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAA0B;QACxC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ","sourcesContent":["import type { WebGPUBufferManager } from \"./webgpuBufferManager\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport { PerfCounter } from \"../../Misc/perfCounter\";\r\nimport { WebGPUQuerySet } from \"./webgpuQuerySet\";\r\n\r\n/** @internal */\r\nexport class WebGPUTimestampQuery {\r\n private _device: GPUDevice;\r\n private _bufferManager: WebGPUBufferManager;\r\n\r\n private _enabled = false;\r\n private _gpuFrameTimeCounter: PerfCounter = new PerfCounter();\r\n private _measureDuration: WebGPUDurationMeasure;\r\n private _measureDurationState = 0;\r\n\r\n public get gpuFrameTimeCounter() {\r\n return this._gpuFrameTimeCounter;\r\n }\r\n\r\n constructor(device: GPUDevice, bufferManager: WebGPUBufferManager) {\r\n this._device = device;\r\n this._bufferManager = bufferManager;\r\n }\r\n\r\n public get enable(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n public set enable(value: boolean) {\r\n if (this._enabled === value) {\r\n return;\r\n }\r\n\r\n this._enabled = value;\r\n this._measureDurationState = 0;\r\n if (value) {\r\n this._measureDuration = new WebGPUDurationMeasure(this._device, this._bufferManager);\r\n } else {\r\n this._measureDuration.dispose();\r\n }\r\n }\r\n\r\n public startFrame(commandEncoder: GPUCommandEncoder): void {\r\n if (this._enabled && this._measureDurationState === 0) {\r\n this._measureDuration.start(commandEncoder);\r\n this._measureDurationState = 1;\r\n }\r\n }\r\n\r\n public endFrame(commandEncoder: GPUCommandEncoder): void {\r\n if (this._measureDurationState === 1) {\r\n this._measureDurationState = 2;\r\n this._measureDuration.stop(commandEncoder).then((duration) => {\r\n if (duration !== null && duration >= 0) {\r\n this._gpuFrameTimeCounter.fetchNewFrame();\r\n this._gpuFrameTimeCounter.addCount(duration, true);\r\n }\r\n this._measureDurationState = 0;\r\n });\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUDurationMeasure {\r\n private _querySet: WebGPUQuerySet;\r\n\r\n constructor(device: GPUDevice, bufferManager: WebGPUBufferManager) {\r\n this._querySet = new WebGPUQuerySet(2, WebGPUConstants.QueryType.Timestamp, device, bufferManager);\r\n }\r\n\r\n public start(encoder: GPUCommandEncoder): void {\r\n encoder.writeTimestamp(this._querySet.querySet, 0);\r\n }\r\n\r\n public async stop(encoder: GPUCommandEncoder): Promise<number | null> {\r\n encoder.writeTimestamp(this._querySet.querySet, 1);\r\n\r\n return this._querySet.readTwoValuesAndSubtract(0);\r\n }\r\n\r\n public dispose() {\r\n this._querySet.dispose();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"webgpuTimestampQuery.js","sourceRoot":"","sources":["../../../../../lts/core/generated/Engines/WebGPU/webgpuTimestampQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,eAAe,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,gBAAgB;AAChB,MAAM,OAAO,oBAAoB;IAS7B,IAAW,mBAAmB;QAC1B,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACrC,CAAC;IAED,YAAY,MAAiB,EAAE,aAAkC;QATzD,aAAQ,GAAG,KAAK,CAAC;QACjB,yBAAoB,GAAgB,IAAI,WAAW,EAAE,CAAC;QAEtD,0BAAqB,GAAG,CAAC,CAAC;QAO9B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACxC,CAAC;IAED,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED,IAAW,MAAM,CAAC,KAAc;QAC5B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE;YACzB,OAAO;SACV;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;QAC/B,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,gBAAgB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SACxF;aAAM;YACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SACnC;IACL,CAAC;IAEM,UAAU,CAAC,cAAiC;QAC/C,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YACnD,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;YAC5C,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;SAClC;IACL,CAAC;IAEM,QAAQ,CAAC,cAAiC;QAC7C,IAAI,IAAI,CAAC,qBAAqB,KAAK,CAAC,EAAE;YAClC,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACzD,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,IAAI,CAAC,EAAE;oBACpC,IAAI,CAAC,oBAAoB,CAAC,aAAa,EAAE,CAAC;oBAC1C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;iBACtD;gBACD,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACN;IACL,CAAC;CACJ;AAED,gBAAgB;AAChB,MAAM,OAAO,qBAAqB;IAG9B,YAAY,MAAiB,EAAE,aAAkC;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACvG,CAAC;IAEM,KAAK,CAAC,OAA0B;QACnC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,OAA0B;QACxC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEnD,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;CACJ","sourcesContent":["import type { WebGPUBufferManager } from \"./webgpuBufferManager\";\r\nimport * as WebGPUConstants from \"./webgpuConstants\";\r\nimport { PerfCounter } from \"../../Misc/perfCounter\";\r\nimport { WebGPUQuerySet } from \"./webgpuQuerySet\";\r\n\r\n/** @internal */\r\nexport class WebGPUTimestampQuery {\r\n private _device: GPUDevice;\r\n private _bufferManager: WebGPUBufferManager;\r\n\r\n private _enabled = false;\r\n private _gpuFrameTimeCounter: PerfCounter = new PerfCounter();\r\n private _measureDuration: WebGPUDurationMeasure;\r\n private _measureDurationState = 0;\r\n\r\n public get gpuFrameTimeCounter() {\r\n return this._gpuFrameTimeCounter;\r\n }\r\n\r\n constructor(device: GPUDevice, bufferManager: WebGPUBufferManager) {\r\n this._device = device;\r\n this._bufferManager = bufferManager;\r\n }\r\n\r\n public get enable(): boolean {\r\n return this._enabled;\r\n }\r\n\r\n public set enable(value: boolean) {\r\n if (this._enabled === value) {\r\n return;\r\n }\r\n\r\n this._enabled = value;\r\n this._measureDurationState = 0;\r\n if (value) {\r\n this._measureDuration = new WebGPUDurationMeasure(this._device, this._bufferManager);\r\n } else {\r\n this._measureDuration.dispose();\r\n }\r\n }\r\n\r\n public startFrame(commandEncoder: GPUCommandEncoder): void {\r\n if (this._enabled && this._measureDurationState === 0) {\r\n this._measureDuration.start(commandEncoder);\r\n this._measureDurationState = 1;\r\n }\r\n }\r\n\r\n public endFrame(commandEncoder: GPUCommandEncoder): void {\r\n if (this._measureDurationState === 1) {\r\n this._measureDurationState = 2;\r\n this._measureDuration.stop(commandEncoder).then((duration) => {\r\n if (duration !== null && duration >= 0) {\r\n this._gpuFrameTimeCounter.fetchNewFrame();\r\n this._gpuFrameTimeCounter.addCount(duration, true);\r\n }\r\n this._measureDurationState = 0;\r\n });\r\n }\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class WebGPUDurationMeasure {\r\n private _querySet: WebGPUQuerySet;\r\n\r\n constructor(device: GPUDevice, bufferManager: WebGPUBufferManager) {\r\n this._querySet = new WebGPUQuerySet(2, WebGPUConstants.QueryType.Timestamp, device, bufferManager);\r\n }\r\n\r\n public start(encoder: GPUCommandEncoder): void {\r\n encoder.writeTimestamp(this._querySet.querySet, 0);\r\n }\r\n\r\n public async stop(encoder: GPUCommandEncoder): Promise<number | null> {\r\n encoder.writeTimestamp(this._querySet.querySet, 1);\r\n\r\n return this._querySet.readTwoValuesAndSubtract(0);\r\n }\r\n\r\n public dispose() {\r\n this._querySet.dispose();\r\n }\r\n}\r\n"]}
package/Engines/engine.js CHANGED
@@ -17,6 +17,140 @@ import "./Extensions/engine.dynamicBuffer.js";
17
17
  * The engine class is responsible for interfacing with all lower-level APIs such as WebGL and Audio
18
18
  */
19
19
  export class Engine extends ThinEngine {
20
+ /**
21
+ * Returns the current npm package of the sdk
22
+ */
23
+ // Not mixed with Version for tooling purpose.
24
+ static get NpmPackage() {
25
+ return ThinEngine.NpmPackage;
26
+ }
27
+ /**
28
+ * Returns the current version of the framework
29
+ */
30
+ static get Version() {
31
+ return ThinEngine.Version;
32
+ }
33
+ /** Gets the list of created engines */
34
+ static get Instances() {
35
+ return EngineStore.Instances;
36
+ }
37
+ /**
38
+ * Gets the latest created engine
39
+ */
40
+ static get LastCreatedEngine() {
41
+ return EngineStore.LastCreatedEngine;
42
+ }
43
+ /**
44
+ * Gets the latest created scene
45
+ */
46
+ static get LastCreatedScene() {
47
+ return EngineStore.LastCreatedScene;
48
+ }
49
+ /** @internal */
50
+ /**
51
+ * Engine abstraction for loading and creating an image bitmap from a given source string.
52
+ * @param imageSource source to load the image from.
53
+ * @param options An object that sets options for the image's extraction.
54
+ * @returns ImageBitmap.
55
+ */
56
+ _createImageBitmapFromSource(imageSource, options) {
57
+ const promise = new Promise((resolve, reject) => {
58
+ const image = new Image();
59
+ image.onload = () => {
60
+ image.decode().then(() => {
61
+ this.createImageBitmap(image, options).then((imageBitmap) => {
62
+ resolve(imageBitmap);
63
+ });
64
+ });
65
+ };
66
+ image.onerror = () => {
67
+ reject(`Error loading image ${image.src}`);
68
+ };
69
+ image.src = imageSource;
70
+ });
71
+ return promise;
72
+ }
73
+ /**
74
+ * Engine abstraction for createImageBitmap
75
+ * @param image source for image
76
+ * @param options An object that sets options for the image's extraction.
77
+ * @returns ImageBitmap
78
+ */
79
+ createImageBitmap(image, options) {
80
+ return createImageBitmap(image, options);
81
+ }
82
+ /**
83
+ * Resize an image and returns the image data as an uint8array
84
+ * @param image image to resize
85
+ * @param bufferWidth destination buffer width
86
+ * @param bufferHeight destination buffer height
87
+ * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size
88
+ */
89
+ resizeImageBitmap(image, bufferWidth, bufferHeight) {
90
+ const canvas = this.createCanvas(bufferWidth, bufferHeight);
91
+ const context = canvas.getContext("2d");
92
+ if (!context) {
93
+ throw new Error("Unable to get 2d context for resizeImageBitmap");
94
+ }
95
+ context.drawImage(image, 0, 0);
96
+ // Create VertexData from map data
97
+ // Cast is due to wrong definition in lib.d.ts from ts 1.3 - https://github.com/Microsoft/TypeScript/issues/949
98
+ const buffer = context.getImageData(0, 0, bufferWidth, bufferHeight).data;
99
+ return buffer;
100
+ }
101
+ /**
102
+ * Will flag all materials in all scenes in all engines as dirty to trigger new shader compilation
103
+ * @param flag defines which part of the materials must be marked as dirty
104
+ * @param predicate defines a predicate used to filter which materials should be affected
105
+ */
106
+ static MarkAllMaterialsAsDirty(flag, predicate) {
107
+ for (let engineIndex = 0; engineIndex < Engine.Instances.length; engineIndex++) {
108
+ const engine = Engine.Instances[engineIndex];
109
+ for (let sceneIndex = 0; sceneIndex < engine.scenes.length; sceneIndex++) {
110
+ engine.scenes[sceneIndex].markAllMaterialsAsDirty(flag, predicate);
111
+ }
112
+ }
113
+ }
114
+ /**
115
+ * Method called to create the default loading screen.
116
+ * This can be overridden in your own app.
117
+ * @param canvas The rendering canvas element
118
+ * @returns The loading screen
119
+ */
120
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
121
+ static DefaultLoadingScreenFactory(canvas) {
122
+ throw _WarnImport("LoadingScreen");
123
+ }
124
+ get _supportsHardwareTextureRescaling() {
125
+ return !!Engine._RescalePostProcessFactory;
126
+ }
127
+ /**
128
+ * Gets the performance monitor attached to this engine
129
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation
130
+ */
131
+ get performanceMonitor() {
132
+ return this._performanceMonitor;
133
+ }
134
+ /**
135
+ * (WebGPU only) True (default) to be in compatibility mode, meaning rendering all existing scenes without artifacts (same rendering than WebGL).
136
+ * Setting the property to false will improve performances but may not work in some scenes if some precautions are not taken.
137
+ * See https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUNonCompatibilityMode for more details
138
+ */
139
+ get compatibilityMode() {
140
+ return this._compatibilityMode;
141
+ }
142
+ set compatibilityMode(mode) {
143
+ // not supported in WebGL
144
+ this._compatibilityMode = true;
145
+ }
146
+ // Events
147
+ /**
148
+ * Gets the HTML element used to attach event listeners
149
+ * @returns a HTML element
150
+ */
151
+ getInputElement() {
152
+ return this._renderingCanvas;
153
+ }
20
154
  /**
21
155
  * Creates a new engine
22
156
  * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context
@@ -159,140 +293,6 @@ export class Engine extends ThinEngine {
159
293
  this.initWebVR();
160
294
  }
161
295
  }
162
- /**
163
- * Returns the current npm package of the sdk
164
- */
165
- // Not mixed with Version for tooling purpose.
166
- static get NpmPackage() {
167
- return ThinEngine.NpmPackage;
168
- }
169
- /**
170
- * Returns the current version of the framework
171
- */
172
- static get Version() {
173
- return ThinEngine.Version;
174
- }
175
- /** Gets the list of created engines */
176
- static get Instances() {
177
- return EngineStore.Instances;
178
- }
179
- /**
180
- * Gets the latest created engine
181
- */
182
- static get LastCreatedEngine() {
183
- return EngineStore.LastCreatedEngine;
184
- }
185
- /**
186
- * Gets the latest created scene
187
- */
188
- static get LastCreatedScene() {
189
- return EngineStore.LastCreatedScene;
190
- }
191
- /** @internal */
192
- /**
193
- * Engine abstraction for loading and creating an image bitmap from a given source string.
194
- * @param imageSource source to load the image from.
195
- * @param options An object that sets options for the image's extraction.
196
- * @returns ImageBitmap.
197
- */
198
- _createImageBitmapFromSource(imageSource, options) {
199
- const promise = new Promise((resolve, reject) => {
200
- const image = new Image();
201
- image.onload = () => {
202
- image.decode().then(() => {
203
- this.createImageBitmap(image, options).then((imageBitmap) => {
204
- resolve(imageBitmap);
205
- });
206
- });
207
- };
208
- image.onerror = () => {
209
- reject(`Error loading image ${image.src}`);
210
- };
211
- image.src = imageSource;
212
- });
213
- return promise;
214
- }
215
- /**
216
- * Engine abstraction for createImageBitmap
217
- * @param image source for image
218
- * @param options An object that sets options for the image's extraction.
219
- * @returns ImageBitmap
220
- */
221
- createImageBitmap(image, options) {
222
- return createImageBitmap(image, options);
223
- }
224
- /**
225
- * Resize an image and returns the image data as an uint8array
226
- * @param image image to resize
227
- * @param bufferWidth destination buffer width
228
- * @param bufferHeight destination buffer height
229
- * @returns an uint8array containing RGBA values of bufferWidth * bufferHeight size
230
- */
231
- resizeImageBitmap(image, bufferWidth, bufferHeight) {
232
- const canvas = this.createCanvas(bufferWidth, bufferHeight);
233
- const context = canvas.getContext("2d");
234
- if (!context) {
235
- throw new Error("Unable to get 2d context for resizeImageBitmap");
236
- }
237
- context.drawImage(image, 0, 0);
238
- // Create VertexData from map data
239
- // Cast is due to wrong definition in lib.d.ts from ts 1.3 - https://github.com/Microsoft/TypeScript/issues/949
240
- const buffer = context.getImageData(0, 0, bufferWidth, bufferHeight).data;
241
- return buffer;
242
- }
243
- /**
244
- * Will flag all materials in all scenes in all engines as dirty to trigger new shader compilation
245
- * @param flag defines which part of the materials must be marked as dirty
246
- * @param predicate defines a predicate used to filter which materials should be affected
247
- */
248
- static MarkAllMaterialsAsDirty(flag, predicate) {
249
- for (let engineIndex = 0; engineIndex < Engine.Instances.length; engineIndex++) {
250
- const engine = Engine.Instances[engineIndex];
251
- for (let sceneIndex = 0; sceneIndex < engine.scenes.length; sceneIndex++) {
252
- engine.scenes[sceneIndex].markAllMaterialsAsDirty(flag, predicate);
253
- }
254
- }
255
- }
256
- /**
257
- * Method called to create the default loading screen.
258
- * This can be overridden in your own app.
259
- * @param canvas The rendering canvas element
260
- * @returns The loading screen
261
- */
262
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
263
- static DefaultLoadingScreenFactory(canvas) {
264
- throw _WarnImport("LoadingScreen");
265
- }
266
- get _supportsHardwareTextureRescaling() {
267
- return !!Engine._RescalePostProcessFactory;
268
- }
269
- /**
270
- * Gets the performance monitor attached to this engine
271
- * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation
272
- */
273
- get performanceMonitor() {
274
- return this._performanceMonitor;
275
- }
276
- /**
277
- * (WebGPU only) True (default) to be in compatibility mode, meaning rendering all existing scenes without artifacts (same rendering than WebGL).
278
- * Setting the property to false will improve performances but may not work in some scenes if some precautions are not taken.
279
- * See https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUNonCompatibilityMode for more details
280
- */
281
- get compatibilityMode() {
282
- return this._compatibilityMode;
283
- }
284
- set compatibilityMode(mode) {
285
- // not supported in WebGL
286
- this._compatibilityMode = true;
287
- }
288
- // Events
289
- /**
290
- * Gets the HTML element used to attach event listeners
291
- * @returns a HTML element
292
- */
293
- getInputElement() {
294
- return this._renderingCanvas;
295
- }
296
296
  _initGLContext() {
297
297
  super._initGLContext();
298
298
  this._rescalePostProcess = null;