@babylonjs/core 7.2.2 → 7.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (620) hide show
  1. package/Animations/runtimeAnimation.d.ts +1 -0
  2. package/Animations/runtimeAnimation.js +12 -3
  3. package/Animations/runtimeAnimation.js.map +1 -1
  4. package/Audio/audioEngine.js +2 -2
  5. package/Audio/audioEngine.js.map +1 -1
  6. package/Bones/boneLookController.js +3 -0
  7. package/Bones/boneLookController.js.map +1 -1
  8. package/Buffers/buffer.d.ts +5 -5
  9. package/Buffers/buffer.js.map +1 -1
  10. package/Buffers/storageBuffer.d.ts +2 -2
  11. package/Buffers/storageBuffer.js.map +1 -1
  12. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  13. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  14. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  15. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  16. package/Compute/computeEffect.d.ts +3 -3
  17. package/Compute/computeEffect.js.map +1 -1
  18. package/Compute/computeShader.d.ts +10 -2
  19. package/Compute/computeShader.js +53 -35
  20. package/Compute/computeShader.js.map +1 -1
  21. package/DeviceInput/InputDevices/deviceSourceManager.d.ts +2 -2
  22. package/DeviceInput/InputDevices/deviceSourceManager.js.map +1 -1
  23. package/DeviceInput/internalDeviceSourceManager.d.ts +4 -4
  24. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  25. package/DeviceInput/webDeviceInputSystem.d.ts +2 -2
  26. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  27. package/Engines/AbstractEngine/abstractEngine.alpha.d.ts +10 -0
  28. package/Engines/AbstractEngine/abstractEngine.alpha.js +29 -0
  29. package/Engines/AbstractEngine/abstractEngine.alpha.js.map +1 -0
  30. package/Engines/AbstractEngine/abstractEngine.cubeTexture.d.ts +17 -0
  31. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js +138 -0
  32. package/Engines/AbstractEngine/abstractEngine.cubeTexture.js.map +1 -0
  33. package/Engines/AbstractEngine/abstractEngine.dom.d.ts +61 -0
  34. package/Engines/AbstractEngine/abstractEngine.dom.js +27 -0
  35. package/Engines/AbstractEngine/abstractEngine.dom.js.map +1 -0
  36. package/Engines/AbstractEngine/abstractEngine.loadingScreen.d.ts +30 -0
  37. package/Engines/AbstractEngine/abstractEngine.loadingScreen.js +48 -0
  38. package/Engines/AbstractEngine/abstractEngine.loadingScreen.js.map +1 -0
  39. package/Engines/AbstractEngine/abstractEngine.query.d.ts +122 -0
  40. package/Engines/AbstractEngine/abstractEngine.query.js +175 -0
  41. package/Engines/AbstractEngine/abstractEngine.query.js.map +1 -0
  42. package/Engines/AbstractEngine/abstractEngine.renderPass.d.ts +26 -0
  43. package/Engines/AbstractEngine/abstractEngine.renderPass.js +29 -0
  44. package/Engines/AbstractEngine/abstractEngine.renderPass.js.map +1 -0
  45. package/Engines/AbstractEngine/abstractEngine.states.d.ts +162 -0
  46. package/Engines/AbstractEngine/abstractEngine.states.js +105 -0
  47. package/Engines/AbstractEngine/abstractEngine.states.js.map +1 -0
  48. package/Engines/AbstractEngine/abstractEngine.texture.d.ts +16 -0
  49. package/Engines/AbstractEngine/abstractEngine.texture.js +11 -0
  50. package/Engines/AbstractEngine/abstractEngine.texture.js.map +1 -0
  51. package/Engines/AbstractEngine/index.d.ts +8 -0
  52. package/Engines/AbstractEngine/index.js +10 -0
  53. package/Engines/AbstractEngine/index.js.map +1 -0
  54. package/Engines/Extensions/engine.alpha.d.ts +0 -24
  55. package/Engines/Extensions/engine.alpha.js +0 -35
  56. package/Engines/Extensions/engine.alpha.js.map +1 -1
  57. package/Engines/Extensions/engine.computeShader.d.ts +15 -2
  58. package/Engines/Extensions/engine.computeShader.js +5 -1
  59. package/Engines/Extensions/engine.computeShader.js.map +1 -1
  60. package/Engines/Extensions/engine.cubeTexture.d.ts +0 -8
  61. package/Engines/Extensions/engine.cubeTexture.js +2 -135
  62. package/Engines/Extensions/engine.cubeTexture.js.map +1 -1
  63. package/Engines/Extensions/engine.debugging.d.ts +2 -2
  64. package/Engines/Extensions/engine.debugging.js +5 -5
  65. package/Engines/Extensions/engine.debugging.js.map +1 -1
  66. package/Engines/Extensions/engine.dynamicTexture.js +3 -2
  67. package/Engines/Extensions/engine.dynamicTexture.js.map +1 -1
  68. package/Engines/Extensions/engine.multiview.js.map +1 -1
  69. package/Engines/Extensions/engine.query.d.ts +5 -120
  70. package/Engines/Extensions/engine.query.js +14 -150
  71. package/Engines/Extensions/engine.query.js.map +1 -1
  72. package/Engines/Extensions/engine.renderTarget.js +0 -9
  73. package/Engines/Extensions/engine.renderTarget.js.map +1 -1
  74. package/Engines/Extensions/engine.views.d.ts +3 -2
  75. package/Engines/Extensions/engine.views.js.map +1 -1
  76. package/Engines/Processors/iShaderProcessor.d.ts +2 -2
  77. package/Engines/Processors/iShaderProcessor.js.map +1 -1
  78. package/Engines/Processors/shaderProcessor.d.ts +3 -3
  79. package/Engines/Processors/shaderProcessor.js.map +1 -1
  80. package/Engines/WebGL/webGLRenderTargetWrapper.js +12 -9
  81. package/Engines/WebGL/webGLRenderTargetWrapper.js.map +1 -1
  82. package/Engines/WebGL/webGLShaderProcessors.d.ts +2 -2
  83. package/Engines/WebGL/webGLShaderProcessors.js.map +1 -1
  84. package/Engines/WebGPU/Extensions/engine.alpha.d.ts +35 -0
  85. package/Engines/WebGPU/Extensions/engine.alpha.js +4 -4
  86. package/Engines/WebGPU/Extensions/engine.alpha.js.map +1 -1
  87. package/Engines/WebGPU/Extensions/engine.computeShader.d.ts +9 -0
  88. package/Engines/WebGPU/Extensions/engine.computeShader.js +13 -2
  89. package/Engines/WebGPU/Extensions/engine.computeShader.js.map +1 -1
  90. package/Engines/WebGPU/Extensions/engine.cubeTexture.d.ts +78 -1
  91. package/Engines/WebGPU/Extensions/engine.cubeTexture.js.map +1 -1
  92. package/Engines/WebGPU/Extensions/engine.dynamicTexture.d.ts +27 -1
  93. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js +3 -3
  94. package/Engines/WebGPU/Extensions/engine.dynamicTexture.js.map +1 -1
  95. package/Engines/WebGPU/Extensions/engine.externalTexture.d.ts +16 -0
  96. package/Engines/WebGPU/Extensions/engine.externalTexture.js.map +1 -1
  97. package/Engines/WebGPU/Extensions/engine.multiRender.d.ts +55 -1
  98. package/Engines/WebGPU/Extensions/engine.multiRender.js.map +1 -1
  99. package/Engines/WebGPU/Extensions/engine.query.d.ts +1 -1
  100. package/Engines/WebGPU/Extensions/engine.query.js +1 -0
  101. package/Engines/WebGPU/Extensions/engine.query.js.map +1 -1
  102. package/Engines/WebGPU/Extensions/engine.rawTexture.d.ts +185 -1
  103. package/Engines/WebGPU/Extensions/engine.rawTexture.js.map +1 -1
  104. package/Engines/WebGPU/Extensions/engine.readTexture.d.ts +10 -1
  105. package/Engines/WebGPU/Extensions/engine.readTexture.js.map +1 -1
  106. package/Engines/WebGPU/Extensions/engine.renderTarget.d.ts +38 -1
  107. package/Engines/WebGPU/Extensions/engine.renderTarget.js.map +1 -1
  108. package/Engines/WebGPU/Extensions/engine.renderTargetCube.d.ts +13 -1
  109. package/Engines/WebGPU/Extensions/engine.renderTargetCube.js.map +1 -1
  110. package/Engines/WebGPU/Extensions/engine.storageBuffer.d.ts +38 -1
  111. package/Engines/WebGPU/Extensions/engine.storageBuffer.js.map +1 -1
  112. package/Engines/WebGPU/Extensions/engine.textureSampler.d.ts +10 -0
  113. package/Engines/WebGPU/Extensions/engine.textureSampler.js.map +1 -1
  114. package/Engines/WebGPU/Extensions/engine.videoTexture.d.ts +14 -1
  115. package/Engines/WebGPU/Extensions/engine.videoTexture.js.map +1 -1
  116. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.d.ts +2 -2
  117. package/Engines/WebGPU/webgpuShaderProcessorsGLSL.js.map +1 -1
  118. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.d.ts +2 -0
  119. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js +2 -0
  120. package/Engines/WebGPU/webgpuShaderProcessorsWGSL.js.map +1 -1
  121. package/Engines/abstractEngine.d.ts +1695 -0
  122. package/Engines/abstractEngine.js +1362 -0
  123. package/Engines/abstractEngine.js.map +1 -0
  124. package/Engines/engine.common.d.ts +39 -0
  125. package/Engines/engine.common.js +226 -0
  126. package/Engines/engine.common.js.map +1 -0
  127. package/Engines/engine.d.ts +40 -447
  128. package/Engines/engine.js +64 -810
  129. package/Engines/engine.js.map +1 -1
  130. package/Engines/engineFactory.d.ts +2 -2
  131. package/Engines/engineFactory.js.map +1 -1
  132. package/Engines/engineStore.d.ts +4 -4
  133. package/Engines/engineStore.js.map +1 -1
  134. package/Engines/index.d.ts +3 -0
  135. package/Engines/index.js +3 -0
  136. package/Engines/index.js.map +1 -1
  137. package/Engines/nativeEngine.d.ts +1 -1
  138. package/Engines/nativeEngine.js +2 -1
  139. package/Engines/nativeEngine.js.map +1 -1
  140. package/Engines/nullEngine.d.ts +2 -2
  141. package/Engines/nullEngine.js +2 -3
  142. package/Engines/nullEngine.js.map +1 -1
  143. package/Engines/renderTargetWrapper.d.ts +3 -3
  144. package/Engines/renderTargetWrapper.js.map +1 -1
  145. package/Engines/thinEngine.d.ts +34 -597
  146. package/Engines/thinEngine.js +85 -1143
  147. package/Engines/thinEngine.js.map +1 -1
  148. package/Engines/webgpuEngine.d.ts +147 -109
  149. package/Engines/webgpuEngine.js +249 -162
  150. package/Engines/webgpuEngine.js.map +1 -1
  151. package/Instrumentation/engineInstrumentation.d.ts +5 -4
  152. package/Instrumentation/engineInstrumentation.js.map +1 -1
  153. package/Layers/effectLayer.d.ts +2 -2
  154. package/Layers/effectLayer.js +3 -3
  155. package/Layers/effectLayer.js.map +1 -1
  156. package/Layers/effectLayerSceneComponent.js.map +1 -1
  157. package/Layers/glowLayer.js +3 -3
  158. package/Layers/glowLayer.js.map +1 -1
  159. package/Layers/highlightLayer.js +3 -3
  160. package/Layers/highlightLayer.js.map +1 -1
  161. package/Layers/layerSceneComponent.js.map +1 -1
  162. package/Loading/loadingScreen.js +2 -2
  163. package/Loading/loadingScreen.js.map +1 -1
  164. package/Loading/sceneLoader.d.ts +3 -3
  165. package/Loading/sceneLoader.js +1 -1
  166. package/Loading/sceneLoader.js.map +1 -1
  167. package/Materials/GreasedLine/greasedLinePluginMaterial.js.map +1 -1
  168. package/Materials/Node/Blocks/Dual/clipPlanesBlock.d.ts +1 -1
  169. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js +6 -6
  170. package/Materials/Node/Blocks/Dual/clipPlanesBlock.js.map +1 -1
  171. package/Materials/Node/Blocks/Dual/currentScreenBlock.d.ts +2 -3
  172. package/Materials/Node/Blocks/Dual/currentScreenBlock.js +5 -5
  173. package/Materials/Node/Blocks/Dual/currentScreenBlock.js.map +1 -1
  174. package/Materials/Node/Blocks/Dual/fogBlock.d.ts +1 -1
  175. package/Materials/Node/Blocks/Dual/fogBlock.js +4 -4
  176. package/Materials/Node/Blocks/Dual/fogBlock.js.map +1 -1
  177. package/Materials/Node/Blocks/Dual/lightBlock.js +4 -4
  178. package/Materials/Node/Blocks/Dual/lightBlock.js.map +1 -1
  179. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.d.ts +1 -1
  180. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js +8 -7
  181. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.js.map +1 -1
  182. package/Materials/Node/Blocks/Dual/sceneDepthBlock.d.ts +1 -1
  183. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js +9 -5
  184. package/Materials/Node/Blocks/Dual/sceneDepthBlock.js.map +1 -1
  185. package/Materials/Node/Blocks/Dual/textureBlock.d.ts +4 -2
  186. package/Materials/Node/Blocks/Dual/textureBlock.js +43 -21
  187. package/Materials/Node/Blocks/Dual/textureBlock.js.map +1 -1
  188. package/Materials/Node/Blocks/Fragment/TBNBlock.js +3 -3
  189. package/Materials/Node/Blocks/Fragment/TBNBlock.js.map +1 -1
  190. package/Materials/Node/Blocks/Fragment/derivativeBlock.js +9 -2
  191. package/Materials/Node/Blocks/Fragment/derivativeBlock.js.map +1 -1
  192. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js +1 -1
  193. package/Materials/Node/Blocks/Fragment/fragCoordBlock.js.map +1 -1
  194. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.d.ts +1 -1
  195. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js +16 -8
  196. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.js.map +1 -1
  197. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js +1 -1
  198. package/Materials/Node/Blocks/Fragment/frontFacingBlock.js.map +1 -1
  199. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js +2 -2
  200. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.js.map +1 -1
  201. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js +3 -3
  202. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.js.map +1 -1
  203. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.d.ts +1 -1
  204. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js +4 -4
  205. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.js.map +1 -1
  206. package/Materials/Node/Blocks/Fragment/screenSizeBlock.d.ts +1 -1
  207. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js +2 -2
  208. package/Materials/Node/Blocks/Fragment/screenSizeBlock.js.map +1 -1
  209. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js +3 -3
  210. package/Materials/Node/Blocks/Fragment/screenSpaceBlock.js.map +1 -1
  211. package/Materials/Node/Blocks/Fragment/shadowMapBlock.d.ts +1 -1
  212. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js +4 -4
  213. package/Materials/Node/Blocks/Fragment/shadowMapBlock.js.map +1 -1
  214. package/Materials/Node/Blocks/Fragment/twirlBlock.js +9 -9
  215. package/Materials/Node/Blocks/Fragment/twirlBlock.js.map +1 -1
  216. package/Materials/Node/Blocks/Input/inputBlock.d.ts +6 -1
  217. package/Materials/Node/Blocks/Input/inputBlock.js +36 -12
  218. package/Materials/Node/Blocks/Input/inputBlock.js.map +1 -1
  219. package/Materials/Node/Blocks/PBR/anisotropyBlock.d.ts +1 -1
  220. package/Materials/Node/Blocks/PBR/anisotropyBlock.js +1 -1
  221. package/Materials/Node/Blocks/PBR/anisotropyBlock.js.map +1 -1
  222. package/Materials/Node/Blocks/PBR/clearCoatBlock.d.ts +1 -1
  223. package/Materials/Node/Blocks/PBR/clearCoatBlock.js +3 -3
  224. package/Materials/Node/Blocks/PBR/clearCoatBlock.js.map +1 -1
  225. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.d.ts +1 -1
  226. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js +9 -9
  227. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.js.map +1 -1
  228. package/Materials/Node/Blocks/PBR/reflectionBlock.d.ts +1 -1
  229. package/Materials/Node/Blocks/PBR/reflectionBlock.js +21 -21
  230. package/Materials/Node/Blocks/PBR/reflectionBlock.js.map +1 -1
  231. package/Materials/Node/Blocks/PBR/refractionBlock.d.ts +1 -1
  232. package/Materials/Node/Blocks/PBR/refractionBlock.js +6 -6
  233. package/Materials/Node/Blocks/PBR/refractionBlock.js.map +1 -1
  234. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js +5 -0
  235. package/Materials/Node/Blocks/PBR/subSurfaceBlock.js.map +1 -1
  236. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js +2 -2
  237. package/Materials/Node/Blocks/Particle/particleBlendMultiplyBlock.js.map +1 -1
  238. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js +3 -3
  239. package/Materials/Node/Blocks/Particle/particleRampGradientBlock.js.map +1 -1
  240. package/Materials/Node/Blocks/Particle/particleTextureBlock.js +1 -1
  241. package/Materials/Node/Blocks/Particle/particleTextureBlock.js.map +1 -1
  242. package/Materials/Node/Blocks/Teleport/teleportOutBlock.js +1 -1
  243. package/Materials/Node/Blocks/Teleport/teleportOutBlock.js.map +1 -1
  244. package/Materials/Node/Blocks/Vertex/bonesBlock.js +2 -2
  245. package/Materials/Node/Blocks/Vertex/bonesBlock.js.map +1 -1
  246. package/Materials/Node/Blocks/Vertex/instancesBlock.js +5 -5
  247. package/Materials/Node/Blocks/Vertex/instancesBlock.js.map +1 -1
  248. package/Materials/Node/Blocks/Vertex/lightInformationBlock.d.ts +1 -1
  249. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js +12 -12
  250. package/Materials/Node/Blocks/Vertex/lightInformationBlock.js.map +1 -1
  251. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js +7 -7
  252. package/Materials/Node/Blocks/Vertex/morphTargetsBlock.js.map +1 -1
  253. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.d.ts +1 -1
  254. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js +10 -3
  255. package/Materials/Node/Blocks/Vertex/vertexOutputBlock.js.map +1 -1
  256. package/Materials/Node/Blocks/addBlock.js +2 -1
  257. package/Materials/Node/Blocks/addBlock.js.map +1 -1
  258. package/Materials/Node/Blocks/arcTan2Block.js +3 -1
  259. package/Materials/Node/Blocks/arcTan2Block.js.map +1 -1
  260. package/Materials/Node/Blocks/clampBlock.js +1 -1
  261. package/Materials/Node/Blocks/clampBlock.js.map +1 -1
  262. package/Materials/Node/Blocks/cloudBlock.js +1 -1
  263. package/Materials/Node/Blocks/cloudBlock.js.map +1 -1
  264. package/Materials/Node/Blocks/colorMergerBlock.js +9 -7
  265. package/Materials/Node/Blocks/colorMergerBlock.js.map +1 -1
  266. package/Materials/Node/Blocks/colorSplitterBlock.js +5 -5
  267. package/Materials/Node/Blocks/colorSplitterBlock.js.map +1 -1
  268. package/Materials/Node/Blocks/conditionalBlock.js +18 -12
  269. package/Materials/Node/Blocks/conditionalBlock.js.map +1 -1
  270. package/Materials/Node/Blocks/crossBlock.js +1 -1
  271. package/Materials/Node/Blocks/crossBlock.js.map +1 -1
  272. package/Materials/Node/Blocks/curveBlock.js +48 -53
  273. package/Materials/Node/Blocks/curveBlock.js.map +1 -1
  274. package/Materials/Node/Blocks/customBlock.js +1 -1
  275. package/Materials/Node/Blocks/customBlock.js.map +1 -1
  276. package/Materials/Node/Blocks/desaturateBlock.js +5 -4
  277. package/Materials/Node/Blocks/desaturateBlock.js.map +1 -1
  278. package/Materials/Node/Blocks/distanceBlock.js +1 -1
  279. package/Materials/Node/Blocks/distanceBlock.js.map +1 -1
  280. package/Materials/Node/Blocks/divideBlock.js +2 -1
  281. package/Materials/Node/Blocks/divideBlock.js.map +1 -1
  282. package/Materials/Node/Blocks/dotBlock.js +1 -1
  283. package/Materials/Node/Blocks/dotBlock.js.map +1 -1
  284. package/Materials/Node/Blocks/elbowBlock.js +1 -1
  285. package/Materials/Node/Blocks/elbowBlock.js.map +1 -1
  286. package/Materials/Node/Blocks/fresnelBlock.js +1 -1
  287. package/Materials/Node/Blocks/fresnelBlock.js.map +1 -1
  288. package/Materials/Node/Blocks/gradientBlock.js +8 -7
  289. package/Materials/Node/Blocks/gradientBlock.js.map +1 -1
  290. package/Materials/Node/Blocks/lengthBlock.js +1 -1
  291. package/Materials/Node/Blocks/lengthBlock.js.map +1 -1
  292. package/Materials/Node/Blocks/lerpBlock.js +1 -1
  293. package/Materials/Node/Blocks/lerpBlock.js.map +1 -1
  294. package/Materials/Node/Blocks/matrixBuilderBlock.js +1 -1
  295. package/Materials/Node/Blocks/matrixBuilderBlock.js.map +1 -1
  296. package/Materials/Node/Blocks/matrixDeterminantBlock.js +1 -1
  297. package/Materials/Node/Blocks/matrixDeterminantBlock.js.map +1 -1
  298. package/Materials/Node/Blocks/matrixTransposeBlock.js +1 -1
  299. package/Materials/Node/Blocks/matrixTransposeBlock.js.map +1 -1
  300. package/Materials/Node/Blocks/maxBlock.js +1 -1
  301. package/Materials/Node/Blocks/maxBlock.js.map +1 -1
  302. package/Materials/Node/Blocks/meshAttributeExistsBlock.js +1 -1
  303. package/Materials/Node/Blocks/meshAttributeExistsBlock.js.map +1 -1
  304. package/Materials/Node/Blocks/minBlock.js +1 -1
  305. package/Materials/Node/Blocks/minBlock.js.map +1 -1
  306. package/Materials/Node/Blocks/modBlock.js +1 -1
  307. package/Materials/Node/Blocks/modBlock.js.map +1 -1
  308. package/Materials/Node/Blocks/multiplyBlock.js +2 -1
  309. package/Materials/Node/Blocks/multiplyBlock.js.map +1 -1
  310. package/Materials/Node/Blocks/nLerpBlock.js +1 -1
  311. package/Materials/Node/Blocks/nLerpBlock.js.map +1 -1
  312. package/Materials/Node/Blocks/negateBlock.js +1 -1
  313. package/Materials/Node/Blocks/negateBlock.js.map +1 -1
  314. package/Materials/Node/Blocks/normalBlendBlock.js +1 -1
  315. package/Materials/Node/Blocks/normalBlendBlock.js.map +1 -1
  316. package/Materials/Node/Blocks/normalizeBlock.js +1 -1
  317. package/Materials/Node/Blocks/normalizeBlock.js.map +1 -1
  318. package/Materials/Node/Blocks/oneMinusBlock.js +1 -1
  319. package/Materials/Node/Blocks/oneMinusBlock.js.map +1 -1
  320. package/Materials/Node/Blocks/posterizeBlock.js +1 -1
  321. package/Materials/Node/Blocks/posterizeBlock.js.map +1 -1
  322. package/Materials/Node/Blocks/powBlock.js +1 -1
  323. package/Materials/Node/Blocks/powBlock.js.map +1 -1
  324. package/Materials/Node/Blocks/randomNumberBlock.js +1 -1
  325. package/Materials/Node/Blocks/randomNumberBlock.js.map +1 -1
  326. package/Materials/Node/Blocks/reciprocalBlock.js +2 -2
  327. package/Materials/Node/Blocks/reciprocalBlock.js.map +1 -1
  328. package/Materials/Node/Blocks/reflectBlock.js +1 -1
  329. package/Materials/Node/Blocks/reflectBlock.js.map +1 -1
  330. package/Materials/Node/Blocks/refractBlock.js +1 -1
  331. package/Materials/Node/Blocks/refractBlock.js.map +1 -1
  332. package/Materials/Node/Blocks/remapBlock.js +1 -1
  333. package/Materials/Node/Blocks/remapBlock.js.map +1 -1
  334. package/Materials/Node/Blocks/replaceColorBlock.js +1 -1
  335. package/Materials/Node/Blocks/replaceColorBlock.js.map +1 -1
  336. package/Materials/Node/Blocks/rotate2dBlock.js +1 -1
  337. package/Materials/Node/Blocks/rotate2dBlock.js.map +1 -1
  338. package/Materials/Node/Blocks/scaleBlock.js +1 -1
  339. package/Materials/Node/Blocks/scaleBlock.js.map +1 -1
  340. package/Materials/Node/Blocks/simplexPerlin3DBlock.js +1 -1
  341. package/Materials/Node/Blocks/simplexPerlin3DBlock.js.map +1 -1
  342. package/Materials/Node/Blocks/smoothStepBlock.js +3 -2
  343. package/Materials/Node/Blocks/smoothStepBlock.js.map +1 -1
  344. package/Materials/Node/Blocks/stepBlock.js +1 -1
  345. package/Materials/Node/Blocks/stepBlock.js.map +1 -1
  346. package/Materials/Node/Blocks/subtractBlock.js +2 -1
  347. package/Materials/Node/Blocks/subtractBlock.js.map +1 -1
  348. package/Materials/Node/Blocks/transformBlock.js +18 -10
  349. package/Materials/Node/Blocks/transformBlock.js.map +1 -1
  350. package/Materials/Node/Blocks/triPlanarBlock.d.ts +1 -1
  351. package/Materials/Node/Blocks/triPlanarBlock.js +2 -2
  352. package/Materials/Node/Blocks/triPlanarBlock.js.map +1 -1
  353. package/Materials/Node/Blocks/trigonometryBlock.js +1 -1
  354. package/Materials/Node/Blocks/trigonometryBlock.js.map +1 -1
  355. package/Materials/Node/Blocks/vectorMergerBlock.js +30 -27
  356. package/Materials/Node/Blocks/vectorMergerBlock.js.map +1 -1
  357. package/Materials/Node/Blocks/vectorSplitterBlock.js +9 -8
  358. package/Materials/Node/Blocks/vectorSplitterBlock.js.map +1 -1
  359. package/Materials/Node/Blocks/viewDirectionBlock.js +1 -1
  360. package/Materials/Node/Blocks/viewDirectionBlock.js.map +1 -1
  361. package/Materials/Node/Blocks/voronoiNoiseBlock.js +19 -8
  362. package/Materials/Node/Blocks/voronoiNoiseBlock.js.map +1 -1
  363. package/Materials/Node/Blocks/waveBlock.js +3 -3
  364. package/Materials/Node/Blocks/waveBlock.js.map +1 -1
  365. package/Materials/Node/Blocks/worleyNoise3DBlock.js +3 -3
  366. package/Materials/Node/Blocks/worleyNoise3DBlock.js.map +1 -1
  367. package/Materials/Node/nodeMaterial.d.ts +9 -3
  368. package/Materials/Node/nodeMaterial.js +29 -4
  369. package/Materials/Node/nodeMaterial.js.map +1 -1
  370. package/Materials/Node/nodeMaterialBlock.d.ts +0 -1
  371. package/Materials/Node/nodeMaterialBlock.js +6 -6
  372. package/Materials/Node/nodeMaterialBlock.js.map +1 -1
  373. package/Materials/Node/nodeMaterialBlockConnectionPoint.d.ts +4 -0
  374. package/Materials/Node/nodeMaterialBlockConnectionPoint.js +12 -0
  375. package/Materials/Node/nodeMaterialBlockConnectionPoint.js.map +1 -1
  376. package/Materials/Node/nodeMaterialBuildState.d.ts +35 -3
  377. package/Materials/Node/nodeMaterialBuildState.js +169 -16
  378. package/Materials/Node/nodeMaterialBuildState.js.map +1 -1
  379. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +18 -4
  380. package/Materials/PBR/pbrSubSurfaceConfiguration.js +60 -9
  381. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  382. package/Materials/Textures/Filtering/hdrFiltering.d.ts +2 -2
  383. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  384. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  385. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  386. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -0
  387. package/Materials/Textures/MultiviewRenderTarget.js +1 -0
  388. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  389. package/Materials/Textures/Procedurals/proceduralTexture.js +1 -1
  390. package/Materials/Textures/Procedurals/proceduralTexture.js.map +1 -1
  391. package/Materials/Textures/baseTexture.d.ts +3 -3
  392. package/Materials/Textures/baseTexture.js.map +1 -1
  393. package/Materials/Textures/colorGradingTexture.d.ts +2 -2
  394. package/Materials/Textures/colorGradingTexture.js.map +1 -1
  395. package/Materials/Textures/cubeTexture.d.ts +3 -2
  396. package/Materials/Textures/cubeTexture.js +1 -0
  397. package/Materials/Textures/cubeTexture.js.map +1 -1
  398. package/Materials/Textures/hdrCubeTexture.d.ts +2 -2
  399. package/Materials/Textures/hdrCubeTexture.js.map +1 -1
  400. package/Materials/Textures/htmlElementTexture.d.ts +2 -2
  401. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  402. package/Materials/Textures/internalTexture.d.ts +3 -3
  403. package/Materials/Textures/internalTexture.js.map +1 -1
  404. package/Materials/Textures/rawTexture.d.ts +10 -10
  405. package/Materials/Textures/rawTexture.js.map +1 -1
  406. package/Materials/Textures/renderTargetTexture.d.ts +4 -4
  407. package/Materials/Textures/renderTargetTexture.js +4 -4
  408. package/Materials/Textures/renderTargetTexture.js.map +1 -1
  409. package/Materials/Textures/texture.d.ts +2 -2
  410. package/Materials/Textures/texture.js.map +1 -1
  411. package/Materials/Textures/thinTexture.d.ts +3 -3
  412. package/Materials/Textures/thinTexture.js +1 -1
  413. package/Materials/Textures/thinTexture.js.map +1 -1
  414. package/Materials/drawWrapper.d.ts +2 -3
  415. package/Materials/drawWrapper.functions.d.ts +8 -0
  416. package/Materials/drawWrapper.functions.js +9 -0
  417. package/Materials/drawWrapper.functions.js.map +1 -0
  418. package/Materials/drawWrapper.js +0 -3
  419. package/Materials/drawWrapper.js.map +1 -1
  420. package/Materials/effect.d.ts +4 -5
  421. package/Materials/effect.js.map +1 -1
  422. package/Materials/effectRenderer.d.ts +4 -4
  423. package/Materials/effectRenderer.js.map +1 -1
  424. package/Materials/index.d.ts +1 -0
  425. package/Materials/index.js +1 -0
  426. package/Materials/index.js.map +1 -1
  427. package/Materials/materialFlags.d.ts +6 -0
  428. package/Materials/materialFlags.js +15 -1
  429. package/Materials/materialFlags.js.map +1 -1
  430. package/Materials/materialHelper.functions.d.ts +2 -2
  431. package/Materials/materialHelper.functions.js.map +1 -1
  432. package/Materials/materialPluginBase.d.ts +4 -4
  433. package/Materials/materialPluginBase.js.map +1 -1
  434. package/Materials/materialPluginManager.d.ts +2 -2
  435. package/Materials/materialPluginManager.js.map +1 -1
  436. package/Materials/meshDebugPluginMaterial.js +1 -1
  437. package/Materials/meshDebugPluginMaterial.js.map +1 -1
  438. package/Materials/uniformBuffer.d.ts +2 -2
  439. package/Materials/uniformBuffer.js.map +1 -1
  440. package/Meshes/Builders/greasedLineBuilder.d.ts +6 -0
  441. package/Meshes/Builders/greasedLineBuilder.js +15 -8
  442. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  443. package/Meshes/Compression/meshoptCompression.js +4 -3
  444. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  445. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +1 -1
  446. package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
  447. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  448. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  449. package/Meshes/GreasedLine/greasedLineMesh.js +1 -1
  450. package/Meshes/GreasedLine/greasedLineMesh.js.map +1 -1
  451. package/Meshes/geometry.d.ts +2 -2
  452. package/Meshes/geometry.js +3 -2
  453. package/Meshes/geometry.js.map +1 -1
  454. package/Meshes/instancedMesh.js.map +1 -1
  455. package/Meshes/mesh.d.ts +3 -3
  456. package/Meshes/mesh.js.map +1 -1
  457. package/Meshes/subMesh.d.ts +2 -2
  458. package/Meshes/subMesh.js.map +1 -1
  459. package/Misc/PerformanceViewer/performanceViewerCollectionStrategies.js.map +1 -1
  460. package/Misc/copyTextureToTexture.d.ts +2 -2
  461. package/Misc/copyTextureToTexture.js.map +1 -1
  462. package/Misc/dds.d.ts +3 -2
  463. package/Misc/dds.js +2 -1
  464. package/Misc/dds.js.map +1 -1
  465. package/Misc/dumpTools.d.ts +2 -2
  466. package/Misc/dumpTools.js.map +1 -1
  467. package/Misc/fileTools.js +3 -3
  468. package/Misc/fileTools.js.map +1 -1
  469. package/Misc/filesInput.d.ts +2 -2
  470. package/Misc/filesInput.js.map +1 -1
  471. package/Misc/khronosTextureContainer2.d.ts +8 -2
  472. package/Misc/khronosTextureContainer2.js +3 -2
  473. package/Misc/khronosTextureContainer2.js.map +1 -1
  474. package/Misc/minMaxReducer.d.ts +2 -2
  475. package/Misc/minMaxReducer.js.map +1 -1
  476. package/Misc/screenshotTools.d.ts +6 -6
  477. package/Misc/screenshotTools.js.map +1 -1
  478. package/Misc/textureTools.js.map +1 -1
  479. package/Misc/tools.d.ts +7 -7
  480. package/Misc/tools.functions.d.ts +26 -0
  481. package/Misc/tools.functions.js +62 -0
  482. package/Misc/tools.functions.js.map +1 -1
  483. package/Misc/tools.js.map +1 -1
  484. package/Misc/videoRecorder.d.ts +3 -3
  485. package/Misc/videoRecorder.js.map +1 -1
  486. package/Particles/baseParticleSystem.d.ts +2 -2
  487. package/Particles/baseParticleSystem.js.map +1 -1
  488. package/Particles/computeShaderParticleSystem.d.ts +2 -2
  489. package/Particles/computeShaderParticleSystem.js.map +1 -1
  490. package/Particles/gpuParticleSystem.d.ts +3 -3
  491. package/Particles/gpuParticleSystem.js +2 -2
  492. package/Particles/gpuParticleSystem.js.map +1 -1
  493. package/Particles/particle.js +1 -1
  494. package/Particles/particle.js.map +1 -1
  495. package/Particles/particleSystem.d.ts +3 -3
  496. package/Particles/particleSystem.js +3 -3
  497. package/Particles/particleSystem.js.map +1 -1
  498. package/Particles/particleSystemComponent.d.ts +2 -2
  499. package/Particles/particleSystemComponent.js +2 -2
  500. package/Particles/particleSystemComponent.js.map +1 -1
  501. package/Particles/subEmitter.d.ts +3 -3
  502. package/Particles/subEmitter.js.map +1 -1
  503. package/Particles/thinParticleSystem.d.ts +2 -2
  504. package/Particles/thinParticleSystem.js.map +1 -1
  505. package/Physics/v2/physicsBody.js +3 -3
  506. package/Physics/v2/physicsBody.js.map +1 -1
  507. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.js.map +1 -1
  508. package/PostProcesses/RenderPipeline/postProcessRenderEffect.d.ts +2 -2
  509. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  510. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.d.ts +2 -2
  511. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  512. package/PostProcesses/blackAndWhitePostProcess.d.ts +2 -2
  513. package/PostProcesses/blackAndWhitePostProcess.js.map +1 -1
  514. package/PostProcesses/bloomMergePostProcess.d.ts +2 -2
  515. package/PostProcesses/bloomMergePostProcess.js.map +1 -1
  516. package/PostProcesses/blurPostProcess.d.ts +2 -2
  517. package/PostProcesses/blurPostProcess.js.map +1 -1
  518. package/PostProcesses/chromaticAberrationPostProcess.d.ts +2 -2
  519. package/PostProcesses/chromaticAberrationPostProcess.js.map +1 -1
  520. package/PostProcesses/circleOfConfusionPostProcess.d.ts +2 -2
  521. package/PostProcesses/circleOfConfusionPostProcess.js.map +1 -1
  522. package/PostProcesses/colorCorrectionPostProcess.d.ts +2 -2
  523. package/PostProcesses/colorCorrectionPostProcess.js.map +1 -1
  524. package/PostProcesses/convolutionPostProcess.d.ts +2 -2
  525. package/PostProcesses/convolutionPostProcess.js.map +1 -1
  526. package/PostProcesses/depthOfFieldBlurPostProcess.d.ts +2 -2
  527. package/PostProcesses/depthOfFieldBlurPostProcess.js.map +1 -1
  528. package/PostProcesses/depthOfFieldEffect.js +1 -1
  529. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  530. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +2 -2
  531. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  532. package/PostProcesses/displayPassPostProcess.d.ts +2 -2
  533. package/PostProcesses/displayPassPostProcess.js.map +1 -1
  534. package/PostProcesses/extractHighlightsPostProcess.d.ts +2 -2
  535. package/PostProcesses/extractHighlightsPostProcess.js.map +1 -1
  536. package/PostProcesses/filterPostProcess.d.ts +2 -2
  537. package/PostProcesses/filterPostProcess.js.map +1 -1
  538. package/PostProcesses/fxaaPostProcess.d.ts +2 -2
  539. package/PostProcesses/fxaaPostProcess.js +2 -2
  540. package/PostProcesses/fxaaPostProcess.js.map +1 -1
  541. package/PostProcesses/grainPostProcess.d.ts +2 -2
  542. package/PostProcesses/grainPostProcess.js.map +1 -1
  543. package/PostProcesses/imageProcessingPostProcess.d.ts +2 -2
  544. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  545. package/PostProcesses/motionBlurPostProcess.d.ts +2 -2
  546. package/PostProcesses/motionBlurPostProcess.js.map +1 -1
  547. package/PostProcesses/passPostProcess.d.ts +3 -3
  548. package/PostProcesses/passPostProcess.js +2 -2
  549. package/PostProcesses/passPostProcess.js.map +1 -1
  550. package/PostProcesses/postProcess.d.ts +4 -5
  551. package/PostProcesses/postProcess.js +3 -3
  552. package/PostProcesses/postProcess.js.map +1 -1
  553. package/PostProcesses/refractionPostProcess.d.ts +2 -2
  554. package/PostProcesses/refractionPostProcess.js.map +1 -1
  555. package/PostProcesses/screenSpaceCurvaturePostProcess.d.ts +2 -2
  556. package/PostProcesses/screenSpaceCurvaturePostProcess.js.map +1 -1
  557. package/PostProcesses/screenSpaceReflectionPostProcess.d.ts +2 -2
  558. package/PostProcesses/screenSpaceReflectionPostProcess.js.map +1 -1
  559. package/PostProcesses/sharpenPostProcess.d.ts +2 -2
  560. package/PostProcesses/sharpenPostProcess.js.map +1 -1
  561. package/PostProcesses/subSurfaceScatteringPostProcess.d.ts +2 -2
  562. package/PostProcesses/subSurfaceScatteringPostProcess.js.map +1 -1
  563. package/PostProcesses/volumetricLightScatteringPostProcess.d.ts +2 -2
  564. package/PostProcesses/volumetricLightScatteringPostProcess.js.map +1 -1
  565. package/Rendering/GlobalIllumination/giRSMManager.js.map +1 -1
  566. package/Rendering/depthPeelingRenderer.js.map +1 -1
  567. package/Rendering/fluidRenderer/fluidRenderer.js.map +1 -1
  568. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.d.ts +2 -2
  569. package/Rendering/fluidRenderer/fluidRenderingDepthTextureCopy.js.map +1 -1
  570. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +2 -2
  571. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  572. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +2 -2
  573. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  574. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  575. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  576. package/Rendering/geometryBufferRenderer.js +24 -18
  577. package/Rendering/geometryBufferRenderer.js.map +1 -1
  578. package/Rendering/outlineRenderer.js.map +1 -1
  579. package/Rendering/prePassRenderer.js.map +1 -1
  580. package/Shaders/ShadersInclude/pbrBlockSubSurface.js +19 -3
  581. package/Shaders/ShadersInclude/pbrBlockSubSurface.js.map +1 -1
  582. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js +4 -1
  583. package/Shaders/ShadersInclude/pbrFragmentDeclaration.js.map +1 -1
  584. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js +1 -0
  585. package/Shaders/ShadersInclude/pbrFragmentSamplersDeclaration.js.map +1 -1
  586. package/Shaders/ShadersInclude/pbrVertexDeclaration.js +3 -0
  587. package/Shaders/ShadersInclude/pbrVertexDeclaration.js.map +1 -1
  588. package/Shaders/pbr.fragment.js +7 -0
  589. package/Shaders/pbr.fragment.js.map +1 -1
  590. package/Shaders/pbr.vertex.js +2 -0
  591. package/Shaders/pbr.vertex.js.map +1 -1
  592. package/ShadersWGSL/ShadersInclude/fresnelFunction.d.ts +5 -0
  593. package/ShadersWGSL/ShadersInclude/fresnelFunction.js +13 -0
  594. package/ShadersWGSL/ShadersInclude/fresnelFunction.js.map +1 -0
  595. package/ShadersWGSL/ShadersInclude/helperFunctions.d.ts +5 -0
  596. package/ShadersWGSL/ShadersInclude/helperFunctions.js +68 -0
  597. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -0
  598. package/Sprites/spriteRenderer.d.ts +2 -2
  599. package/Sprites/spriteRenderer.js.map +1 -1
  600. package/XR/features/WebXRDepthSensing.js.map +1 -1
  601. package/XR/features/WebXRImageTracking.js.map +1 -1
  602. package/XR/features/WebXRLayers.d.ts +2 -2
  603. package/XR/features/WebXRLayers.js.map +1 -1
  604. package/XR/features/WebXRLightEstimation.js.map +1 -1
  605. package/XR/features/WebXRRawCameraAccess.d.ts +1 -1
  606. package/XR/features/WebXRRawCameraAccess.js.map +1 -1
  607. package/XR/features/WebXRSpaceWarp.js +1 -3
  608. package/XR/features/WebXRSpaceWarp.js.map +1 -1
  609. package/XR/features/WebXRWalkingLocomotion.js.map +1 -1
  610. package/XR/webXRExperienceHelper.js.map +1 -1
  611. package/XR/webXRManagedOutputCanvas.d.ts +2 -2
  612. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  613. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  614. package/XR/webXRSessionManager.js.map +1 -1
  615. package/assetContainer.js.map +1 -1
  616. package/node.d.ts +2 -2
  617. package/node.js.map +1 -1
  618. package/package.json +1 -1
  619. package/scene.d.ts +3 -3
  620. package/scene.js.map +1 -1
