@babylonjs/core 5.0.0-beta.1 → 5.0.0-beta.10

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 (796) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +5 -1
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Animations/animation.d.ts +6 -6
  5. package/Animations/animation.js +9 -5
  6. package/Animations/animation.js.map +1 -1
  7. package/Audio/analyser.d.ts +2 -1
  8. package/Audio/analyser.js +5 -0
  9. package/Audio/analyser.js.map +1 -1
  10. package/Audio/audioSceneComponent.d.ts +1 -1
  11. package/Audio/audioSceneComponent.js +5 -0
  12. package/Audio/audioSceneComponent.js.map +1 -1
  13. package/Audio/sound.d.ts +1 -1
  14. package/Audio/sound.js +8 -1
  15. package/Audio/sound.js.map +1 -1
  16. package/Audio/soundTrack.d.ts +2 -1
  17. package/Audio/soundTrack.js +5 -0
  18. package/Audio/soundTrack.js.map +1 -1
  19. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  20. package/BakedVertexAnimation/bakedVertexAnimationManager.js +5 -0
  21. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  22. package/Behaviors/Meshes/baseSixDofDragBehavior.js +29 -26
  23. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  24. package/Behaviors/Meshes/pointerDragBehavior.js +2 -0
  25. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  26. package/Bones/bone.d.ts +2 -1
  27. package/Bones/bone.js +28 -18
  28. package/Bones/bone.js.map +1 -1
  29. package/Bones/skeleton.d.ts +0 -6
  30. package/Bones/skeleton.js +5 -17
  31. package/Bones/skeleton.js.map +1 -1
  32. package/Buffers/buffer.d.ts +4 -0
  33. package/Buffers/buffer.js +13 -3
  34. package/Buffers/buffer.js.map +1 -1
  35. package/Cameras/Inputs/freeCameraMouseInput.d.ts +1 -0
  36. package/Cameras/Inputs/freeCameraMouseInput.js +6 -3
  37. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  38. package/Cameras/Inputs/freeCameraTouchInput.js +2 -4
  39. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  40. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.d.ts +1 -1
  41. package/Cameras/Stereoscopic/anaglyphArcRotateCamera.js.map +1 -1
  42. package/Cameras/Stereoscopic/anaglyphFreeCamera.d.ts +1 -1
  43. package/Cameras/Stereoscopic/anaglyphFreeCamera.js.map +1 -1
  44. package/Cameras/Stereoscopic/anaglyphGamepadCamera.d.ts +1 -1
  45. package/Cameras/Stereoscopic/anaglyphGamepadCamera.js.map +1 -1
  46. package/Cameras/Stereoscopic/anaglyphUniversalCamera.d.ts +1 -1
  47. package/Cameras/Stereoscopic/anaglyphUniversalCamera.js.map +1 -1
  48. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.d.ts +1 -1
  49. package/Cameras/Stereoscopic/stereoscopicArcRotateCamera.js.map +1 -1
  50. package/Cameras/Stereoscopic/stereoscopicFreeCamera.d.ts +1 -1
  51. package/Cameras/Stereoscopic/stereoscopicFreeCamera.js.map +1 -1
  52. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.d.ts +1 -1
  53. package/Cameras/Stereoscopic/stereoscopicGamepadCamera.js.map +1 -1
  54. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +1 -1
  55. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  56. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.d.ts +1 -1
  57. package/Cameras/Stereoscopic/stereoscopicUniversalCamera.js.map +1 -1
  58. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.d.ts +1 -1
  59. package/Cameras/VR/vrDeviceOrientationArcRotateCamera.js.map +1 -1
  60. package/Cameras/VR/vrDeviceOrientationFreeCamera.d.ts +1 -1
  61. package/Cameras/VR/vrDeviceOrientationFreeCamera.js.map +1 -1
  62. package/Cameras/VR/vrDeviceOrientationGamepadCamera.d.ts +1 -1
  63. package/Cameras/VR/vrDeviceOrientationGamepadCamera.js.map +1 -1
  64. package/Cameras/VR/vrExperienceHelper.d.ts +1 -0
  65. package/Cameras/VR/vrExperienceHelper.js +1 -0
  66. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  67. package/Cameras/VR/webVRCamera.d.ts +2 -1
  68. package/Cameras/VR/webVRCamera.js +3 -2
  69. package/Cameras/VR/webVRCamera.js.map +1 -1
  70. package/Cameras/arcRotateCamera.d.ts +1 -1
  71. package/Cameras/arcRotateCamera.js.map +1 -1
  72. package/Cameras/camera.d.ts +1 -1
  73. package/Cameras/camera.js +1 -1
  74. package/Cameras/camera.js.map +1 -1
  75. package/Cameras/deviceOrientationCamera.d.ts +1 -1
  76. package/Cameras/deviceOrientationCamera.js.map +1 -1
  77. package/Cameras/flyCamera.d.ts +1 -1
  78. package/Cameras/flyCamera.js.map +1 -1
  79. package/Cameras/followCamera.d.ts +1 -1
  80. package/Cameras/followCamera.js.map +1 -1
  81. package/Cameras/freeCamera.d.ts +1 -1
  82. package/Cameras/freeCamera.js.map +1 -1
  83. package/Cameras/gamepadCamera.d.ts +1 -1
  84. package/Cameras/gamepadCamera.js.map +1 -1
  85. package/Cameras/targetCamera.d.ts +1 -1
  86. package/Cameras/targetCamera.js.map +1 -1
  87. package/Cameras/touchCamera.d.ts +1 -1
  88. package/Cameras/touchCamera.js.map +1 -1
  89. package/Cameras/universalCamera.d.ts +1 -1
  90. package/Cameras/universalCamera.js.map +1 -1
  91. package/Cameras/virtualJoysticksCamera.d.ts +1 -1
  92. package/Cameras/virtualJoysticksCamera.js.map +1 -1
  93. package/Collisions/collider.d.ts +1 -1
  94. package/Collisions/collider.js +48 -2
  95. package/Collisions/collider.js.map +1 -1
  96. package/Compat/compatibilityOptions.d.ts +9 -0
  97. package/Compat/compatibilityOptions.js +14 -0
  98. package/Compat/compatibilityOptions.js.map +1 -0
  99. package/Compat/index.d.ts +1 -0
  100. package/Compat/index.js +2 -0
  101. package/Compat/index.js.map +1 -0
  102. package/Compute/computeEffect.js +2 -2
  103. package/Compute/computeEffect.js.map +1 -1
  104. package/Culling/Octrees/octreeSceneComponent.d.ts +1 -1
  105. package/Culling/Octrees/octreeSceneComponent.js +5 -0
  106. package/Culling/Octrees/octreeSceneComponent.js.map +1 -1
  107. package/Culling/ray.d.ts +6 -4
  108. package/Culling/ray.js +35 -13
  109. package/Culling/ray.js.map +1 -1
  110. package/Debug/axesViewer.d.ts +2 -1
  111. package/Debug/axesViewer.js +6 -0
  112. package/Debug/axesViewer.js.map +1 -1
  113. package/Debug/debugLayer.d.ts +1 -1
  114. package/Debug/debugLayer.js +6 -2
  115. package/Debug/debugLayer.js.map +1 -1
  116. package/Debug/physicsViewer.d.ts +1 -1
  117. package/Debug/physicsViewer.js +3 -0
  118. package/Debug/physicsViewer.js.map +1 -1
  119. package/Debug/skeletonViewer.js +3 -4
  120. package/Debug/skeletonViewer.js.map +1 -1
  121. package/DeviceInput/Helpers/eventFactory.d.ts +1 -1
  122. package/DeviceInput/Helpers/eventFactory.js +10 -6
  123. package/DeviceInput/Helpers/eventFactory.js.map +1 -1
  124. package/DeviceInput/InputDevices/deviceEnums.d.ts +55 -2
  125. package/DeviceInput/InputDevices/deviceEnums.js +54 -0
  126. package/DeviceInput/InputDevices/deviceEnums.js.map +1 -1
  127. package/DeviceInput/InputDevices/deviceSource.d.ts +35 -0
  128. package/DeviceInput/InputDevices/deviceSource.js +38 -0
  129. package/DeviceInput/InputDevices/deviceSource.js.map +1 -0
  130. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +23 -66
  131. package/DeviceInput/InputDevices/deviceSourceManager.js +40 -149
  132. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  133. package/DeviceInput/InputDevices/deviceTypes.d.ts +2 -2
  134. package/DeviceInput/InputDevices/deviceTypes.js.map +1 -1
  135. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.d.ts +1 -5
  136. package/DeviceInput/{Interfaces → InputDevices}/inputInterfaces.js +0 -0
  137. package/DeviceInput/InputDevices/inputInterfaces.js.map +1 -0
  138. package/DeviceInput/InputDevices/internalDeviceSourceManager.d.ts +51 -0
  139. package/DeviceInput/InputDevices/internalDeviceSourceManager.js +138 -0
  140. package/DeviceInput/InputDevices/internalDeviceSourceManager.js.map +1 -0
  141. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.d.ts +3 -7
  142. package/DeviceInput/{Implementations → InputDevices}/nativeDeviceInputSystem.js +11 -16
  143. package/DeviceInput/InputDevices/nativeDeviceInputSystem.js.map +1 -0
  144. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.d.ts +17 -19
  145. package/DeviceInput/{Implementations → InputDevices}/webDeviceInputSystem.js +212 -166
  146. package/DeviceInput/InputDevices/webDeviceInputSystem.js.map +1 -0
  147. package/DeviceInput/index.d.ts +1 -5
  148. package/DeviceInput/index.js +1 -5
  149. package/DeviceInput/index.js.map +1 -1
  150. package/Engines/Extensions/engine.cubeTexture.d.ts +1 -1
  151. package/Engines/Extensions/engine.cubeTexture.js +6 -2
  152. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  153. package/Engines/Extensions/engine.multiview.d.ts +5 -0
  154. package/Engines/Extensions/engine.multiview.js +4 -2
  155. package/Engines/Extensions/engine.multiview.js.map +1 -1
  156. package/Engines/Extensions/engine.query.d.ts +7 -0
  157. package/Engines/Extensions/engine.query.js +12 -0
  158. package/Engines/Extensions/engine.query.js.map +1 -1
  159. package/Engines/Extensions/engine.views.d.ts +7 -0
  160. package/Engines/Extensions/engine.views.js +12 -0
  161. package/Engines/Extensions/engine.views.js.map +1 -1
  162. package/Engines/Native/nativeInterfaces.d.ts +3 -2
  163. package/Engines/Native/nativeInterfaces.js.map +1 -1
  164. package/Engines/Processors/Expressions/shaderDefineExpression.js +1 -1
  165. package/Engines/Processors/Expressions/shaderDefineExpression.js.map +1 -1
  166. package/Engines/Processors/shaderCodeInliner.js +13 -13
  167. package/Engines/Processors/shaderCodeInliner.js.map +1 -1
  168. package/Engines/WebGPU/Extensions/engine.computeShader.js +1 -1
  169. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  170. package/Engines/WebGPU/Extensions/engine.cubeTexture.js +4 -1
  171. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  172. package/Engines/WebGPU/webgpuCacheBindGroups.js +9 -9
  173. package/Engines/WebGPU/webgpuCacheBindGroups.js.map +1 -1
  174. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +5 -7
  175. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  176. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.d.ts +1 -1
  177. package/Engines/WebGPU/webgpuCacheRenderPipelineTree.js.map +1 -1
  178. package/Engines/WebGPU/webgpuCacheSampler.d.ts +2 -0
  179. package/Engines/WebGPU/webgpuCacheSampler.js +23 -2
  180. package/Engines/WebGPU/webgpuCacheSampler.js.map +1 -1
  181. package/Engines/WebGPU/webgpuComputeContext.js +1 -1
  182. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  183. package/Engines/WebGPU/webgpuConstants.d.ts +2 -1
  184. package/Engines/WebGPU/webgpuConstants.js +1 -0
  185. package/Engines/WebGPU/webgpuConstants.js.map +1 -1
  186. package/Engines/WebGPU/webgpuDrawContext.d.ts +1 -1
  187. package/Engines/WebGPU/webgpuDrawContext.js +3 -3
  188. package/Engines/WebGPU/webgpuDrawContext.js.map +1 -1
  189. package/Engines/WebGPU/webgpuHardwareTexture.d.ts +0 -1
  190. package/Engines/WebGPU/webgpuHardwareTexture.js +0 -3
  191. package/Engines/WebGPU/webgpuHardwareTexture.js.map +1 -1
  192. package/Engines/WebGPU/webgpuPipelineContext.d.ts +0 -8
  193. package/Engines/WebGPU/webgpuPipelineContext.js.map +1 -1
  194. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js +13 -13
  195. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  196. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +30 -30
  197. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  198. package/Engines/WebGPU/webgpuTextureHelper.d.ts +0 -1
  199. package/Engines/WebGPU/webgpuTextureHelper.js +22 -37
  200. package/Engines/WebGPU/webgpuTextureHelper.js.map +1 -1
  201. package/Engines/engine.d.ts +48 -33
  202. package/Engines/engine.js +2 -6
  203. package/Engines/engine.js.map +1 -1
  204. package/Engines/engineCapabilities.d.ts +4 -0
  205. package/Engines/engineCapabilities.js.map +1 -1
  206. package/Engines/index.d.ts +1 -0
  207. package/Engines/index.js +1 -0
  208. package/Engines/index.js.map +1 -1
  209. package/Engines/nativeEngine.d.ts +1 -0
  210. package/Engines/nativeEngine.js +40 -12
  211. package/Engines/nativeEngine.js.map +1 -1
  212. package/Engines/nullEngine.js +3 -1
  213. package/Engines/nullEngine.js.map +1 -1
  214. package/Engines/renderTargetWrapper.d.ts +8 -0
  215. package/Engines/renderTargetWrapper.js +20 -0
  216. package/Engines/renderTargetWrapper.js.map +1 -1
  217. package/Engines/thinEngine.d.ts +18 -2
  218. package/Engines/thinEngine.js +51 -21
  219. package/Engines/thinEngine.js.map +1 -1
  220. package/Engines/webgpuEngine.d.ts +3 -7
  221. package/Engines/webgpuEngine.js +43 -42
  222. package/Engines/webgpuEngine.js.map +1 -1
  223. package/Events/keyboardEvents.d.ts +7 -1
  224. package/Events/keyboardEvents.js +11 -1
  225. package/Events/keyboardEvents.js.map +1 -1
  226. package/Gamepads/Controllers/daydreamController.js +1 -1
  227. package/Gamepads/Controllers/daydreamController.js.map +1 -1
  228. package/Gamepads/Controllers/oculusTouchController.js +2 -2
  229. package/Gamepads/Controllers/oculusTouchController.js.map +1 -1
  230. package/Gamepads/Controllers/webVRController.d.ts +1 -0
  231. package/Gamepads/Controllers/webVRController.js +1 -0
  232. package/Gamepads/Controllers/webVRController.js.map +1 -1
  233. package/Gamepads/gamepadManager.js +1 -1
  234. package/Gamepads/gamepadManager.js.map +1 -1
  235. package/Gizmos/boundingBoxGizmo.js +0 -10
  236. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  237. package/Gizmos/gizmo.js +1 -1
  238. package/Gizmos/gizmo.js.map +1 -1
  239. package/Gizmos/gizmoManager.d.ts +2 -0
  240. package/Gizmos/gizmoManager.js +28 -24
  241. package/Gizmos/gizmoManager.js.map +1 -1
  242. package/Helpers/sceneHelpers.d.ts +1 -0
  243. package/Helpers/sceneHelpers.js.map +1 -1
  244. package/Inputs/scene.inputManager.d.ts +2 -3
  245. package/Inputs/scene.inputManager.js +14 -16
  246. package/Inputs/scene.inputManager.js.map +1 -1
  247. package/Instrumentation/sceneInstrumentation.js +2 -2
  248. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  249. package/Layers/effectLayer.d.ts +2 -1
  250. package/Layers/effectLayer.js +25 -1
  251. package/Layers/effectLayer.js.map +1 -1
  252. package/Layers/effectLayerSceneComponent.d.ts +1 -1
  253. package/Layers/effectLayerSceneComponent.js +7 -3
  254. package/Layers/effectLayerSceneComponent.js.map +1 -1
  255. package/Layers/glowLayer.d.ts +1 -1
  256. package/Layers/glowLayer.js.map +1 -1
  257. package/Layers/highlightLayer.d.ts +1 -1
  258. package/Layers/highlightLayer.js +2 -1
  259. package/Layers/highlightLayer.js.map +1 -1
  260. package/Layers/layer.d.ts +2 -2
  261. package/Layers/layer.js.map +1 -1
  262. package/Layers/layerSceneComponent.d.ts +1 -1
  263. package/Layers/layerSceneComponent.js +7 -3
  264. package/Layers/layerSceneComponent.js.map +1 -1
  265. package/Lights/Shadows/cascadedShadowGenerator.js +2 -2
  266. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  267. package/Lights/Shadows/shadowGenerator.js +7 -7
  268. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  269. package/Loading/Plugins/babylonFileLoader.js +115 -37
  270. package/Loading/Plugins/babylonFileLoader.js.map +1 -1
  271. package/Loading/loadingScreen.js +8 -8
  272. package/Loading/loadingScreen.js.map +1 -1
  273. package/Loading/sceneLoader.js +7 -6
  274. package/Loading/sceneLoader.js.map +1 -1
  275. package/Materials/Background/backgroundMaterial.d.ts +1 -1
  276. package/Materials/Background/backgroundMaterial.js.map +1 -1
  277. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +37 -0
  278. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +117 -0
  279. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -0
  280. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +12 -12
  281. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  282. package/Materials/Node/Blocks/Dual/fogBlock.js +5 -5
  283. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  284. package/Materials/Node/Blocks/Dual/imageSourceBlock.js +13 -13
  285. package/Materials/Node/Blocks/Dual/imageSourceBlock.js.map +1 -1
  286. package/Materials/Node/Blocks/Dual/index.d.ts +1 -0
  287. package/Materials/Node/Blocks/Dual/index.js +1 -0
  288. package/Materials/Node/Blocks/Dual/index.js.map +1 -1
  289. package/Materials/Node/Blocks/Dual/lightBlock.js +10 -10
  290. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  291. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +28 -28
  292. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  293. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js +1 -1
  294. package/Materials/Node/Blocks/Dual/reflectionTextureBlock.js.map +1 -1
  295. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +7 -7
  296. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  297. package/Materials/Node/Blocks/Dual/textureBlock.js +32 -32
  298. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  299. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +2 -2
  300. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  301. package/Materials/Node/Blocks/Fragment/discardBlock.js +1 -1
  302. package/Materials/Node/Blocks/Fragment/discardBlock.js.map +1 -1
  303. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  304. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  305. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +10 -10
  306. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  307. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +7 -7
  308. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  309. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +12 -12
  310. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  311. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +1 -1
  312. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  313. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +7 -7
  314. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  315. package/Materials/Node/Blocks/Fragment/twirlBlock.js +4 -4
  316. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  317. package/Materials/Node/Blocks/Input/inputBlock.d.ts +2 -1
  318. package/Materials/Node/Blocks/Input/inputBlock.js +29 -24
  319. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  320. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +5 -5
  321. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  322. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +5 -5
  323. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  324. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +33 -33
  325. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  326. package/Materials/Node/Blocks/PBR/reflectionBlock.js +11 -11
  327. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  328. package/Materials/Node/Blocks/PBR/refractionBlock.js +11 -11
  329. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  330. package/Materials/Node/Blocks/PBR/sheenBlock.js +3 -3
  331. package/Materials/Node/Blocks/PBR/sheenBlock.js.map +1 -1
  332. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +1 -1
  333. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  334. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +1 -1
  335. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  336. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +1 -1
  337. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  338. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +7 -7
  339. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  340. package/Materials/Node/Blocks/Vertex/bonesBlock.js +3 -3
  341. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  342. package/Materials/Node/Blocks/Vertex/instancesBlock.js +3 -3
  343. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  344. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +5 -5
  345. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  346. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +16 -16
  347. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  348. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +1 -1
  349. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  350. package/Materials/Node/Blocks/addBlock.js +1 -1
  351. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  352. package/Materials/Node/Blocks/arcTan2Block.js +1 -1
  353. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  354. package/Materials/Node/Blocks/clampBlock.js +3 -3
  355. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  356. package/Materials/Node/Blocks/cloudBlock.js +7 -7
  357. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  358. package/Materials/Node/Blocks/colorMergerBlock.js +8 -8
  359. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  360. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  361. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  362. package/Materials/Node/Blocks/conditionalBlock.js +10 -10
  363. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  364. package/Materials/Node/Blocks/crossBlock.js +1 -1
  365. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  366. package/Materials/Node/Blocks/customBlock.js +1 -1
  367. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  368. package/Materials/Node/Blocks/desaturateBlock.js +4 -4
  369. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  370. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  371. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  372. package/Materials/Node/Blocks/divideBlock.js +1 -1
  373. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  374. package/Materials/Node/Blocks/dotBlock.js +1 -1
  375. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  376. package/Materials/Node/Blocks/elbowBlock.d.ts +27 -0
  377. package/Materials/Node/Blocks/elbowBlock.js +60 -0
  378. package/Materials/Node/Blocks/elbowBlock.js.map +1 -0
  379. package/Materials/Node/Blocks/fresnelBlock.js +2 -2
  380. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  381. package/Materials/Node/Blocks/gradientBlock.js +8 -8
  382. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  383. package/Materials/Node/Blocks/index.d.ts +1 -0
  384. package/Materials/Node/Blocks/index.js +1 -0
  385. package/Materials/Node/Blocks/index.js.map +1 -1
  386. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  387. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  388. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  389. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  390. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  391. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  392. package/Materials/Node/Blocks/maxBlock.js +1 -1
  393. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  394. package/Materials/Node/Blocks/minBlock.js +1 -1
  395. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  396. package/Materials/Node/Blocks/modBlock.js +1 -1
  397. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  398. package/Materials/Node/Blocks/multiplyBlock.js +1 -1
  399. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  400. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  401. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  402. package/Materials/Node/Blocks/negateBlock.js +1 -1
  403. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  404. package/Materials/Node/Blocks/normalBlendBlock.js +5 -5
  405. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  406. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  407. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  408. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  409. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  410. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  411. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  412. package/Materials/Node/Blocks/powBlock.js +1 -1
  413. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  414. package/Materials/Node/Blocks/randomNumberBlock.js +2 -2
  415. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  416. package/Materials/Node/Blocks/reciprocalBlock.js +1 -1
  417. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  418. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  419. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  420. package/Materials/Node/Blocks/refractBlock.js +1 -1
  421. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  422. package/Materials/Node/Blocks/remapBlock.js +3 -3
  423. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  424. package/Materials/Node/Blocks/replaceColorBlock.js +3 -3
  425. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  426. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  427. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  428. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  429. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  430. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
  431. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  432. package/Materials/Node/Blocks/smoothStepBlock.js +1 -1
  433. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  434. package/Materials/Node/Blocks/stepBlock.js +1 -1
  435. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  436. package/Materials/Node/Blocks/subtractBlock.js +1 -1
  437. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  438. package/Materials/Node/Blocks/transformBlock.js +13 -13
  439. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  440. package/Materials/Node/Blocks/trigonometryBlock.js +2 -2
  441. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  442. package/Materials/Node/Blocks/vectorMergerBlock.js +22 -22
  443. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  444. package/Materials/Node/Blocks/vectorSplitterBlock.js +8 -8
  445. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  446. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  447. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  448. package/Materials/Node/Blocks/voronoiNoiseBlock.js +5 -5
  449. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  450. package/Materials/Node/Blocks/waveBlock.js +3 -3
  451. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  452. package/Materials/Node/Blocks/worleyNoise3DBlock.js +5 -5
  453. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  454. package/Materials/Node/Enums/nodeMaterialSystemValues.d.ts +3 -1
  455. package/Materials/Node/Enums/nodeMaterialSystemValues.js +2 -0
  456. package/Materials/Node/Enums/nodeMaterialSystemValues.js.map +1 -1
  457. package/Materials/Node/nodeMaterial.d.ts +4 -0
  458. package/Materials/Node/nodeMaterial.js +22 -11
  459. package/Materials/Node/nodeMaterial.js.map +1 -1
  460. package/Materials/Node/nodeMaterialBlock.js +12 -12
  461. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  462. package/Materials/Node/nodeMaterialBuildState.js +24 -24
  463. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  464. package/Materials/Node/nodeMaterialBuildStateSharedData.js +1 -1
  465. package/Materials/Node/nodeMaterialBuildStateSharedData.js.map +1 -1
  466. package/Materials/PBR/pbrBaseMaterial.d.ts +2 -1
  467. package/Materials/PBR/pbrBaseMaterial.js +4 -3
  468. package/Materials/PBR/pbrBaseMaterial.js.map +1 -1
  469. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +1 -1
  470. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  471. package/Materials/PBR/pbrMaterial.d.ts +1 -1
  472. package/Materials/PBR/pbrMaterial.js +2 -3
  473. package/Materials/PBR/pbrMaterial.js.map +1 -1
  474. package/Materials/PBR/pbrMetallicRoughnessMaterial.d.ts +1 -1
  475. package/Materials/PBR/pbrMetallicRoughnessMaterial.js.map +1 -1
  476. package/Materials/PBR/pbrSpecularGlossinessMaterial.d.ts +1 -1
  477. package/Materials/PBR/pbrSpecularGlossinessMaterial.js.map +1 -1
  478. package/Materials/Textures/Loaders/ddsTextureLoader.js +8 -1
  479. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  480. package/Materials/Textures/Loaders/ktxTextureLoader.js +2 -2
  481. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  482. package/Materials/Textures/MultiviewRenderTarget.d.ts +2 -1
  483. package/Materials/Textures/MultiviewRenderTarget.js +10 -2
  484. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  485. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  486. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  487. package/Materials/Textures/baseTexture.d.ts +1 -1
  488. package/Materials/Textures/baseTexture.js.map +1 -1
  489. package/Materials/Textures/dynamicTexture.d.ts +1 -1
  490. package/Materials/Textures/dynamicTexture.js.map +1 -1
  491. package/Materials/Textures/equiRectangularCubeTexture.js +1 -1
  492. package/Materials/Textures/equiRectangularCubeTexture.js.map +1 -1
  493. package/Materials/Textures/internalTexture.d.ts +2 -0
  494. package/Materials/Textures/internalTexture.js +2 -0
  495. package/Materials/Textures/internalTexture.js.map +1 -1
  496. package/Materials/Textures/mirrorTexture.d.ts +2 -2
  497. package/Materials/Textures/mirrorTexture.js +7 -3
  498. package/Materials/Textures/mirrorTexture.js.map +1 -1
  499. package/Materials/Textures/multiRenderTarget.d.ts +1 -1
  500. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  501. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  502. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  503. package/Materials/Textures/refractionTexture.d.ts +1 -1
  504. package/Materials/Textures/refractionTexture.js +2 -2
  505. package/Materials/Textures/refractionTexture.js.map +1 -1
  506. package/Materials/Textures/renderTargetTexture.d.ts +1 -1
  507. package/Materials/Textures/renderTargetTexture.js +2 -2
  508. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  509. package/Materials/Textures/texture.d.ts +1 -1
  510. package/Materials/Textures/texture.js +5 -5
  511. package/Materials/Textures/texture.js.map +1 -1
  512. package/Materials/Textures/videoTexture.js +1 -0
  513. package/Materials/Textures/videoTexture.js.map +1 -1
  514. package/Materials/effect.js +3 -3
  515. package/Materials/effect.js.map +1 -1
  516. package/Materials/material.d.ts +3 -1
  517. package/Materials/material.js +11 -3
  518. package/Materials/material.js.map +1 -1
  519. package/Materials/materialHelper.js +9 -1
  520. package/Materials/materialHelper.js.map +1 -1
  521. package/Materials/materialPluginManager.js +3 -3
  522. package/Materials/materialPluginManager.js.map +1 -1
  523. package/Materials/multiMaterial.d.ts +3 -1
  524. package/Materials/multiMaterial.js +13 -11
  525. package/Materials/multiMaterial.js.map +1 -1
  526. package/Materials/pushMaterial.d.ts +1 -1
  527. package/Materials/pushMaterial.js.map +1 -1
  528. package/Materials/shaderMaterial.js +8 -4
  529. package/Materials/shaderMaterial.js.map +1 -1
  530. package/Materials/shadowDepthWrapper.d.ts +1 -1
  531. package/Materials/shadowDepthWrapper.js +3 -3
  532. package/Materials/shadowDepthWrapper.js.map +1 -1
  533. package/Materials/standardMaterial.d.ts +2 -6
  534. package/Materials/standardMaterial.js +5 -10
  535. package/Materials/standardMaterial.js.map +1 -1
  536. package/Maths/math.path.d.ts +1 -0
  537. package/Maths/math.path.js +1 -0
  538. package/Maths/math.path.js.map +1 -1
  539. package/Maths/math.size.js +1 -1
  540. package/Maths/math.size.js.map +1 -1
  541. package/Maths/math.vector.d.ts +5 -2
  542. package/Maths/math.vector.js +66 -47
  543. package/Maths/math.vector.js.map +1 -1
  544. package/Meshes/Builders/boxBuilder.js +5 -4
  545. package/Meshes/Builders/boxBuilder.js.map +1 -1
  546. package/Meshes/Builders/capsuleBuilder.js +4 -3
  547. package/Meshes/Builders/capsuleBuilder.js.map +1 -1
  548. package/Meshes/Builders/cylinderBuilder.d.ts +1 -1
  549. package/Meshes/Builders/cylinderBuilder.js +11 -8
  550. package/Meshes/Builders/cylinderBuilder.js.map +1 -1
  551. package/Meshes/Builders/decalBuilder.js +5 -2
  552. package/Meshes/Builders/decalBuilder.js.map +1 -1
  553. package/Meshes/Builders/discBuilder.js +3 -2
  554. package/Meshes/Builders/discBuilder.js.map +1 -1
  555. package/Meshes/Builders/geodesicBuilder.d.ts +1 -0
  556. package/Meshes/Builders/geodesicBuilder.js +1 -0
  557. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  558. package/Meshes/Builders/goldbergBuilder.d.ts +1 -0
  559. package/Meshes/Builders/goldbergBuilder.js +11 -1
  560. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  561. package/Meshes/Builders/groundBuilder.js +2 -1
  562. package/Meshes/Builders/groundBuilder.js.map +1 -1
  563. package/Meshes/Builders/icoSphereBuilder.js +2 -1
  564. package/Meshes/Builders/icoSphereBuilder.js.map +1 -1
  565. package/Meshes/Builders/linesBuilder.js.map +1 -1
  566. package/Meshes/Builders/planeBuilder.js +5 -4
  567. package/Meshes/Builders/planeBuilder.js.map +1 -1
  568. package/Meshes/Builders/polygonBuilder.js +8 -3
  569. package/Meshes/Builders/polygonBuilder.js.map +1 -1
  570. package/Meshes/Builders/polyhedronBuilder.js +3 -2
  571. package/Meshes/Builders/polyhedronBuilder.js.map +1 -1
  572. package/Meshes/Builders/ribbonBuilder.js +4 -3
  573. package/Meshes/Builders/ribbonBuilder.js.map +1 -1
  574. package/Meshes/Builders/sphereBuilder.js +2 -1
  575. package/Meshes/Builders/sphereBuilder.js.map +1 -1
  576. package/Meshes/Builders/tiledBoxBuilder.d.ts +30 -11
  577. package/Meshes/Builders/tiledBoxBuilder.js +34 -11
  578. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  579. package/Meshes/Builders/tiledPlaneBuilder.d.ts +21 -16
  580. package/Meshes/Builders/tiledPlaneBuilder.js +21 -16
  581. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  582. package/Meshes/Builders/torusBuilder.js +2 -1
  583. package/Meshes/Builders/torusBuilder.js.map +1 -1
  584. package/Meshes/Builders/torusKnotBuilder.js +2 -1
  585. package/Meshes/Builders/torusKnotBuilder.js.map +1 -1
  586. package/Meshes/Compression/dracoCompression.d.ts +3 -0
  587. package/Meshes/Compression/dracoCompression.js +23 -7
  588. package/Meshes/Compression/dracoCompression.js.map +1 -1
  589. package/Meshes/abstractMesh.d.ts +14 -2
  590. package/Meshes/abstractMesh.js +51 -33
  591. package/Meshes/abstractMesh.js.map +1 -1
  592. package/Meshes/geometry.d.ts +1 -1
  593. package/Meshes/geometry.js +38 -3
  594. package/Meshes/geometry.js.map +1 -1
  595. package/Meshes/groundMesh.d.ts +1 -1
  596. package/Meshes/groundMesh.js.map +1 -1
  597. package/Meshes/instancedMesh.js +5 -6
  598. package/Meshes/instancedMesh.js.map +1 -1
  599. package/Meshes/mesh.d.ts +1 -1
  600. package/Meshes/mesh.js +53 -36
  601. package/Meshes/mesh.js.map +1 -1
  602. package/Meshes/mesh.lts.d.ts +1 -1
  603. package/Meshes/mesh.lts.js.map +1 -1
  604. package/Meshes/mesh.vertexData.d.ts +2 -2
  605. package/Meshes/mesh.vertexData.js +4 -3
  606. package/Meshes/mesh.vertexData.js.map +1 -1
  607. package/Meshes/polygonMesh.js +2 -2
  608. package/Meshes/polygonMesh.js.map +1 -1
  609. package/Meshes/subMesh.js +1 -2
  610. package/Meshes/subMesh.js.map +1 -1
  611. package/Meshes/subMesh.project.js +1 -2
  612. package/Meshes/subMesh.project.js.map +1 -1
  613. package/Meshes/thinInstanceMesh.js +5 -0
  614. package/Meshes/thinInstanceMesh.js.map +1 -1
  615. package/Meshes/trailMesh.d.ts +1 -1
  616. package/Meshes/trailMesh.js.map +1 -1
  617. package/Meshes/transformNode.js +40 -13
  618. package/Meshes/transformNode.js.map +1 -1
  619. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.d.ts +5 -0
  620. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +13 -2
  621. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  622. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js +6 -12
  623. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  624. package/Misc/PerformanceViewer/performanceViewerCollector.js +36 -19
  625. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  626. package/Misc/assetsManager.d.ts +2 -1
  627. package/Misc/assetsManager.js +15 -1
  628. package/Misc/assetsManager.js.map +1 -1
  629. package/Misc/basis.js +1 -1
  630. package/Misc/basis.js.map +1 -1
  631. package/Misc/brdfTextureTools.js +4 -1
  632. package/Misc/brdfTextureTools.js.map +1 -1
  633. package/Misc/dds.js +7 -0
  634. package/Misc/dds.js.map +1 -1
  635. package/Misc/decorators.d.ts +1 -1
  636. package/Misc/decorators.js +8 -1
  637. package/Misc/decorators.js.map +1 -1
  638. package/Misc/deepCopier.js +3 -3
  639. package/Misc/deepCopier.js.map +1 -1
  640. package/Misc/devTools.js +1 -1
  641. package/Misc/devTools.js.map +1 -1
  642. package/Misc/environmentTextureTools.js +2 -2
  643. package/Misc/environmentTextureTools.js.map +1 -1
  644. package/Misc/error.d.ts +51 -0
  645. package/Misc/error.js +66 -0
  646. package/Misc/error.js.map +1 -0
  647. package/Misc/fileTools.d.ts +4 -4
  648. package/Misc/fileTools.js +14 -12
  649. package/Misc/fileTools.js.map +1 -1
  650. package/Misc/index.d.ts +2 -0
  651. package/Misc/index.js +2 -0
  652. package/Misc/index.js.map +1 -1
  653. package/Misc/khronosTextureContainer2.js +4 -3
  654. package/Misc/khronosTextureContainer2.js.map +1 -1
  655. package/Misc/reflector.js +6 -6
  656. package/Misc/reflector.js.map +1 -1
  657. package/Misc/tools.js +15 -13
  658. package/Misc/tools.js.map +1 -1
  659. package/Misc/uniqueIdGenerator.js +1 -1
  660. package/Misc/uniqueIdGenerator.js.map +1 -1
  661. package/Offline/database.js +1 -1
  662. package/Offline/database.js.map +1 -1
  663. package/Particles/baseParticleSystem.d.ts +4 -1
  664. package/Particles/baseParticleSystem.js +20 -5
  665. package/Particles/baseParticleSystem.js.map +1 -1
  666. package/Particles/gpuParticleSystem.js +2 -1
  667. package/Particles/gpuParticleSystem.js.map +1 -1
  668. package/Particles/particleHelper.js +2 -2
  669. package/Particles/particleHelper.js.map +1 -1
  670. package/Particles/particleSystem.js +7 -1
  671. package/Particles/particleSystem.js.map +1 -1
  672. package/Physics/Plugins/ammoJSPlugin.d.ts +5 -1
  673. package/Physics/Plugins/ammoJSPlugin.js +16 -11
  674. package/Physics/Plugins/ammoJSPlugin.js.map +1 -1
  675. package/Physics/physicsEngine.d.ts +1 -0
  676. package/Physics/physicsEngine.js +3 -1
  677. package/Physics/physicsEngine.js.map +1 -1
  678. package/Physics/physicsImpostor.d.ts +2 -2
  679. package/Physics/physicsImpostor.js.map +1 -1
  680. package/PostProcesses/blurPostProcess.js +5 -5
  681. package/PostProcesses/blurPostProcess.js.map +1 -1
  682. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  683. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  684. package/PostProcesses/postProcess.js +1 -1
  685. package/PostProcesses/postProcess.js.map +1 -1
  686. package/PostProcesses/postProcessManager.js +2 -2
  687. package/PostProcesses/postProcessManager.js.map +1 -1
  688. package/Probes/reflectionProbe.js +2 -2
  689. package/Probes/reflectionProbe.js.map +1 -1
  690. package/Rendering/depthPeelingRenderer.js +3 -3
  691. package/Rendering/depthPeelingRenderer.js.map +1 -1
  692. package/Rendering/geometryBufferRenderer.js +8 -8
  693. package/Rendering/geometryBufferRenderer.js.map +1 -1
  694. package/Rendering/outlineRenderer.js +1 -1
  695. package/Rendering/outlineRenderer.js.map +1 -1
  696. package/Rendering/subSurfaceConfiguration.js +1 -1
  697. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  698. package/Rendering/utilityLayerRenderer.js +4 -0
  699. package/Rendering/utilityLayerRenderer.js.map +1 -1
  700. package/Shaders/ShadersInclude/instancesDeclaration.js +1 -1
  701. package/Shaders/ShadersInclude/instancesDeclaration.js.map +1 -1
  702. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js +1 -1
  703. package/Shaders/ShadersInclude/pbrBlockAlbedoOpacity.js.map +1 -1
  704. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js +1 -1
  705. package/Shaders/ShadersInclude/pbrFragmentExtraDeclaration.js.map +1 -1
  706. package/Shaders/ShadersInclude/pointCloudVertex.js +1 -1
  707. package/Shaders/ShadersInclude/pointCloudVertex.js.map +1 -1
  708. package/Shaders/ShadersInclude/prePassVertex.js +1 -1
  709. package/Shaders/ShadersInclude/prePassVertex.js.map +1 -1
  710. package/Shaders/background.vertex.js +1 -1
  711. package/Shaders/background.vertex.js.map +1 -1
  712. package/Shaders/color.fragment.js +1 -1
  713. package/Shaders/color.fragment.js.map +1 -1
  714. package/Shaders/color.vertex.js +1 -1
  715. package/Shaders/color.vertex.js.map +1 -1
  716. package/Shaders/default.fragment.js +1 -1
  717. package/Shaders/default.fragment.js.map +1 -1
  718. package/Shaders/default.vertex.js +1 -1
  719. package/Shaders/default.vertex.js.map +1 -1
  720. package/Shaders/geometry.vertex.js +1 -1
  721. package/Shaders/geometry.vertex.js.map +1 -1
  722. package/Shaders/pbr.fragment.js +1 -1
  723. package/Shaders/pbr.fragment.js.map +1 -1
  724. package/Shaders/pbr.vertex.js +1 -1
  725. package/Shaders/pbr.vertex.js.map +1 -1
  726. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js +1 -1
  727. package/ShadersWGSL/ShadersInclude/instancesDeclaration.js.map +1 -1
  728. package/ShadersWGSL/gpuUpdateParticles.compute.js +1 -1
  729. package/ShadersWGSL/gpuUpdateParticles.compute.js.map +1 -1
  730. package/Sprites/spriteManager.js +9 -10
  731. package/Sprites/spriteManager.js.map +1 -1
  732. package/Sprites/spriteMap.js +2 -2
  733. package/Sprites/spriteMap.js.map +1 -1
  734. package/Sprites/spriteRenderer.js +1 -1
  735. package/Sprites/spriteRenderer.js.map +1 -1
  736. package/XR/features/WebXRControllerPointerSelection.js +15 -9
  737. package/XR/features/WebXRControllerPointerSelection.js.map +1 -1
  738. package/XR/features/WebXRDOMOverlay.js +1 -1
  739. package/XR/features/WebXRDOMOverlay.js.map +1 -1
  740. package/XR/features/WebXRHandTracking.js +30 -30
  741. package/XR/features/WebXRHandTracking.js.map +1 -1
  742. package/XR/features/WebXRImageTracking.js +2 -2
  743. package/XR/features/WebXRImageTracking.js.map +1 -1
  744. package/XR/features/WebXRLayers.d.ts +28 -5
  745. package/XR/features/WebXRLayers.js +54 -20
  746. package/XR/features/WebXRLayers.js.map +1 -1
  747. package/XR/features/WebXRNearInteraction.d.ts +35 -3
  748. package/XR/features/WebXRNearInteraction.js +201 -40
  749. package/XR/features/WebXRNearInteraction.js.map +1 -1
  750. package/XR/motionController/webXRAbstractMotionController.js +1 -1
  751. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  752. package/XR/motionController/webXRMotionControllerManager.js +2 -2
  753. package/XR/motionController/webXRMotionControllerManager.js.map +1 -1
  754. package/XR/motionController/webXRProfiledMotionController.js +1 -1
  755. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  756. package/XR/webXRCamera.js +17 -4
  757. package/XR/webXRCamera.js.map +1 -1
  758. package/XR/webXRDefaultExperience.js +3 -0
  759. package/XR/webXRDefaultExperience.js.map +1 -1
  760. package/XR/webXREnterExitUI.js +2 -2
  761. package/XR/webXREnterExitUI.js.map +1 -1
  762. package/XR/webXRExperienceHelper.js +3 -2
  763. package/XR/webXRExperienceHelper.js.map +1 -1
  764. package/XR/webXRFeaturesManager.js +6 -6
  765. package/XR/webXRFeaturesManager.js.map +1 -1
  766. package/XR/webXRInputSource.js +3 -3
  767. package/XR/webXRInputSource.js.map +1 -1
  768. package/XR/webXRRenderTargetTextureProvider.d.ts +3 -2
  769. package/XR/webXRRenderTargetTextureProvider.js +37 -18
  770. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  771. package/XR/webXRSessionManager.d.ts +1 -0
  772. package/XR/webXRSessionManager.js +7 -2
  773. package/XR/webXRSessionManager.js.map +1 -1
  774. package/assetContainer.d.ts +1 -1
  775. package/assetContainer.js +5 -4
  776. package/assetContainer.js.map +1 -1
  777. package/index.d.ts +1 -0
  778. package/index.js +1 -0
  779. package/index.js.map +1 -1
  780. package/node.d.ts +1 -1
  781. package/node.js.map +1 -1
  782. package/package.json +31 -16
  783. package/scene.d.ts +5 -2
  784. package/scene.js +46 -19
  785. package/scene.js.map +1 -1
  786. package/types.d.ts +1 -1
  787. package/types.js.map +1 -1
  788. package/DeviceInput/Implementations/nativeDeviceInputSystem.js.map +0 -1
  789. package/DeviceInput/Implementations/webDeviceInputSystem.js.map +0 -1
  790. package/DeviceInput/Interfaces/inputInterfaces.js.map +0 -1
  791. package/DeviceInput/deviceInputSystem.d.ts +0 -60
  792. package/DeviceInput/deviceInputSystem.js +0 -84
  793. package/DeviceInput/deviceInputSystem.js.map +0 -1
  794. package/Misc/baseError.d.ts +0 -7
  795. package/Misc/baseError.js +0 -18
  796. package/Misc/baseError.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuComputeContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuComputeContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { StorageBuffer } from \"../../Buffers/storageBuffer\";\r\nimport { IComputeContext } from \"../../Compute/IComputeContext\";\r\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { TextureSampler } from \"../../Materials/Textures/textureSampler\";\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport { ComputeBindingList, ComputeBindingMapping, ComputeBindingType } from \"../Extensions/engine.computeShader\";\r\nimport { WebGPUCacheSampler } from \"./webgpuCacheSampler\";\r\nimport * as WebGPUConstants from './webgpuConstants';\r\nimport { WebGPUHardwareTexture } from \"./webgpuHardwareTexture\";\r\n\r\n/** @hidden */\r\nexport class WebGPUComputeContext implements IComputeContext {\r\n private static _Counter = 0;\r\n\r\n public readonly uniqueId: number;\r\n\r\n private _device: GPUDevice;\r\n private _cacheSampler: WebGPUCacheSampler;\r\n private _bindGroups: GPUBindGroup[];\r\n private _bindGroupEntries: GPUBindGroupEntry[][];\r\n\r\n public getBindGroups(bindings: ComputeBindingList, computePipeline: GPUComputePipeline, bindingsMapping?: ComputeBindingMapping): GPUBindGroup[] {\r\n if (!bindingsMapping) {\r\n throw new Error(\"WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!\");\r\n }\r\n if (this._bindGroups.length === 0) {\r\n const bindGroupEntriesExist = this._bindGroupEntries.length > 0;\r\n for (const key in bindings) {\r\n const binding = bindings[key],\r\n location = bindingsMapping[key],\r\n group = location.group,\r\n index = location.binding,\r\n type = binding.type,\r\n object = binding.object;\r\n let indexInGroupEntries = binding.indexInGroupEntries;\r\n\r\n let entries = this._bindGroupEntries[group];\r\n if (!entries) {\r\n entries = this._bindGroupEntries[group] = [];\r\n }\r\n\r\n switch (type) {\r\n case ComputeBindingType.Sampler: {\r\n const sampler = object as TextureSampler;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = this._cacheSampler.getSampler(sampler);\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: this._cacheSampler.getSampler(sampler),\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.Texture:\r\n case ComputeBindingType.TextureWithoutSampler: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n if (type === ComputeBindingType.Texture) {\r\n entries[indexInGroupEntries++].resource = this._cacheSampler.getSampler(texture._texture!);\r\n }\r\n entries[indexInGroupEntries].resource = hardwareTexture.view!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n if (type === ComputeBindingType.Texture) {\r\n entries.push({\r\n binding: index - 1,\r\n resource: this._cacheSampler.getSampler(texture._texture!),\r\n });\r\n }\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.view!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.StorageTexture: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if ((hardwareTexture.textureAdditionalUsages & WebGPUConstants.TextureUsage.StorageBinding) === 0) {\r\n Logger.Error(`computeDispatch: The texture (name=${texture.name}, uniqueId=${texture.uniqueId}) is not a storage texture!`, 50);\r\n }\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = hardwareTexture.viewForWriting!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.viewForWriting!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.UniformBuffer:\r\n case ComputeBindingType.StorageBuffer: {\r\n const buffer = type === ComputeBindingType.UniformBuffer ? object as UniformBuffer : object as StorageBuffer;\r\n const dataBuffer = buffer.getBuffer()!;\r\n const webgpuBuffer = dataBuffer.underlyingResource as GPUBuffer;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).buffer = webgpuBuffer;\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).size = dataBuffer.capacity;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: {\r\n buffer: webgpuBuffer,\r\n offset: 0,\r\n size: dataBuffer.capacity,\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < this._bindGroupEntries.length; ++i) {\r\n const entries = this._bindGroupEntries[i];\r\n if (!entries) {\r\n this._bindGroups[i] = undefined as any;\r\n continue;\r\n }\r\n this._bindGroups[i] = this._device.createBindGroup({\r\n layout: computePipeline.getBindGroupLayout(i),\r\n entries,\r\n });\r\n }\r\n\r\n this._bindGroups.length = this._bindGroupEntries.length;\r\n }\r\n\r\n return this._bindGroups;\r\n }\r\n\r\n constructor(device: GPUDevice, cacheSampler: WebGPUCacheSampler) {\r\n this._device = device;\r\n this._cacheSampler = cacheSampler;\r\n this.uniqueId = WebGPUComputeContext._Counter++;\r\n this._bindGroupEntries = [];\r\n this.clear();\r\n }\r\n\r\n public clear(): void {\r\n this._bindGroups = [];\r\n // Don't reset _bindGroupEntries if they have already been created, they are still ok even if we have to clear _bindGroups (the layout of the compute shader can't change once created)\r\n }\r\n}"]}