@@ -1,124 +1,32 @@
1
- import type { IInternalTextureLoader } from "../Materials/Textures/internalTextureLoader";
2
1
  import type { IEffectCreationOptions, IShaderPath } from "../Materials/effect";
3
- import { Effect } from "../Materials/effect";
4
- import type { IShaderProcessor } from "./Processors/iShaderProcessor";
5
2
  import type { ShaderProcessingContext } from "./Processors/shaderProcessingOptions";
6
- import type { UniformBuffer } from "../Materials/uniformBuffer";
7
3
  import type { Nullable, DataArray, IndicesArray, FloatArray, DeepImmutable } from "../types";
8
- import type { EngineCapabilities } from "./engineCapabilities";
9
- import { Observable } from "../Misc/observable";
10
- import { DepthCullingState } from "../States/depthCullingState";
11
- import { StencilState } from "../States/stencilState";
12
- import { AlphaState } from "../States/alphaCullingState";
13
- import { InternalTexture, InternalTextureSource } from "../Materials/Textures/internalTexture";
14
- import type { IViewportLike, IColor4Like } from "../Maths/math.like";
4
+ import type { IColor4Like } from "../Maths/math.like";
15
5
  import type { DataBuffer } from "../Buffers/dataBuffer";
16
- import type { IFileRequest } from "../Misc/fileRequest";
17
6
  import type { IPipelineContext } from "./IPipelineContext";