1
+ {"version":3,"file":"webgpuComputeContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuComputeContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { StorageBuffer } from \"../../Buffers/storageBuffer\";\r\nimport { IComputeContext } from \"../../Compute/IComputeContext\";\r\nimport { BaseTexture } from \"../../Materials/Textures/baseTexture\";\r\nimport { TextureSampler } from \"../../Materials/Textures/textureSampler\";\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { Logger } from \"../../Misc/logger\";\r\nimport { ComputeBindingList, ComputeBindingMapping, ComputeBindingType } from \"../Extensions/engine.computeShader\";\r\nimport { WebGPUCacheSampler } from \"./webgpuCacheSampler\";\r\nimport * as WebGPUConstants from './webgpuConstants';\r\nimport { WebGPUHardwareTexture } from \"./webgpuHardwareTexture\";\r\n\r\n/** @hidden */\r\nexport class WebGPUComputeContext implements IComputeContext {\r\n private static _Counter = 0;\r\n\r\n public readonly uniqueId: number;\r\n\r\n private _device: GPUDevice;\r\n private _cacheSampler: WebGPUCacheSampler;\r\n private _bindGroups: GPUBindGroup[];\r\n private _bindGroupEntries: GPUBindGroupEntry[][];\r\n\r\n public getBindGroups(bindings: ComputeBindingList, computePipeline: GPUComputePipeline, bindingsMapping?: ComputeBindingMapping): GPUBindGroup[] {\r\n if (!bindingsMapping) {\r\n throw new Error(\"WebGPUComputeContext.getBindGroups: bindingsMapping is required until browsers support reflection for wgsl shaders!\");\r\n }\r\n if (this._bindGroups.length === 0) {\r\n const bindGroupEntriesExist = this._bindGroupEntries.length > 0;\r\n for (const key in bindings) {\r\n const binding = bindings[key],\r\n location = bindingsMapping[key],\r\n group = location.group,\r\n index = location.binding,\r\n type = binding.type,\r\n object = binding.object;\r\n let indexInGroupEntries = binding.indexInGroupEntries;\r\n\r\n let entries = this._bindGroupEntries[group];\r\n if (!entries) {\r\n entries = this._bindGroupEntries[group] = [];\r\n }\r\n\r\n switch (type) {\r\n case ComputeBindingType.Sampler: {\r\n const sampler = object as TextureSampler;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = this._cacheSampler.getSampler(sampler);\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: this._cacheSampler.getSampler(sampler),\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.Texture:\r\n case ComputeBindingType.TextureWithoutSampler: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n if (type === ComputeBindingType.Texture) {\r\n entries[indexInGroupEntries++].resource = this._cacheSampler.getSampler(texture._texture!);\r\n }\r\n entries[indexInGroupEntries].resource = hardwareTexture.view!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n if (type === ComputeBindingType.Texture) {\r\n entries.push({\r\n binding: index - 1,\r\n resource: this._cacheSampler.getSampler(texture._texture!),\r\n });\r\n }\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.view!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.StorageTexture: {\r\n const texture = object as BaseTexture;\r\n const hardwareTexture = texture._texture!._hardwareTexture as WebGPUHardwareTexture;\r\n if ((hardwareTexture.textureAdditionalUsages & WebGPUConstants.TextureUsage.StorageBinding) === 0) {\r\n Logger.Error(`computeDispatch: The texture (name=${texture.name}, uniqueId=${texture.uniqueId}) is not a storage texture!`, 50);\r\n }\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n entries[indexInGroupEntries].resource = hardwareTexture.viewForWriting!;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: hardwareTexture.viewForWriting!,\r\n });\r\n }\r\n break;\r\n }\r\n\r\n case ComputeBindingType.UniformBuffer:\r\n case ComputeBindingType.StorageBuffer: {\r\n const buffer = type === ComputeBindingType.UniformBuffer ? object as UniformBuffer : object as StorageBuffer;\r\n const dataBuffer = buffer.getBuffer()!;\r\n const webgpuBuffer = dataBuffer.underlyingResource as GPUBuffer;\r\n if (indexInGroupEntries !== undefined && bindGroupEntriesExist) {\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).buffer = webgpuBuffer;\r\n (entries[indexInGroupEntries].resource as GPUBufferBinding).size = dataBuffer.capacity;\r\n } else {\r\n binding.indexInGroupEntries = entries.length;\r\n entries.push({\r\n binding: index,\r\n resource: {\r\n buffer: webgpuBuffer,\r\n offset: 0,\r\n size: dataBuffer.capacity,\r\n }\r\n });\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n\r\n for (let i = 0; i < this._bindGroupEntries.length; ++i) {\r\n const entries = this._bindGroupEntries[i];\r\n if (!entries) {\r\n this._bindGroups[i] = undefined as any;\r\n continue;\r\n }\r\n this._bindGroups[i] = this._device.createBindGroup({\r\n layout: computePipeline.getBindGroupLayout(i),\r\n entries,\r\n });\r\n }\r\n\r\n this._bindGroups.length = this._bindGroupEntries.length;\r\n }\r\n\r\n return this._bindGroups;\r\n }\r\n\r\n constructor(device: GPUDevice, cacheSampler: WebGPUCacheSampler) {\r\n this._device = device;\r\n this._cacheSampler = cacheSampler;\r\n this.uniqueId = WebGPUComputeContext._Counter++;\r\n this._bindGroupEntries = [];\r\n this.clear();\r\n }\r\n\r\n public clear(): void {\r\n this._bindGroups = [];\r\n // Don't reset _bindGroupEntries if they have already been created, they are still ok even if we have to clear _bindGroups (the layout of the compute shader can't change once created)\r\n }\r\n}"]}
@@ -341,7 +341,8 @@ export declare enum RenderPassTimestampLocation {
341
341
  }