18
- import { WebGLPipelineContext } from "./WebGL/webGLPipelineContext";
19
7
  import type { VertexBuffer } from "../Buffers/buffer";
20
8
  import type { InstancingAttributeInfo } from "./instancingAttributeInfo";
21
9
  import type { ThinTexture } from "../Materials/Textures/thinTexture";
22
- import type { IOfflineProvider } from "../Offline/IOfflineProvider";
23
10
  import type { IEffectFallbacks } from "../Materials/iEffectFallbacks";
24
- import type { IWebRequest } from "../Misc/interfaces/iWebRequest";
25
- import type { EngineFeatures } from "./engineFeatures";
26
11
  import type { HardwareTextureWrapper } from "../Materials/Textures/hardwareTextureWrapper";
27
- import { DrawWrapper } from "../Materials/drawWrapper";
12
+ import type { DrawWrapper } from "../Materials/drawWrapper";
28
13
  import type { IMaterialContext } from "./IMaterialContext";
29
14
  import type { IDrawContext } from "./IDrawContext";
30
- import type { ICanvas, ICanvasRenderingContext, IImage } from "./ICanvas";
31
- import { StencilStateComposer } from "../States/stencilStateComposer";
32
- import type { StorageBuffer } from "../Buffers/storageBuffer";
33
- import type { IAudioEngineOptions } from "../Audio/Interfaces/IAudioEngineOptions";
15
+ import type { ICanvas, ICanvasRenderingContext } from "./ICanvas";
34
16
  import type { IStencilState } from "../States/IStencilState";
35
17
  import type { InternalTextureCreationOptions, TextureSize } from "../Materials/Textures/textureCreationOptions";
36
- import { ShaderLanguage } from "../Materials/shaderLanguage";
37
18
  import type { RenderTargetWrapper } from "./renderTargetWrapper";
38
- import type { WebRequest } from "../Misc/webRequest";
39
- import type { LoadFileError } from "../Misc/fileTools";
40
- import type { Texture } from "../Materials/Textures/texture";
41
- /**
42
- * Defines the interface used by objects working like Scene
43
- * @internal
44
- */
45
- export interface ISceneLike {
46
- addPendingData(data: any): void;
47
- removePendingData(data: any): void;
48
- offlineProvider: IOfflineProvider;
49
- }
50
- /**
51
- * Information about the current host
52
- */
53
- export interface HostInformation {
54
- /**
55
- * Defines if the current host is a mobile
56
- */
57
- isMobile: boolean;
58
- }
59
- /** Interface defining initialization parameters for ThinEngine class */
60
- export interface ThinEngineOptions {
61
- /**
62
- * Defines if the engine should no exceed a specified device ratio
63
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio
64
- */
65
- limitDeviceRatio?: number;
66
- /**
67
- * Defines if webaudio should be initialized as well
68
- * @see https://doc.babylonjs.com/features/featuresDeepDive/audio/playingSoundsMusic
69
- */
70
- audioEngine?: boolean;
71
- /**
72
- * Specifies options for the audio engine
73
- */
74
- audioEngineOptions?: IAudioEngineOptions;
75
- /**
76
- * Defines if animations should run using a deterministic lock step
77
- * @see https://doc.babylonjs.com/features/featuresDeepDive/animation/advanced_animations#deterministic-lockstep
78
- */
79
- deterministicLockstep?: boolean;
80
- /** Defines the maximum steps to use with deterministic lock step mode */
81
- lockstepMaxSteps?: number;
82
- /** Defines the seconds between each deterministic lock step */
83
- timeStep?: number;
84
- /**
85
- * Defines that engine should ignore context lost events
86
- * If this event happens when this parameter is true, you will have to reload the page to restore rendering
87
- */
88
- doNotHandleContextLost?: boolean;
89
- /**
90
- * Defines that engine should ignore modifying touch action attribute and style
91
- * If not handle, you might need to set it up on your side for expected touch devices behavior.
92
- */
93
- doNotHandleTouchAction?: boolean;
94
- /**
95
- * Make the matrix computations to be performed in 64 bits instead of 32 bits. False by default
96
- */
97
- useHighPrecisionMatrix?: boolean;
98
- /**
99
- * Defines whether to adapt to the device's viewport characteristics (default: false)
100
- */
101
- adaptToDeviceRatio?: boolean;
102
- /**
103
- * True if the more expensive but exact conversions should be used for transforming colors to and from linear space within shaders.
104
- * Otherwise, the default is to use a cheaper approximation.
105
- */
106
- useExactSrgbConversions?: boolean;
107
- /**
108
- * Defines whether MSAA is enabled on the canvas.
109
- */
110
- antialias?: boolean;
111
- /**
112
- * Defines whether the stencil buffer should be enabled.
113
- */
114
- stencil?: boolean;
115
- /**
116
- * Defines whether the canvas should be created in "premultiplied" mode (if false, the canvas is created in the "opaque" mode) (true by default)
117
- */
118
- premultipliedAlpha?: boolean;
119
- }
19
+ import type { RenderTargetTexture } from "../Materials/Textures/renderTargetTexture";
20
+ import type { AbstractEngineOptions, ISceneLike } from "./abstractEngine";
21
+ import type { PostProcess } from "../PostProcesses/postProcess";
22
+ import type { PerformanceMonitor } from "../Misc/performanceMonitor";
23
+ import { AbstractEngine } from "./abstractEngine";
24
+ import { ShaderLanguage } from "../Materials/shaderLanguage";
25
+ import { WebGLPipelineContext } from "./WebGL/webGLPipelineContext";
26
+ import { InternalTexture, InternalTextureSource } from "../Materials/Textures/internalTexture";
27
+ import { Effect } from "../Materials/effect";
120
28
  /** Interface defining initialization parameters for Engine class */