342
342
  /** @hidden */
343
343
  export declare enum LoadOp {
344
- Load = "load"
344
+ Load = "load",
345
+ Clear = "clear"
345
346
  }
346
347
  /** @hidden */
347
348
  export declare enum StoreOp {
@@ -388,6 +388,7 @@ export var RenderPassTimestampLocation;
388
388
  export var LoadOp;
389
389
  (function (LoadOp) {
390
390
  LoadOp["Load"] = "load";
391
+ LoadOp["Clear"] = "clear";
391
392
  })(LoadOp || (LoadOp = {}));
392
393
  /** @hidden */
393
394
  export var StoreOp;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuConstants.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuConstants.ts"],"names":[],"mappings":"AAAA,cAAc;AACd,MAAM,CAAN,IAAY,eAEX;AAFD,WAAY,eAAe;IACvB,gCAAa,CAAA;AACjB,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;AAED,cAAc;AACd,WAAY,eAAe;IACvB,yCAAsB,CAAA;IACtB,uDAAoC,CAAA;AACxC,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACnB,sDAAuC,CAAA;IACvC,6DAA8C,CAAA;IAC9C,6DAA8C,CAAA;IAC9C,8DAA+C,CAAA;IAC/C,kEAAmD,CAAA;IACnD,kEAAmD,CAAA;IACnD,iDAAkC,CAAA;IAClC,gEAAiD,CAAA;AACrD,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAWX;AAXD,WAAY,WAAW;IACnB,mDAAW,CAAA;IACX,qDAAY,CAAA;IACZ,mDAAW,CAAA;IACX,mDAAW,CAAA;IACX,gDAAU,CAAA;IACV,kDAAW,CAAA;IACX,oDAAY,CAAA;IACZ,qDAAa,CAAA;IACb,uDAAc,CAAA;IACd,+DAAkB,CAAA;AACtB,CAAC,EAXW,WAAW,KAAX,WAAW,QAWtB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,qCAAQ,CAAA;IACR,uCAAS,CAAA;AACb,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,8BAAU,CAAA;IACV,8BAAU,CAAA;IACV,8BAAU,CAAA;AACd,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACpB,qDAAW,CAAA;IACX,qDAAW,CAAA;IACX,mEAAkB,CAAA;IAClB,mEAAkB,CAAA;IAClB,wEAAqB,CAAA;AACzB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,oBAOX;AAPD,WAAY,oBAAoB;IAC5B,kCAAU,CAAA;IACV,kCAAU,CAAA;IACV,6CAAqB,CAAA;IACrB,qCAAa,CAAA;IACb,gDAAwB,CAAA;IACxB,kCAAU,CAAA;AACd,CAAC,EAPW,oBAAoB,KAApB,oBAAoB,QAO/B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACrB,4BAAW,CAAA;IACX,6CAA4B,CAAA;IAC5B,yCAAwB,CAAA;AAC5B,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,aAyHX;AAzHD,WAAY,aAAa;IACrB,gBAAgB;IAChB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IAEjB,iBAAiB;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IAEnB,iBAAiB;IACjB,oCAAmB,CAAA;IACnB,oCAAmB,CAAA;IACnB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;IACzB,mDAAkC,CAAA;IAClC,0CAAyB,CAAA;IACzB,wCAAuB,CAAA;IACvB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;IACzB,mDAAkC,CAAA;IAClC,wBAAwB;IACxB,8CAA6B,CAAA;IAC7B,8CAA6B,CAAA;IAC7B,gDAA+B,CAAA;IAE/B,iBAAiB;IACjB,sCAAqB,CAAA;IACrB,sCAAqB,CAAA;IACrB,wCAAuB,CAAA;IACvB,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,4CAA2B,CAAA;IAE3B,kBAAkB;IAClB,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,4CAA2B,CAAA;IAE3B,4BAA4B;IAC5B,sCAAqB,CAAA;IACrB,8CAA6B,CAAA;IAC7B,4CAA2B,CAAA;IAC3B,6DAA4C,CAAA;IAC5C,8CAA6B,CAAA;IAE7B,mEAAmE;IACnE,mEAAmE;IACnE,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,0CAAyB,CAAA;IACzB,0CAAyB,CAAA;IACzB,4CAA2B,CAAA;IAC3B,4CAA2B,CAAA;IAC3B,kDAAiC,CAAA;IACjC,gDAA+B,CAAA;IAC/B,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IAExC,uEAAuE;IACvE,mEAAmE;IACnE,iDAAgC,CAAA;IAChC,0DAAyC,CAAA;IACzC,qDAAoC,CAAA;IACpC,8DAA6C,CAAA;IAC7C,mDAAkC,CAAA;IAClC,4DAA2C,CAAA;IAC3C,6CAA4B,CAAA;IAC5B,6CAA4B,CAAA;IAC5B,+CAA8B,CAAA;IAC9B,+CAA8B,CAAA;IAE9B,uEAAuE;IACvE,mEAAmE;IACnE,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,gDAA+B,CAAA;IAC/B,yDAAwC,CAAA;IACxC,kDAAiC,CAAA;IACjC,2DAA0C,CAAA;IAC1C,kDAAiC,CAAA;IACjC,2DAA0C,CAAA;IAC1C,kDAAiC,CAAA;IACjC,2DAA0C,CAAA;IAC1C,oDAAmC,CAAA;IACnC,6DAA4C,CAAA;IAC5C,oDAAmC,CAAA;IACnC,6DAA4C,CAAA;IAC5C,oDAAmC,CAAA;IACnC,6DAA4C,CAAA;IAE5C,kCAAkC;IAClC,+DAA8C,CAAA;IAE9C,kCAAkC;IAClC,+DAA8C,CAAA;AAClD,CAAC,EAzHW,aAAa,KAAb,aAAa,QAyHxB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,gCAAiB,CAAA;IACjB,6CAA8B,CAAA;AAClC,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IAClB,iCAAmB,CAAA;IACnB,+BAAiB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,eASX;AATD,WAAY,eAAe;IACvB,kCAAe,CAAA;IACf,gCAAa,CAAA;IACb,kCAAe,CAAA;IACf,2CAAwB,CAAA;IACxB,sCAAmB,CAAA;IACnB,yCAAsB,CAAA;IACtB,iDAA8B,CAAA;IAC9B,oCAAiB,CAAA;AACrB,CAAC,EATW,eAAe,KAAf,eAAe,QAS1B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACnB,iDAAU,CAAA;IACV,qDAAY,CAAA;IACZ,mDAAW,CAAA;AACf,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IACzB,wCAAmB,CAAA;IACnB,wCAAmB,CAAA;IACnB,0DAAqC,CAAA;AACzC,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC1B,6CAAuB,CAAA;IACvB,oDAA8B,CAAA;IAC9B,+CAAyB,CAAA;AAC7B,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,QAI7B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,oCAAe,CAAA;IACf,6DAAwC,CAAA;IACxC,oCAAe,CAAA;IACf,kCAAa,CAAA;IACb,kCAAa,CAAA;AACjB,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,oBAEX;AAFD,WAAY,oBAAoB;IAC5B,gDAAwB,CAAA;AAC5B,CAAC,EAFW,oBAAoB,KAApB,oBAAoB,QAE/B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,sBAIX;AAJD,WAAY,sBAAsB;IAC9B,yCAAe,CAAA;IACf,6CAAmB,CAAA;IACnB,uCAAa,CAAA;AACjB,CAAC,EAJW,sBAAsB,KAAtB,sBAAsB,QAIjC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,iBAMX;AAND,WAAY,iBAAiB;IACzB,6CAAwB,CAAA;IACxB,2CAAsB,CAAA;IACtB,6CAAwB,CAAA;IACxB,mDAA8B,CAAA;IAC9B,qDAAgC,CAAA;AACpC,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,QAM5B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,wBAAW,CAAA;IACX,sBAAS,CAAA;AACb,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAChB,yBAAa,CAAA;IACb,2BAAe,CAAA;IACf,yBAAa,CAAA;AACjB,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,UAMX;AAND,WAAY,UAAU;IAClB,yCAAO,CAAA;IACP,6CAAS,CAAA;IACT,2CAAQ,CAAA;IACR,6CAAS,CAAA;IACT,0CAAQ,CAAA;AACZ,CAAC,EANW,UAAU,KAAV,UAAU,QAMrB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAcX;AAdD,WAAY,WAAW;IACnB,4BAAa,CAAA;IACb,0BAAW,CAAA;IACX,0BAAW,CAAA;IACX,4CAA6B,CAAA;IAC7B,qCAAsB,CAAA;IACtB,uDAAwC,CAAA;IACxC,0BAAW,CAAA;IACX,4CAA6B,CAAA;IAC7B,qCAAsB,CAAA;IACtB,uDAAwC,CAAA;IACxC,wDAAyC,CAAA;IACzC,oCAAqB,CAAA;IACrB,sDAAuC,CAAA;AAC3C,CAAC,EAdW,WAAW,KAAX,WAAW,QActB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACtB,6BAAW,CAAA;IACX,uCAAqB,CAAA;IACrB,sDAAoC,CAAA;IACpC,6BAAW,CAAA;IACX,6BAAW,CAAA;AACf,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,gBASX;AATD,WAAY,gBAAgB;IACxB,iCAAa,CAAA;IACb,iCAAa,CAAA;IACb,uCAAmB,CAAA;IACnB,qCAAiB,CAAA;IACjB,sDAAkC,CAAA;IAClC,sDAAkC,CAAA;IAClC,oDAAgC,CAAA;IAChC,oDAAgC,CAAA;AACpC,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,QAS3B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;AACrB,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,YA+BX;AA/BD,WAAY,YAAY;IACpB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;IACnB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,mCAAmB,CAAA;IACnB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,iCAAiB,CAAA;IACjB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;IACrB,qCAAqB,CAAA;AACzB,CAAC,EA/BW,YAAY,KAAZ,YAAY,QA+BvB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACrB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;AACzB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,4BAGX;AAHD,WAAY,4BAA4B;IACpC,uDAAuB,CAAA;IACvB,2CAAW,CAAA;AACf,CAAC,EAHW,4BAA4B,KAA5B,4BAA4B,QAGvC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,2BAGX;AAHD,WAAY,2BAA2B;IACnC,sDAAuB,CAAA;IACvB,0CAAW,CAAA;AACf,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,QAGtC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,MAEX;AAFD,WAAY,MAAM;IACd,uBAAa,CAAA;AACjB,CAAC,EAFW,MAAM,KAAN,MAAM,QAEjB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,OAGX;AAHD,WAAY,OAAO;IACf,0BAAe,CAAA;IACf,8BAAmB,CAAA;AACvB,CAAC,EAHW,OAAO,KAAP,OAAO,QAGlB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,oCAAuB,CAAA;IACvB,oCAAuB,CAAA;AAC3B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,cAAc;AACd,MAAM,CAAN,IAAY,0BAGX;AAHD,WAAY,0BAA0B;IAClC,+CAAiB,CAAA;IACjB,6DAA+B,CAAA;AACnC,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,QAGrC;AAED,cAAc;AACd,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IACxB,2CAAuB,CAAA;AAC3B,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,cAAc;AACd,MAAM,CAAN,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,4CAA6B,CAAA;IAC7B,wCAAyB,CAAA;AAC7B,CAAC,EAHW,WAAW,KAAX,WAAW,QAGtB","sourcesContent":["/** @hidden */\nexport enum PowerPreference {\n SRGB = \"srgb\"\n}\n\n/** @hidden */\nexport enum PowerPreference {\n LowPower = \"low-power\",\n HighPerformance = \"high-performance\"\n}\n\n/** @hidden */\nexport enum FeatureName {\n DepthClipControl = \"depth-clip-control\",\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n Depth32FloatStencil8 = \"depth32float-stencil8\",\n TextureCompressionBC = \"texture-compression-bc\",\n TextureCompressionETC2 = \"texture-compression-etc2\",\n TextureCompressionASTC = \"texture-compression-astc\",\n TimestampQuery = \"timestamp-query\",\n IndirectFirstInstance = \"indirect-first-instance\",\n}\n\n/** @hidden */\nexport enum BufferUsage {\n MapRead = 1,\n MapWrite = 2,\n CopySrc = 4,\n CopyDst = 8,\n Index = 16,\n Vertex = 32,\n Uniform = 64,\n Storage = 128,\n Indirect = 256,\n QueryResolve = 512\n}\n\n/** @hidden */\nexport enum MapMode {\n Read = 1,\n Write = 2\n}\n\n/** @hidden */\nexport enum TextureDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureUsage {\n CopySrc = 1,\n CopyDst = 2,\n TextureBinding = 4,\n StorageBinding = 8,\n RenderAttachment = 16\n}\n\n/** @hidden */\nexport enum TextureViewDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E2dArray = \"2d-array\",\n Cube = \"cube\",\n CubeArray = \"cube-array\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureAspect {\n All = \"all\",\n StencilOnly = \"stencil-only\",\n DepthOnly = \"depth-only\"\n}\n\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @hidden\n */\nexport enum TextureFormat {\n // 8-bit formats\n R8Unorm = \"r8unorm\", // Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n R8Snorm = \"r8snorm\", // Red channel only. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n R8Uint = \"r8uint\", // Red channel only. 8 bit integer per channel. Unsigned in shader.\n R8Sint = \"r8sint\", // Red channel only. 8 bit integer per channel. Signed in shader.\n\n // 16-bit formats\n R16Uint = \"r16uint\", // Red channel only. 16 bit integer per channel. Unsigned in shader.\n R16Sint = \"r16sint\", // Red channel only. 16 bit integer per channel. Signed in shader.\n R16Float = \"r16float\", // Red channel only. 16 bit float per channel. Float in shader.\n RG8Unorm = \"rg8unorm\", // Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RG8Snorm = \"rg8snorm\", // Red and green channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RG8Uint = \"rg8uint\", // Red and green channels. 8 bit integer per channel. Unsigned in shader.\n RG8Sint = \"rg8sint\", // Red and green channels. 8 bit integer per channel. Signed in shader.\n\n // 32-bit formats\n R32Uint = \"r32uint\", // Red channel only. 32 bit integer per channel. Unsigned in shader.\n R32Sint = \"r32sint\", // Red channel only. 32 bit integer per channel. Signed in shader.\n R32Float = \"r32float\", // Red channel only. 32 bit float per channel. Float in shader.\n RG16Uint = \"rg16uint\", // Red and green channels. 16 bit integer per channel. Unsigned in shader.\n RG16Sint = \"rg16sint\", // Red and green channels. 16 bit integer per channel. Signed in shader.\n RG16Float = \"rg16float\", // Red and green channels. 16 bit float per channel. Float in shader.\n RGBA8Unorm = \"rgba8unorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RGBA8UnormSRGB = \"rgba8unorm-srgb\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n RGBA8Snorm = \"rgba8snorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RGBA8Uint = \"rgba8uint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.\n RGBA8Sint = \"rgba8sint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.\n BGRA8Unorm = \"bgra8unorm\", // Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n BGRA8UnormSRGB = \"bgra8unorm-srgb\", // Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n // Packed 32-bit formats\n RGB9E5UFloat = \"rgb9e5ufloat\", // Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent\n RGB10A2Unorm = \"rgb10a2unorm\", // Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.\n RG11B10UFloat = \"rg11b10ufloat\", // Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.\n\n // 64-bit formats\n RG32Uint = \"rg32uint\", // Red and green channels. 32 bit integer per channel. Unsigned in shader.\n RG32Sint = \"rg32sint\", // Red and green channels. 32 bit integer per channel. Signed in shader.\n RG32Float = \"rg32float\", // Red and green channels. 32 bit float per channel. Float in shader.\n RGBA16Uint = \"rgba16uint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.\n RGBA16Sint = \"rgba16sint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.\n RGBA16Float = \"rgba16float\", // Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.\n\n // 128-bit formats\n RGBA32Uint = \"rgba32uint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.\n RGBA32Sint = \"rgba32sint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.\n RGBA32Float = \"rgba32float\", // Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.\n\n // Depth and stencil formats\n Stencil8 = \"stencil8\",\n Depth16Unorm = \"depth16unorm\",\n Depth24Plus = \"depth24plus\", // Special depth format with at least 24 bit integer depth.\n Depth24PlusStencil8 = \"depth24plus-stencil8\", // Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.\n Depth32Float = \"depth32float\", // Special depth format with 32 bit floating point depth.\n\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n BC1RGBAUnorm = \"bc1-rgba-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC2RGBAUnorm = \"bc2-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC3RGBAUnorm = \"bc3-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC4RUnorm = \"bc4-r-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC4RSnorm = \"bc4-r-snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC5RGUnorm = \"bc5-rg-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC5RGSnorm = \"bc5-rg-snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC6HRGBUFloat = \"bc6h-rgb-ufloat\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader. Also known as BPTC (float).\n BC6HRGBFloat = \"bc6h-rgb-float\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader. Also known as BPTC (float).\n BC7RGBAUnorm = \"bc7-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ETC2RGB8Unorm = \"etc2-rgb8unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGBA8Unorm = \"etc2-rgba8unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n EACR11Unorm = \"eac-r11unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACR11Snorm = \"eac-r11snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACRG11Unorm = \"eac-rg11unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n EACRG11Snorm = \"eac-rg11snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ASTC4x4Unorm = \"astc-4x4-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4Unorm = \"astc-5x4-unorm\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5Unorm = \"astc-5x5-unorm\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5Unorm = \"astc-6x5-unorm\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6Unorm = \"astc-6x6-unorm\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5Unorm = \"astc-8x5-unorm\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6Unorm = \"astc-8x6-unorm\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8Unorm = \"astc-8x8-unorm\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5Unorm = \"astc-10x5-unorm\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6Unorm = \"astc-10x6-unorm\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8Unorm = \"astc-10x8-unorm\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10Unorm = \"astc-10x10-unorm\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10Unorm = \"astc-12x10-unorm\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12Unorm = \"astc-12x12-unorm\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n\n // \"depth24unorm-stencil8\" feature\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n\n // \"depth32float-stencil8\" feature\n Depth32FloatStencil8 = \"depth32float-stencil8\"\n}\n\n/** @hidden */\nexport enum AddressMode {\n ClampToEdge = \"clamp-to-edge\",\n Repeat = \"repeat\",\n MirrorRepeat = \"mirror-repeat\"\n}\n\n/** @hidden */\nexport enum FilterMode {\n Nearest = \"nearest\",\n Linear = \"linear\"\n}\n\n/** @hidden */\nexport enum CompareFunction {\n Never = \"never\",\n Less = \"less\",\n Equal = \"equal\",\n LessEqual = \"less-equal\",\n Greater = \"greater\",\n NotEqual = \"not-equal\",\n GreaterEqual = \"greater-equal\",\n Always = \"always\"\n}\n\n/** @hidden */\nexport enum ShaderStage {\n Vertex = 1,\n Fragment = 2,\n Compute = 4\n}\n\n/** @hidden */\nexport enum BufferBindingType {\n Uniform = \"uniform\",\n Storage = \"storage\",\n ReadOnlyStorage = \"read-only-storage\"\n}\n\n/** @hidden */\nexport enum SamplerBindingType {\n Filtering = \"filtering\",\n NonFiltering = \"non-filtering\",\n Comparison = \"comparison\"\n}\n\n/** @hidden */\nexport enum TextureSampleType {\n Float = \"float\",\n UnfilterableFloat = \"unfilterable-float\",\n Depth = \"depth\",\n Sint = \"sint\",\n Uint = \"uint\"\n}\n\n/** @hidden */\nexport enum StorageTextureAccess {\n WriteOnly = \"write-only\"\n}\n\n/** @hidden */\nexport enum CompilationMessageType {\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\"\n}\n\n/** @hidden */\nexport enum PrimitiveTopology {\n PointList = \"point-list\",\n LineList = \"line-list\",\n LineStrip = \"line-strip\",\n TriangleList = \"triangle-list\",\n TriangleStrip = \"triangle-strip\"\n}\n\n/** @hidden */\nexport enum FrontFace {\n CCW = \"ccw\",\n CW = \"cw\"\n}\n\n/** @hidden */\nexport enum CullMode {\n None = \"none\",\n Front = \"front\",\n Back = \"back\"\n}\n\n/** @hidden */\nexport enum ColorWrite {\n Red = 1,\n Green = 2,\n Blue = 4,\n Alpha = 8,\n All = 15\n}\n\n/** @hidden */\nexport enum BlendFactor {\n Zero = \"zero\",\n One = \"one\",\n Src = \"src\",\n OneMinusSrc = \"one-minus-src\",\n SrcAlpha = \"src-alpha\",\n OneMinusSrcAlpha = \"one-minus-src-alpha\",\n Dst = \"dst\",\n OneMinusDst = \"one-minus-dst\",\n DstAlpha = \"dst-alpha\",\n OneMinusDstAlpha = \"one-minus-dst-alpha\",\n SrcAlphaSaturated = \"src-alpha-saturated\",\n Constant = \"constant\",\n OneMinusConstant = \"one-minus-constant\"\n}\n\n/** @hidden */\nexport enum BlendOperation {\n Add = \"add\",\n Subtract = \"subtract\",\n ReverseSubtract = \"reverse-subtract\",\n Min = \"min\",\n Max = \"max\"\n}\n\n/** @hidden */\nexport enum StencilOperation {\n Keep = \"keep\",\n Zero = \"zero\",\n Replace = \"replace\",\n Invert = \"invert\",\n IncrementClamp = \"increment-clamp\",\n DecrementClamp = \"decrement-clamp\",\n IncrementWrap = \"increment-wrap\",\n DecrementWrap = \"decrement-wrap\"\n}\n\n/** @hidden */\nexport enum IndexFormat {\n Uint16 = \"uint16\",\n Uint32 = \"uint32\"\n}\n\n/** @hidden */\nexport enum VertexFormat {\n Uint8x2 = \"uint8x2\",\n Uint8x4 = \"uint8x4\",\n Sint8x2 = \"sint8x2\",\n Sint8x4 = \"sint8x4\",\n Unorm8x2 = \"unorm8x2\",\n Unorm8x4 = \"unorm8x4\",\n Snorm8x2 = \"snorm8x2\",\n Snorm8x4 = \"snorm8x4\",\n Uint16x2 = \"uint16x2\",\n Uint16x4 = \"uint16x4\",\n Sint16x2 = \"sint16x2\",\n Sint16x4 = \"sint16x4\",\n Unorm16x2 = \"unorm16x2\",\n Unorm16x4 = \"unorm16x4\",\n Snorm16x2 = \"snorm16x2\",\n Snorm16x4 = \"snorm16x4\",\n Float16x2 = \"float16x2\",\n Float16x4 = \"float16x4\",\n Float32 = \"float32\",\n Float32x2 = \"float32x2\",\n Float32x3 = \"float32x3\",\n Float32x4 = \"float32x4\",\n Uint32 = \"uint32\",\n Uint32x2 = \"uint32x2\",\n Uint32x3 = \"uint32x3\",\n Uint32x4 = \"uint32x4\",\n Sint32 = \"sint32\",\n Sint32x2 = \"sint32x2\",\n Sint32x3 = \"sint32x3\",\n Sint32x4 = \"sint32x4\"\n}\n\n/** @hidden */\nexport enum InputStepMode {\n Vertex = \"vertex\",\n Instance = \"instance\"\n}\n\n/** @hidden */\nexport enum ComputePassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum RenderPassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum LoadOp {\n Load = \"load\"\n}\n\n/** @hidden */\nexport enum StoreOp {\n Store = \"store\",\n Discard = \"discard\"\n}\n\n/** @hidden */\nexport enum QueryType {\n Occlusion = \"occlusion\",\n Timestamp = \"timestamp\"\n}\n\n/** @hidden */\nexport enum CanvasCompositingAlphaMode {\n Opaque = \"opaque\",\n Premultiplied = \"premultiplied\"\n}\n\n/** @hidden */\nexport enum DeviceLostReason {\n Destroyed = \"destroyed\"\n}\n\n/** @hidden */\nexport enum ErrorFilter {\n OutOfMemory = \"out-of-memory\",\n Validation = \"validation\"\n}\n"]}