121
- export interface EngineOptions extends ThinEngineOptions, WebGLContextAttributes {
29
+ export interface EngineOptions extends AbstractEngineOptions, WebGLContextAttributes {
122
30
  /**
123
31
  * Defines if webgl2 should be turned off even if supported
124
32
  * @see https://doc.babylonjs.com/setup/support/webGL2
@@ -151,7 +59,7 @@ export interface EngineOptions extends ThinEngineOptions, WebGLContextAttributes
151
59
  /**
152
60
  * The base engine class (root of all engines)
153
61
  */
154
- export declare class ThinEngine {
62
+ export declare class ThinEngine extends AbstractEngine {
155
63
  private static _TempClearColorUint32;
156
64
  private static _TempClearColorInt32;
157
65
  /** Use this array to turn off some WebGL2 features on known buggy browsers version */
@@ -167,20 +75,6 @@ export declare class ThinEngine {
167
75
  targets: string[];
168
76
  })[];
169
77
  /** @internal */
170
- static _TextureLoaders: IInternalTextureLoader[];
171
- /**
172
- * Returns the current npm package of the sdk
173
- */
174
- static get NpmPackage(): string;
175
- /**
176
- * Returns the current version of the framework
177
- */
178
- static get Version(): string;
179
- /**
180
- * Returns a string describing the current engine
181
- */
182
- get description(): string;
183
- /** @internal */
184
78
  protected _name: string;
185
79
  /**
186
80
  * Gets or sets the name of the engine
@@ -191,8 +85,6 @@ export declare class ThinEngine {
191
85
  * Returns the version of the engine
192
86
  */
193
87
  get version(): number;
194
- protected _isDisposed: boolean;
195
- get isDisposed(): boolean;
196
88
  /**
197
89
  * Gets or sets the epsilon value used by collision engine
198
90
  */
@@ -202,70 +94,16 @@ export declare class ThinEngine {
202
94
  */
203
95
  static get ShadersRepository(): string;
204
96
  static set ShadersRepository(value: string);
205
- protected _shaderProcessor: Nullable<IShaderProcessor>;
206
- /**
207
- * @internal
208
- */
209
- _getShaderProcessor(shaderLanguage: ShaderLanguage): Nullable<IShaderProcessor>;
210
97
  /**
211
98
  * Gets or sets a boolean that indicates if textures must be forced to power of 2 size even if not required
212
99
  */
213
100
  forcePOTTextures: boolean;
214
- /**
215
- * Gets a boolean indicating if the engine is currently rendering in fullscreen mode
216
- */
217
- isFullscreen: boolean;
218
- /**
219
- * Gets or sets a boolean indicating if back faces must be culled. If false, front faces are culled instead (true by default)
220
- * If non null, this takes precedence over the value from the material
221
- */
222
- cullBackFaces: Nullable<boolean>;
223
- /**
224
- * Gets or sets a boolean indicating if the engine must keep rendering even if the window is not in foreground
225
- */
226
- renderEvenInBackground: boolean;
227
- /**
228
- * Gets or sets a boolean indicating that cache can be kept between frames
229
- */
230
- preventCacheWipeBetweenFrames: boolean;
231
101
  /** Gets or sets a boolean indicating if the engine should validate programs after compilation */
232
102
  validateShaderPrograms: boolean;
233
- private _useReverseDepthBuffer;
234
- /**
235
- * Gets or sets a boolean indicating if depth buffer should be reverse, going from far to near.
236
- * This can provide greater z depth for distant objects.
237
- */
238
- get useReverseDepthBuffer(): boolean;
239
- set useReverseDepthBuffer(useReverse: boolean);
240
- /**
241
- * Indicates if the z range in NDC space is 0..1 (value: true) or -1..1 (value: false)
242
- */
243
- readonly isNDCHalfZRange: boolean;
244
- /**
245
- * Indicates that the origin of the texture/framebuffer space is the bottom left corner. If false, the origin is top left
246
- */
247
- readonly hasOriginBottomLeft: boolean;
248
103
  /**
249
104
  * Gets or sets a boolean indicating that uniform buffers must be disabled even if they are supported
250
105
  */
251
106
  disableUniformBuffers: boolean;
252
- /**
253
- * An event triggered when the engine is disposed.
254
- */
255
- readonly onDisposeObservable: Observable<ThinEngine>;
256
- private _frameId;
257
- /**
258
- * Gets the current frame id
259
- */
260
- get frameId(): number;
261
- /**
262
- * The time (in milliseconds elapsed since the current page has been loaded) when the engine was initialized
263
- */
264
- readonly startTime: number;
265
- /** @internal */
266
- _uniformBuffers: UniformBuffer[];
267
- /** @internal */
268
- _storageBuffers: StorageBuffer[];
269
107
  /**
270
108
  * Gets a boolean indicating that the engine supports uniform buffers
271
109
  * @see https://doc.babylonjs.com/setup/support/webGL2#uniform-buffer-objets
@@ -275,124 +113,26 @@ export declare class ThinEngine {
275
113
  _gl: WebGL2RenderingContext;
276
114
  /** @internal */
277
115
  _webGLVersion: number;
278
- protected _renderingCanvas: Nullable<HTMLCanvasElement>;
279
- protected _windowIsBackground: boolean;
280
- protected _creationOptions: EngineOptions;
281
- protected _audioContext: Nullable<AudioContext>;
282
- protected _audioDestination: Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>;
283
116
  /** @internal */
284
117
  _glSRGBExtensionValues: {
285
118
  SRGB: typeof WebGL2RenderingContext.SRGB;
286
119
  SRGB8: typeof WebGL2RenderingContext.SRGB8 | EXT_sRGB["SRGB_ALPHA_EXT"];
287
120
  SRGB8_ALPHA8: typeof WebGL2RenderingContext.SRGB8_ALPHA8 | EXT_sRGB["SRGB_ALPHA_EXT"];
288
121
  };
289
- /**
290
- * Gets the options used for engine creation
291
- * @returns EngineOptions object
292
- */
293
- getCreationOptions(): EngineOptions;
294
- protected _highPrecisionShadersAllowed: boolean;
295
- /** @internal */
296
- get _shouldUseHighPrecisionShader(): boolean;
297
122
  /**
298
123
  * Gets a boolean indicating that only power of 2 textures are supported
299
124
  * Please note that you can still use non power of 2 textures but in this case the engine will forcefully convert them
300
125
  */
301
126
  get needPOTTextures(): boolean;
302
- /** @internal */
303
- _badOS: boolean;
304
- /** @internal */
305
- _badDesktopOS: boolean;
306
- /** @internal */
307
- _hardwareScalingLevel: number;
308
- /** @internal */
309
- _caps: EngineCapabilities;
310
- /** @internal */
311
- _features: EngineFeatures;
312
- protected _isStencilEnable: boolean;
313
127
  private _glVersion;
314
128
  private _glRenderer;
315
129
  private _glVendor;
316
130
  /** @internal */
317
- _videoTextureSupported: boolean;
318
- protected _activeRenderLoops: (() => void)[];
319
- /**
320
- * Gets the list of current active render loop functions
321
- * @returns a read only array with the current render loop functions
322
- */
323
- get activeRenderLoops(): ReadonlyArray<() => void>;
324
- /**
325
- * Observable signaled when a context lost event is raised
326
- */
327
- onContextLostObservable: Observable<ThinEngine>;
328
- /**
329
- * Observable signaled when a context restored event is raised
330
- */
331
- onContextRestoredObservable: Observable<ThinEngine>;
332
- private _onContextLost;
333
- private _onContextRestored;
334
- protected _contextWasLost: boolean;
335
- /** @internal */
336
- _doNotHandleContextLost: boolean;
337
- /**
338
- * Gets or sets a boolean indicating if resources should be retained to be able to handle context lost events
339
- * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#handling-webgl-context-lost
340
- */
341
- get doNotHandleContextLost(): boolean;
342
- set doNotHandleContextLost(value: boolean);
343
- /**
344
- * Gets or sets a boolean indicating that vertex array object must be disabled even if they are supported
345
- */
346
- disableVertexArrayObjects: boolean;
347
- /** @internal */
348
- protected _colorWrite: boolean;
349
- /** @internal */
350
- protected _colorWriteChanged: boolean;
351
- /** @internal */
352
- protected _depthCullingState: DepthCullingState;
353
- /** @internal */
354
- protected _stencilStateComposer: StencilStateComposer;
355
- /** @internal */
356
- protected _stencilState: StencilState;
357
- /** @internal */
358
- _alphaState: AlphaState;
359
- /** @internal */
360
- _alphaMode: number;
361
- /** @internal */
362
- _alphaEquation: number;
363
- /** @internal */
364
- _internalTexturesCache: InternalTexture[];
365
- /** @internal */
366
- _renderTargetWrapperCache: RenderTargetWrapper[];
367
- /** @internal */
368
- protected _activeChannel: number;
369
- private _currentTextureChannel;
370
- /** @internal */
371
- protected _boundTexturesCache: {
372
- [key: string]: Nullable<InternalTexture>;
373
- };
374
- protected _currentEffect: Nullable<Effect>;
375
- /** @internal */
376
- _currentDrawContext: IDrawContext;
377
- /** @internal */
378
131
  _currentMaterialContext: IMaterialContext;
379
132
  /** @internal */
380
133
  protected _currentProgram: Nullable<WebGLProgram>;
381
- protected _compiledEffects: {
382
- [key: string]: Effect;
383
- };
384
134
  private _vertexAttribArraysEnabled;
385
- /** @internal */
386
- protected _cachedViewport: Nullable<IViewportLike>;
387
135
  private _cachedVertexArrayObject;
388
- /** @internal */
389
- protected _cachedVertexBuffers: any;
390
- /** @internal */
391
- protected _cachedIndexBuffer: Nullable<DataBuffer>;
392
- /** @internal */
393
- protected _cachedEffectForVertexBuffers: Nullable<Effect>;
394
- /** @internal */
395
- _currentRenderTarget: Nullable<RenderTargetWrapper>;
396
136
  private _uintIndicesCurrentlySet;
397
137
  protected _currentBoundBuffer: Nullable<DataBuffer>[];
398
138
  /** @internal */
@@ -407,32 +147,11 @@ export declare class ThinEngine {
407
147
  _workingCanvas: Nullable<ICanvas>;
408
148
  /** @internal */
409
149
  _workingContext: Nullable<ICanvasRenderingContext>;
410
- /** @internal */
411
- _boundRenderFunction: any;
412
150
  private _vaoRecordInProgress;
413
151
  private _mustWipeVertexAttributes;
414
- private _emptyTexture;
415
- private _emptyCubeTexture;
416
- private _emptyTexture3D;
417
- private _emptyTexture2DArray;
418
- /** @internal */
419
- _frameHandler: number;
420
152
  private _nextFreeTextureSlots;
421
153
  private _maxSimultaneousTextures;
422
154
  private _maxMSAASamplesOverride;
423
- private _activeRequests;
424
- /**
425
- * If set to true zooming in and out in the browser will rescale the hardware-scaling correctly.
426
- */
427
- adaptToDeviceRatio: boolean;
428
- /** @internal */
429
- protected _lastDevicePixelRatio: number;
430
- /** @internal */
431
- _transformTextureUrl: Nullable<(url: string) => string>;
432
- /**
433
- * Gets information about the current host
434
- */
435
- hostInformation: HostInformation;
436
155
  protected get _supportsHardwareTextureRescaling(): boolean;
437
156
  protected _framebufferDimensionsObject: Nullable<{
438
157
  framebufferWidth: number;
@@ -447,80 +166,10 @@ export declare class ThinEngine {
447
166
  framebufferWidth: number;
448
167
  framebufferHeight: number;
449
168
  }>);
450
- /**
451
- * Gets the current viewport
452
- */
453
- get currentViewport(): Nullable<IViewportLike>;
454
- /**
455
- * Gets the default empty texture
456
- */
457
- get emptyTexture(): InternalTexture;
458
- /**
459
- * Gets the default empty 3D texture
460
- */
461
- get emptyTexture3D(): InternalTexture;
462
- /**
463
- * Gets the default empty 2D array texture
464
- */
465
- get emptyTexture2DArray(): InternalTexture;
466
- /**
467
- * Gets the default empty cube texture
468
- */
469
- get emptyCubeTexture(): InternalTexture;
470
- /**
471
- * Defines whether the engine has been created with the premultipliedAlpha option on or not.
472
- */
473
- premultipliedAlpha: boolean;
474
- /**
475
- * Observable event triggered before each texture is initialized
476
- */
477
- onBeforeTextureInitObservable: Observable<Texture>;
478
- /** @internal */
479
- protected _isWebGPU: boolean;
480
- /**
481
- * Gets a boolean indicating if the engine runs in WebGPU or not.
482
- */
483
- get isWebGPU(): boolean;
484
- /** @internal */
485
- protected _shaderPlatformName: string;
486
- /**
487
- * Gets the shader platform name used by the effects.
488
- */
489
- get shaderPlatformName(): string;
490
- /**
491
- * Enables or disables the snapshot rendering mode
492
- * Note that the WebGL engine does not support snapshot rendering so setting the value won't have any effect for this engine
493
- */
494
- get snapshotRendering(): boolean;
495
- set snapshotRendering(activate: boolean);
496
- protected _snapshotRenderingMode: number;
497
- /**
498
- * Gets or sets the snapshot rendering mode
499
- */
500
- get snapshotRenderingMode(): number;
501
- set snapshotRenderingMode(mode: number);
502
- /**
503
- * Gets a boolean indicating if the exact sRGB conversions or faster approximations are used for converting to and from linear space.
504
- */
505
- readonly useExactSrgbConversions: boolean;
506
169
  /**
507
170
  * Creates a new snapshot at the next frame using the current snapshotRenderingMode
508
171
  */
509
172
  snapshotRenderingReset(): void;
510
- private _checkForMobile;
511
- private static _CreateCanvas;
512
- /**
513
- * Create a canvas. This method is overridden by other engines
514
- * @param width width
515
- * @param height height
516
- * @returns ICanvas interface
517
- */
518
- createCanvas(width: number, height: number): ICanvas;
519
- /**
520
- * Create an image to use with canvas
521
- * @returns IImage interface
522
- */
523
- createCanvasImage(): IImage;
524
173
  /**
525
174
  * Creates a new engine
526
175
  * @param canvasOrContext defines the canvas or WebGL context to use for rendering. If you provide a WebGL context, Babylon.js will not hook events on the canvas (like pointers, keyboards, etc...) so no event observables will be available. This is mostly used when Babylon.js is used as a plugin on a system which already used the WebGL context
@@ -529,30 +178,16 @@ export declare class ThinEngine {
529
178
  * @param adaptToDeviceRatio defines whether to adapt to the device's viewport characteristics (default: false)
530
179
  */
531
180
  constructor(canvasOrContext: Nullable<HTMLCanvasElement | OffscreenCanvas | WebGLRenderingContext | WebGL2RenderingContext>, antialias?: boolean, options?: EngineOptions, adaptToDeviceRatio?: boolean);
532
- protected _setupMobileChecks(): void;
533
181
  protected _clearEmptyResources(): void;
534
- protected _rebuildGraphicsResources(): void;
535
- protected _flagContextRestored(): void;
536
- protected _restoreEngineAfterContextLost(initEngine: () => void): void;
537
- /**
538
- * Shared initialization across engines types.
539
- * @param canvas The canvas associated with this instance of the engine.
540
- */
541
- protected _sharedInit(canvas: HTMLCanvasElement): void;
542
182
  /**
543
183
  * @internal
544
184
  */
545
185
  _getShaderProcessingContext(shaderLanguage: ShaderLanguage): Nullable<ShaderProcessingContext>;
546
- private _rebuildInternalTextures;
547
- private _rebuildRenderTargetWrappers;
548
- private _rebuildEffects;
549
186
  /**
550
187
  * Gets a boolean indicating if all created effects are ready
551
188
  * @returns true if all effects are ready
552
189
  */
553
190
  areAllEffectsReady(): boolean;
554
- protected _rebuildBuffers(): void;
555
- protected _rebuildTextures(): void;
556
191
  protected _initGLContext(): void;
557
192
  protected _initFeatures(): void;
558
193
  /**
@@ -565,16 +200,8 @@ export declare class ThinEngine {
565
200
  * @returns "Engine" string
566
201
  */
567
202
  getClassName(): string;
568
- /**
569
- * Returns true if the stencil buffer has been enabled through the creation option of the context.
570
- */
571
- get isStencilEnable(): boolean;
572
203
  /** @internal */
573
204
  _prepareWorkingCanvas(): void;
574
- /**
575
- * Reset the texture cache to empty state
576
- */
577
- resetTextureCache(): void;
578
205
  /**
579
206
  * Gets an object containing information about the current engine context
580
207
  * @returns an object containing the vendor, the renderer and the version of the current engine context
@@ -593,58 +220,8 @@ export declare class ThinEngine {
593
220
  renderer: string;
594
221
  version: string;
595
222
  };
596
- /**
597
- * Defines the hardware scaling level.
598
- * By default the hardware scaling level is computed from the window device ratio.
599
- * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.
600
- * @param level defines the level to use
601
- */
602
- setHardwareScalingLevel(level: number): void;
603
- /**
604
- * Gets the current hardware scaling level.
605
- * By default the hardware scaling level is computed from the window device ratio.
606
- * if level = 1 then the engine will render at the exact resolution of the canvas. If level = 0.5 then the engine will render at twice the size of the canvas.
607
- * @returns a number indicating the current hardware scaling level
608
- */
609
- getHardwareScalingLevel(): number;
610
- /**
611
- * Gets the list of loaded textures
612
- * @returns an array containing all loaded textures
613
- */
614
- getLoadedTexturesCache(): InternalTexture[];
615
- /**
616
- * Gets the object containing all engine capabilities
617
- * @returns the EngineCapabilities object
618
- */
619
- getCaps(): EngineCapabilities;
620
- /**
621
- * stop executing a render loop function and remove it from the execution array
622
- * @param renderFunction defines the function to be removed. If not provided all functions will be removed.
623
- */
624
- stopRenderLoop(renderFunction?: () => void): void;
625
- protected _cancelFrame(): void;
626
- /** @internal */
627
- _renderLoop(): void;
628
- /**
629
- * Gets the HTML canvas attached with the current webGL context
630
- * @returns a HTML canvas
631
- */
632
- getRenderingCanvas(): Nullable<HTMLCanvasElement>;
633
- /**
634
- * Gets the audio context specified in engine initialization options
635
- * @returns an Audio Context
636
- */
637
- getAudioContext(): Nullable<AudioContext>;
638
- /**
639
- * Gets the audio destination specified in engine initialization options
640
- * @returns an audio destination node
641
- */
642
- getAudioDestination(): Nullable<AudioDestinationNode | MediaStreamAudioDestinationNode>;
643
- /**
644
- * Gets host window
645
- * @returns the host window object
646
- */
647
- getHostWindow(): Nullable<Window>;
223
+ /**Gets driver info if available */
224
+ extractDriverInfo(): string;
648
225
  /**
649
226
  * Gets the current render width
650
227
  * @param useScreen defines if screen size must be used (or the current render target if any)
@@ -657,16 +234,6 @@ export declare class ThinEngine {
657
234
  * @returns a number defining the current render height
658
235
  */
659
236
  getRenderHeight(useScreen?: boolean): number;
660
- /**
661
- * Can be used to override the current requestAnimationFrame requester.
662
- * @internal
663
- */
664
- protected _queueNewFrame(bindedRenderFunction: any, requester?: any): number;
665
- /**
666
- * Register and execute a render loop. The engine can have more than one render function
667
- * @param renderFunction defines the function to continuously execute
668
- */
669
- runRenderLoop(renderFunction: () => void): void;
670
237
  /**
671
238
  * Clear the current render buffer or the current render target (if any is set up)
672
239
  * @param color defines the color to use
@@ -675,44 +242,19 @@ export declare class ThinEngine {
675
242
  * @param stencil defines if the stencil buffer must be cleared
676
243
  */
677
244
  clear(color: Nullable<IColor4Like>, backBuffer: boolean, depth: boolean, stencil?: boolean): void;
678
- protected _viewportCached: {
679
- x: number;
680
- y: number;
681
- z: number;
682
- w: number;
683
- };
684
245
  /**
685
246
  * @internal
686
247
  */
687
248
  _viewport(x: number, y: number, width: number, height: number): void;
688
249
  /**
689
- * Set the WebGL's viewport
690
- * @param viewport defines the viewport element to be used
691
- * @param requiredWidth defines the width required for rendering. If not provided the rendering canvas' width is used
692
- * @param requiredHeight defines the height required for rendering. If not provided the rendering canvas' height is used
693
- */
694
- setViewport(viewport: IViewportLike, requiredWidth?: number, requiredHeight?: number): void;
695
- /**
696
- * Begin a new frame
697
- */
698
- beginFrame(): void;
699
- /**
700
- * Enf the current frame
250
+ * End the current frame
701
251
  */
702
252
  endFrame(): void;
703
253
  /**
704
- * Resize the view according to the canvas' size
705
- * @param forceSetSize true to force setting the sizes of the underlying canvas
254
+ * Gets the performance monitor attached to this engine
255
+ * @see https://doc.babylonjs.com/features/featuresDeepDive/scene/optimize_your_scene#engineinstrumentation
706
256
  */
707
- resize(forceSetSize?: boolean): void;
708
- /**
709
- * Force a specific size of the canvas
710
- * @param width defines the new canvas' width
711
- * @param height defines the new canvas' height
712
- * @param forceSetSize true to force setting the sizes of the underlying canvas
713
- * @returns true if the size was changed
714
- */
715
- setSize(width: number, height: number, forceSetSize?: boolean): boolean;
257
+ get performanceMonitor(): PerformanceMonitor;
716
258
  /**
717
259
  * Binds the frame buffer to the specified texture.
718
260
  * @param rtWrapper The render target wrapper to render to
@@ -735,36 +277,6 @@ export declare class ThinEngine {
735
277
  * @param zOffsetUnits defines the value to apply to zOffsetUnits (0 by default)
736
278
  */
737
279
  setState(culling: boolean, zOffset?: number, force?: boolean, reverseSide?: boolean, cullBackFaces?: boolean, stencil?: IStencilState, zOffsetUnits?: number): void;
738
- /**
739
- * Gets a boolean indicating if depth testing is enabled
740
- * @returns the current state
741
- */
742
- getDepthBuffer(): boolean;
743
- /**
744
- * Enable or disable depth buffering
745
- * @param enable defines the state to set
746
- */
747
- setDepthBuffer(enable: boolean): void;
748
- /**
749
- * Set the z offset Factor to apply to current rendering
750
- * @param value defines the offset to apply
751
- */
752
- setZOffset(value: number): void;
753
- /**
754
- * Gets the current value of the zOffset Factor
755
- * @returns the current zOffset Factor state
756
- */
757
- getZOffset(): number;
758
- /**
759
- * Set the z offset Units to apply to current rendering
760
- * @param value defines the offset to apply
761
- */
762
- setZOffsetUnits(value: number): void;
763
- /**
764
- * Gets the current value of the zOffset Units
765
- * @returns the current zOffset Units state
766
- */
767
- getZOffsetUnits(): number;
768
280
  /**
769
281
  * @internal
770
282
  */
@@ -963,8 +475,6 @@ export declare class ThinEngine {
963
475
  */
964
476
  drawArraysType(fillMode: number, verticesStart: number, verticesCount: number, instancesCount?: number): void;
965
477
  private _drawMode;
966
- /** @internal */
967
- protected _reportDrawCall(): void;
968
478
  /**
969
479
  * @internal
970
480
  */
@@ -973,10 +483,6 @@ export declare class ThinEngine {
973
483
  * @internal
974
484
  */
975
485
  _deletePipelineContext(pipelineContext: IPipelineContext): void;
976
- /** @internal */
977
- _getGlobalDefines(defines?: {
978
- [key: string]: string;
979
- }): string | undefined;
980
486
  /**
981
487
  * Create a new effect (used to store vertex/fragment shaders)
982
488
  * @param baseName defines the base name of the effect (The name of file without .fragment.fx or .vertex.fx)
@@ -1289,43 +795,15 @@ export declare class ThinEngine {
1289
795
  * Apply all cached states (depth, culling, stencil and alpha)
1290
796
  */
1291
797
  applyStates(): void;
1292
- /**
1293
- * Enable or disable color writing
1294
- * @param enable defines the state to set
1295
- */
1296
- setColorWrite(enable: boolean): void;
1297
- /**
1298
- * Gets a boolean indicating if color writing is enabled
1299
- * @returns the current color writing state
1300
- */
1301
- getColorWrite(): boolean;
1302
- /**
1303
- * Gets the depth culling state manager
1304
- */
1305
- get depthCullingState(): DepthCullingState;
1306
- /**
1307
- * Gets the alpha state manager
1308
- */
1309
- get alphaState(): AlphaState;
1310
- /**
1311
- * Gets the stencil state manager
1312
- */
1313
- get stencilState(): StencilState;
1314
- /**
1315
- * Gets the stencil state composer
1316
- */
1317
- get stencilStateComposer(): StencilStateComposer;
1318
- /**
1319
- * Clears the list of texture accessible through engine.
1320
- * This can help preventing texture load conflict due to name collision.
1321
- */
1322
- clearInternalTexturesCache(): void;
1323
798
  /**
1324
799
  * Force the entire cache to be cleared
1325
800
  * You should not have to use this function unless your engine needs to share the webGL context with another engine
1326
801
  * @param bruteForce defines a boolean to force clearing ALL caches (including stencil, detoh and alpha states)
1327
802
  */
1328
803
  wipeCaches(bruteForce?: boolean): void;
804
+ setTextureFromPostProcess(channel: number, postProcess: Nullable<PostProcess>, name: string): void;
805
+ setTextureFromPostProcessOutput(channel: number, postProcess: Nullable<PostProcess>, name: string): void;
806
+ setDepthStencilTexture(channel: number, uniform: Nullable<WebGLUniformLocation>, texture: Nullable<RenderTargetTexture>, name?: string): void;
1329
807
  /**
1330
808
  * @internal
1331
809
  */
@@ -1351,16 +829,6 @@ export declare class ThinEngine {
1351
829
  * @internal
1352
830
  */
1353
831
  _getUseSRGBBuffer(useSRGBBuffer: boolean, noMipmap: boolean): boolean;
1354
- protected _createTextureBase(url: Nullable<string>, noMipmap: boolean, invertY: boolean, scene: Nullable<ISceneLike>, samplingMode: number | undefined, onLoad: Nullable<(texture: InternalTexture) => void> | undefined, onError: Nullable<(message: string, exception: any) => void> | undefined, prepareTexture: (texture: InternalTexture, extension: string, scene: Nullable<ISceneLike>, img: HTMLImageElement | ImageBitmap | {
1355
- width: number;
1356
- height: number;
1357
- }, invertY: boolean, noMipmap: boolean, isCompressed: boolean, processFunction: (width: number, height: number, img: HTMLImageElement | ImageBitmap | {
1358
- width: number;
1359
- height: number;
1360
- }, extension: string, texture: InternalTexture, continuationCallback: () => void) => boolean, samplingMode: number) => void, prepareTextureProcessFunction: (width: number, height: number, img: HTMLImageElement | ImageBitmap | {
1361
- width: number;
1362
- height: number;
1363
- }, extension: string, texture: InternalTexture, continuationCallback: () => void) => boolean, buffer?: Nullable<string | ArrayBuffer | ArrayBufferView | HTMLImageElement | Blob | ImageBitmap>, fallback?: Nullable<InternalTexture>, format?: Nullable<number>, forcedExtension?: Nullable<string>, mimeType?: string, loaderOptions?: any, useSRGBBuffer?: boolean): InternalTexture;
1364
832
  /**
1365
833
  * Usually called from Texture.ts.
1366
834
  * Passed information to create a WebGLTexture
@@ -1396,18 +864,6 @@ export declare class ThinEngine {
1396
864
  * @internal
1397
865
  */
1398
866
  _getTexImageParametersForCreateTexture(babylonFormat: Nullable<number>, fileExtension: string, useSRGBBuffer: boolean): TexImageParameters;
1399
- /**
1400
- * Loads an image as an HTMLImageElement.
1401
- * @param input url string, ArrayBuffer, or Blob to load
1402
- * @param onLoad callback called when the image successfully loads
1403
- * @param onError callback called when the image fails to load
1404
- * @param offlineProvider offline provider for caching
1405
- * @param mimeType optional mime type
1406
- * @param imageBitmapOptions optional the options to use when creating an ImageBitmap
1407
- * @returns the HTMLImageElement of the loaded image
1408
- * @internal
1409
- */
1410
- static _FileToolsLoadImage(input: string | ArrayBuffer | ArrayBufferView | Blob, onLoad: (img: HTMLImageElement | ImageBitmap) => void, onError: (message?: string, exception?: any) => void, offlineProvider: Nullable<IOfflineProvider>, mimeType?: string, imageBitmapOptions?: ImageBitmapOptions): Nullable<HTMLImageElement>;
1411
867
  /**
1412
868
  * @internal
1413
869
  */
@@ -1493,10 +949,6 @@ export declare class ThinEngine {
1493
949
  * @internal
1494
950
  */
1495
951
  _releaseTexture(texture: InternalTexture): void;
1496
- /**
1497
- * @internal
1498
- */
1499
- _releaseRenderTargetWrapper(rtWrapper: RenderTargetWrapper): void;
1500
952
  protected _deleteTexture(texture: Nullable<WebGLTexture>): void;
1501
953
  protected _setProgram(program: WebGLProgram): void;
1502
954
  protected _boundUniforms: {
@@ -1588,22 +1040,6 @@ export declare class ThinEngine {
1588
1040
  * @internal
1589
1041
  */
1590
1042
  _getRGBABufferInternalSizedFormat(type: number, format?: number, useSRGBBuffer?: boolean): number;
1591
- /**
1592
- * @internal
1593
- */
1594
- _loadFile(url: string, onSuccess: (data: string | ArrayBuffer, responseURL?: string) => void, onProgress?: (data: any) => void, offlineProvider?: IOfflineProvider, useArrayBuffer?: boolean, onError?: (request?: IWebRequest, exception?: any) => void): IFileRequest;
1595
- /**
1596
- * Loads a file from a url
1597
- * @param url url to load
1598
- * @param onSuccess callback called when the file successfully loads
1599
- * @param onProgress callback called while file is loading (if the server supports this mode)
1600
- * @param offlineProvider defines the offline provider for caching
1601
- * @param useArrayBuffer defines a boolean indicating that date must be returned as ArrayBuffer
1602
- * @param onError callback called when the file fails to load
1603
- * @returns a file request object
1604
- * @internal
1605
- */
1606
- static _FileToolsLoadFile(url: string, onSuccess: (data: string | ArrayBuffer, responseURL?: string) => void, onProgress?: (ev: ProgressEvent) => void, offlineProvider?: IOfflineProvider, useArrayBuffer?: boolean, onError?: (request?: WebRequest, exception?: LoadFileError) => void): IFileRequest;
1607
1043
  /**
1608
1044
  * Reads pixels from the current frame buffer. Please note that this function can be slow
1609
1045
  * @param x defines the x coordinate of the rectangle where pixels must be read
@@ -1615,6 +1051,12 @@ export declare class ThinEngine {
1615
1051
  * @returns a ArrayBufferView promise (Uint8Array) containing RGBA colors
1616
1052
  */
1617
1053
  readPixels(x: number, y: number, width: number, height: number, hasAlpha?: boolean, flushRenderer?: boolean): Promise<ArrayBufferView>;
1054
+ /**
1055
+ * Force the mipmap generation for the given render target texture
1056
+ * @param texture defines the render target texture to use
1057
+ * @param unbind defines whether or not to unbind the texture after generation. Defaults to true.
1058
+ */
1059
+ generateMipMapsForCubemap(texture: InternalTexture, unbind: boolean): void;
1618
1060
  private static _IsSupported;
1619
1061
  private static _HasMajorPerformanceCaveat;
1620
1062
  /**
@@ -1640,19 +1082,19 @@ export declare class ThinEngine {
1640
1082
  * @param x Number to start search from.
1641
1083
  * @returns Next highest power of two.
1642
1084
  */
1643
- static CeilingPOT(x: number): number;
1085
+ static CeilingPOT: (x: number) => number;
1644
1086
  /**
1645
1087
  * Find the next lowest power of two.
1646
1088
  * @param x Number to start search from.
1647
1089
  * @returns Next lowest power of two.
1648
1090
  */
1649
- static FloorPOT(x: number): number;
1091
+ static FloorPOT: (x: number) => number;
1650
1092
  /**
1651
1093
  * Find the nearest power of two.
1652
1094
  * @param x Number to start search from.
1653
1095
  * @returns Next nearest power of two.
1654
1096
  */
1655
- static NearestPOT(x: number): number;
1097
+ static NearestPOT: (x: number) => number;
1656
1098
  /**
1657
1099
  * Get the closest exponent of two
1658
1100
  * @param value defines the value to approximate
@@ -1660,19 +1102,14 @@ export declare class ThinEngine {
1660
1102
  * @param mode defines how to define the closest value
1661
1103
  * @returns closest exponent of two of the given value
1662
1104
  */
1663
- static GetExponentOfTwo(value: number, max: number, mode?: number): number;
1105
+ static GetExponentOfTwo: (value: number, max: number, mode: number) => number;
1664
1106
  /**
1665
1107
  * Queue a new function into the requested animation frame pool (ie. this function will be executed by the browser (or the javascript engine) for the next frame)
1666
1108
  * @param func - the function to be called
1667
1109
  * @param requester - the object that will request the next frame. Falls back to window.
1668
1110
  * @returns frame number
1669
1111
  */
1670
- static QueueNewFrame(func: () => void, requester?: any): number;
1671
- /**
1672
- * Gets host document
1673
- * @returns the host document object
1674
- */
1675
- getHostDocument(): Nullable<Document>;
1112
+ static QueueNewFrame: (func: () => void, requester?: any) => number;
1676
1113
  }
1677
1114
  interface TexImageParameters {
1678
1115
  internalFormat: number;