1
+ {"version":3,"file":"webgpuConstants.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuConstants.ts"],"names":[],"mappings":"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","sourcesContent":["/** @hidden */\nexport enum PowerPreference {\n SRGB = \"srgb\"\n}\n\n/** @hidden */\nexport enum PowerPreference {\n LowPower = \"low-power\",\n HighPerformance = \"high-performance\"\n}\n\n/** @hidden */\nexport enum FeatureName {\n DepthClipControl = \"depth-clip-control\",\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n Depth32FloatStencil8 = \"depth32float-stencil8\",\n TextureCompressionBC = \"texture-compression-bc\",\n TextureCompressionETC2 = \"texture-compression-etc2\",\n TextureCompressionASTC = \"texture-compression-astc\",\n TimestampQuery = \"timestamp-query\",\n IndirectFirstInstance = \"indirect-first-instance\",\n}\n\n/** @hidden */\nexport enum BufferUsage {\n MapRead = 1,\n MapWrite = 2,\n CopySrc = 4,\n CopyDst = 8,\n Index = 16,\n Vertex = 32,\n Uniform = 64,\n Storage = 128,\n Indirect = 256,\n QueryResolve = 512\n}\n\n/** @hidden */\nexport enum MapMode {\n Read = 1,\n Write = 2\n}\n\n/** @hidden */\nexport enum TextureDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureUsage {\n CopySrc = 1,\n CopyDst = 2,\n TextureBinding = 4,\n StorageBinding = 8,\n RenderAttachment = 16\n}\n\n/** @hidden */\nexport enum TextureViewDimension {\n E1d = \"1d\",\n E2d = \"2d\",\n E2dArray = \"2d-array\",\n Cube = \"cube\",\n CubeArray = \"cube-array\",\n E3d = \"3d\"\n}\n\n/** @hidden */\nexport enum TextureAspect {\n All = \"all\",\n StencilOnly = \"stencil-only\",\n DepthOnly = \"depth-only\"\n}\n\n/**\n * Comments taken from https://github.com/gfx-rs/wgpu/blob/master/wgpu-types/src/lib.rs\n * @hidden\n */\nexport enum TextureFormat {\n // 8-bit formats\n R8Unorm = \"r8unorm\", // Red channel only. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n R8Snorm = \"r8snorm\", // Red channel only. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n R8Uint = \"r8uint\", // Red channel only. 8 bit integer per channel. Unsigned in shader.\n R8Sint = \"r8sint\", // Red channel only. 8 bit integer per channel. Signed in shader.\n\n // 16-bit formats\n R16Uint = \"r16uint\", // Red channel only. 16 bit integer per channel. Unsigned in shader.\n R16Sint = \"r16sint\", // Red channel only. 16 bit integer per channel. Signed in shader.\n R16Float = \"r16float\", // Red channel only. 16 bit float per channel. Float in shader.\n RG8Unorm = \"rg8unorm\", // Red and green channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RG8Snorm = \"rg8snorm\", // Red and green channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RG8Uint = \"rg8uint\", // Red and green channels. 8 bit integer per channel. Unsigned in shader.\n RG8Sint = \"rg8sint\", // Red and green channels. 8 bit integer per channel. Signed in shader.\n\n // 32-bit formats\n R32Uint = \"r32uint\", // Red channel only. 32 bit integer per channel. Unsigned in shader.\n R32Sint = \"r32sint\", // Red channel only. 32 bit integer per channel. Signed in shader.\n R32Float = \"r32float\", // Red channel only. 32 bit float per channel. Float in shader.\n RG16Uint = \"rg16uint\", // Red and green channels. 16 bit integer per channel. Unsigned in shader.\n RG16Sint = \"rg16sint\", // Red and green channels. 16 bit integer per channel. Signed in shader.\n RG16Float = \"rg16float\", // Red and green channels. 16 bit float per channel. Float in shader.\n RGBA8Unorm = \"rgba8unorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n RGBA8UnormSRGB = \"rgba8unorm-srgb\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n RGBA8Snorm = \"rgba8snorm\", // Red, green, blue, and alpha channels. 8 bit integer per channel. [-127, 127] converted to/from float [-1, 1] in shader.\n RGBA8Uint = \"rgba8uint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Unsigned in shader.\n RGBA8Sint = \"rgba8sint\", // Red, green, blue, and alpha channels. 8 bit integer per channel. Signed in shader.\n BGRA8Unorm = \"bgra8unorm\", // Blue, green, red, and alpha channels. 8 bit integer per channel. [0, 255] converted to/from float [0, 1] in shader.\n BGRA8UnormSRGB = \"bgra8unorm-srgb\", // Blue, green, red, and alpha channels. 8 bit integer per channel. Srgb-color [0, 255] converted to/from linear-color float [0, 1] in shader.\n // Packed 32-bit formats\n RGB9E5UFloat = \"rgb9e5ufloat\", // Packed unsigned float with 9 bits mantisa for each RGB component, then a common 5 bits exponent\n RGB10A2Unorm = \"rgb10a2unorm\", // Red, green, blue, and alpha channels. 10 bit integer for RGB channels, 2 bit integer for alpha channel. [0, 1023] ([0, 3] for alpha) converted to/from float [0, 1] in shader.\n RG11B10UFloat = \"rg11b10ufloat\", // Red, green, and blue channels. 11 bit float with no sign bit for RG channels. 10 bit float with no sign bit for blue channel. Float in shader.\n\n // 64-bit formats\n RG32Uint = \"rg32uint\", // Red and green channels. 32 bit integer per channel. Unsigned in shader.\n RG32Sint = \"rg32sint\", // Red and green channels. 32 bit integer per channel. Signed in shader.\n RG32Float = \"rg32float\", // Red and green channels. 32 bit float per channel. Float in shader.\n RGBA16Uint = \"rgba16uint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Unsigned in shader.\n RGBA16Sint = \"rgba16sint\", // Red, green, blue, and alpha channels. 16 bit integer per channel. Signed in shader.\n RGBA16Float = \"rgba16float\", // Red, green, blue, and alpha channels. 16 bit float per channel. Float in shader.\n\n // 128-bit formats\n RGBA32Uint = \"rgba32uint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Unsigned in shader.\n RGBA32Sint = \"rgba32sint\", // Red, green, blue, and alpha channels. 32 bit integer per channel. Signed in shader.\n RGBA32Float = \"rgba32float\", // Red, green, blue, and alpha channels. 32 bit float per channel. Float in shader.\n\n // Depth and stencil formats\n Stencil8 = \"stencil8\",\n Depth16Unorm = \"depth16unorm\",\n Depth24Plus = \"depth24plus\", // Special depth format with at least 24 bit integer depth.\n Depth24PlusStencil8 = \"depth24plus-stencil8\", // Special depth/stencil format with at least 24 bit integer depth and 8 bits integer stencil.\n Depth32Float = \"depth32float\", // Special depth format with 32 bit floating point depth.\n\n // BC compressed formats usable if \"texture-compression-bc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n BC1RGBAUnorm = \"bc1-rgba-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC1RGBAUnormSRGB = \"bc1-rgba-unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 4 color + alpha pallet. 5 bit R + 6 bit G + 5 bit B + 1 bit alpha. Also known as DXT1.\n BC2RGBAUnorm = \"bc2-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC2RGBAUnormSRGB = \"bc2-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet. 5 bit R + 6 bit G + 5 bit B + 4 bit alpha. Also known as DXT3.\n BC3RGBAUnorm = \"bc3-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC3RGBAUnormSRGB = \"bc3-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 4 color pallet + 8 alpha pallet. 5 bit R + 6 bit G + 5 bit B + 8 bit alpha. Also known as DXT5.\n BC4RUnorm = \"bc4-r-unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC4RSnorm = \"bc4-r-snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). 8 color pallet. 8 bit R. Also known as RGTC1.\n BC5RGUnorm = \"bc5-rg-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC5RGSnorm = \"bc5-rg-snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). 8 color red pallet + 8 color green pallet. 8 bit RG. Also known as RGTC2.\n BC6HRGBUFloat = \"bc6h-rgb-ufloat\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit unsigned float RGB. Float in shader. Also known as BPTC (float).\n BC6HRGBFloat = \"bc6h-rgb-float\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 16 bit signed float RGB. Float in shader. Also known as BPTC (float).\n BC7RGBAUnorm = \"bc7-rgba-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n BC7RGBAUnormSRGB = \"bc7-rgba-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Variable sized pallet. 8 bit integer RGBA. Also known as BPTC (unorm).\n\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ETC2RGB8Unorm = \"etc2-rgb8unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8UnormSRGB = \"etc2-rgb8unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB.\n ETC2RGB8A1Unorm = \"etc2-rgb8a1unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGB8A1UnormSRGB = \"etc2-rgb8a1unorm-srgb\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 8 bit integer RGB + 1 bit alpha.\n ETC2RGBA8Unorm = \"etc2-rgba8unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n ETC2RGBA8UnormSRGB = \"etc2-rgba8unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGB + 8 bit alpha.\n EACR11Unorm = \"eac-r11unorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACR11Snorm = \"eac-r11snorm\", // 4x4 block compressed texture. 8 bytes per block (4 bit/px). Complex pallet. 11 bit integer R.\n EACRG11Unorm = \"eac-rg11unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n EACRG11Snorm = \"eac-rg11snorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 11 bit integer R + 11 bit integer G.\n\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n ASTC4x4Unorm = \"astc-4x4-unorm\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC4x4UnormSRGB = \"astc-4x4-unorm-srgb\", // 4x4 block compressed texture. 16 bytes per block (8 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4Unorm = \"astc-5x4-unorm\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x4UnormSRGB = \"astc-5x4-unorm-srgb\", // 5x4 block compressed texture. 16 bytes per block (6.4 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5Unorm = \"astc-5x5-unorm\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC5x5UnormSRGB = \"astc-5x5-unorm-srgb\", // 5x5 block compressed texture. 16 bytes per block (5.12 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5Unorm = \"astc-6x5-unorm\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x5UnormSRGB = \"astc-6x5-unorm-srgb\", // 6x5 block compressed texture. 16 bytes per block (4.27 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6Unorm = \"astc-6x6-unorm\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC6x6UnormSRGB = \"astc-6x6-unorm-srgb\", // 6x6 block compressed texture. 16 bytes per block (3.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5Unorm = \"astc-8x5-unorm\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x5UnormSRGB = \"astc-8x5-unorm-srgb\", // 8x5 block compressed texture. 16 bytes per block (3.2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6Unorm = \"astc-8x6-unorm\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x6UnormSRGB = \"astc-8x6-unorm-srgb\", // 8x6 block compressed texture. 16 bytes per block (2.67 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8Unorm = \"astc-8x8-unorm\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC8x8UnormSRGB = \"astc-8x8-unorm-srgb\", // 8x8 block compressed texture. 16 bytes per block (2 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5Unorm = \"astc-10x5-unorm\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x5UnormSRGB = \"astc-10x5-unorm-srgb\", // 10x5 block compressed texture. 16 bytes per block (2.56 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6Unorm = \"astc-10x6-unorm\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x6UnormSRGB = \"astc-10x6-unorm-srgb\", // 10x6 block compressed texture. 16 bytes per block (2.13 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8Unorm = \"astc-10x8-unorm\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x8UnormSRGB = \"astc-10x8-unorm-srgb\", // 10x8 block compressed texture. 16 bytes per block (1.6 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10Unorm = \"astc-10x10-unorm\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC10x10UnormSRGB = \"astc-10x10-unorm-srgb\", // 10x10 block compressed texture. 16 bytes per block (1.28 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10Unorm = \"astc-12x10-unorm\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x10UnormSRGB = \"astc-12x10-unorm-srgb\", // 12x10 block compressed texture. 16 bytes per block (1.07 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12Unorm = \"astc-12x12-unorm\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n ASTC12x12UnormSRGB = \"astc-12x12-unorm-srgb\", // 12x12 block compressed texture. 16 bytes per block (0.89 bit/px). Complex pallet. 8 bit integer RGBA.\n\n // \"depth24unorm-stencil8\" feature\n Depth24UnormStencil8 = \"depth24unorm-stencil8\",\n\n // \"depth32float-stencil8\" feature\n Depth32FloatStencil8 = \"depth32float-stencil8\"\n}\n\n/** @hidden */\nexport enum AddressMode {\n ClampToEdge = \"clamp-to-edge\",\n Repeat = \"repeat\",\n MirrorRepeat = \"mirror-repeat\"\n}\n\n/** @hidden */\nexport enum FilterMode {\n Nearest = \"nearest\",\n Linear = \"linear\"\n}\n\n/** @hidden */\nexport enum CompareFunction {\n Never = \"never\",\n Less = \"less\",\n Equal = \"equal\",\n LessEqual = \"less-equal\",\n Greater = \"greater\",\n NotEqual = \"not-equal\",\n GreaterEqual = \"greater-equal\",\n Always = \"always\"\n}\n\n/** @hidden */\nexport enum ShaderStage {\n Vertex = 1,\n Fragment = 2,\n Compute = 4\n}\n\n/** @hidden */\nexport enum BufferBindingType {\n Uniform = \"uniform\",\n Storage = \"storage\",\n ReadOnlyStorage = \"read-only-storage\"\n}\n\n/** @hidden */\nexport enum SamplerBindingType {\n Filtering = \"filtering\",\n NonFiltering = \"non-filtering\",\n Comparison = \"comparison\"\n}\n\n/** @hidden */\nexport enum TextureSampleType {\n Float = \"float\",\n UnfilterableFloat = \"unfilterable-float\",\n Depth = \"depth\",\n Sint = \"sint\",\n Uint = \"uint\"\n}\n\n/** @hidden */\nexport enum StorageTextureAccess {\n WriteOnly = \"write-only\"\n}\n\n/** @hidden */\nexport enum CompilationMessageType {\n Error = \"error\",\n Warning = \"warning\",\n Info = \"info\"\n}\n\n/** @hidden */\nexport enum PrimitiveTopology {\n PointList = \"point-list\",\n LineList = \"line-list\",\n LineStrip = \"line-strip\",\n TriangleList = \"triangle-list\",\n TriangleStrip = \"triangle-strip\"\n}\n\n/** @hidden */\nexport enum FrontFace {\n CCW = \"ccw\",\n CW = \"cw\"\n}\n\n/** @hidden */\nexport enum CullMode {\n None = \"none\",\n Front = \"front\",\n Back = \"back\"\n}\n\n/** @hidden */\nexport enum ColorWrite {\n Red = 1,\n Green = 2,\n Blue = 4,\n Alpha = 8,\n All = 15\n}\n\n/** @hidden */\nexport enum BlendFactor {\n Zero = \"zero\",\n One = \"one\",\n Src = \"src\",\n OneMinusSrc = \"one-minus-src\",\n SrcAlpha = \"src-alpha\",\n OneMinusSrcAlpha = \"one-minus-src-alpha\",\n Dst = \"dst\",\n OneMinusDst = \"one-minus-dst\",\n DstAlpha = \"dst-alpha\",\n OneMinusDstAlpha = \"one-minus-dst-alpha\",\n SrcAlphaSaturated = \"src-alpha-saturated\",\n Constant = \"constant\",\n OneMinusConstant = \"one-minus-constant\"\n}\n\n/** @hidden */\nexport enum BlendOperation {\n Add = \"add\",\n Subtract = \"subtract\",\n ReverseSubtract = \"reverse-subtract\",\n Min = \"min\",\n Max = \"max\"\n}\n\n/** @hidden */\nexport enum StencilOperation {\n Keep = \"keep\",\n Zero = \"zero\",\n Replace = \"replace\",\n Invert = \"invert\",\n IncrementClamp = \"increment-clamp\",\n DecrementClamp = \"decrement-clamp\",\n IncrementWrap = \"increment-wrap\",\n DecrementWrap = \"decrement-wrap\"\n}\n\n/** @hidden */\nexport enum IndexFormat {\n Uint16 = \"uint16\",\n Uint32 = \"uint32\"\n}\n\n/** @hidden */\nexport enum VertexFormat {\n Uint8x2 = \"uint8x2\",\n Uint8x4 = \"uint8x4\",\n Sint8x2 = \"sint8x2\",\n Sint8x4 = \"sint8x4\",\n Unorm8x2 = \"unorm8x2\",\n Unorm8x4 = \"unorm8x4\",\n Snorm8x2 = \"snorm8x2\",\n Snorm8x4 = \"snorm8x4\",\n Uint16x2 = \"uint16x2\",\n Uint16x4 = \"uint16x4\",\n Sint16x2 = \"sint16x2\",\n Sint16x4 = \"sint16x4\",\n Unorm16x2 = \"unorm16x2\",\n Unorm16x4 = \"unorm16x4\",\n Snorm16x2 = \"snorm16x2\",\n Snorm16x4 = \"snorm16x4\",\n Float16x2 = \"float16x2\",\n Float16x4 = \"float16x4\",\n Float32 = \"float32\",\n Float32x2 = \"float32x2\",\n Float32x3 = \"float32x3\",\n Float32x4 = \"float32x4\",\n Uint32 = \"uint32\",\n Uint32x2 = \"uint32x2\",\n Uint32x3 = \"uint32x3\",\n Uint32x4 = \"uint32x4\",\n Sint32 = \"sint32\",\n Sint32x2 = \"sint32x2\",\n Sint32x3 = \"sint32x3\",\n Sint32x4 = \"sint32x4\"\n}\n\n/** @hidden */\nexport enum InputStepMode {\n Vertex = \"vertex\",\n Instance = \"instance\"\n}\n\n/** @hidden */\nexport enum ComputePassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum RenderPassTimestampLocation {\n Beginning = \"beginning\",\n End = \"end\"\n}\n\n/** @hidden */\nexport enum LoadOp {\n Load = \"load\",\n Clear = \"clear\"\n}\n\n/** @hidden */\nexport enum StoreOp {\n Store = \"store\",\n Discard = \"discard\"\n}\n\n/** @hidden */\nexport enum QueryType {\n Occlusion = \"occlusion\",\n Timestamp = \"timestamp\"\n}\n\n/** @hidden */\nexport enum CanvasCompositingAlphaMode {\n Opaque = \"opaque\",\n Premultiplied = \"premultiplied\"\n}\n\n/** @hidden */\nexport enum DeviceLostReason {\n Destroyed = \"destroyed\"\n}\n\n/** @hidden */\nexport enum ErrorFilter {\n OutOfMemory = \"out-of-memory\",\n Validation = \"validation\"\n}\n"]}
@@ -11,8 +11,8 @@ export declare class WebGPUDrawContext implements IDrawContext {
11
11
  buffers: {
12
12
  [name: string]: Nullable<WebGPUDataBuffer>;
13
13
  };
14
- materialContextUpdateId: number;
15
14
  indirectDrawBuffer?: GPUBuffer;
15
+ private _materialContextUpdateId;
16
16
  private _bufferManager;
17
17
  private _useInstancing;
18
18
  private _indirectDrawData?;
@@ -9,11 +9,11 @@ var WebGPUDrawContext = /** @class */ (function () {
9
9
  this.reset();
10
10
  }
11
11
  WebGPUDrawContext.prototype.isDirty = function (materialContextUpdateId) {
12
- return this._isDirty || this.materialContextUpdateId !== materialContextUpdateId;
12
+ return this._isDirty || this._materialContextUpdateId !== materialContextUpdateId;
13
13
  };
14
14
  WebGPUDrawContext.prototype.resetIsDirty = function (materialContextUpdateId) {
15
15
  this._isDirty = false;
16
- this.materialContextUpdateId = materialContextUpdateId;
16
+ this._materialContextUpdateId = materialContextUpdateId;
17
17
  };
18
18
  Object.defineProperty(WebGPUDrawContext.prototype, "useInstancing", {
19
19
  get: function () {
@@ -45,7 +45,7 @@ var WebGPUDrawContext = /** @class */ (function () {
45
45
  WebGPUDrawContext.prototype.reset = function () {
46
46
  this.buffers = {};
47
47
  this._isDirty = true;
48
- this.materialContextUpdateId = 0;
48
+ this._materialContextUpdateId = 0;
49
49
  this.fastBundle = undefined;
50
50
  this.bindGroups = undefined;
51
51
  };
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuDrawContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuDrawContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebGPUDataBuffer } from \"../../Meshes/WebGPU/webgpuDataBuffer\";\r\nimport { Nullable } from \"../../types\";\r\nimport { IDrawContext } from \"../IDrawContext\";\r\nimport { WebGPUBufferManager } from \"./webgpuBufferManager\";\r\nimport * as WebGPUConstants from './webgpuConstants';\r\n\r\n/** @hidden */\r\nexport class WebGPUDrawContext implements IDrawContext {\r\n private static _Counter = 0;\r\n\r\n public fastBundle?: GPURenderBundle; // used only when compatibilityMode==false (fast mode)\r\n public bindGroups?: GPUBindGroup[]; // cache of the bind groups. Will be reused for the next draw if isDirty==false (and materialContext.isDirty==false)\r\n\r\n public uniqueId: number;\r\n\r\n public buffers: { [name: string]: Nullable<WebGPUDataBuffer> };\r\n\r\n public materialContextUpdateId: number;\r\n public indirectDrawBuffer?: GPUBuffer;\r\n\r\n private _bufferManager: WebGPUBufferManager;\r\n private _useInstancing: boolean;\r\n private _indirectDrawData?: Uint32Array;\r\n private _currentInstanceCount: number;\r\n private _isDirty: boolean;\r\n\r\n public isDirty(materialContextUpdateId: number): boolean {\r\n return this._isDirty || this.materialContextUpdateId !== materialContextUpdateId;\r\n }\r\n\r\n public resetIsDirty(materialContextUpdateId: number): void {\r\n this._isDirty = false;\r\n this.materialContextUpdateId = materialContextUpdateId;\r\n }\r\n\r\n public get useInstancing() {\r\n return this._useInstancing;\r\n }\r\n\r\n public set useInstancing(use: boolean) {\r\n if (this._useInstancing === use) {\r\n return;\r\n }\r\n\r\n if (!use) {\r\n if (this.indirectDrawBuffer) {\r\n this._bufferManager.releaseBuffer(this.indirectDrawBuffer);\r\n }\r\n this.indirectDrawBuffer = undefined;\r\n this._indirectDrawData = undefined;\r\n } else {\r\n this.indirectDrawBuffer = this._bufferManager.createRawBuffer(40, WebGPUConstants.BufferUsage.CopyDst | WebGPUConstants.BufferUsage.Indirect);\r\n this._indirectDrawData = new Uint32Array(5);\r\n this._indirectDrawData[3] = 0;\r\n this._indirectDrawData[4] = 0;\r\n }\r\n\r\n this._useInstancing = use;\r\n this._currentInstanceCount = -1;\r\n }\r\n\r\n constructor(bufferManager: WebGPUBufferManager) {\r\n this._bufferManager = bufferManager;\r\n this.uniqueId = WebGPUDrawContext._Counter++;\r\n this._useInstancing = false;\r\n this._currentInstanceCount = 0;\r\n this.reset();\r\n }\r\n\r\n public reset(): void {\r\n this.buffers = {};\r\n this._isDirty = true;\r\n this.materialContextUpdateId = 0;\r\n this.fastBundle = undefined;\r\n this.bindGroups = undefined;\r\n }\r\n\r\n public setBuffer(name: string, buffer: Nullable<WebGPUDataBuffer>): void {\r\n this._isDirty ||= buffer?.uniqueId !== this.buffers[name]?.uniqueId;\r\n\r\n this.buffers[name] = buffer;\r\n }\r\n\r\n public setIndirectData(indexOrVertexCount: number, instanceCount: number, firstIndexOrVertex: number): void {\r\n if (instanceCount === this._currentInstanceCount || !this.indirectDrawBuffer || !this._indirectDrawData) {\r\n // The current buffer is already up to date so do nothing\r\n // Note that we only check for instanceCount and not indexOrVertexCount nor firstIndexOrVertex because those values\r\n // are supposed to not change during the lifetime of a draw context\r\n return;\r\n }\r\n this._currentInstanceCount = instanceCount;\r\n\r\n this._indirectDrawData![0] = indexOrVertexCount;\r\n this._indirectDrawData![1] = instanceCount;\r\n this._indirectDrawData![2] = firstIndexOrVertex;\r\n\r\n this._bufferManager.setRawData(this.indirectDrawBuffer, 0, this._indirectDrawData, 0, 20);\r\n }\r\n\r\n public dispose(): void {\r\n if (this.indirectDrawBuffer) {\r\n this._bufferManager.releaseBuffer(this.indirectDrawBuffer);\r\n this.indirectDrawBuffer = undefined;\r\n this._indirectDrawData = undefined;\r\n }\r\n this.fastBundle = undefined;\r\n this.bindGroups = undefined;\r\n this.buffers = undefined as any;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"webgpuDrawContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuDrawContext.ts"],"names":[],"mappings":"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","sourcesContent":["import { WebGPUDataBuffer } from \"../../Meshes/WebGPU/webgpuDataBuffer\";\r\nimport { Nullable } from \"../../types\";\r\nimport { IDrawContext } from \"../IDrawContext\";\r\nimport { WebGPUBufferManager } from \"./webgpuBufferManager\";\r\nimport * as WebGPUConstants from './webgpuConstants';\r\n\r\n/** @hidden */\r\nexport class WebGPUDrawContext implements IDrawContext {\r\n private static _Counter = 0;\r\n\r\n public fastBundle?: GPURenderBundle; // used only when compatibilityMode==false (fast mode)\r\n public bindGroups?: GPUBindGroup[]; // cache of the bind groups. Will be reused for the next draw if isDirty==false (and materialContext.isDirty==false)\r\n\r\n public uniqueId: number;\r\n\r\n public buffers: { [name: string]: Nullable<WebGPUDataBuffer> };\r\n\r\n public indirectDrawBuffer?: GPUBuffer;\r\n\r\n private _materialContextUpdateId: number;\r\n private _bufferManager: WebGPUBufferManager;\r\n private _useInstancing: boolean;\r\n private _indirectDrawData?: Uint32Array;\r\n private _currentInstanceCount: number;\r\n private _isDirty: boolean;\r\n\r\n public isDirty(materialContextUpdateId: number): boolean {\r\n return this._isDirty || this._materialContextUpdateId !== materialContextUpdateId;\r\n }\r\n\r\n public resetIsDirty(materialContextUpdateId: number): void {\r\n this._isDirty = false;\r\n this._materialContextUpdateId = materialContextUpdateId;\r\n }\r\n\r\n public get useInstancing() {\r\n return this._useInstancing;\r\n }\r\n\r\n public set useInstancing(use: boolean) {\r\n if (this._useInstancing === use) {\r\n return;\r\n }\r\n\r\n if (!use) {\r\n if (this.indirectDrawBuffer) {\r\n this._bufferManager.releaseBuffer(this.indirectDrawBuffer);\r\n }\r\n this.indirectDrawBuffer = undefined;\r\n this._indirectDrawData = undefined;\r\n } else {\r\n this.indirectDrawBuffer = this._bufferManager.createRawBuffer(40, WebGPUConstants.BufferUsage.CopyDst | WebGPUConstants.BufferUsage.Indirect);\r\n this._indirectDrawData = new Uint32Array(5);\r\n this._indirectDrawData[3] = 0;\r\n this._indirectDrawData[4] = 0;\r\n }\r\n\r\n this._useInstancing = use;\r\n this._currentInstanceCount = -1;\r\n }\r\n\r\n constructor(bufferManager: WebGPUBufferManager) {\r\n this._bufferManager = bufferManager;\r\n this.uniqueId = WebGPUDrawContext._Counter++;\r\n this._useInstancing = false;\r\n this._currentInstanceCount = 0;\r\n this.reset();\r\n }\r\n\r\n public reset(): void {\r\n this.buffers = {};\r\n this._isDirty = true;\r\n this._materialContextUpdateId = 0;\r\n this.fastBundle = undefined;\r\n this.bindGroups = undefined;\r\n }\r\n\r\n public setBuffer(name: string, buffer: Nullable<WebGPUDataBuffer>): void {\r\n this._isDirty ||= buffer?.uniqueId !== this.buffers[name]?.uniqueId;\r\n\r\n this.buffers[name] = buffer;\r\n }\r\n\r\n public setIndirectData(indexOrVertexCount: number, instanceCount: number, firstIndexOrVertex: number): void {\r\n if (instanceCount === this._currentInstanceCount || !this.indirectDrawBuffer || !this._indirectDrawData) {\r\n // The current buffer is already up to date so do nothing\r\n // Note that we only check for instanceCount and not indexOrVertexCount nor firstIndexOrVertex because those values\r\n // are supposed to not change during the lifetime of a draw context\r\n return;\r\n }\r\n this._currentInstanceCount = instanceCount;\r\n\r\n this._indirectDrawData![0] = indexOrVertexCount;\r\n this._indirectDrawData![1] = instanceCount;\r\n this._indirectDrawData![2] = firstIndexOrVertex;\r\n\r\n this._bufferManager.setRawData(this.indirectDrawBuffer, 0, this._indirectDrawData, 0, 20);\r\n }\r\n\r\n public dispose(): void {\r\n if (this.indirectDrawBuffer) {\r\n this._bufferManager.releaseBuffer(this.indirectDrawBuffer);\r\n this.indirectDrawBuffer = undefined;\r\n this._indirectDrawData = undefined;\r\n }\r\n this.fastBundle = undefined;\r\n this.bindGroups = undefined;\r\n this.buffers = undefined as any;\r\n }\r\n}\r\n"]}
@@ -44,7 +44,6 @@ export declare class WebGPUHardwareTexture implements HardwareTextureWrapper {
44
44
  textureAdditionalUsages: number;
45
45
  constructor(existingTexture?: Nullable<GPUTexture>);
46
46
  set(hardwareTexture: GPUTexture): void;
47
- setMSAATexture(hardwareTexture: GPUTexture): void;
48
47
  setUsage(textureSource: number, generateMipMaps: boolean, isCube: boolean, width: number, height: number): void;
49
48
  createView(descriptor?: GPUTextureViewDescriptor, createViewForWriting?: boolean): void;
50
49
  reset(): void;
@@ -33,9 +33,6 @@ var WebGPUHardwareTexture = /** @class */ (function () {
33
33
  WebGPUHardwareTexture.prototype.set = function (hardwareTexture) {
34
34
  this._webgpuTexture = hardwareTexture;
35
35
  };
36
- WebGPUHardwareTexture.prototype.setMSAATexture = function (hardwareTexture) {
37
- this._webgpuMSAATexture = hardwareTexture;
38
- };
39
36
  WebGPUHardwareTexture.prototype.setUsage = function (textureSource, generateMipMaps, isCube, width, height) {
40
37
  generateMipMaps = textureSource === InternalTextureSource.RenderTarget ? false : generateMipMaps;
41
38
  this.createView({
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuHardwareTexture.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuHardwareTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { HardwareTextureWrapper } from '../../Materials/Textures/hardwareTextureWrapper';\r\nimport { InternalTextureSource } from '../../Materials/Textures/internalTexture';\r\nimport { Scalar } from '../../Maths/math.scalar';\r\nimport { Nullable } from '../../types';\r\nimport * as WebGPUConstants from './webgpuConstants';\r\n\r\ndeclare type WebGPUBundleList = import(\"./webgpuBundleList\").WebGPUBundleList;\r\n\r\n/** @hidden */\r\nexport class WebGPUHardwareTexture implements HardwareTextureWrapper {\r\n\r\n /**\r\n * List of bundles collected in the snapshot rendering mode when the texture is a render target texture\r\n * The index in this array is the current layer we are rendering into\r\n * @hidden\r\n */\r\n public _bundleLists: WebGPUBundleList[];\r\n /**\r\n * Current layer we are rendering into when in snapshot rendering mode (if the texture is a render target texture)\r\n * @hidden\r\n */\r\n public _currentLayer: number;\r\n\r\n /**\r\n * Cache of RenderPassDescriptor and BindGroup used when generating mipmaps (see WebGPUTextureHelper.generateMipmaps)\r\n * @hidden\r\n */\r\n public _mipmapGenRenderPassDescr: GPURenderPassDescriptor[][];\r\n /** @hidden */\r\n public _mipmapGenBindGroup: GPUBindGroup[][];\r\n\r\n /**\r\n * Cache for the invertYPreMultiplyAlpha function (see WebGPUTextureHelper)\r\n * @hidden\r\n */\r\n public _copyInvertYTempTexture?: GPUTexture;\r\n /** @hidden */\r\n public _copyInvertYRenderPassDescr: GPURenderPassDescriptor;\r\n /** @hidden */\r\n public _copyInvertYBindGroup: GPUBindGroup;\r\n /** @hidden */\r\n public _copyInvertYBindGroupWithOfst: GPUBindGroup;\r\n\r\n private _webgpuTexture: Nullable<GPUTexture>;\r\n private _webgpuMSAATexture: Nullable<GPUTexture>;\r\n\r\n public get underlyingResource(): Nullable<GPUTexture> {\r\n return this._webgpuTexture;\r\n }\r\n\r\n public get msaaTexture(): Nullable<GPUTexture> {\r\n return this._webgpuMSAATexture;\r\n }\r\n\r\n public set msaaTexture(texture: Nullable<GPUTexture>) {\r\n this._webgpuMSAATexture = texture;\r\n }\r\n\r\n public view: Nullable<GPUTextureView>;\r\n public viewForWriting: Nullable<GPUTextureView>;\r\n public format: GPUTextureFormat = WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n public textureUsages = 0;\r\n public textureAdditionalUsages = 0;\r\n\r\n constructor(existingTexture: Nullable<GPUTexture> = null) {\r\n this._webgpuTexture = existingTexture;\r\n this._webgpuMSAATexture = null;\r\n this.view = null;\r\n this.viewForWriting = null;\r\n }\r\n\r\n public set(hardwareTexture: GPUTexture): void {\r\n this._webgpuTexture = hardwareTexture;\r\n }\r\n\r\n public setMSAATexture(hardwareTexture: GPUTexture): void {\r\n this._webgpuMSAATexture = hardwareTexture;\r\n }\r\n\r\n public setUsage(textureSource: number, generateMipMaps: boolean, isCube: boolean, width: number, height: number): void {\r\n generateMipMaps = textureSource === InternalTextureSource.RenderTarget ? false : generateMipMaps;\r\n\r\n this.createView({\r\n format: this.format,\r\n dimension: isCube ? WebGPUConstants.TextureViewDimension.Cube : WebGPUConstants.TextureViewDimension.E2d,\r\n mipLevelCount: generateMipMaps ? Scalar.ILog2(Math.max(width, height)) + 1 : 1,\r\n baseArrayLayer: 0,\r\n baseMipLevel: 0,\r\n arrayLayerCount: isCube ? 6 : 1,\r\n aspect: WebGPUConstants.TextureAspect.All\r\n });\r\n }\r\n\r\n public createView(descriptor?: GPUTextureViewDescriptor, createViewForWriting = false): void {\r\n this.view = this._webgpuTexture!.createView(descriptor);\r\n if (createViewForWriting && descriptor) {\r\n const saveNumMipMaps = descriptor.mipLevelCount;\r\n descriptor.mipLevelCount = 1;\r\n this.viewForWriting = this._webgpuTexture!.createView(descriptor);\r\n descriptor.mipLevelCount = saveNumMipMaps;\r\n }\r\n }\r\n\r\n public reset(): void {\r\n this._webgpuTexture = null;\r\n this._webgpuMSAATexture = null;\r\n this.view = null;\r\n this.viewForWriting = null;\r\n }\r\n\r\n public release(): void {\r\n this._webgpuTexture?.destroy();\r\n this._webgpuMSAATexture?.destroy();\r\n this._copyInvertYTempTexture?.destroy();\r\n this.reset();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"webgpuHardwareTexture.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuHardwareTexture.ts"],"names":[],"mappings":"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","sourcesContent":["import { HardwareTextureWrapper } from '../../Materials/Textures/hardwareTextureWrapper';\r\nimport { InternalTextureSource } from '../../Materials/Textures/internalTexture';\r\nimport { Scalar } from '../../Maths/math.scalar';\r\nimport { Nullable } from '../../types';\r\nimport * as WebGPUConstants from './webgpuConstants';\r\n\r\ndeclare type WebGPUBundleList = import(\"./webgpuBundleList\").WebGPUBundleList;\r\n\r\n/** @hidden */\r\nexport class WebGPUHardwareTexture implements HardwareTextureWrapper {\r\n\r\n /**\r\n * List of bundles collected in the snapshot rendering mode when the texture is a render target texture\r\n * The index in this array is the current layer we are rendering into\r\n * @hidden\r\n */\r\n public _bundleLists: WebGPUBundleList[];\r\n /**\r\n * Current layer we are rendering into when in snapshot rendering mode (if the texture is a render target texture)\r\n * @hidden\r\n */\r\n public _currentLayer: number;\r\n\r\n /**\r\n * Cache of RenderPassDescriptor and BindGroup used when generating mipmaps (see WebGPUTextureHelper.generateMipmaps)\r\n * @hidden\r\n */\r\n public _mipmapGenRenderPassDescr: GPURenderPassDescriptor[][];\r\n /** @hidden */\r\n public _mipmapGenBindGroup: GPUBindGroup[][];\r\n\r\n /**\r\n * Cache for the invertYPreMultiplyAlpha function (see WebGPUTextureHelper)\r\n * @hidden\r\n */\r\n public _copyInvertYTempTexture?: GPUTexture;\r\n /** @hidden */\r\n public _copyInvertYRenderPassDescr: GPURenderPassDescriptor;\r\n /** @hidden */\r\n public _copyInvertYBindGroup: GPUBindGroup;\r\n /** @hidden */\r\n public _copyInvertYBindGroupWithOfst: GPUBindGroup;\r\n\r\n private _webgpuTexture: Nullable<GPUTexture>;\r\n private _webgpuMSAATexture: Nullable<GPUTexture>;\r\n\r\n public get underlyingResource(): Nullable<GPUTexture> {\r\n return this._webgpuTexture;\r\n }\r\n\r\n public get msaaTexture(): Nullable<GPUTexture> {\r\n return this._webgpuMSAATexture;\r\n }\r\n\r\n public set msaaTexture(texture: Nullable<GPUTexture>) {\r\n this._webgpuMSAATexture = texture;\r\n }\r\n\r\n public view: Nullable<GPUTextureView>;\r\n public viewForWriting: Nullable<GPUTextureView>;\r\n public format: GPUTextureFormat = WebGPUConstants.TextureFormat.RGBA8Unorm;\r\n public textureUsages = 0;\r\n public textureAdditionalUsages = 0;\r\n\r\n constructor(existingTexture: Nullable<GPUTexture> = null) {\r\n this._webgpuTexture = existingTexture;\r\n this._webgpuMSAATexture = null;\r\n this.view = null;\r\n this.viewForWriting = null;\r\n }\r\n\r\n public set(hardwareTexture: GPUTexture): void {\r\n this._webgpuTexture = hardwareTexture;\r\n }\r\n\r\n public setUsage(textureSource: number, generateMipMaps: boolean, isCube: boolean, width: number, height: number): void {\r\n generateMipMaps = textureSource === InternalTextureSource.RenderTarget ? false : generateMipMaps;\r\n\r\n this.createView({\r\n format: this.format,\r\n dimension: isCube ? WebGPUConstants.TextureViewDimension.Cube : WebGPUConstants.TextureViewDimension.E2d,\r\n mipLevelCount: generateMipMaps ? Scalar.ILog2(Math.max(width, height)) + 1 : 1,\r\n baseArrayLayer: 0,\r\n baseMipLevel: 0,\r\n arrayLayerCount: isCube ? 6 : 1,\r\n aspect: WebGPUConstants.TextureAspect.All\r\n });\r\n }\r\n\r\n public createView(descriptor?: GPUTextureViewDescriptor, createViewForWriting = false): void {\r\n this.view = this._webgpuTexture!.createView(descriptor);\r\n if (createViewForWriting && descriptor) {\r\n const saveNumMipMaps = descriptor.mipLevelCount;\r\n descriptor.mipLevelCount = 1;\r\n this.viewForWriting = this._webgpuTexture!.createView(descriptor);\r\n descriptor.mipLevelCount = saveNumMipMaps;\r\n }\r\n }\r\n\r\n public reset(): void {\r\n this._webgpuTexture = null;\r\n this._webgpuMSAATexture = null;\r\n this.view = null;\r\n this.viewForWriting = null;\r\n }\r\n\r\n public release(): void {\r\n this._webgpuTexture?.destroy();\r\n this._webgpuMSAATexture?.destroy();\r\n this._copyInvertYTempTexture?.destroy();\r\n this.reset();\r\n }\r\n}\r\n"]}
@@ -6,14 +6,6 @@ import { WebGPUShaderProcessingContext } from './webgpuShaderProcessingContext';
6
6
  import { UniformBuffer } from "../../Materials/uniformBuffer";
7
7
  import { IMatrixLike, IVector2Like, IVector3Like, IVector4Like, IColor3Like, IColor4Like } from '../../Maths/math.like';
8
8
  /** @hidden */
9
- export interface IWebGPUPipelineContextVertexInputsCache {
10
- indexBuffer: Nullable<GPUBuffer>;
11
- indexOffset: number;
12
- vertexStartSlot: number;
13
- vertexBuffers: GPUBuffer[];
14
- vertexOffsets: number[];
15
- }
16
- /** @hidden */
17
9
  export interface IWebGPURenderPipelineStageDescriptor {
18
10
  vertexStage: GPUProgrammableStage;
19
11
  fragmentStage?: GPUProgrammableStage;
@@ -1 +1 @@
1
- {"version":3,"file":"webgpuPipelineContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuPipelineContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAkBhE,cAAc;AACd;IAyCI,+BAAY,uBAAsD,EAAE,MAAoB;QACpF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IApBD,sBAAW,0CAAO;aAAlB;YACI,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAED,sBAAW,0CAAO;aAAlB;YACI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,OAAO,IAAI,CAAC;aACf;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAYM,8DAA8B,GAArC,UAAsC,UAAkC;QACpE,iCAAiC;IACrC,CAAC;IAEM,sDAAsB,GAA7B,UAA8B,MAAc,EAAE,mBAA8C,EAAE,aAAuB,EAAE,QAA2D,EAAE,WAAqB,EAAE,QAAmC,EAAE,eAAyB,EAAE,UAAoB;QAC3R,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,6FAA6F;QAC7F,MAAM,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC9B,yCAAyC;QACzC,uCAAuC;QAEvC,IAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;QACrE,IAAI,KAAa,CAAC;QAClB,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,IAAM,MAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,IAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAElD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE;gBACzC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7B,KAAK,EAAE,CAAC;aACX;iBACI;gBACD,QAAQ,CAAC,MAAI,CAAC,GAAG,KAAK,CAAC;aAC1B;SACJ;QAED,KAAiB,UAA2C,EAA3C,KAAA,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,EAA3C,cAA2C,EAA3C,IAA2C,EAAE;YAAzD,IAAI,IAAI,SAAA;YACT,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;QAED,uDAAuD;QACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,wBAAwB,GAAa,EAAE,CAAC;QAC5C,IAAI,4BAA4B,GAAa,EAAE,CAAC;QAChD,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,IAAM,UAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,UAAQ,IAAI,CAAC,EAAE;gBACf,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,4BAA4B,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC;aAC/C;SACJ;QACD,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACjF,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,GAAG,4BAA4B,CAAC;IAC7F,CAAC;IAED,cAAc;IACd;;OAEG;IACI,kDAAkB,GAAzB;QACI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,EAAE;YACvD,OAAO;SACV;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpG,KAA4B,UAA6C,EAA7C,KAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAA7C,cAA6C,EAA7C,IAA6C,EAAE;YAAtE,IAAI,eAAe,SAAA;YACpB,IAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAClE,IAAM,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YAClF,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;SAC7E;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED;;QAEI;IACG,uCAAO,GAAd;QACI,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAChC;IACL,CAAC;IAED;;;;OAIG;IACI,sCAAM,GAAb,UAAc,WAAmB,EAAE,KAAa;QAC5C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACI,uCAAO,GAAd,UAAe,WAAmB,EAAE,CAAS,EAAE,CAAS;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACI,uCAAO,GAAd,UAAe,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC/D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,uCAAO,GAAd,UAAe,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC1E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACI,2CAAW,GAAlB,UAAmB,WAAmB,EAAE,KAAiB;QACrD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,KAAiB;QACtD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,KAAiB;QACtD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,KAAiB;QACtD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,wCAAQ,GAAf,UAAgB,WAAmB,EAAE,KAAe;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,KAAe;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,KAAe;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,KAAe;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,2CAAW,GAAlB,UAAmB,WAAmB,EAAE,QAAsB;QAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,MAAmB;QACrD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,MAAoB;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,MAAoB;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,wCAAQ,GAAf,UAAgB,WAAmB,EAAE,KAAa;QAC9C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,0CAAU,GAAjB,UAAkB,WAAmB,EAAE,OAAqB;QACxD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,CAAS,EAAE,CAAS;QACtD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,0CAAU,GAAjB,UAAkB,WAAmB,EAAE,OAAqB;QACxD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QACjE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,0CAAU,GAAjB,UAAkB,WAAmB,EAAE,OAAqB;QACxD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,MAAmB;QACrD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,MAAmB,EAAE,KAAa;QACpE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,+CAAe,GAAtB,UAAuB,WAAmB,EAAE,MAAmB;QAC3D,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,oDAAoB,GAA3B;;QACI,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC;IAChC,CAAC;IAEM,sDAAsB,GAA7B;;QACI,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC;IAClC,CAAC;IACL,4BAAC;AAAD,CAAC,AAzaD,IAyaC","sourcesContent":["import { IPipelineContext } from '../IPipelineContext';\r\nimport { Nullable } from '../../types';\r\nimport { WebGPUEngine } from '../webgpuEngine';\r\nimport { Effect } from '../../Materials/effect';\r\nimport { WebGPUShaderProcessingContext } from './webgpuShaderProcessingContext';\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { IMatrixLike, IVector2Like, IVector3Like, IVector4Like, IColor3Like, IColor4Like } from '../../Maths/math.like';\r\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor\";\r\n\r\n/** @hidden */\r\nexport interface IWebGPUPipelineContextVertexInputsCache {\r\n indexBuffer: Nullable<GPUBuffer>;\r\n indexOffset: number;\r\n\r\n vertexStartSlot: number;\r\n vertexBuffers: GPUBuffer[];\r\n vertexOffsets: number[];\r\n}\r\n\r\n/** @hidden */\r\nexport interface IWebGPURenderPipelineStageDescriptor {\r\n vertexStage: GPUProgrammableStage;\r\n fragmentStage?: GPUProgrammableStage;\r\n}\r\n\r\n/** @hidden */\r\nexport class WebGPUPipelineContext implements IPipelineContext {\r\n public engine: WebGPUEngine;\r\n\r\n public shaderProcessingContext: WebGPUShaderProcessingContext;\r\n\r\n protected _leftOverUniformsByName: { [name: string]: string };\r\n\r\n public sources: {\r\n vertex: string,\r\n fragment: string,\r\n rawVertex: string,\r\n rawFragment: string,\r\n };\r\n\r\n public stages: Nullable<IWebGPURenderPipelineStageDescriptor>;\r\n\r\n public bindGroupLayouts: GPUBindGroupLayout[];\r\n\r\n /**\r\n * Stores the left-over uniform buffer\r\n */\r\n public uniformBuffer: Nullable<UniformBuffer>;\r\n\r\n // Default implementation.\r\n public onCompiled?: () => void;\r\n\r\n public get isAsync() {\r\n return false;\r\n }\r\n\r\n public get isReady(): boolean {\r\n if (this.stages) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** @hidden */\r\n public _name: string;\r\n\r\n constructor(shaderProcessingContext: WebGPUShaderProcessingContext, engine: WebGPUEngine) {\r\n this._name = \"unnamed\";\r\n this.shaderProcessingContext = shaderProcessingContext;\r\n this._leftOverUniformsByName = {};\r\n this.engine = engine;\r\n }\r\n\r\n public _handlesSpectorRebuildCallback(onCompiled: (program: any) => void): void {\r\n // Nothing to do yet for spector.\r\n }\r\n\r\n public _fillEffectInformation(effect: Effect, uniformBuffersNames: { [key: string]: number }, uniformsNames: string[], uniforms: { [key: string]: Nullable<WebGLUniformLocation> }, samplerList: string[], samplers: { [key: string]: number }, attributesNames: string[], attributes: number[]) {\r\n const engine = this.engine;\r\n\r\n // Prevent Memory Leak by reducing the number of string, refer to the string instead of copy.\r\n effect._fragmentSourceCode = \"\";\r\n effect._vertexSourceCode = \"\";\r\n // this._fragmentSourceCodeOverride = \"\";\r\n // this._vertexSourceCodeOverride = \"\";\r\n\r\n const foundSamplers = this.shaderProcessingContext.availableTextures;\r\n let index: number;\r\n for (index = 0; index < samplerList.length; index++) {\r\n const name = samplerList[index];\r\n const sampler = foundSamplers[samplerList[index]];\r\n\r\n if (sampler == null || sampler == undefined) {\r\n samplerList.splice(index, 1);\r\n index--;\r\n }\r\n else {\r\n samplers[name] = index;\r\n }\r\n }\r\n\r\n for (let attr of engine.getAttributes(this, attributesNames)) {\r\n attributes.push(attr);\r\n }\r\n\r\n // Build the uniform layout for the left over uniforms.\r\n this.buildUniformLayout();\r\n\r\n let attributeNamesFromEffect: string[] = [];\r\n let attributeLocationsFromEffect: number[] = [];\r\n for (index = 0; index < attributesNames.length; index++) {\r\n const location = attributes[index];\r\n if (location >= 0) {\r\n attributeNamesFromEffect.push(attributesNames[index]);\r\n attributeLocationsFromEffect.push(location);\r\n }\r\n }\r\n this.shaderProcessingContext.attributeNamesFromEffect = attributeNamesFromEffect;\r\n this.shaderProcessingContext.attributeLocationsFromEffect = attributeLocationsFromEffect;\r\n }\r\n\r\n /** @hidden */\r\n /**\r\n * Build the uniform buffer used in the material.\r\n */\r\n public buildUniformLayout(): void {\r\n if (!this.shaderProcessingContext.leftOverUniforms.length) {\r\n return;\r\n }\r\n\r\n this.uniformBuffer = new UniformBuffer(this.engine, undefined, undefined, \"leftOver-\" + this._name);\r\n\r\n for (let leftOverUniform of this.shaderProcessingContext.leftOverUniforms) {\r\n const type = leftOverUniform.type.replace(/^(.*?)(<.*>)?$/, \"$1\");\r\n const size = WebGPUShaderProcessor.UniformSizes[type];\r\n this.uniformBuffer.addUniform(leftOverUniform.name, size, leftOverUniform.length);\r\n this._leftOverUniformsByName[leftOverUniform.name] = leftOverUniform.type;\r\n }\r\n\r\n this.uniformBuffer.create();\r\n }\r\n\r\n /**\r\n * Release all associated resources.\r\n **/\r\n public dispose() {\r\n if (this.uniformBuffer) {\r\n this.uniformBuffer.dispose();\r\n }\r\n }\r\n\r\n /**\r\n * Sets an integer value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value Value to be set.\r\n */\r\n public setInt(uniformName: string, value: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt(uniformName, value);\r\n }\r\n\r\n /**\r\n * Sets an int2 value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First int in int2.\r\n * @param y Second int in int2.\r\n */\r\n public setInt2(uniformName: string, x: number, y: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt2(uniformName, x, y);\r\n }\r\n\r\n /**\r\n * Sets an int3 value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First int in int3.\r\n * @param y Second int in int3.\r\n * @param z Third int in int3.\r\n */\r\n public setInt3(uniformName: string, x: number, y: number, z: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt3(uniformName, x, y, z);\r\n }\r\n\r\n /**\r\n * Sets an int4 value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First int in int4.\r\n * @param y Second int in int4.\r\n * @param z Third int in int4.\r\n * @param w Fourth int in int4.\r\n */\r\n public setInt4(uniformName: string, x: number, y: number, z: number, w: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt4(uniformName, x, y, z, w);\r\n }\r\n\r\n /**\r\n * Sets an int array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray(uniformName: string, array: Int32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray2(uniformName: string, array: Int32Array): void {\r\n this.setIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray3(uniformName: string, array: Int32Array): void {\r\n this.setIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray4(uniformName: string, array: Int32Array): void {\r\n this.setIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setArray(uniformName: string, array: number[]): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setArray2(uniformName: string, array: number[]): void {\r\n this.setArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n public setArray3(uniformName: string, array: number[]): void {\r\n this.setArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setArray4(uniformName: string, array: number[]): void {\r\n this.setArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets matrices on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrices matrices to be set.\r\n */\r\n public setMatrices(uniformName: string, matrices: Float32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrices(uniformName, matrices);\r\n }\r\n\r\n /**\r\n * Sets matrix on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n */\r\n public setMatrix(uniformName: string, matrix: IMatrixLike): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrix(uniformName, matrix);\r\n }\r\n\r\n /**\r\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n */\r\n public setMatrix3x3(uniformName: string, matrix: Float32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrix3x3(uniformName, matrix);\r\n }\r\n\r\n /**\r\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n */\r\n public setMatrix2x2(uniformName: string, matrix: Float32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrix2x2(uniformName, matrix);\r\n }\r\n\r\n /**\r\n * Sets a float on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value value to be set.\r\n * @returns this effect.\r\n */\r\n public setFloat(uniformName: string, value: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat(uniformName, value);\r\n }\r\n\r\n /**\r\n * Sets a Vector2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector2 vector2 to be set.\r\n */\r\n public setVector2(uniformName: string, vector2: IVector2Like): void {\r\n this.setFloat2(uniformName, vector2.x, vector2.y);\r\n }\r\n\r\n /**\r\n * Sets a float2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float2.\r\n * @param y Second float in float2.\r\n */\r\n public setFloat2(uniformName: string, x: number, y: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat2(uniformName, x, y);\r\n }\r\n\r\n /**\r\n * Sets a Vector3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector3 Value to be set.\r\n */\r\n public setVector3(uniformName: string, vector3: IVector3Like): void {\r\n this.setFloat3(uniformName, vector3.x, vector3.y, vector3.z);\r\n }\r\n\r\n /**\r\n * Sets a float3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float3.\r\n * @param y Second float in float3.\r\n * @param z Third float in float3.\r\n */\r\n public setFloat3(uniformName: string, x: number, y: number, z: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat3(uniformName, x, y, z);\r\n }\r\n\r\n /**\r\n * Sets a Vector4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector4 Value to be set.\r\n */\r\n public setVector4(uniformName: string, vector4: IVector4Like): void {\r\n this.setFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w);\r\n }\r\n\r\n /**\r\n * Sets a float4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float4.\r\n * @param y Second float in float4.\r\n * @param z Third float in float4.\r\n * @param w Fourth float in float4.\r\n * @returns this effect.\r\n */\r\n public setFloat4(uniformName: string, x: number, y: number, z: number, w: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat4(uniformName, x, y, z, w);\r\n }\r\n\r\n /**\r\n * Sets a Color3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n */\r\n public setColor3(uniformName: string, color3: IColor3Like): void {\r\n this.setFloat3(uniformName, color3.r, color3.g, color3.b);\r\n }\r\n\r\n /**\r\n * Sets a Color4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n * @param alpha Alpha value to be set.\r\n */\r\n public setColor4(uniformName: string, color3: IColor3Like, alpha: number): void {\r\n this.setFloat4(uniformName, color3.r, color3.g, color3.b, alpha);\r\n }\r\n\r\n /**\r\n * Sets a Color4 on a uniform variable\r\n * @param uniformName defines the name of the variable\r\n * @param color4 defines the value to be set\r\n */\r\n public setDirectColor4(uniformName: string, color4: IColor4Like): void {\r\n this.setFloat4(uniformName, color4.r, color4.g, color4.b, color4.a);\r\n }\r\n\r\n public _getVertexShaderCode(): string | null {\r\n return this.sources?.vertex;\r\n }\r\n\r\n public _getFragmentShaderCode(): string | null {\r\n return this.sources?.fragment;\r\n }\r\n}"]}
1
+ {"version":3,"file":"webgpuPipelineContext.js","sourceRoot":"","sources":["../../../../sourceES6/core/Engines/WebGPU/webgpuPipelineContext.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAQhE,cAAc;AACd;IAyCI,+BAAY,uBAAsD,EAAE,MAAoB;QACpF,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;QACvD,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACzB,CAAC;IApBD,sBAAW,0CAAO;aAAlB;YACI,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAED,sBAAW,0CAAO;aAAlB;YACI,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,OAAO,IAAI,CAAC;aACf;YAED,OAAO,KAAK,CAAC;QACjB,CAAC;;;OAAA;IAYM,8DAA8B,GAArC,UAAsC,UAAkC;QACpE,iCAAiC;IACrC,CAAC;IAEM,sDAAsB,GAA7B,UAA8B,MAAc,EAAE,mBAA8C,EAAE,aAAuB,EAAE,QAA2D,EAAE,WAAqB,EAAE,QAAmC,EAAE,eAAyB,EAAE,UAAoB;QAC3R,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,6FAA6F;QAC7F,MAAM,CAAC,mBAAmB,GAAG,EAAE,CAAC;QAChC,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC;QAC9B,yCAAyC;QACzC,uCAAuC;QAEvC,IAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;QACrE,IAAI,KAAa,CAAC;QAClB,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACjD,IAAM,MAAI,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAChC,IAAM,OAAO,GAAG,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YAElD,IAAI,OAAO,IAAI,IAAI,IAAI,OAAO,IAAI,SAAS,EAAE;gBACzC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC7B,KAAK,EAAE,CAAC;aACX;iBACI;gBACD,QAAQ,CAAC,MAAI,CAAC,GAAG,KAAK,CAAC;aAC1B;SACJ;QAED,KAAiB,UAA2C,EAA3C,KAAA,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,EAA3C,cAA2C,EAA3C,IAA2C,EAAE;YAAzD,IAAI,IAAI,SAAA;YACT,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;QAED,uDAAuD;QACvD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE1B,IAAI,wBAAwB,GAAa,EAAE,CAAC;QAC5C,IAAI,4BAA4B,GAAa,EAAE,CAAC;QAChD,KAAK,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACrD,IAAM,UAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,UAAQ,IAAI,CAAC,EAAE;gBACf,wBAAwB,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,4BAA4B,CAAC,IAAI,CAAC,UAAQ,CAAC,CAAC;aAC/C;SACJ;QACD,IAAI,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;QACjF,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,GAAG,4BAA4B,CAAC;IAC7F,CAAC;IAED,cAAc;IACd;;OAEG;IACI,kDAAkB,GAAzB;QACI,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,MAAM,EAAE;YACvD,OAAO;SACV;QAED,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAEpG,KAA4B,UAA6C,EAA7C,KAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAA7C,cAA6C,EAA7C,IAA6C,EAAE;YAAtE,IAAI,eAAe,SAAA;YACpB,IAAM,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;YAClE,IAAM,IAAI,GAAG,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YAClF,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC;SAC7E;QAED,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IAChC,CAAC;IAED;;QAEI;IACG,uCAAO,GAAd;QACI,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;SAChC;IACL,CAAC;IAED;;;;OAIG;IACI,sCAAM,GAAb,UAAc,WAAmB,EAAE,KAAa;QAC5C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACI,uCAAO,GAAd,UAAe,WAAmB,EAAE,CAAS,EAAE,CAAS;QACpD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACI,uCAAO,GAAd,UAAe,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC/D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,uCAAO,GAAd,UAAe,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC1E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACI,2CAAW,GAAlB,UAAmB,WAAmB,EAAE,KAAiB;QACrD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,KAAiB;QACtD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,KAAiB;QACtD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,KAAiB;QACtD,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,wCAAQ,GAAf,UAAgB,WAAmB,EAAE,KAAe;QAChD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,KAAe;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,KAAe;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,KAAe;QACjD,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACI,2CAAW,GAAlB,UAAmB,WAAmB,EAAE,QAAsB;QAC1D,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,MAAmB;QACrD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,MAAoB;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,4CAAY,GAAnB,UAAoB,WAAmB,EAAE,MAAoB;QACzD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;OAKG;IACI,wCAAQ,GAAf,UAAgB,WAAmB,EAAE,KAAa;QAC9C,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,0CAAU,GAAjB,UAAkB,WAAmB,EAAE,OAAqB;QACxD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,CAAS,EAAE,CAAS;QACtD,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACI,0CAAU,GAAjB,UAAkB,WAAmB,EAAE,OAAqB;QACxD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;OAMG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QACjE,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;;OAIG;IACI,0CAAU,GAAjB,UAAkB,WAAmB,EAAE,OAAqB;QACxD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;OAQG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAS;QAC5E,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,WAAW,CAAC,EAAE;YACnE,OAAO;SACV;QACD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,MAAmB;QACrD,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;OAKG;IACI,yCAAS,GAAhB,UAAiB,WAAmB,EAAE,MAAmB,EAAE,KAAa;QACpE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACI,+CAAe,GAAtB,UAAuB,WAAmB,EAAE,MAAmB;QAC3D,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IAEM,oDAAoB,GAA3B;;QACI,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAE,MAAM,CAAC;IAChC,CAAC;IAEM,sDAAsB,GAA7B;;QACI,OAAO,MAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC;IAClC,CAAC;IACL,4BAAC;AAAD,CAAC,AAzaD,IAyaC","sourcesContent":["import { IPipelineContext } from '../IPipelineContext';\r\nimport { Nullable } from '../../types';\r\nimport { WebGPUEngine } from '../webgpuEngine';\r\nimport { Effect } from '../../Materials/effect';\r\nimport { WebGPUShaderProcessingContext } from './webgpuShaderProcessingContext';\r\nimport { UniformBuffer } from \"../../Materials/uniformBuffer\";\r\nimport { IMatrixLike, IVector2Like, IVector3Like, IVector4Like, IColor3Like, IColor4Like } from '../../Maths/math.like';\r\nimport { WebGPUShaderProcessor } from \"./webgpuShaderProcessor\";\r\n\r\n/** @hidden */\r\nexport interface IWebGPURenderPipelineStageDescriptor {\r\n vertexStage: GPUProgrammableStage;\r\n fragmentStage?: GPUProgrammableStage;\r\n}\r\n\r\n/** @hidden */\r\nexport class WebGPUPipelineContext implements IPipelineContext {\r\n public engine: WebGPUEngine;\r\n\r\n public shaderProcessingContext: WebGPUShaderProcessingContext;\r\n\r\n protected _leftOverUniformsByName: { [name: string]: string };\r\n\r\n public sources: {\r\n vertex: string,\r\n fragment: string,\r\n rawVertex: string,\r\n rawFragment: string,\r\n };\r\n\r\n public stages: Nullable<IWebGPURenderPipelineStageDescriptor>;\r\n\r\n public bindGroupLayouts: GPUBindGroupLayout[];\r\n\r\n /**\r\n * Stores the left-over uniform buffer\r\n */\r\n public uniformBuffer: Nullable<UniformBuffer>;\r\n\r\n // Default implementation.\r\n public onCompiled?: () => void;\r\n\r\n public get isAsync() {\r\n return false;\r\n }\r\n\r\n public get isReady(): boolean {\r\n if (this.stages) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n /** @hidden */\r\n public _name: string;\r\n\r\n constructor(shaderProcessingContext: WebGPUShaderProcessingContext, engine: WebGPUEngine) {\r\n this._name = \"unnamed\";\r\n this.shaderProcessingContext = shaderProcessingContext;\r\n this._leftOverUniformsByName = {};\r\n this.engine = engine;\r\n }\r\n\r\n public _handlesSpectorRebuildCallback(onCompiled: (program: any) => void): void {\r\n // Nothing to do yet for spector.\r\n }\r\n\r\n public _fillEffectInformation(effect: Effect, uniformBuffersNames: { [key: string]: number }, uniformsNames: string[], uniforms: { [key: string]: Nullable<WebGLUniformLocation> }, samplerList: string[], samplers: { [key: string]: number }, attributesNames: string[], attributes: number[]) {\r\n const engine = this.engine;\r\n\r\n // Prevent Memory Leak by reducing the number of string, refer to the string instead of copy.\r\n effect._fragmentSourceCode = \"\";\r\n effect._vertexSourceCode = \"\";\r\n // this._fragmentSourceCodeOverride = \"\";\r\n // this._vertexSourceCodeOverride = \"\";\r\n\r\n const foundSamplers = this.shaderProcessingContext.availableTextures;\r\n let index: number;\r\n for (index = 0; index < samplerList.length; index++) {\r\n const name = samplerList[index];\r\n const sampler = foundSamplers[samplerList[index]];\r\n\r\n if (sampler == null || sampler == undefined) {\r\n samplerList.splice(index, 1);\r\n index--;\r\n }\r\n else {\r\n samplers[name] = index;\r\n }\r\n }\r\n\r\n for (let attr of engine.getAttributes(this, attributesNames)) {\r\n attributes.push(attr);\r\n }\r\n\r\n // Build the uniform layout for the left over uniforms.\r\n this.buildUniformLayout();\r\n\r\n let attributeNamesFromEffect: string[] = [];\r\n let attributeLocationsFromEffect: number[] = [];\r\n for (index = 0; index < attributesNames.length; index++) {\r\n const location = attributes[index];\r\n if (location >= 0) {\r\n attributeNamesFromEffect.push(attributesNames[index]);\r\n attributeLocationsFromEffect.push(location);\r\n }\r\n }\r\n this.shaderProcessingContext.attributeNamesFromEffect = attributeNamesFromEffect;\r\n this.shaderProcessingContext.attributeLocationsFromEffect = attributeLocationsFromEffect;\r\n }\r\n\r\n /** @hidden */\r\n /**\r\n * Build the uniform buffer used in the material.\r\n */\r\n public buildUniformLayout(): void {\r\n if (!this.shaderProcessingContext.leftOverUniforms.length) {\r\n return;\r\n }\r\n\r\n this.uniformBuffer = new UniformBuffer(this.engine, undefined, undefined, \"leftOver-\" + this._name);\r\n\r\n for (let leftOverUniform of this.shaderProcessingContext.leftOverUniforms) {\r\n const type = leftOverUniform.type.replace(/^(.*?)(<.*>)?$/, \"$1\");\r\n const size = WebGPUShaderProcessor.UniformSizes[type];\r\n this.uniformBuffer.addUniform(leftOverUniform.name, size, leftOverUniform.length);\r\n this._leftOverUniformsByName[leftOverUniform.name] = leftOverUniform.type;\r\n }\r\n\r\n this.uniformBuffer.create();\r\n }\r\n\r\n /**\r\n * Release all associated resources.\r\n **/\r\n public dispose() {\r\n if (this.uniformBuffer) {\r\n this.uniformBuffer.dispose();\r\n }\r\n }\r\n\r\n /**\r\n * Sets an integer value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value Value to be set.\r\n */\r\n public setInt(uniformName: string, value: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt(uniformName, value);\r\n }\r\n\r\n /**\r\n * Sets an int2 value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First int in int2.\r\n * @param y Second int in int2.\r\n */\r\n public setInt2(uniformName: string, x: number, y: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt2(uniformName, x, y);\r\n }\r\n\r\n /**\r\n * Sets an int3 value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First int in int3.\r\n * @param y Second int in int3.\r\n * @param z Third int in int3.\r\n */\r\n public setInt3(uniformName: string, x: number, y: number, z: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt3(uniformName, x, y, z);\r\n }\r\n\r\n /**\r\n * Sets an int4 value on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First int in int4.\r\n * @param y Second int in int4.\r\n * @param z Third int in int4.\r\n * @param w Fourth int in int4.\r\n */\r\n public setInt4(uniformName: string, x: number, y: number, z: number, w: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateInt4(uniformName, x, y, z, w);\r\n }\r\n\r\n /**\r\n * Sets an int array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray(uniformName: string, array: Int32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an int array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray2(uniformName: string, array: Int32Array): void {\r\n this.setIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an int array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray3(uniformName: string, array: Int32Array): void {\r\n this.setIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an int array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setIntArray4(uniformName: string, array: Int32Array): void {\r\n this.setIntArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setArray(uniformName: string, array: number[]): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array 2 on a uniform variable. (Array is specified as single array eg. [1,2,3,4] will result in [[1,2],[3,4]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setArray2(uniformName: string, array: number[]): void {\r\n this.setArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array 3 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6] will result in [[1,2,3],[4,5,6]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n * @returns this effect.\r\n */\r\n public setArray3(uniformName: string, array: number[]): void {\r\n this.setArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets an array 4 on a uniform variable. (Array is specified as single array eg. [1,2,3,4,5,6,7,8] will result in [[1,2,3,4],[5,6,7,8]] in the shader)\r\n * @param uniformName Name of the variable.\r\n * @param array array to be set.\r\n */\r\n public setArray4(uniformName: string, array: number[]): void {\r\n this.setArray(uniformName, array);\r\n }\r\n\r\n /**\r\n * Sets matrices on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrices matrices to be set.\r\n */\r\n public setMatrices(uniformName: string, matrices: Float32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrices(uniformName, matrices);\r\n }\r\n\r\n /**\r\n * Sets matrix on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n */\r\n public setMatrix(uniformName: string, matrix: IMatrixLike): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrix(uniformName, matrix);\r\n }\r\n\r\n /**\r\n * Sets a 3x3 matrix on a uniform variable. (Specified as [1,2,3,4,5,6,7,8,9] will result in [1,2,3][4,5,6][7,8,9] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n */\r\n public setMatrix3x3(uniformName: string, matrix: Float32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrix3x3(uniformName, matrix);\r\n }\r\n\r\n /**\r\n * Sets a 2x2 matrix on a uniform variable. (Specified as [1,2,3,4] will result in [1,2][3,4] matrix)\r\n * @param uniformName Name of the variable.\r\n * @param matrix matrix to be set.\r\n */\r\n public setMatrix2x2(uniformName: string, matrix: Float32Array): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateMatrix2x2(uniformName, matrix);\r\n }\r\n\r\n /**\r\n * Sets a float on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param value value to be set.\r\n * @returns this effect.\r\n */\r\n public setFloat(uniformName: string, value: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat(uniformName, value);\r\n }\r\n\r\n /**\r\n * Sets a Vector2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector2 vector2 to be set.\r\n */\r\n public setVector2(uniformName: string, vector2: IVector2Like): void {\r\n this.setFloat2(uniformName, vector2.x, vector2.y);\r\n }\r\n\r\n /**\r\n * Sets a float2 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float2.\r\n * @param y Second float in float2.\r\n */\r\n public setFloat2(uniformName: string, x: number, y: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat2(uniformName, x, y);\r\n }\r\n\r\n /**\r\n * Sets a Vector3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector3 Value to be set.\r\n */\r\n public setVector3(uniformName: string, vector3: IVector3Like): void {\r\n this.setFloat3(uniformName, vector3.x, vector3.y, vector3.z);\r\n }\r\n\r\n /**\r\n * Sets a float3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float3.\r\n * @param y Second float in float3.\r\n * @param z Third float in float3.\r\n */\r\n public setFloat3(uniformName: string, x: number, y: number, z: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat3(uniformName, x, y, z);\r\n }\r\n\r\n /**\r\n * Sets a Vector4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param vector4 Value to be set.\r\n */\r\n public setVector4(uniformName: string, vector4: IVector4Like): void {\r\n this.setFloat4(uniformName, vector4.x, vector4.y, vector4.z, vector4.w);\r\n }\r\n\r\n /**\r\n * Sets a float4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param x First float in float4.\r\n * @param y Second float in float4.\r\n * @param z Third float in float4.\r\n * @param w Fourth float in float4.\r\n * @returns this effect.\r\n */\r\n public setFloat4(uniformName: string, x: number, y: number, z: number, w: number): void {\r\n if (!this.uniformBuffer || !this._leftOverUniformsByName[uniformName]) {\r\n return;\r\n }\r\n this.uniformBuffer.updateFloat4(uniformName, x, y, z, w);\r\n }\r\n\r\n /**\r\n * Sets a Color3 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n */\r\n public setColor3(uniformName: string, color3: IColor3Like): void {\r\n this.setFloat3(uniformName, color3.r, color3.g, color3.b);\r\n }\r\n\r\n /**\r\n * Sets a Color4 on a uniform variable.\r\n * @param uniformName Name of the variable.\r\n * @param color3 Value to be set.\r\n * @param alpha Alpha value to be set.\r\n */\r\n public setColor4(uniformName: string, color3: IColor3Like, alpha: number): void {\r\n this.setFloat4(uniformName, color3.r, color3.g, color3.b, alpha);\r\n }\r\n\r\n /**\r\n * Sets a Color4 on a uniform variable\r\n * @param uniformName defines the name of the variable\r\n * @param color4 defines the value to be set\r\n */\r\n public setDirectColor4(uniformName: string, color4: IColor4Like): void {\r\n this.setFloat4(uniformName, color4.r, color4.g, color4.b, color4.a);\r\n }\r\n\r\n public _getVertexShaderCode(): string | null {\r\n return this.sources?.vertex;\r\n }\r\n\r\n public _getFragmentShaderCode(): string | null {\r\n return this.sources?.fragment;\r\n }\r\n}"]}