@babylonjs/viewer 7.26.3-alpha → 7.26.3

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 (578) hide show
  1. package/configuration/configuration.d.ts +107 -0
  2. package/configuration/configuration.js +16 -0
  3. package/configuration/configuration.js.map +1 -0
  4. package/configuration/configurationCompatibility.d.ts +8 -0
  5. package/configuration/configurationCompatibility.js +66 -0
  6. package/configuration/configurationCompatibility.js.map +1 -0
  7. package/configuration/configurationContainer.d.ts +10 -0
  8. package/configuration/configurationContainer.js +10 -0
  9. package/configuration/configurationContainer.js.map +1 -0
  10. package/configuration/globals.d.ts +6 -0
  11. package/configuration/globals.js +18 -0
  12. package/configuration/globals.js.map +1 -0
  13. package/configuration/index.d.ts +2 -0
  14. package/configuration/index.js +4 -0
  15. package/configuration/index.js.map +1 -0
  16. package/configuration/interfaces/cameraConfiguration.d.ts +31 -0
  17. package/configuration/interfaces/cameraConfiguration.js +2 -0
  18. package/configuration/interfaces/cameraConfiguration.js.map +1 -0
  19. package/configuration/interfaces/colorGradingConfiguration.d.ts +81 -0
  20. package/configuration/interfaces/colorGradingConfiguration.js +2 -0
  21. package/configuration/interfaces/colorGradingConfiguration.js.map +1 -0
  22. package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +20 -0
  23. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +2 -0
  24. package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +1 -0
  25. package/configuration/interfaces/environmentMapConfiguration.d.ts +22 -0
  26. package/configuration/interfaces/environmentMapConfiguration.js +2 -0
  27. package/configuration/interfaces/environmentMapConfiguration.js.map +1 -0
  28. package/configuration/interfaces/groundConfiguration.d.ts +24 -0
  29. package/configuration/interfaces/groundConfiguration.js +2 -0
  30. package/configuration/interfaces/groundConfiguration.js.map +1 -0
  31. package/configuration/interfaces/imageProcessingConfiguration.d.ts +45 -0
  32. package/configuration/interfaces/imageProcessingConfiguration.js +2 -0
  33. package/configuration/interfaces/imageProcessingConfiguration.js.map +1 -0
  34. package/configuration/interfaces/index.d.ts +15 -0
  35. package/configuration/interfaces/index.js +16 -0
  36. package/configuration/interfaces/index.js.map +1 -0
  37. package/configuration/interfaces/lightConfiguration.d.ts +60 -0
  38. package/configuration/interfaces/lightConfiguration.js +2 -0
  39. package/configuration/interfaces/lightConfiguration.js.map +1 -0
  40. package/configuration/interfaces/modelAnimationConfiguration.d.ts +26 -0
  41. package/configuration/interfaces/modelAnimationConfiguration.js +2 -0
  42. package/configuration/interfaces/modelAnimationConfiguration.js.map +1 -0
  43. package/configuration/interfaces/modelConfiguration.d.ts +65 -0
  44. package/configuration/interfaces/modelConfiguration.js +2 -0
  45. package/configuration/interfaces/modelConfiguration.js.map +1 -0
  46. package/configuration/interfaces/observersConfiguration.d.ts +5 -0
  47. package/configuration/interfaces/observersConfiguration.js +2 -0
  48. package/configuration/interfaces/observersConfiguration.js.map +1 -0
  49. package/configuration/interfaces/sceneConfiguration.d.ts +48 -0
  50. package/configuration/interfaces/sceneConfiguration.js +2 -0
  51. package/configuration/interfaces/sceneConfiguration.js.map +1 -0
  52. package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +23 -0
  53. package/configuration/interfaces/sceneOptimizerConfiguration.js +2 -0
  54. package/configuration/interfaces/sceneOptimizerConfiguration.js.map +1 -0
  55. package/configuration/interfaces/skyboxConfiguration.d.ts +21 -0
  56. package/configuration/interfaces/skyboxConfiguration.js +2 -0
  57. package/configuration/interfaces/skyboxConfiguration.js.map +1 -0
  58. package/configuration/interfaces/templateConfiguration.d.ts +67 -0
  59. package/configuration/interfaces/templateConfiguration.js +2 -0
  60. package/configuration/interfaces/templateConfiguration.js.map +1 -0
  61. package/configuration/interfaces/vrConfiguration.d.ts +16 -0
  62. package/configuration/interfaces/vrConfiguration.js +2 -0
  63. package/configuration/interfaces/vrConfiguration.js.map +1 -0
  64. package/configuration/loader.d.ts +4 -0
  65. package/configuration/loader.js +17 -0
  66. package/configuration/loader.js.map +1 -0
  67. package/configuration/mappers.d.ts +43 -0
  68. package/configuration/mappers.js +192 -0
  69. package/configuration/mappers.js.map +1 -0
  70. package/configuration/renderOnlyLoader.d.ts +33 -0
  71. package/configuration/renderOnlyLoader.js +162 -0
  72. package/configuration/renderOnlyLoader.js.map +1 -0
  73. package/configuration/types/default.d.ts +6 -0
  74. package/configuration/types/default.js +121 -0
  75. package/configuration/types/default.js.map +1 -0
  76. package/configuration/types/environmentMap.d.ts +5 -0
  77. package/configuration/types/environmentMap.js +14 -0
  78. package/configuration/types/environmentMap.js.map +1 -0
  79. package/configuration/types/extended.d.ts +6 -0
  80. package/configuration/types/extended.js +317 -0
  81. package/configuration/types/extended.js.map +1 -0
  82. package/configuration/types/index.d.ts +14 -0
  83. package/configuration/types/index.js +51 -0
  84. package/configuration/types/index.js.map +1 -0
  85. package/configuration/types/minimal.d.ts +6 -0
  86. package/configuration/types/minimal.js +43 -0
  87. package/configuration/types/minimal.js.map +1 -0
  88. package/configuration/types/renderOnlyDefault.d.ts +30 -0
  89. package/configuration/types/renderOnlyDefault.js +31 -0
  90. package/configuration/types/renderOnlyDefault.js.map +1 -0
  91. package/configuration/types/shadowLight.d.ts +9 -0
  92. package/configuration/types/shadowLight.js +64 -0
  93. package/configuration/types/shadowLight.js.map +1 -0
  94. package/helper/index.d.ts +29 -0
  95. package/helper/index.js +66 -0
  96. package/helper/index.js.map +1 -0
  97. package/index.d.ts +30 -0
  98. package/index.js +46 -0
  99. package/index.js.map +1 -0
  100. package/initializer.d.ts +11 -0
  101. package/initializer.js +35 -0
  102. package/initializer.js.map +1 -0
  103. package/interfaces.d.ts +5 -0
  104. package/interfaces.js +7 -0
  105. package/interfaces.js.map +1 -0
  106. package/labs/environmentSerializer.d.ts +126 -0
  107. package/labs/environmentSerializer.js +191 -0
  108. package/labs/environmentSerializer.js.map +1 -0
  109. package/labs/texture.d.ts +183 -0
  110. package/labs/texture.js +350 -0
  111. package/labs/texture.js.map +1 -0
  112. package/labs/viewerLabs.d.ts +51 -0
  113. package/labs/viewerLabs.js +134 -0
  114. package/labs/viewerLabs.js.map +1 -0
  115. package/loader/modelLoader.d.ts +56 -0
  116. package/loader/modelLoader.js +199 -0
  117. package/loader/modelLoader.js.map +1 -0
  118. package/loader/plugins/applyMaterialConfig.d.ts +12 -0
  119. package/loader/plugins/applyMaterialConfig.js +16 -0
  120. package/loader/plugins/applyMaterialConfig.js.map +1 -0
  121. package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +9 -0
  122. package/loader/plugins/extendedMaterialLoaderPlugin.js +16 -0
  123. package/loader/plugins/extendedMaterialLoaderPlugin.js.map +1 -0
  124. package/loader/plugins/index.d.ts +19 -0
  125. package/loader/plugins/index.js +44 -0
  126. package/loader/plugins/index.js.map +1 -0
  127. package/loader/plugins/loaderPlugin.d.ts +24 -0
  128. package/loader/plugins/loaderPlugin.js +2 -0
  129. package/loader/plugins/loaderPlugin.js.map +1 -0
  130. package/loader/plugins/msftLodLoaderPlugin.d.ts +12 -0
  131. package/loader/plugins/msftLodLoaderPlugin.js +21 -0
  132. package/loader/plugins/msftLodLoaderPlugin.js.map +1 -0
  133. package/loader/plugins/telemetryLoaderPlugin.d.ts +12 -0
  134. package/loader/plugins/telemetryLoaderPlugin.js +36 -0
  135. package/loader/plugins/telemetryLoaderPlugin.js.map +1 -0
  136. package/managers/observablesManager.d.ts +66 -0
  137. package/managers/observablesManager.js +35 -0
  138. package/managers/observablesManager.js.map +1 -0
  139. package/managers/sceneManager.d.ts +245 -0
  140. package/managers/sceneManager.js +1375 -0
  141. package/managers/sceneManager.js.map +1 -0
  142. package/managers/telemetryManager.d.ts +78 -0
  143. package/managers/telemetryManager.js +117 -0
  144. package/managers/telemetryManager.js.map +1 -0
  145. package/model/modelAnimation.d.ts +215 -0
  146. package/model/modelAnimation.js +237 -0
  147. package/model/modelAnimation.js.map +1 -0
  148. package/model/viewerModel.d.ts +233 -0
  149. package/model/viewerModel.js +673 -0
  150. package/model/viewerModel.js.map +1 -0
  151. package/optimizer/custom/extended.d.ts +13 -0
  152. package/optimizer/custom/extended.js +101 -0
  153. package/optimizer/custom/extended.js.map +1 -0
  154. package/optimizer/custom/index.d.ts +9 -0
  155. package/optimizer/custom/index.js +26 -0
  156. package/optimizer/custom/index.js.map +1 -0
  157. package/package.json +27 -17
  158. package/readme.md +21 -35
  159. package/renderOnlyIndex.d.ts +11 -0
  160. package/renderOnlyIndex.js +18 -0
  161. package/renderOnlyIndex.js.map +1 -0
  162. package/templating/eventManager.d.ts +35 -0
  163. package/templating/eventManager.js +66 -0
  164. package/templating/eventManager.js.map +1 -0
  165. package/templating/plugins/hdButtonPlugin.d.ts +9 -0
  166. package/templating/plugins/hdButtonPlugin.js +21 -0
  167. package/templating/plugins/hdButtonPlugin.js.map +1 -0
  168. package/templating/plugins/printButton.d.ts +9 -0
  169. package/templating/plugins/printButton.js +40 -0
  170. package/templating/plugins/printButton.js.map +1 -0
  171. package/templating/templateManager.d.ts +197 -0
  172. package/templating/templateManager.js +561 -0
  173. package/templating/templateManager.js.map +1 -0
  174. package/templating/viewerTemplatePlugin.d.ts +21 -0
  175. package/templating/viewerTemplatePlugin.js +69 -0
  176. package/templating/viewerTemplatePlugin.js.map +1 -0
  177. package/viewer/defaultViewer.d.ts +130 -0
  178. package/viewer/defaultViewer.js +675 -0
  179. package/viewer/defaultViewer.js.map +1 -0
  180. package/viewer/renderOnlyViewer.d.ts +9 -0
  181. package/viewer/renderOnlyViewer.js +46 -0
  182. package/viewer/renderOnlyViewer.js.map +1 -0
  183. package/viewer/viewer.d.ts +258 -0
  184. package/viewer/viewer.js +783 -0
  185. package/viewer/viewer.js.map +1 -0
  186. package/viewer/viewerManager.d.ts +58 -0
  187. package/viewer/viewerManager.js +91 -0
  188. package/viewer/viewerManager.js.map +1 -0
  189. package/viewer/viewerWithTemplate.d.ts +9 -0
  190. package/viewer/viewerWithTemplate.js +20 -0
  191. package/viewer/viewerWithTemplate.js.map +1 -0
  192. package/dist/babylon-viewer.esm.js +0 -2
  193. package/dist/babylon-viewer.esm.js.map +0 -1
  194. package/dist/babylon-viewer.esm.min.js +0 -2
  195. package/dist/babylon-viewer.esm.min.js.map +0 -1
  196. package/dist/chunks/EXT_lights_image_based-CX9xWDUc.esm.min.js +0 -2
  197. package/dist/chunks/EXT_lights_image_based-CX9xWDUc.esm.min.js.map +0 -1
  198. package/dist/chunks/EXT_lights_image_based-D2376Rhk.esm.js +0 -171
  199. package/dist/chunks/EXT_lights_image_based-D2376Rhk.esm.js.map +0 -1
  200. package/dist/chunks/EXT_mesh_gpu_instancing-COx3jzFo.esm.js +0 -86
  201. package/dist/chunks/EXT_mesh_gpu_instancing-COx3jzFo.esm.js.map +0 -1
  202. package/dist/chunks/EXT_mesh_gpu_instancing-DucZlyik.esm.min.js +0 -2
  203. package/dist/chunks/EXT_mesh_gpu_instancing-DucZlyik.esm.min.js.map +0 -1
  204. package/dist/chunks/EXT_meshopt_compression-CYrBmER6.esm.js +0 -134
  205. package/dist/chunks/EXT_meshopt_compression-CYrBmER6.esm.js.map +0 -1
  206. package/dist/chunks/EXT_meshopt_compression-RcQCBtJG.esm.min.js +0 -2
  207. package/dist/chunks/EXT_meshopt_compression-RcQCBtJG.esm.min.js.map +0 -1
  208. package/dist/chunks/EXT_texture_avif-BhIxh8Y2.esm.min.js +0 -2
  209. package/dist/chunks/EXT_texture_avif-BhIxh8Y2.esm.min.js.map +0 -1
  210. package/dist/chunks/EXT_texture_avif-Ca5z5sd4.esm.js +0 -44
  211. package/dist/chunks/EXT_texture_avif-Ca5z5sd4.esm.js.map +0 -1
  212. package/dist/chunks/EXT_texture_webp-BqckITjY.esm.js +0 -43
  213. package/dist/chunks/EXT_texture_webp-BqckITjY.esm.js.map +0 -1
  214. package/dist/chunks/EXT_texture_webp-CkyuNFGt.esm.min.js +0 -2
  215. package/dist/chunks/EXT_texture_webp-CkyuNFGt.esm.min.js.map +0 -1
  216. package/dist/chunks/ExtrasAsMetadata-B5tcWWcU.esm.js +0 -64
  217. package/dist/chunks/ExtrasAsMetadata-B5tcWWcU.esm.js.map +0 -1
  218. package/dist/chunks/ExtrasAsMetadata-DXurtCTq.esm.min.js +0 -2
  219. package/dist/chunks/ExtrasAsMetadata-DXurtCTq.esm.min.js.map +0 -1
  220. package/dist/chunks/KHR_animation_pointer--IiYfSMj.esm.min.js +0 -2
  221. package/dist/chunks/KHR_animation_pointer--IiYfSMj.esm.min.js.map +0 -1
  222. package/dist/chunks/KHR_animation_pointer-DfN1Ew0i.esm.js +0 -343
  223. package/dist/chunks/KHR_animation_pointer-DfN1Ew0i.esm.js.map +0 -1
  224. package/dist/chunks/KHR_draco_mesh_compression-CRrH0RjE.esm.js +0 -610
  225. package/dist/chunks/KHR_draco_mesh_compression-CRrH0RjE.esm.js.map +0 -1
  226. package/dist/chunks/KHR_draco_mesh_compression-Dx3wBJzh.esm.min.js +0 -2
  227. package/dist/chunks/KHR_draco_mesh_compression-Dx3wBJzh.esm.min.js.map +0 -1
  228. package/dist/chunks/KHR_interactivity-BhxUQ3Nl.esm.min.js +0 -2
  229. package/dist/chunks/KHR_interactivity-BhxUQ3Nl.esm.min.js.map +0 -1
  230. package/dist/chunks/KHR_interactivity-DHimeDac.esm.js +0 -4033
  231. package/dist/chunks/KHR_interactivity-DHimeDac.esm.js.map +0 -1
  232. package/dist/chunks/KHR_lights_punctual-CKLPiVPx.esm.js +0 -1253
  233. package/dist/chunks/KHR_lights_punctual-CKLPiVPx.esm.js.map +0 -1
  234. package/dist/chunks/KHR_lights_punctual-Dl3Xt0qH.esm.min.js +0 -2
  235. package/dist/chunks/KHR_lights_punctual-Dl3Xt0qH.esm.min.js.map +0 -1
  236. package/dist/chunks/KHR_materials_anisotropy-BlKga02r.esm.min.js +0 -2
  237. package/dist/chunks/KHR_materials_anisotropy-BlKga02r.esm.min.js.map +0 -1
  238. package/dist/chunks/KHR_materials_anisotropy-D_vFuzc0.esm.js +0 -64
  239. package/dist/chunks/KHR_materials_anisotropy-D_vFuzc0.esm.js.map +0 -1
  240. package/dist/chunks/KHR_materials_clearcoat-2P7-x3fR.esm.js +0 -96
  241. package/dist/chunks/KHR_materials_clearcoat-2P7-x3fR.esm.js.map +0 -1
  242. package/dist/chunks/KHR_materials_clearcoat-JLop7Kfg.esm.min.js +0 -2
  243. package/dist/chunks/KHR_materials_clearcoat-JLop7Kfg.esm.min.js.map +0 -1
  244. package/dist/chunks/KHR_materials_diffuse_transmission-BJY5giTc.esm.min.js +0 -2
  245. package/dist/chunks/KHR_materials_diffuse_transmission-BJY5giTc.esm.min.js.map +0 -1
  246. package/dist/chunks/KHR_materials_diffuse_transmission-DwFIB9fg.esm.js +0 -97
  247. package/dist/chunks/KHR_materials_diffuse_transmission-DwFIB9fg.esm.js.map +0 -1
  248. package/dist/chunks/KHR_materials_dispersion-5ELsBp34.esm.min.js +0 -2
  249. package/dist/chunks/KHR_materials_dispersion-5ELsBp34.esm.min.js.map +0 -1
  250. package/dist/chunks/KHR_materials_dispersion-CFS1T2yw.esm.js +0 -62
  251. package/dist/chunks/KHR_materials_dispersion-CFS1T2yw.esm.js.map +0 -1
  252. package/dist/chunks/KHR_materials_emissive_strength-BjBRYGm9.esm.js +0 -55
  253. package/dist/chunks/KHR_materials_emissive_strength-BjBRYGm9.esm.js.map +0 -1
  254. package/dist/chunks/KHR_materials_emissive_strength-CPQefGT0.esm.min.js +0 -2
  255. package/dist/chunks/KHR_materials_emissive_strength-CPQefGT0.esm.min.js.map +0 -1
  256. package/dist/chunks/KHR_materials_ior-COc1f40R.esm.min.js +0 -2
  257. package/dist/chunks/KHR_materials_ior-COc1f40R.esm.min.js.map +0 -1
  258. package/dist/chunks/KHR_materials_ior-DA7pWw9x.esm.js +0 -64
  259. package/dist/chunks/KHR_materials_ior-DA7pWw9x.esm.js.map +0 -1
  260. package/dist/chunks/KHR_materials_iridescence-C5zkC2Qa.esm.min.js +0 -2
  261. package/dist/chunks/KHR_materials_iridescence-C5zkC2Qa.esm.min.js.map +0 -1
  262. package/dist/chunks/KHR_materials_iridescence-CmvJW1oh.esm.js +0 -72
  263. package/dist/chunks/KHR_materials_iridescence-CmvJW1oh.esm.js.map +0 -1
  264. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-7VdedH19.esm.js +0 -81
  265. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-7VdedH19.esm.js.map +0 -1
  266. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CDCzt8M3.esm.min.js +0 -2
  267. package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CDCzt8M3.esm.min.js.map +0 -1
  268. package/dist/chunks/KHR_materials_sheen-BFHRryyJ.esm.js +0 -85
  269. package/dist/chunks/KHR_materials_sheen-BFHRryyJ.esm.js.map +0 -1
  270. package/dist/chunks/KHR_materials_sheen-Dr_bKj0V.esm.min.js +0 -2
  271. package/dist/chunks/KHR_materials_sheen-Dr_bKj0V.esm.min.js.map +0 -1
  272. package/dist/chunks/KHR_materials_specular-CMp7dQ3N.esm.js +0 -75
  273. package/dist/chunks/KHR_materials_specular-CMp7dQ3N.esm.js.map +0 -1
  274. package/dist/chunks/KHR_materials_specular-Do-bJ9Tz.esm.min.js +0 -2
  275. package/dist/chunks/KHR_materials_specular-Do-bJ9Tz.esm.min.js.map +0 -1
  276. package/dist/chunks/KHR_materials_transmission-C8Na2aOr.esm.min.js +0 -2
  277. package/dist/chunks/KHR_materials_transmission-C8Na2aOr.esm.min.js.map +0 -1
  278. package/dist/chunks/KHR_materials_transmission-DiAYQhUP.esm.js +0 -307
  279. package/dist/chunks/KHR_materials_transmission-DiAYQhUP.esm.js.map +0 -1
  280. package/dist/chunks/KHR_materials_unlit-AqTZLxcL.esm.min.js +0 -2
  281. package/dist/chunks/KHR_materials_unlit-AqTZLxcL.esm.min.js.map +0 -1
  282. package/dist/chunks/KHR_materials_unlit-CwaIOdG_.esm.js +0 -74
  283. package/dist/chunks/KHR_materials_unlit-CwaIOdG_.esm.js.map +0 -1
  284. package/dist/chunks/KHR_materials_variants--8JMISBO.esm.js +0 -238
  285. package/dist/chunks/KHR_materials_variants--8JMISBO.esm.js.map +0 -1
  286. package/dist/chunks/KHR_materials_variants-CY2ksNW8.esm.min.js +0 -2
  287. package/dist/chunks/KHR_materials_variants-CY2ksNW8.esm.min.js.map +0 -1
  288. package/dist/chunks/KHR_materials_volume-16xOP2pG.esm.js +0 -87
  289. package/dist/chunks/KHR_materials_volume-16xOP2pG.esm.js.map +0 -1
  290. package/dist/chunks/KHR_materials_volume-eVBmT7Py.esm.min.js +0 -2
  291. package/dist/chunks/KHR_materials_volume-eVBmT7Py.esm.min.js.map +0 -1
  292. package/dist/chunks/KHR_mesh_quantization-CzxT4LfP.esm.min.js +0 -2
  293. package/dist/chunks/KHR_mesh_quantization-CzxT4LfP.esm.min.js.map +0 -1
  294. package/dist/chunks/KHR_mesh_quantization-DXlvMjPl.esm.js +0 -26
  295. package/dist/chunks/KHR_mesh_quantization-DXlvMjPl.esm.js.map +0 -1
  296. package/dist/chunks/KHR_texture_basisu-DwyvsvjH.esm.js +0 -43
  297. package/dist/chunks/KHR_texture_basisu-DwyvsvjH.esm.js.map +0 -1
  298. package/dist/chunks/KHR_texture_basisu-_W9Br-Jl.esm.min.js +0 -2
  299. package/dist/chunks/KHR_texture_basisu-_W9Br-Jl.esm.min.js.map +0 -1
  300. package/dist/chunks/KHR_texture_transform-BrggkZGk.esm.min.js +0 -2
  301. package/dist/chunks/KHR_texture_transform-BrggkZGk.esm.min.js.map +0 -1
  302. package/dist/chunks/KHR_texture_transform-C86eLMga.esm.js +0 -63
  303. package/dist/chunks/KHR_texture_transform-C86eLMga.esm.js.map +0 -1
  304. package/dist/chunks/KHR_xmp_json_ld-B4kyQRbU.esm.js +0 -51
  305. package/dist/chunks/KHR_xmp_json_ld-B4kyQRbU.esm.js.map +0 -1
  306. package/dist/chunks/KHR_xmp_json_ld-C3CU_p-l.esm.min.js +0 -2
  307. package/dist/chunks/KHR_xmp_json_ld-C3CU_p-l.esm.min.js.map +0 -1
  308. package/dist/chunks/MSFT_audio_emitter-B3Ta8qMN.esm.min.js +0 -2
  309. package/dist/chunks/MSFT_audio_emitter-B3Ta8qMN.esm.min.js.map +0 -1
  310. package/dist/chunks/MSFT_audio_emitter-D8nIcuBy.esm.js +0 -2236
  311. package/dist/chunks/MSFT_audio_emitter-D8nIcuBy.esm.js.map +0 -1
  312. package/dist/chunks/MSFT_lod-CEIzxRis.esm.js +0 -337
  313. package/dist/chunks/MSFT_lod-CEIzxRis.esm.js.map +0 -1
  314. package/dist/chunks/MSFT_lod-DZOikD8t.esm.min.js +0 -2
  315. package/dist/chunks/MSFT_lod-DZOikD8t.esm.min.js.map +0 -1
  316. package/dist/chunks/MSFT_minecraftMesh-B7vBtMTM.esm.js +0 -46
  317. package/dist/chunks/MSFT_minecraftMesh-B7vBtMTM.esm.js.map +0 -1
  318. package/dist/chunks/MSFT_minecraftMesh-DQCCOSGW.esm.min.js +0 -2
  319. package/dist/chunks/MSFT_minecraftMesh-DQCCOSGW.esm.min.js.map +0 -1
  320. package/dist/chunks/MSFT_sRGBFactors-ApBMqY9Y.esm.min.js +0 -2
  321. package/dist/chunks/MSFT_sRGBFactors-ApBMqY9Y.esm.min.js.map +0 -1
  322. package/dist/chunks/MSFT_sRGBFactors-DCyPuGAW.esm.js +0 -47
  323. package/dist/chunks/MSFT_sRGBFactors-DCyPuGAW.esm.js.map +0 -1
  324. package/dist/chunks/assetContainer-4Y8qxrkP.esm.min.js +0 -2
  325. package/dist/chunks/assetContainer-4Y8qxrkP.esm.min.js.map +0 -1
  326. package/dist/chunks/assetContainer-yduDDAg5.esm.js +0 -1598
  327. package/dist/chunks/assetContainer-yduDDAg5.esm.js.map +0 -1
  328. package/dist/chunks/audioEngine-B2lVczv1.esm.js +0 -305
  329. package/dist/chunks/audioEngine-B2lVczv1.esm.js.map +0 -1
  330. package/dist/chunks/audioEngine-BdTR6pZz.esm.min.js +0 -2
  331. package/dist/chunks/audioEngine-BdTR6pZz.esm.min.js.map +0 -1
  332. package/dist/chunks/bakedVertexAnimation-DVAdtwv1.esm.min.js +0 -2
  333. package/dist/chunks/bakedVertexAnimation-DVAdtwv1.esm.min.js.map +0 -1
  334. package/dist/chunks/bakedVertexAnimation-DeNM3h2Z.esm.js +0 -119
  335. package/dist/chunks/bakedVertexAnimation-DeNM3h2Z.esm.js.map +0 -1
  336. package/dist/chunks/basisTextureLoader-B0x2JhtN.esm.min.js +0 -2
  337. package/dist/chunks/basisTextureLoader-B0x2JhtN.esm.min.js.map +0 -1
  338. package/dist/chunks/basisTextureLoader-kG8CWoCn.esm.js +0 -600
  339. package/dist/chunks/basisTextureLoader-kG8CWoCn.esm.js.map +0 -1
  340. package/dist/chunks/dds-B4XmtkSp.esm.js +0 -540
  341. package/dist/chunks/dds-B4XmtkSp.esm.js.map +0 -1
  342. package/dist/chunks/dds-DeNz8hS-.esm.min.js +0 -2
  343. package/dist/chunks/dds-DeNz8hS-.esm.min.js.map +0 -1
  344. package/dist/chunks/ddsTextureLoader-BjLEbHHS.esm.js +0 -88
  345. package/dist/chunks/ddsTextureLoader-BjLEbHHS.esm.js.map +0 -1
  346. package/dist/chunks/ddsTextureLoader-D9FHqe-R.esm.min.js +0 -2
  347. package/dist/chunks/ddsTextureLoader-D9FHqe-R.esm.min.js.map +0 -1
  348. package/dist/chunks/decalFragment-BRIy9zMn.esm.min.js +0 -2
  349. package/dist/chunks/decalFragment-BRIy9zMn.esm.min.js.map +0 -1
  350. package/dist/chunks/decalFragment-DjXy6GUY.esm.js +0 -18
  351. package/dist/chunks/decalFragment-DjXy6GUY.esm.js.map +0 -1
  352. package/dist/chunks/default.fragment-BaBj8oN2.esm.js +0 -515
  353. package/dist/chunks/default.fragment-BaBj8oN2.esm.js.map +0 -1
  354. package/dist/chunks/default.fragment-C77QNDVC.esm.js +0 -449
  355. package/dist/chunks/default.fragment-C77QNDVC.esm.js.map +0 -1
  356. package/dist/chunks/default.fragment-CzYoM-ST.esm.min.js +0 -2
  357. package/dist/chunks/default.fragment-CzYoM-ST.esm.min.js.map +0 -1
  358. package/dist/chunks/default.fragment-D2M5EU_o.esm.min.js +0 -2
  359. package/dist/chunks/default.fragment-D2M5EU_o.esm.min.js.map +0 -1
  360. package/dist/chunks/default.vertex-BMMLYJyE.esm.min.js +0 -2
  361. package/dist/chunks/default.vertex-BMMLYJyE.esm.min.js.map +0 -1
  362. package/dist/chunks/default.vertex-CI6v3Y74.esm.js +0 -199
  363. package/dist/chunks/default.vertex-CI6v3Y74.esm.js.map +0 -1
  364. package/dist/chunks/default.vertex-DS3Btklm.esm.js +0 -180
  365. package/dist/chunks/default.vertex-DS3Btklm.esm.js.map +0 -1
  366. package/dist/chunks/default.vertex-sG6vJK6V.esm.min.js +0 -2
  367. package/dist/chunks/default.vertex-sG6vJK6V.esm.min.js.map +0 -1
  368. package/dist/chunks/defaultUboDeclaration-CfEdjUu2.esm.js +0 -15
  369. package/dist/chunks/defaultUboDeclaration-CfEdjUu2.esm.js.map +0 -1
  370. package/dist/chunks/defaultUboDeclaration-EXGQjmeR.esm.min.js +0 -2
  371. package/dist/chunks/defaultUboDeclaration-EXGQjmeR.esm.min.js.map +0 -1
  372. package/dist/chunks/defaultUboDeclaration-Qio0jGUO.esm.min.js +0 -2
  373. package/dist/chunks/defaultUboDeclaration-Qio0jGUO.esm.min.js.map +0 -1
  374. package/dist/chunks/defaultUboDeclaration-tUtq3goK.esm.js +0 -13
  375. package/dist/chunks/defaultUboDeclaration-tUtq3goK.esm.js.map +0 -1
  376. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +0 -11
  377. package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +0 -1
  378. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +0 -2
  379. package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +0 -1
  380. package/dist/chunks/dumpTools-BxY8w25M.esm.js +0 -400
  381. package/dist/chunks/dumpTools-BxY8w25M.esm.js.map +0 -1
  382. package/dist/chunks/dumpTools-Che-gwG7.esm.min.js +0 -2
  383. package/dist/chunks/dumpTools-Che-gwG7.esm.min.js.map +0 -1
  384. package/dist/chunks/engine-06Wd-_3h.esm.min.js +0 -2
  385. package/dist/chunks/engine-06Wd-_3h.esm.min.js.map +0 -1
  386. package/dist/chunks/engine-wEbS27-R.esm.js +0 -2174
  387. package/dist/chunks/engine-wEbS27-R.esm.js.map +0 -1
  388. package/dist/chunks/engine.common-BxiwlBr3.esm.min.js +0 -2
  389. package/dist/chunks/engine.common-BxiwlBr3.esm.min.js.map +0 -1
  390. package/dist/chunks/engine.common-DRFOWS2A.esm.js +0 -1088
  391. package/dist/chunks/engine.common-DRFOWS2A.esm.js.map +0 -1
  392. package/dist/chunks/envTextureLoader-Deb8hyWv.esm.js +0 -64
  393. package/dist/chunks/envTextureLoader-Deb8hyWv.esm.js.map +0 -1
  394. package/dist/chunks/envTextureLoader-nt7RB7jF.esm.min.js +0 -2
  395. package/dist/chunks/envTextureLoader-nt7RB7jF.esm.min.js.map +0 -1
  396. package/dist/chunks/environmentTextureTools-CnU6sdsm.esm.js +0 -382
  397. package/dist/chunks/environmentTextureTools-CnU6sdsm.esm.js.map +0 -1
  398. package/dist/chunks/environmentTextureTools-CqxQLfVS.esm.min.js +0 -2
  399. package/dist/chunks/environmentTextureTools-CqxQLfVS.esm.min.js.map +0 -1
  400. package/dist/chunks/exrTextureLoader-DgqYue7c.esm.min.js +0 -2
  401. package/dist/chunks/exrTextureLoader-DgqYue7c.esm.min.js.map +0 -1
  402. package/dist/chunks/exrTextureLoader-au_729k4.esm.js +0 -1682
  403. package/dist/chunks/exrTextureLoader-au_729k4.esm.js.map +0 -1
  404. package/dist/chunks/fogFragment-8tEI-kPW.esm.min.js +0 -2
  405. package/dist/chunks/fogFragment-8tEI-kPW.esm.min.js.map +0 -1
  406. package/dist/chunks/fogFragment-CULs-7PE.esm.js +0 -102
  407. package/dist/chunks/fogFragment-CULs-7PE.esm.js.map +0 -1
  408. package/dist/chunks/fresnelFunction-B4KI4E8h.esm.js +0 -12
  409. package/dist/chunks/fresnelFunction-B4KI4E8h.esm.js.map +0 -1
  410. package/dist/chunks/fresnelFunction-CeLpSg7g.esm.min.js +0 -2
  411. package/dist/chunks/fresnelFunction-CeLpSg7g.esm.min.js.map +0 -1
  412. package/dist/chunks/glTFLoader-BSsxhX_B.esm.js +0 -7552
  413. package/dist/chunks/glTFLoader-BSsxhX_B.esm.js.map +0 -1
  414. package/dist/chunks/glTFLoader-Cdf6EEh4.esm.min.js +0 -2
  415. package/dist/chunks/glTFLoader-Cdf6EEh4.esm.min.js.map +0 -1
  416. package/dist/chunks/glTFLoaderAnimation-KvPgN70Y.esm.min.js +0 -2
  417. package/dist/chunks/glTFLoaderAnimation-KvPgN70Y.esm.min.js.map +0 -1
  418. package/dist/chunks/glTFLoaderAnimation-vK1xPOOh.esm.js +0 -77
  419. package/dist/chunks/glTFLoaderAnimation-vK1xPOOh.esm.js.map +0 -1
  420. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +0 -2
  421. package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +0 -1
  422. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +0 -67
  423. package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +0 -1
  424. package/dist/chunks/harmonicsFunctions-CnvdxOXs.esm.min.js +0 -2
  425. package/dist/chunks/harmonicsFunctions-CnvdxOXs.esm.min.js.map +0 -1
  426. package/dist/chunks/harmonicsFunctions-CwZrA_es.esm.js +0 -34
  427. package/dist/chunks/harmonicsFunctions-CwZrA_es.esm.js.map +0 -1
  428. package/dist/chunks/harmonicsFunctions-D23NP4_R.esm.min.js +0 -2
  429. package/dist/chunks/harmonicsFunctions-D23NP4_R.esm.min.js.map +0 -1
  430. package/dist/chunks/harmonicsFunctions-DWAunDBq.esm.js +0 -35
  431. package/dist/chunks/harmonicsFunctions-DWAunDBq.esm.js.map +0 -1
  432. package/dist/chunks/hdrTextureLoader-BBszpiSE.esm.js +0 -252
  433. package/dist/chunks/hdrTextureLoader-BBszpiSE.esm.js.map +0 -1
  434. package/dist/chunks/hdrTextureLoader-DlqeGac5.esm.min.js +0 -2
  435. package/dist/chunks/hdrTextureLoader-DlqeGac5.esm.min.js.map +0 -1
  436. package/dist/chunks/helperFunctions-B-IxnCCi.esm.js +0 -108
  437. package/dist/chunks/helperFunctions-B-IxnCCi.esm.js.map +0 -1
  438. package/dist/chunks/helperFunctions-BJn_zA2T.esm.js +0 -80
  439. package/dist/chunks/helperFunctions-BJn_zA2T.esm.js.map +0 -1
  440. package/dist/chunks/helperFunctions-CdXvdI3d.esm.min.js +0 -2
  441. package/dist/chunks/helperFunctions-CdXvdI3d.esm.min.js.map +0 -1
  442. package/dist/chunks/helperFunctions-Cz2oFjJD.esm.min.js +0 -2
  443. package/dist/chunks/helperFunctions-Cz2oFjJD.esm.min.js.map +0 -1
  444. package/dist/chunks/index-DEZD8qGB.esm.min.js +0 -57
  445. package/dist/chunks/index-DEZD8qGB.esm.min.js.map +0 -1
  446. package/dist/chunks/index-rM42Fwtd.esm.js +0 -73922
  447. package/dist/chunks/index-rM42Fwtd.esm.js.map +0 -1
  448. package/dist/chunks/ktxTextureLoader-5XE4saqV.esm.min.js +0 -2
  449. package/dist/chunks/ktxTextureLoader-5XE4saqV.esm.min.js.map +0 -1
  450. package/dist/chunks/ktxTextureLoader-CzOXMl46.esm.js +0 -814
  451. package/dist/chunks/ktxTextureLoader-CzOXMl46.esm.js.map +0 -1
  452. package/dist/chunks/logDepthDeclaration-C1e5P6MP.esm.min.js +0 -2
  453. package/dist/chunks/logDepthDeclaration-C1e5P6MP.esm.min.js.map +0 -1
  454. package/dist/chunks/logDepthDeclaration-CP73F-Ht.esm.min.js +0 -2
  455. package/dist/chunks/logDepthDeclaration-CP73F-Ht.esm.min.js.map +0 -1
  456. package/dist/chunks/logDepthDeclaration-Cpcs5duV.esm.js +0 -20
  457. package/dist/chunks/logDepthDeclaration-Cpcs5duV.esm.js.map +0 -1
  458. package/dist/chunks/logDepthDeclaration-tZj2QrWI.esm.js +0 -35
  459. package/dist/chunks/logDepthDeclaration-tZj2QrWI.esm.js.map +0 -1
  460. package/dist/chunks/logDepthVertex-BHds0cL7.esm.min.js +0 -2
  461. package/dist/chunks/logDepthVertex-BHds0cL7.esm.min.js.map +0 -1
  462. package/dist/chunks/logDepthVertex-C77H-mUN.esm.js +0 -77
  463. package/dist/chunks/logDepthVertex-C77H-mUN.esm.js.map +0 -1
  464. package/dist/chunks/logDepthVertex-CRCv55t1.esm.min.js +0 -2
  465. package/dist/chunks/logDepthVertex-CRCv55t1.esm.min.js.map +0 -1
  466. package/dist/chunks/logDepthVertex-D71T3PUi.esm.js +0 -488
  467. package/dist/chunks/logDepthVertex-D71T3PUi.esm.js.map +0 -1
  468. package/dist/chunks/mainUVVaryingDeclaration-DH5Gw79d.esm.min.js +0 -2
  469. package/dist/chunks/mainUVVaryingDeclaration-DH5Gw79d.esm.min.js.map +0 -1
  470. package/dist/chunks/mainUVVaryingDeclaration-DjaUAU9d.esm.js +0 -11
  471. package/dist/chunks/mainUVVaryingDeclaration-DjaUAU9d.esm.js.map +0 -1
  472. package/dist/chunks/meshUboDeclaration-Dfhjtzfu.esm.js +0 -24
  473. package/dist/chunks/meshUboDeclaration-Dfhjtzfu.esm.js.map +0 -1
  474. package/dist/chunks/meshUboDeclaration-JuXAHT9v.esm.min.js +0 -2
  475. package/dist/chunks/meshUboDeclaration-JuXAHT9v.esm.min.js.map +0 -1
  476. package/dist/chunks/objFileLoader-7U6Dolv_.esm.js +0 -1280
  477. package/dist/chunks/objFileLoader-7U6Dolv_.esm.js.map +0 -1
  478. package/dist/chunks/objFileLoader-_Uh3sl5M.esm.min.js +0 -2
  479. package/dist/chunks/objFileLoader-_Uh3sl5M.esm.min.js.map +0 -1
  480. package/dist/chunks/oitFragment-B761cGSz.esm.js +0 -1150
  481. package/dist/chunks/oitFragment-B761cGSz.esm.js.map +0 -1
  482. package/dist/chunks/oitFragment-BEyzdlIX.esm.min.js +0 -2
  483. package/dist/chunks/oitFragment-BEyzdlIX.esm.min.js.map +0 -1
  484. package/dist/chunks/oitFragment-BJxddGxd.esm.min.js +0 -2
  485. package/dist/chunks/oitFragment-BJxddGxd.esm.min.js.map +0 -1
  486. package/dist/chunks/oitFragment-DxRU43Qk.esm.js +0 -1210
  487. package/dist/chunks/oitFragment-DxRU43Qk.esm.js.map +0 -1
  488. package/dist/chunks/pass.fragment-BezLFEaR.esm.min.js +0 -2
  489. package/dist/chunks/pass.fragment-BezLFEaR.esm.min.js.map +0 -1
  490. package/dist/chunks/pass.fragment-CI0Hbebv.esm.min.js +0 -2
  491. package/dist/chunks/pass.fragment-CI0Hbebv.esm.min.js.map +0 -1
  492. package/dist/chunks/pass.fragment-CKuTIGRc.esm.js +0 -15
  493. package/dist/chunks/pass.fragment-CKuTIGRc.esm.js.map +0 -1
  494. package/dist/chunks/pass.fragment-M4VAGwSP.esm.js +0 -15
  495. package/dist/chunks/pass.fragment-M4VAGwSP.esm.js.map +0 -1
  496. package/dist/chunks/pbr.fragment-BnTARhOZ.esm.js +0 -3165
  497. package/dist/chunks/pbr.fragment-BnTARhOZ.esm.js.map +0 -1
  498. package/dist/chunks/pbr.fragment-CFwXu2ZW.esm.min.js +0 -2
  499. package/dist/chunks/pbr.fragment-CFwXu2ZW.esm.min.js.map +0 -1
  500. package/dist/chunks/pbr.fragment-CZH3Z6Fz.esm.min.js +0 -2
  501. package/dist/chunks/pbr.fragment-CZH3Z6Fz.esm.min.js.map +0 -1
  502. package/dist/chunks/pbr.fragment-DXb2YUXa.esm.js +0 -3219
  503. package/dist/chunks/pbr.fragment-DXb2YUXa.esm.js.map +0 -1
  504. package/dist/chunks/pbr.vertex-B0UjdSCd.esm.min.js +0 -2
  505. package/dist/chunks/pbr.vertex-B0UjdSCd.esm.min.js.map +0 -1
  506. package/dist/chunks/pbr.vertex-BK-SOy7u.esm.js +0 -210
  507. package/dist/chunks/pbr.vertex-BK-SOy7u.esm.js.map +0 -1
  508. package/dist/chunks/pbr.vertex-BU96l1oL.esm.js +0 -335
  509. package/dist/chunks/pbr.vertex-BU96l1oL.esm.js.map +0 -1
  510. package/dist/chunks/pbr.vertex-BqZLjnyL.esm.min.js +0 -2
  511. package/dist/chunks/pbr.vertex-BqZLjnyL.esm.min.js.map +0 -1
  512. package/dist/chunks/postprocess.vertex-BXwgd-7B.esm.min.js +0 -2
  513. package/dist/chunks/postprocess.vertex-BXwgd-7B.esm.min.js.map +0 -1
  514. package/dist/chunks/postprocess.vertex-BbvDeWLH.esm.min.js +0 -2
  515. package/dist/chunks/postprocess.vertex-BbvDeWLH.esm.min.js.map +0 -1
  516. package/dist/chunks/postprocess.vertex-Ck5Z_51x.esm.js +0 -20
  517. package/dist/chunks/postprocess.vertex-Ck5Z_51x.esm.js.map +0 -1
  518. package/dist/chunks/postprocess.vertex-pT9f0tdJ.esm.js +0 -18
  519. package/dist/chunks/postprocess.vertex-pT9f0tdJ.esm.js.map +0 -1
  520. package/dist/chunks/rawTexture-1Rq8qsxm.esm.min.js +0 -2
  521. package/dist/chunks/rawTexture-1Rq8qsxm.esm.min.js.map +0 -1
  522. package/dist/chunks/rawTexture-D_BRK-o8.esm.js +0 -191
  523. package/dist/chunks/rawTexture-D_BRK-o8.esm.js.map +0 -1
  524. package/dist/chunks/rgbdDecode.fragment-BGF4g1hZ.esm.js +0 -17
  525. package/dist/chunks/rgbdDecode.fragment-BGF4g1hZ.esm.js.map +0 -1
  526. package/dist/chunks/rgbdDecode.fragment-C2vWUMvk.esm.js +0 -17
  527. package/dist/chunks/rgbdDecode.fragment-C2vWUMvk.esm.js.map +0 -1
  528. package/dist/chunks/rgbdDecode.fragment-Cf7oe5zh.esm.min.js +0 -2
  529. package/dist/chunks/rgbdDecode.fragment-Cf7oe5zh.esm.min.js.map +0 -1
  530. package/dist/chunks/rgbdDecode.fragment-CkuXLnPU.esm.min.js +0 -2
  531. package/dist/chunks/rgbdDecode.fragment-CkuXLnPU.esm.min.js.map +0 -1
  532. package/dist/chunks/rgbdEncode.fragment-D1q7KpIB.esm.min.js +0 -2
  533. package/dist/chunks/rgbdEncode.fragment-D1q7KpIB.esm.min.js.map +0 -1
  534. package/dist/chunks/rgbdEncode.fragment-DziyA8SH.esm.js +0 -17
  535. package/dist/chunks/rgbdEncode.fragment-DziyA8SH.esm.js.map +0 -1
  536. package/dist/chunks/rgbdEncode.fragment-EbVo_OS3.esm.min.js +0 -2
  537. package/dist/chunks/rgbdEncode.fragment-EbVo_OS3.esm.min.js.map +0 -1
  538. package/dist/chunks/rgbdEncode.fragment-O0WkfdaA.esm.js +0 -17
  539. package/dist/chunks/rgbdEncode.fragment-O0WkfdaA.esm.js.map +0 -1
  540. package/dist/chunks/splatFileLoader-Civo1vlZ.esm.min.js +0 -2
  541. package/dist/chunks/splatFileLoader-Civo1vlZ.esm.min.js.map +0 -1
  542. package/dist/chunks/splatFileLoader-D3Gb0TOq.esm.js +0 -3202
  543. package/dist/chunks/splatFileLoader-D3Gb0TOq.esm.js.map +0 -1
  544. package/dist/chunks/standardMaterial-C4ytj3UV.esm.min.js +0 -2
  545. package/dist/chunks/standardMaterial-C4ytj3UV.esm.min.js.map +0 -1
  546. package/dist/chunks/standardMaterial-Ds152YtF.esm.js +0 -1809
  547. package/dist/chunks/standardMaterial-Ds152YtF.esm.js.map +0 -1
  548. package/dist/chunks/stlFileLoader-DEyXKGGV.esm.js +0 -237
  549. package/dist/chunks/stlFileLoader-DEyXKGGV.esm.js.map +0 -1
  550. package/dist/chunks/stlFileLoader-O0L9MhOP.esm.min.js +0 -2
  551. package/dist/chunks/stlFileLoader-O0L9MhOP.esm.min.js.map +0 -1
  552. package/dist/chunks/tgaTextureLoader-2LzCuq-y.esm.min.js +0 -2
  553. package/dist/chunks/tgaTextureLoader-2LzCuq-y.esm.min.js.map +0 -1
  554. package/dist/chunks/tgaTextureLoader-C1ZPR3Z6.esm.js +0 -349
  555. package/dist/chunks/tgaTextureLoader-C1ZPR3Z6.esm.js.map +0 -1
  556. package/dist/chunks/thinEngine-DMsfsUJl.esm.min.js +0 -2
  557. package/dist/chunks/thinEngine-DMsfsUJl.esm.min.js.map +0 -1
  558. package/dist/chunks/thinEngine-Ka7-uzzY.esm.js +0 -3721
  559. package/dist/chunks/thinEngine-Ka7-uzzY.esm.js.map +0 -1
  560. package/dist/chunks/thinInstanceMesh-CnqlNkHp.esm.js +0 -314
  561. package/dist/chunks/thinInstanceMesh-CnqlNkHp.esm.js.map +0 -1
  562. package/dist/chunks/thinInstanceMesh-DvDlskuJ.esm.min.js +0 -2
  563. package/dist/chunks/thinInstanceMesh-DvDlskuJ.esm.min.js.map +0 -1
  564. package/dist/chunks/vertexColorMixing-6-uBAQ55.esm.js +0 -528
  565. package/dist/chunks/vertexColorMixing-6-uBAQ55.esm.js.map +0 -1
  566. package/dist/chunks/vertexColorMixing-BCQLn981.esm.min.js +0 -2
  567. package/dist/chunks/vertexColorMixing-BCQLn981.esm.min.js.map +0 -1
  568. package/dist/chunks/webgpuEngine-DWUcPn9n.esm.min.js +0 -2
  569. package/dist/chunks/webgpuEngine-DWUcPn9n.esm.min.js.map +0 -1
  570. package/dist/chunks/webgpuEngine-_VOc_CYS.esm.js +0 -11170
  571. package/dist/chunks/webgpuEngine-_VOc_CYS.esm.js.map +0 -1
  572. package/dist/chunks/workerPool-BUOov2K1.esm.js +0 -122
  573. package/dist/chunks/workerPool-BUOov2K1.esm.js.map +0 -1
  574. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +0 -2
  575. package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +0 -1
  576. package/lib/index.d.ts +0 -281
  577. package/lib/index.js +0 -965
  578. package/lib/index.js.map +0 -1
@@ -1,13 +0,0 @@
1
- import { i as ShaderStore } from './index-rM42Fwtd.esm.js';
2
- import './meshUboDeclaration-Dfhjtzfu.esm.js';
3
-
4
- // Do not edit.
5
- const name = "defaultUboDeclaration";
6
- const shader = `uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vReflectionInfos: vec2f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;
7
- #define ADDITIONAL_UBO_DECLARATION
8
- #include<sceneUboDeclaration>
9
- #include<meshUboDeclaration>
10
- `;
11
- // Sideeffect
12
- ShaderStore.IncludesShadersStoreWGSL[name] = shader;
13
- //# sourceMappingURL=defaultUboDeclaration-tUtq3goK.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultUboDeclaration-tUtq3goK.esm.js","sources":["../../../../../dev/core/dist/ShadersWGSL/ShadersInclude/defaultUboDeclaration.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./sceneUboDeclaration\";\nimport \"./meshUboDeclaration\";\nconst name = \"defaultUboDeclaration\";\nconst shader = `uniform diffuseLeftColor: vec4f;uniform diffuseRightColor: vec4f;uniform opacityParts: vec4f;uniform reflectionLeftColor: vec4f;uniform reflectionRightColor: vec4f;uniform refractionLeftColor: vec4f;uniform refractionRightColor: vec4f;uniform emissiveLeftColor: vec4f;uniform emissiveRightColor: vec4f;uniform vDiffuseInfos: vec2f;uniform vAmbientInfos: vec2f;uniform vOpacityInfos: vec2f;uniform vReflectionInfos: vec2f;uniform vReflectionPosition: vec3f;uniform vReflectionSize: vec3f;uniform vEmissiveInfos: vec2f;uniform vLightmapInfos: vec2f;uniform vSpecularInfos: vec2f;uniform vBumpInfos: vec3f;uniform diffuseMatrix: mat4x4f;uniform ambientMatrix: mat4x4f;uniform opacityMatrix: mat4x4f;uniform reflectionMatrix: mat4x4f;uniform emissiveMatrix: mat4x4f;uniform lightmapMatrix: mat4x4f;uniform specularMatrix: mat4x4f;uniform bumpMatrix: mat4x4f;uniform vTangentSpaceParams: vec2f;uniform pointSize: f32;uniform alphaCutOff: f32;uniform refractionMatrix: mat4x4f;uniform vRefractionInfos: vec4f;uniform vRefractionPosition: vec3f;uniform vRefractionSize: vec3f;uniform vSpecularColor: vec4f;uniform vEmissiveColor: vec3f;uniform vDiffuseColor: vec4f;uniform vAmbientColor: vec3f;\n#define ADDITIONAL_UBO_DECLARATION\n#include<sceneUboDeclaration>\n#include<meshUboDeclaration>\n`;\n// Sideeffect\nShaderStore.IncludesShadersStoreWGSL[name] = shader;\n/** @internal */\nexport const defaultUboDeclarationWGSL = { name, shader };\n//# sourceMappingURL=defaultUboDeclaration.js.map"],"names":[],"mappings":";;;AAAA;AAIA,MAAM,IAAI,GAAG,uBAAuB,CAAC;AACrC,MAAM,MAAM,GAAG,CAAC;AAChB;AACA;AACA;AACA,CAAC,CAAC;AACF;AACA,WAAW,CAAC,wBAAwB,CAAC,IAAI,CAAC,GAAG,MAAM"}
@@ -1,11 +0,0 @@
1
- /**
2
- * Detect if the effect is a DrawWrapper
3
- * @param effect defines the entity to test
4
- * @returns if the entity is a DrawWrapper
5
- */
6
- function IsWrapper(effect) {
7
- return effect.getPipelineContext === undefined;
8
- }
9
-
10
- export { IsWrapper as I };
11
- //# sourceMappingURL=drawWrapper.functions-CKg3_9x4.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawWrapper.functions-CKg3_9x4.esm.js","sources":["../../../../../dev/core/dist/Materials/drawWrapper.functions.js"],"sourcesContent":["/**\n * Detect if the effect is a DrawWrapper\n * @param effect defines the entity to test\n * @returns if the entity is a DrawWrapper\n */\nexport function IsWrapper(effect) {\n return effect.getPipelineContext === undefined;\n}\n//# sourceMappingURL=drawWrapper.functions.js.map"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACO,SAAS,SAAS,CAAC,MAAM,EAAE;AAClC,IAAI,OAAO,MAAM,CAAC,kBAAkB,KAAK,SAAS,CAAC;AACnD;;;;"}
@@ -1,2 +0,0 @@
1
- function e(e){return void 0===e.getPipelineContext}export{e as I};
2
- //# sourceMappingURL=drawWrapper.functions-ng7lvueZ.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawWrapper.functions-ng7lvueZ.esm.min.js","sources":["../../../../../dev/core/dist/Materials/drawWrapper.functions.js"],"sourcesContent":["/**\n * Detect if the effect is a DrawWrapper\n * @param effect defines the entity to test\n * @returns if the entity is a DrawWrapper\n */\nexport function IsWrapper(effect) {\n return effect.getPipelineContext === undefined;\n}\n//# sourceMappingURL=drawWrapper.functions.js.map"],"names":["IsWrapper","effect","undefined","getPipelineContext"],"mappings":"AAKO,SAASA,EAAUC,GACtB,YAAqCC,IAA9BD,EAAOE,kBAClB"}
@@ -1,400 +0,0 @@
1
- import { bs as Viewport, V as VertexBuffer, C as Constants, aJ as Observable, bt as DrawWrapper, l as Effect, b3 as Clamp, T as Tools, E as EngineStore } from './index-rM42Fwtd.esm.js';
2
-
3
- // Fullscreen quad buffers by default.
4
- const defaultOptions = {
5
- positions: [1, 1, -1, 1, -1, -1, 1, -1],
6
- indices: [0, 1, 2, 0, 2, 3],
7
- };
8
- /**
9
- * Helper class to render one or more effects.
10
- * You can access the previous rendering in your shader by declaring a sampler named textureSampler
11
- */
12
- class EffectRenderer {
13
- /**
14
- * Creates an effect renderer
15
- * @param engine the engine to use for rendering
16
- * @param options defines the options of the effect renderer
17
- */
18
- constructor(engine, options = defaultOptions) {
19
- this._fullscreenViewport = new Viewport(0, 0, 1, 1);
20
- const positions = options.positions ?? defaultOptions.positions;
21
- const indices = options.indices ?? defaultOptions.indices;
22
- this.engine = engine;
23
- this._vertexBuffers = {
24
- [VertexBuffer.PositionKind]: new VertexBuffer(engine, positions, VertexBuffer.PositionKind, false, false, 2),
25
- };
26
- this._indexBuffer = engine.createIndexBuffer(indices);
27
- this._onContextRestoredObserver = engine.onContextRestoredObservable.add(() => {
28
- this._indexBuffer = engine.createIndexBuffer(indices);
29
- for (const key in this._vertexBuffers) {
30
- const vertexBuffer = this._vertexBuffers[key];
31
- vertexBuffer._rebuild();
32
- }
33
- });
34
- }
35
- /**
36
- * Sets the current viewport in normalized coordinates 0-1
37
- * @param viewport Defines the viewport to set (defaults to 0 0 1 1)
38
- */
39
- setViewport(viewport = this._fullscreenViewport) {
40
- this.engine.setViewport(viewport);
41
- }
42
- /**
43
- * Binds the embedded attributes buffer to the effect.
44
- * @param effect Defines the effect to bind the attributes for
45
- */
46
- bindBuffers(effect) {
47
- this.engine.bindBuffers(this._vertexBuffers, this._indexBuffer, effect);
48
- }
49
- /**
50
- * Sets the current effect wrapper to use during draw.
51
- * The effect needs to be ready before calling this api.
52
- * This also sets the default full screen position attribute.
53
- * @param effectWrapper Defines the effect to draw with
54
- */
55
- applyEffectWrapper(effectWrapper) {
56
- this.engine.setState(true);
57
- this.engine.depthCullingState.depthTest = false;
58
- this.engine.stencilState.stencilTest = false;
59
- this.engine.enableEffect(effectWrapper._drawWrapper);
60
- this.bindBuffers(effectWrapper.effect);
61
- effectWrapper.onApplyObservable.notifyObservers({});
62
- }
63
- /**
64
- * Saves engine states
65
- */
66
- saveStates() {
67
- this._savedStateDepthTest = this.engine.depthCullingState.depthTest;
68
- this._savedStateStencilTest = this.engine.stencilState.stencilTest;
69
- }
70
- /**
71
- * Restores engine states
72
- */
73
- restoreStates() {
74
- this.engine.depthCullingState.depthTest = this._savedStateDepthTest;
75
- this.engine.stencilState.stencilTest = this._savedStateStencilTest;
76
- }
77
- /**
78
- * Draws a full screen quad.
79
- */
80
- draw() {
81
- this.engine.drawElementsType(Constants.MATERIAL_TriangleFillMode, 0, 6);
82
- }
83
- _isRenderTargetTexture(texture) {
84
- return texture.renderTarget !== undefined;
85
- }
86
- /**
87
- * renders one or more effects to a specified texture
88
- * @param effectWrapper the effect to renderer
89
- * @param outputTexture texture to draw to, if null it will render to the screen.
90
- */
91
- render(effectWrapper, outputTexture = null) {
92
- // Ensure effect is ready
93
- if (!effectWrapper.effect.isReady()) {
94
- return;
95
- }
96
- this.saveStates();
97
- // Reset state
98
- this.setViewport();
99
- const out = outputTexture === null ? null : this._isRenderTargetTexture(outputTexture) ? outputTexture.renderTarget : outputTexture;
100
- if (out) {
101
- this.engine.bindFramebuffer(out);
102
- }
103
- this.applyEffectWrapper(effectWrapper);
104
- this.draw();
105
- if (out) {
106
- this.engine.unBindFramebuffer(out);
107
- }
108
- this.restoreStates();
109
- }
110
- /**
111
- * Disposes of the effect renderer
112
- */
113
- dispose() {
114
- const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];
115
- if (vertexBuffer) {
116
- vertexBuffer.dispose();
117
- delete this._vertexBuffers[VertexBuffer.PositionKind];
118
- }
119
- if (this._indexBuffer) {
120
- this.engine._releaseBuffer(this._indexBuffer);
121
- }
122
- if (this._onContextRestoredObserver) {
123
- this.engine.onContextRestoredObservable.remove(this._onContextRestoredObserver);
124
- this._onContextRestoredObserver = null;
125
- }
126
- }
127
- }
128
- /**
129
- * Wraps an effect to be used for rendering
130
- */
131
- class EffectWrapper {
132
- /**
133
- * The underlying effect
134
- */
135
- get effect() {
136
- return this._drawWrapper.effect;
137
- }
138
- set effect(effect) {
139
- this._drawWrapper.effect = effect;
140
- }
141
- /**
142
- * Creates an effect to be renderer
143
- * @param creationOptions options to create the effect
144
- */
145
- constructor(creationOptions) {
146
- /**
147
- * Event that is fired right before the effect is drawn (should be used to update uniforms)
148
- */
149
- this.onApplyObservable = new Observable();
150
- let shaderPath;
151
- const uniformNames = creationOptions.uniformNames || [];
152
- if (creationOptions.vertexShader) {
153
- shaderPath = {
154
- fragmentSource: creationOptions.fragmentShader,
155
- vertexSource: creationOptions.vertexShader,
156
- spectorName: creationOptions.name || "effectWrapper",
157
- };
158
- }
159
- else {
160
- // Default scale to use in post process vertex shader.
161
- uniformNames.push("scale");
162
- shaderPath = {
163
- fragmentSource: creationOptions.fragmentShader,
164
- vertex: "postprocess",
165
- spectorName: creationOptions.name || "effectWrapper",
166
- };
167
- // Sets the default scale to identity for the post process vertex shader.
168
- this.onApplyObservable.add(() => {
169
- this.effect.setFloat2("scale", 1, 1);
170
- });
171
- }
172
- const defines = creationOptions.defines ? creationOptions.defines.join("\n") : "";
173
- this._drawWrapper = new DrawWrapper(creationOptions.engine);
174
- if (creationOptions.useShaderStore) {
175
- shaderPath.fragment = shaderPath.fragmentSource;
176
- if (!shaderPath.vertex) {
177
- shaderPath.vertex = shaderPath.vertexSource;
178
- }
179
- delete shaderPath.fragmentSource;
180
- delete shaderPath.vertexSource;
181
- this.effect = creationOptions.engine.createEffect(shaderPath, creationOptions.attributeNames || ["position"], uniformNames, creationOptions.samplerNames, defines, undefined, creationOptions.onCompiled, undefined, undefined, creationOptions.shaderLanguage, creationOptions.extraInitializationsAsync);
182
- }
183
- else {
184
- this.effect = new Effect(shaderPath, creationOptions.attributeNames || ["position"], uniformNames, creationOptions.samplerNames, creationOptions.engine, defines, undefined, creationOptions.onCompiled, undefined, undefined, undefined, creationOptions.shaderLanguage, creationOptions.extraInitializationsAsync);
185
- this._onContextRestoredObserver = creationOptions.engine.onContextRestoredObservable.add(() => {
186
- this.effect._pipelineContext = null; // because _prepareEffect will try to dispose this pipeline before recreating it and that would lead to webgl errors
187
- this.effect._prepareEffect();
188
- });
189
- }
190
- }
191
- /**
192
- * Disposes of the effect wrapper
193
- * @param _ignored kept for backward compatibility
194
- */
195
- dispose(_ignored = false) {
196
- if (this._onContextRestoredObserver) {
197
- this.effect.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);
198
- this._onContextRestoredObserver = null;
199
- }
200
- this.effect.dispose();
201
- }
202
- }
203
-
204
- let _dumpToolsEngine;
205
- let _enginePromise = null;
206
- async function _CreateDumpRenderer() {
207
- if (!_enginePromise) {
208
- _enginePromise = new Promise((resolve, reject) => {
209
- let canvas;
210
- let engine = null;
211
- const options = {
212
- preserveDrawingBuffer: true,
213
- depth: false,
214
- stencil: false,
215
- alpha: true,
216
- premultipliedAlpha: false,
217
- antialias: false,
218
- failIfMajorPerformanceCaveat: false,
219
- };
220
- import('./thinEngine-Ka7-uzzY.esm.js').then(function (n) { return n.t; })
221
- .then(({ ThinEngine: thinEngineClass }) => {
222
- try {
223
- canvas = new OffscreenCanvas(100, 100); // will be resized later
224
- engine = new thinEngineClass(canvas, false, options);
225
- }
226
- catch (e) {
227
- // The browser either does not support OffscreenCanvas or WebGL context in OffscreenCanvas, fallback on a regular canvas
228
- canvas = document.createElement("canvas");
229
- engine = new thinEngineClass(canvas, false, options);
230
- }
231
- // remove this engine from the list of instances to avoid using it for other purposes
232
- EngineStore.Instances.pop();
233
- // However, make sure to dispose it when no other engines are left
234
- EngineStore.OnEnginesDisposedObservable.add((e) => {
235
- // guaranteed to run when no other instances are left
236
- // only dispose if it's not the current engine
237
- if (engine && e !== engine && !engine.isDisposed && EngineStore.Instances.length === 0) {
238
- // Dump the engine and the associated resources
239
- Dispose();
240
- }
241
- });
242
- engine.getCaps().parallelShaderCompile = undefined;
243
- const renderer = new EffectRenderer(engine);
244
- import('./pass.fragment-CKuTIGRc.esm.js').then(({ passPixelShader }) => {
245
- if (!engine) {
246
- reject("Engine is not defined");
247
- return;
248
- }
249
- const wrapper = new EffectWrapper({
250
- engine,
251
- name: passPixelShader.name,
252
- fragmentShader: passPixelShader.shader,
253
- samplerNames: ["textureSampler"],
254
- });
255
- _dumpToolsEngine = {
256
- canvas,
257
- engine,
258
- renderer,
259
- wrapper,
260
- };
261
- resolve(_dumpToolsEngine);
262
- });
263
- })
264
- .catch(reject);
265
- });
266
- }
267
- return await _enginePromise;
268
- }
269
- /**
270
- * Dumps the current bound framebuffer
271
- * @param width defines the rendering width
272
- * @param height defines the rendering height
273
- * @param engine defines the hosting engine
274
- * @param successCallback defines the callback triggered once the data are available
275
- * @param mimeType defines the mime type of the result
276
- * @param fileName defines the filename to download. If present, the result will automatically be downloaded
277
- * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.
278
- * @returns a void promise
279
- */
280
- async function DumpFramebuffer(width, height, engine, successCallback, mimeType = "image/png", fileName, quality) {
281
- // Read the contents of the framebuffer
282
- const bufferView = await engine.readPixels(0, 0, width, height);
283
- const data = new Uint8Array(bufferView.buffer);
284
- DumpData(width, height, data, successCallback, mimeType, fileName, true, undefined, quality);
285
- }
286
- /**
287
- * Dumps an array buffer
288
- * @param width defines the rendering width
289
- * @param height defines the rendering height
290
- * @param data the data array
291
- * @param mimeType defines the mime type of the result
292
- * @param fileName defines the filename to download. If present, the result will automatically be downloaded
293
- * @param invertY true to invert the picture in the Y dimension
294
- * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string
295
- * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.
296
- * @returns a promise that resolve to the final data
297
- */
298
- function DumpDataAsync(width, height, data, mimeType = "image/png", fileName, invertY = false, toArrayBuffer = false, quality) {
299
- return new Promise((resolve) => {
300
- DumpData(width, height, data, (result) => resolve(result), mimeType, fileName, invertY, toArrayBuffer, quality);
301
- });
302
- }
303
- /**
304
- * Dumps an array buffer
305
- * @param width defines the rendering width
306
- * @param height defines the rendering height
307
- * @param data the data array
308
- * @param successCallback defines the callback triggered once the data are available
309
- * @param mimeType defines the mime type of the result
310
- * @param fileName defines the filename to download. If present, the result will automatically be downloaded
311
- * @param invertY true to invert the picture in the Y dimension
312
- * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string
313
- * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.
314
- */
315
- function DumpData(width, height, data, successCallback, mimeType = "image/png", fileName, invertY = false, toArrayBuffer = false, quality) {
316
- _CreateDumpRenderer().then((renderer) => {
317
- renderer.engine.setSize(width, height, true);
318
- // Convert if data are float32
319
- if (data instanceof Float32Array) {
320
- const data2 = new Uint8Array(data.length);
321
- let n = data.length;
322
- while (n--) {
323
- const v = data[n];
324
- data2[n] = Math.round(Clamp(v) * 255);
325
- }
326
- data = data2;
327
- }
328
- // Create the image
329
- const texture = renderer.engine.createRawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, false, !invertY, Constants.TEXTURE_NEAREST_NEAREST);
330
- renderer.renderer.setViewport();
331
- renderer.renderer.applyEffectWrapper(renderer.wrapper);
332
- renderer.wrapper.effect._bindTexture("textureSampler", texture);
333
- renderer.renderer.draw();
334
- if (toArrayBuffer) {
335
- Tools.ToBlob(renderer.canvas, (blob) => {
336
- const fileReader = new FileReader();
337
- fileReader.onload = (event) => {
338
- const arrayBuffer = event.target.result;
339
- if (successCallback) {
340
- successCallback(arrayBuffer);
341
- }
342
- };
343
- fileReader.readAsArrayBuffer(blob);
344
- }, mimeType, quality);
345
- }
346
- else {
347
- Tools.EncodeScreenshotCanvasData(renderer.canvas, successCallback, mimeType, fileName, quality);
348
- }
349
- texture.dispose();
350
- });
351
- }
352
- /**
353
- * Dispose the dump tools associated resources
354
- */
355
- function Dispose() {
356
- if (_dumpToolsEngine) {
357
- _dumpToolsEngine.wrapper.dispose();
358
- _dumpToolsEngine.renderer.dispose();
359
- _dumpToolsEngine.engine.dispose();
360
- }
361
- else {
362
- // in cases where the engine is not yet created, we need to wait for it to dispose it
363
- _enginePromise?.then((dumpToolsEngine) => {
364
- dumpToolsEngine.wrapper.dispose();
365
- dumpToolsEngine.renderer.dispose();
366
- dumpToolsEngine.engine.dispose();
367
- });
368
- }
369
- _dumpToolsEngine = null;
370
- }
371
- /**
372
- * Object containing a set of static utilities functions to dump data from a canvas
373
- * @deprecated use functions
374
- */
375
- const DumpTools = {
376
- // eslint-disable-next-line @typescript-eslint/naming-convention
377
- DumpData,
378
- // eslint-disable-next-line @typescript-eslint/naming-convention
379
- DumpDataAsync,
380
- // eslint-disable-next-line @typescript-eslint/naming-convention
381
- DumpFramebuffer,
382
- // eslint-disable-next-line @typescript-eslint/naming-convention
383
- Dispose,
384
- };
385
- /**
386
- * This will be executed automatically for UMD and es5.
387
- * If esm dev wants the side effects to execute they will have to run it manually
388
- * Once we build native modules those need to be exported.
389
- * @internal
390
- */
391
- const initSideEffects = () => {
392
- // References the dependencies.
393
- Tools.DumpData = DumpData;
394
- Tools.DumpDataAsync = DumpDataAsync;
395
- Tools.DumpFramebuffer = DumpFramebuffer;
396
- };
397
- initSideEffects();
398
-
399
- export { Dispose, DumpData, DumpDataAsync, DumpFramebuffer, DumpTools };
400
- //# sourceMappingURL=dumpTools-BxY8w25M.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dumpTools-BxY8w25M.esm.js","sources":["../../../../../dev/core/dist/Materials/effectRenderer.js","../../../../../dev/core/dist/Misc/dumpTools.js"],"sourcesContent":["import { VertexBuffer } from \"../Buffers/buffer\";\nimport { Viewport } from \"../Maths/math.viewport\";\nimport { Constants } from \"../Engines/constants\";\nimport { Observable } from \"../Misc/observable\";\nimport { Effect } from \"./effect\";\nimport { DrawWrapper } from \"./drawWrapper\";\n// Fullscreen quad buffers by default.\nconst defaultOptions = {\n positions: [1, 1, -1, 1, -1, -1, 1, -1],\n indices: [0, 1, 2, 0, 2, 3],\n};\n/**\n * Helper class to render one or more effects.\n * You can access the previous rendering in your shader by declaring a sampler named textureSampler\n */\nexport class EffectRenderer {\n /**\n * Creates an effect renderer\n * @param engine the engine to use for rendering\n * @param options defines the options of the effect renderer\n */\n constructor(engine, options = defaultOptions) {\n this._fullscreenViewport = new Viewport(0, 0, 1, 1);\n const positions = options.positions ?? defaultOptions.positions;\n const indices = options.indices ?? defaultOptions.indices;\n this.engine = engine;\n this._vertexBuffers = {\n [VertexBuffer.PositionKind]: new VertexBuffer(engine, positions, VertexBuffer.PositionKind, false, false, 2),\n };\n this._indexBuffer = engine.createIndexBuffer(indices);\n this._onContextRestoredObserver = engine.onContextRestoredObservable.add(() => {\n this._indexBuffer = engine.createIndexBuffer(indices);\n for (const key in this._vertexBuffers) {\n const vertexBuffer = this._vertexBuffers[key];\n vertexBuffer._rebuild();\n }\n });\n }\n /**\n * Sets the current viewport in normalized coordinates 0-1\n * @param viewport Defines the viewport to set (defaults to 0 0 1 1)\n */\n setViewport(viewport = this._fullscreenViewport) {\n this.engine.setViewport(viewport);\n }\n /**\n * Binds the embedded attributes buffer to the effect.\n * @param effect Defines the effect to bind the attributes for\n */\n bindBuffers(effect) {\n this.engine.bindBuffers(this._vertexBuffers, this._indexBuffer, effect);\n }\n /**\n * Sets the current effect wrapper to use during draw.\n * The effect needs to be ready before calling this api.\n * This also sets the default full screen position attribute.\n * @param effectWrapper Defines the effect to draw with\n */\n applyEffectWrapper(effectWrapper) {\n this.engine.setState(true);\n this.engine.depthCullingState.depthTest = false;\n this.engine.stencilState.stencilTest = false;\n this.engine.enableEffect(effectWrapper._drawWrapper);\n this.bindBuffers(effectWrapper.effect);\n effectWrapper.onApplyObservable.notifyObservers({});\n }\n /**\n * Saves engine states\n */\n saveStates() {\n this._savedStateDepthTest = this.engine.depthCullingState.depthTest;\n this._savedStateStencilTest = this.engine.stencilState.stencilTest;\n }\n /**\n * Restores engine states\n */\n restoreStates() {\n this.engine.depthCullingState.depthTest = this._savedStateDepthTest;\n this.engine.stencilState.stencilTest = this._savedStateStencilTest;\n }\n /**\n * Draws a full screen quad.\n */\n draw() {\n this.engine.drawElementsType(Constants.MATERIAL_TriangleFillMode, 0, 6);\n }\n _isRenderTargetTexture(texture) {\n return texture.renderTarget !== undefined;\n }\n /**\n * renders one or more effects to a specified texture\n * @param effectWrapper the effect to renderer\n * @param outputTexture texture to draw to, if null it will render to the screen.\n */\n render(effectWrapper, outputTexture = null) {\n // Ensure effect is ready\n if (!effectWrapper.effect.isReady()) {\n return;\n }\n this.saveStates();\n // Reset state\n this.setViewport();\n const out = outputTexture === null ? null : this._isRenderTargetTexture(outputTexture) ? outputTexture.renderTarget : outputTexture;\n if (out) {\n this.engine.bindFramebuffer(out);\n }\n this.applyEffectWrapper(effectWrapper);\n this.draw();\n if (out) {\n this.engine.unBindFramebuffer(out);\n }\n this.restoreStates();\n }\n /**\n * Disposes of the effect renderer\n */\n dispose() {\n const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];\n if (vertexBuffer) {\n vertexBuffer.dispose();\n delete this._vertexBuffers[VertexBuffer.PositionKind];\n }\n if (this._indexBuffer) {\n this.engine._releaseBuffer(this._indexBuffer);\n }\n if (this._onContextRestoredObserver) {\n this.engine.onContextRestoredObservable.remove(this._onContextRestoredObserver);\n this._onContextRestoredObserver = null;\n }\n }\n}\n/**\n * Wraps an effect to be used for rendering\n */\nexport class EffectWrapper {\n /**\n * The underlying effect\n */\n get effect() {\n return this._drawWrapper.effect;\n }\n set effect(effect) {\n this._drawWrapper.effect = effect;\n }\n /**\n * Creates an effect to be renderer\n * @param creationOptions options to create the effect\n */\n constructor(creationOptions) {\n /**\n * Event that is fired right before the effect is drawn (should be used to update uniforms)\n */\n this.onApplyObservable = new Observable();\n let shaderPath;\n const uniformNames = creationOptions.uniformNames || [];\n if (creationOptions.vertexShader) {\n shaderPath = {\n fragmentSource: creationOptions.fragmentShader,\n vertexSource: creationOptions.vertexShader,\n spectorName: creationOptions.name || \"effectWrapper\",\n };\n }\n else {\n // Default scale to use in post process vertex shader.\n uniformNames.push(\"scale\");\n shaderPath = {\n fragmentSource: creationOptions.fragmentShader,\n vertex: \"postprocess\",\n spectorName: creationOptions.name || \"effectWrapper\",\n };\n // Sets the default scale to identity for the post process vertex shader.\n this.onApplyObservable.add(() => {\n this.effect.setFloat2(\"scale\", 1, 1);\n });\n }\n const defines = creationOptions.defines ? creationOptions.defines.join(\"\\n\") : \"\";\n this._drawWrapper = new DrawWrapper(creationOptions.engine);\n if (creationOptions.useShaderStore) {\n shaderPath.fragment = shaderPath.fragmentSource;\n if (!shaderPath.vertex) {\n shaderPath.vertex = shaderPath.vertexSource;\n }\n delete shaderPath.fragmentSource;\n delete shaderPath.vertexSource;\n this.effect = creationOptions.engine.createEffect(shaderPath, creationOptions.attributeNames || [\"position\"], uniformNames, creationOptions.samplerNames, defines, undefined, creationOptions.onCompiled, undefined, undefined, creationOptions.shaderLanguage, creationOptions.extraInitializationsAsync);\n }\n else {\n this.effect = new Effect(shaderPath, creationOptions.attributeNames || [\"position\"], uniformNames, creationOptions.samplerNames, creationOptions.engine, defines, undefined, creationOptions.onCompiled, undefined, undefined, undefined, creationOptions.shaderLanguage, creationOptions.extraInitializationsAsync);\n this._onContextRestoredObserver = creationOptions.engine.onContextRestoredObservable.add(() => {\n this.effect._pipelineContext = null; // because _prepareEffect will try to dispose this pipeline before recreating it and that would lead to webgl errors\n this.effect._prepareEffect();\n });\n }\n }\n /**\n * Disposes of the effect wrapper\n * @param _ignored kept for backward compatibility\n */\n dispose(_ignored = false) {\n if (this._onContextRestoredObserver) {\n this.effect.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);\n this._onContextRestoredObserver = null;\n }\n this.effect.dispose();\n }\n}\n//# sourceMappingURL=effectRenderer.js.map","import { Constants } from \"../Engines/constants\";\nimport { EffectRenderer, EffectWrapper } from \"../Materials/effectRenderer\";\nimport { Tools } from \"./tools\";\nimport { Clamp } from \"../Maths/math.scalar.functions\";\nimport { EngineStore } from \"../Engines/engineStore\";\nlet _dumpToolsEngine;\nlet _enginePromise = null;\nasync function _CreateDumpRenderer() {\n if (!_enginePromise) {\n _enginePromise = new Promise((resolve, reject) => {\n let canvas;\n let engine = null;\n const options = {\n preserveDrawingBuffer: true,\n depth: false,\n stencil: false,\n alpha: true,\n premultipliedAlpha: false,\n antialias: false,\n failIfMajorPerformanceCaveat: false,\n };\n import(\"../Engines/thinEngine\")\n .then(({ ThinEngine: thinEngineClass }) => {\n try {\n canvas = new OffscreenCanvas(100, 100); // will be resized later\n engine = new thinEngineClass(canvas, false, options);\n }\n catch (e) {\n // The browser either does not support OffscreenCanvas or WebGL context in OffscreenCanvas, fallback on a regular canvas\n canvas = document.createElement(\"canvas\");\n engine = new thinEngineClass(canvas, false, options);\n }\n // remove this engine from the list of instances to avoid using it for other purposes\n EngineStore.Instances.pop();\n // However, make sure to dispose it when no other engines are left\n EngineStore.OnEnginesDisposedObservable.add((e) => {\n // guaranteed to run when no other instances are left\n // only dispose if it's not the current engine\n if (engine && e !== engine && !engine.isDisposed && EngineStore.Instances.length === 0) {\n // Dump the engine and the associated resources\n Dispose();\n }\n });\n engine.getCaps().parallelShaderCompile = undefined;\n const renderer = new EffectRenderer(engine);\n import(\"../Shaders/pass.fragment\").then(({ passPixelShader }) => {\n if (!engine) {\n reject(\"Engine is not defined\");\n return;\n }\n const wrapper = new EffectWrapper({\n engine,\n name: passPixelShader.name,\n fragmentShader: passPixelShader.shader,\n samplerNames: [\"textureSampler\"],\n });\n _dumpToolsEngine = {\n canvas,\n engine,\n renderer,\n wrapper,\n };\n resolve(_dumpToolsEngine);\n });\n })\n .catch(reject);\n });\n }\n return await _enginePromise;\n}\n/**\n * Dumps the current bound framebuffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param engine defines the hosting engine\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a void promise\n */\nexport async function DumpFramebuffer(width, height, engine, successCallback, mimeType = \"image/png\", fileName, quality) {\n // Read the contents of the framebuffer\n const bufferView = await engine.readPixels(0, 0, width, height);\n const data = new Uint8Array(bufferView.buffer);\n DumpData(width, height, data, successCallback, mimeType, fileName, true, undefined, quality);\n}\n/**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a promise that resolve to the final data\n */\nexport function DumpDataAsync(width, height, data, mimeType = \"image/png\", fileName, invertY = false, toArrayBuffer = false, quality) {\n return new Promise((resolve) => {\n DumpData(width, height, data, (result) => resolve(result), mimeType, fileName, invertY, toArrayBuffer, quality);\n });\n}\n/**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\nexport function DumpData(width, height, data, successCallback, mimeType = \"image/png\", fileName, invertY = false, toArrayBuffer = false, quality) {\n _CreateDumpRenderer().then((renderer) => {\n renderer.engine.setSize(width, height, true);\n // Convert if data are float32\n if (data instanceof Float32Array) {\n const data2 = new Uint8Array(data.length);\n let n = data.length;\n while (n--) {\n const v = data[n];\n data2[n] = Math.round(Clamp(v) * 255);\n }\n data = data2;\n }\n // Create the image\n const texture = renderer.engine.createRawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, false, !invertY, Constants.TEXTURE_NEAREST_NEAREST);\n renderer.renderer.setViewport();\n renderer.renderer.applyEffectWrapper(renderer.wrapper);\n renderer.wrapper.effect._bindTexture(\"textureSampler\", texture);\n renderer.renderer.draw();\n if (toArrayBuffer) {\n Tools.ToBlob(renderer.canvas, (blob) => {\n const fileReader = new FileReader();\n fileReader.onload = (event) => {\n const arrayBuffer = event.target.result;\n if (successCallback) {\n successCallback(arrayBuffer);\n }\n };\n fileReader.readAsArrayBuffer(blob);\n }, mimeType, quality);\n }\n else {\n Tools.EncodeScreenshotCanvasData(renderer.canvas, successCallback, mimeType, fileName, quality);\n }\n texture.dispose();\n });\n}\n/**\n * Dispose the dump tools associated resources\n */\nexport function Dispose() {\n if (_dumpToolsEngine) {\n _dumpToolsEngine.wrapper.dispose();\n _dumpToolsEngine.renderer.dispose();\n _dumpToolsEngine.engine.dispose();\n }\n else {\n // in cases where the engine is not yet created, we need to wait for it to dispose it\n _enginePromise?.then((dumpToolsEngine) => {\n dumpToolsEngine.wrapper.dispose();\n dumpToolsEngine.renderer.dispose();\n dumpToolsEngine.engine.dispose();\n });\n }\n _dumpToolsEngine = null;\n}\n/**\n * Object containing a set of static utilities functions to dump data from a canvas\n * @deprecated use functions\n */\nexport const DumpTools = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n DumpData,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n DumpDataAsync,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n DumpFramebuffer,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Dispose,\n};\n/**\n * This will be executed automatically for UMD and es5.\n * If esm dev wants the side effects to execute they will have to run it manually\n * Once we build native modules those need to be exported.\n * @internal\n */\nconst initSideEffects = () => {\n // References the dependencies.\n Tools.DumpData = DumpData;\n Tools.DumpDataAsync = DumpDataAsync;\n Tools.DumpFramebuffer = DumpFramebuffer;\n};\ninitSideEffects();\n//# sourceMappingURL=dumpTools.js.map"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{bs as e,V as t,C as n,aJ as s,bt as r,l as i,b3 as a,T as o,E as d}from"./index-DEZD8qGB.esm.min.js";const f={positions:[1,1,-1,1,-1,-1,1,-1],indices:[0,1,2,0,2,3]};class p{constructor(n,s=f){this._fullscreenViewport=new e(0,0,1,1);const r=s.positions??f.positions,i=s.indices??f.indices;this.engine=n,this._vertexBuffers={[t.PositionKind]:new t(n,r,t.PositionKind,!1,!1,2)},this._indexBuffer=n.createIndexBuffer(i),this._onContextRestoredObserver=n.onContextRestoredObservable.add((()=>{this._indexBuffer=n.createIndexBuffer(i);for(const e in this._vertexBuffers){this._vertexBuffers[e]._rebuild()}}))}setViewport(e=this._fullscreenViewport){this.engine.setViewport(e)}bindBuffers(e){this.engine.bindBuffers(this._vertexBuffers,this._indexBuffer,e)}applyEffectWrapper(e){this.engine.setState(!0),this.engine.depthCullingState.depthTest=!1,this.engine.stencilState.stencilTest=!1,this.engine.enableEffect(e._drawWrapper),this.bindBuffers(e.effect),e.onApplyObservable.notifyObservers({})}saveStates(){this._savedStateDepthTest=this.engine.depthCullingState.depthTest,this._savedStateStencilTest=this.engine.stencilState.stencilTest}restoreStates(){this.engine.depthCullingState.depthTest=this._savedStateDepthTest,this.engine.stencilState.stencilTest=this._savedStateStencilTest}draw(){this.engine.drawElementsType(n.MATERIAL_TriangleFillMode,0,6)}_isRenderTargetTexture(e){return void 0!==e.renderTarget}render(e,t=null){if(!e.effect.isReady())return;this.saveStates(),this.setViewport();const n=null===t?null:this._isRenderTargetTexture(t)?t.renderTarget:t;n&&this.engine.bindFramebuffer(n),this.applyEffectWrapper(e),this.draw(),n&&this.engine.unBindFramebuffer(n),this.restoreStates()}dispose(){const e=this._vertexBuffers[t.PositionKind];e&&(e.dispose(),delete this._vertexBuffers[t.PositionKind]),this._indexBuffer&&this.engine._releaseBuffer(this._indexBuffer),this._onContextRestoredObserver&&(this.engine.onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null)}}class c{get effect(){return this._drawWrapper.effect}set effect(e){this._drawWrapper.effect=e}constructor(e){let t;this.onApplyObservable=new s;const n=e.uniformNames||[];e.vertexShader?t={fragmentSource:e.fragmentShader,vertexSource:e.vertexShader,spectorName:e.name||"effectWrapper"}:(n.push("scale"),t={fragmentSource:e.fragmentShader,vertex:"postprocess",spectorName:e.name||"effectWrapper"},this.onApplyObservable.add((()=>{this.effect.setFloat2("scale",1,1)})));const a=e.defines?e.defines.join("\n"):"";this._drawWrapper=new r(e.engine),e.useShaderStore?(t.fragment=t.fragmentSource,t.vertex||(t.vertex=t.vertexSource),delete t.fragmentSource,delete t.vertexSource,this.effect=e.engine.createEffect(t,e.attributeNames||["position"],n,e.samplerNames,a,void 0,e.onCompiled,void 0,void 0,e.shaderLanguage,e.extraInitializationsAsync)):(this.effect=new i(t,e.attributeNames||["position"],n,e.samplerNames,e.engine,a,void 0,e.onCompiled,void 0,void 0,void 0,e.shaderLanguage,e.extraInitializationsAsync),this._onContextRestoredObserver=e.engine.onContextRestoredObservable.add((()=>{this.effect._pipelineContext=null,this.effect._prepareEffect()})))}dispose(e=!1){this._onContextRestoredObserver&&(this.effect.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver),this._onContextRestoredObserver=null),this.effect.dispose()}}let l,h=null;async function u(e,t,n,s,r="image/png",i,a){const o=await n.readPixels(0,0,e,t);m(e,t,new Uint8Array(o.buffer),s,r,i,!0,void 0,a)}function g(e,t,n,s="image/png",r,i=!1,a=!1,o){return new Promise((d=>{m(e,t,n,(e=>d(e)),s,r,i,a,o)}))}function m(e,t,s,r,i="image/png",f,u=!1,g=!1,m){(async function(){return h||(h=new Promise(((e,t)=>{let n,s=null;const r={preserveDrawingBuffer:!0,depth:!1,stencil:!1,alpha:!0,premultipliedAlpha:!1,antialias:!1,failIfMajorPerformanceCaveat:!1};import("./thinEngine-DMsfsUJl.esm.min.js").then((function(e){return e.t})).then((({ThinEngine:i})=>{try{n=new OffscreenCanvas(100,100),s=new i(n,!1,r)}catch(e){n=document.createElement("canvas"),s=new i(n,!1,r)}d.Instances.pop(),d.OnEnginesDisposedObservable.add((e=>{s&&e!==s&&!s.isDisposed&&0===d.Instances.length&&v()})),s.getCaps().parallelShaderCompile=void 0;const a=new p(s);import("./pass.fragment-BezLFEaR.esm.min.js").then((({passPixelShader:r})=>{if(!s)return void t("Engine is not defined");const i=new c({engine:s,name:r.name,fragmentShader:r.shader,samplerNames:["textureSampler"]});l={canvas:n,engine:s,renderer:a,wrapper:i},e(l)}))})).catch(t)}))),await h})().then((d=>{if(d.engine.setSize(e,t,!0),s instanceof Float32Array){const e=new Uint8Array(s.length);let t=s.length;for(;t--;){const n=s[t];e[t]=Math.round(255*a(n))}s=e}const p=d.engine.createRawTexture(s,e,t,n.TEXTUREFORMAT_RGBA,!1,!u,n.TEXTURE_NEAREST_NEAREST);d.renderer.setViewport(),d.renderer.applyEffectWrapper(d.wrapper),d.wrapper.effect._bindTexture("textureSampler",p),d.renderer.draw(),g?o.ToBlob(d.canvas,(e=>{const t=new FileReader;t.onload=e=>{const t=e.target.result;r&&r(t)},t.readAsArrayBuffer(e)}),i,m):o.EncodeScreenshotCanvasData(d.canvas,r,i,f,m),p.dispose()}))}function v(){l?(l.wrapper.dispose(),l.renderer.dispose(),l.engine.dispose()):h?.then((e=>{e.wrapper.dispose(),e.renderer.dispose(),e.engine.dispose()})),l=null}const x={DumpData:m,DumpDataAsync:g,DumpFramebuffer:u,Dispose:v};o.DumpData=m,o.DumpDataAsync=g,o.DumpFramebuffer=u;export{v as Dispose,m as DumpData,g as DumpDataAsync,u as DumpFramebuffer,x as DumpTools};
2
- //# sourceMappingURL=dumpTools-Che-gwG7.esm.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dumpTools-Che-gwG7.esm.min.js","sources":["../../../../../dev/core/dist/Materials/effectRenderer.js","../../../../../dev/core/dist/Misc/dumpTools.js"],"sourcesContent":["import { VertexBuffer } from \"../Buffers/buffer\";\nimport { Viewport } from \"../Maths/math.viewport\";\nimport { Constants } from \"../Engines/constants\";\nimport { Observable } from \"../Misc/observable\";\nimport { Effect } from \"./effect\";\nimport { DrawWrapper } from \"./drawWrapper\";\n// Fullscreen quad buffers by default.\nconst defaultOptions = {\n positions: [1, 1, -1, 1, -1, -1, 1, -1],\n indices: [0, 1, 2, 0, 2, 3],\n};\n/**\n * Helper class to render one or more effects.\n * You can access the previous rendering in your shader by declaring a sampler named textureSampler\n */\nexport class EffectRenderer {\n /**\n * Creates an effect renderer\n * @param engine the engine to use for rendering\n * @param options defines the options of the effect renderer\n */\n constructor(engine, options = defaultOptions) {\n this._fullscreenViewport = new Viewport(0, 0, 1, 1);\n const positions = options.positions ?? defaultOptions.positions;\n const indices = options.indices ?? defaultOptions.indices;\n this.engine = engine;\n this._vertexBuffers = {\n [VertexBuffer.PositionKind]: new VertexBuffer(engine, positions, VertexBuffer.PositionKind, false, false, 2),\n };\n this._indexBuffer = engine.createIndexBuffer(indices);\n this._onContextRestoredObserver = engine.onContextRestoredObservable.add(() => {\n this._indexBuffer = engine.createIndexBuffer(indices);\n for (const key in this._vertexBuffers) {\n const vertexBuffer = this._vertexBuffers[key];\n vertexBuffer._rebuild();\n }\n });\n }\n /**\n * Sets the current viewport in normalized coordinates 0-1\n * @param viewport Defines the viewport to set (defaults to 0 0 1 1)\n */\n setViewport(viewport = this._fullscreenViewport) {\n this.engine.setViewport(viewport);\n }\n /**\n * Binds the embedded attributes buffer to the effect.\n * @param effect Defines the effect to bind the attributes for\n */\n bindBuffers(effect) {\n this.engine.bindBuffers(this._vertexBuffers, this._indexBuffer, effect);\n }\n /**\n * Sets the current effect wrapper to use during draw.\n * The effect needs to be ready before calling this api.\n * This also sets the default full screen position attribute.\n * @param effectWrapper Defines the effect to draw with\n */\n applyEffectWrapper(effectWrapper) {\n this.engine.setState(true);\n this.engine.depthCullingState.depthTest = false;\n this.engine.stencilState.stencilTest = false;\n this.engine.enableEffect(effectWrapper._drawWrapper);\n this.bindBuffers(effectWrapper.effect);\n effectWrapper.onApplyObservable.notifyObservers({});\n }\n /**\n * Saves engine states\n */\n saveStates() {\n this._savedStateDepthTest = this.engine.depthCullingState.depthTest;\n this._savedStateStencilTest = this.engine.stencilState.stencilTest;\n }\n /**\n * Restores engine states\n */\n restoreStates() {\n this.engine.depthCullingState.depthTest = this._savedStateDepthTest;\n this.engine.stencilState.stencilTest = this._savedStateStencilTest;\n }\n /**\n * Draws a full screen quad.\n */\n draw() {\n this.engine.drawElementsType(Constants.MATERIAL_TriangleFillMode, 0, 6);\n }\n _isRenderTargetTexture(texture) {\n return texture.renderTarget !== undefined;\n }\n /**\n * renders one or more effects to a specified texture\n * @param effectWrapper the effect to renderer\n * @param outputTexture texture to draw to, if null it will render to the screen.\n */\n render(effectWrapper, outputTexture = null) {\n // Ensure effect is ready\n if (!effectWrapper.effect.isReady()) {\n return;\n }\n this.saveStates();\n // Reset state\n this.setViewport();\n const out = outputTexture === null ? null : this._isRenderTargetTexture(outputTexture) ? outputTexture.renderTarget : outputTexture;\n if (out) {\n this.engine.bindFramebuffer(out);\n }\n this.applyEffectWrapper(effectWrapper);\n this.draw();\n if (out) {\n this.engine.unBindFramebuffer(out);\n }\n this.restoreStates();\n }\n /**\n * Disposes of the effect renderer\n */\n dispose() {\n const vertexBuffer = this._vertexBuffers[VertexBuffer.PositionKind];\n if (vertexBuffer) {\n vertexBuffer.dispose();\n delete this._vertexBuffers[VertexBuffer.PositionKind];\n }\n if (this._indexBuffer) {\n this.engine._releaseBuffer(this._indexBuffer);\n }\n if (this._onContextRestoredObserver) {\n this.engine.onContextRestoredObservable.remove(this._onContextRestoredObserver);\n this._onContextRestoredObserver = null;\n }\n }\n}\n/**\n * Wraps an effect to be used for rendering\n */\nexport class EffectWrapper {\n /**\n * The underlying effect\n */\n get effect() {\n return this._drawWrapper.effect;\n }\n set effect(effect) {\n this._drawWrapper.effect = effect;\n }\n /**\n * Creates an effect to be renderer\n * @param creationOptions options to create the effect\n */\n constructor(creationOptions) {\n /**\n * Event that is fired right before the effect is drawn (should be used to update uniforms)\n */\n this.onApplyObservable = new Observable();\n let shaderPath;\n const uniformNames = creationOptions.uniformNames || [];\n if (creationOptions.vertexShader) {\n shaderPath = {\n fragmentSource: creationOptions.fragmentShader,\n vertexSource: creationOptions.vertexShader,\n spectorName: creationOptions.name || \"effectWrapper\",\n };\n }\n else {\n // Default scale to use in post process vertex shader.\n uniformNames.push(\"scale\");\n shaderPath = {\n fragmentSource: creationOptions.fragmentShader,\n vertex: \"postprocess\",\n spectorName: creationOptions.name || \"effectWrapper\",\n };\n // Sets the default scale to identity for the post process vertex shader.\n this.onApplyObservable.add(() => {\n this.effect.setFloat2(\"scale\", 1, 1);\n });\n }\n const defines = creationOptions.defines ? creationOptions.defines.join(\"\\n\") : \"\";\n this._drawWrapper = new DrawWrapper(creationOptions.engine);\n if (creationOptions.useShaderStore) {\n shaderPath.fragment = shaderPath.fragmentSource;\n if (!shaderPath.vertex) {\n shaderPath.vertex = shaderPath.vertexSource;\n }\n delete shaderPath.fragmentSource;\n delete shaderPath.vertexSource;\n this.effect = creationOptions.engine.createEffect(shaderPath, creationOptions.attributeNames || [\"position\"], uniformNames, creationOptions.samplerNames, defines, undefined, creationOptions.onCompiled, undefined, undefined, creationOptions.shaderLanguage, creationOptions.extraInitializationsAsync);\n }\n else {\n this.effect = new Effect(shaderPath, creationOptions.attributeNames || [\"position\"], uniformNames, creationOptions.samplerNames, creationOptions.engine, defines, undefined, creationOptions.onCompiled, undefined, undefined, undefined, creationOptions.shaderLanguage, creationOptions.extraInitializationsAsync);\n this._onContextRestoredObserver = creationOptions.engine.onContextRestoredObservable.add(() => {\n this.effect._pipelineContext = null; // because _prepareEffect will try to dispose this pipeline before recreating it and that would lead to webgl errors\n this.effect._prepareEffect();\n });\n }\n }\n /**\n * Disposes of the effect wrapper\n * @param _ignored kept for backward compatibility\n */\n dispose(_ignored = false) {\n if (this._onContextRestoredObserver) {\n this.effect.getEngine().onContextRestoredObservable.remove(this._onContextRestoredObserver);\n this._onContextRestoredObserver = null;\n }\n this.effect.dispose();\n }\n}\n//# sourceMappingURL=effectRenderer.js.map","import { Constants } from \"../Engines/constants\";\nimport { EffectRenderer, EffectWrapper } from \"../Materials/effectRenderer\";\nimport { Tools } from \"./tools\";\nimport { Clamp } from \"../Maths/math.scalar.functions\";\nimport { EngineStore } from \"../Engines/engineStore\";\nlet _dumpToolsEngine;\nlet _enginePromise = null;\nasync function _CreateDumpRenderer() {\n if (!_enginePromise) {\n _enginePromise = new Promise((resolve, reject) => {\n let canvas;\n let engine = null;\n const options = {\n preserveDrawingBuffer: true,\n depth: false,\n stencil: false,\n alpha: true,\n premultipliedAlpha: false,\n antialias: false,\n failIfMajorPerformanceCaveat: false,\n };\n import(\"../Engines/thinEngine\")\n .then(({ ThinEngine: thinEngineClass }) => {\n try {\n canvas = new OffscreenCanvas(100, 100); // will be resized later\n engine = new thinEngineClass(canvas, false, options);\n }\n catch (e) {\n // The browser either does not support OffscreenCanvas or WebGL context in OffscreenCanvas, fallback on a regular canvas\n canvas = document.createElement(\"canvas\");\n engine = new thinEngineClass(canvas, false, options);\n }\n // remove this engine from the list of instances to avoid using it for other purposes\n EngineStore.Instances.pop();\n // However, make sure to dispose it when no other engines are left\n EngineStore.OnEnginesDisposedObservable.add((e) => {\n // guaranteed to run when no other instances are left\n // only dispose if it's not the current engine\n if (engine && e !== engine && !engine.isDisposed && EngineStore.Instances.length === 0) {\n // Dump the engine and the associated resources\n Dispose();\n }\n });\n engine.getCaps().parallelShaderCompile = undefined;\n const renderer = new EffectRenderer(engine);\n import(\"../Shaders/pass.fragment\").then(({ passPixelShader }) => {\n if (!engine) {\n reject(\"Engine is not defined\");\n return;\n }\n const wrapper = new EffectWrapper({\n engine,\n name: passPixelShader.name,\n fragmentShader: passPixelShader.shader,\n samplerNames: [\"textureSampler\"],\n });\n _dumpToolsEngine = {\n canvas,\n engine,\n renderer,\n wrapper,\n };\n resolve(_dumpToolsEngine);\n });\n })\n .catch(reject);\n });\n }\n return await _enginePromise;\n}\n/**\n * Dumps the current bound framebuffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param engine defines the hosting engine\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a void promise\n */\nexport async function DumpFramebuffer(width, height, engine, successCallback, mimeType = \"image/png\", fileName, quality) {\n // Read the contents of the framebuffer\n const bufferView = await engine.readPixels(0, 0, width, height);\n const data = new Uint8Array(bufferView.buffer);\n DumpData(width, height, data, successCallback, mimeType, fileName, true, undefined, quality);\n}\n/**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n * @returns a promise that resolve to the final data\n */\nexport function DumpDataAsync(width, height, data, mimeType = \"image/png\", fileName, invertY = false, toArrayBuffer = false, quality) {\n return new Promise((resolve) => {\n DumpData(width, height, data, (result) => resolve(result), mimeType, fileName, invertY, toArrayBuffer, quality);\n });\n}\n/**\n * Dumps an array buffer\n * @param width defines the rendering width\n * @param height defines the rendering height\n * @param data the data array\n * @param successCallback defines the callback triggered once the data are available\n * @param mimeType defines the mime type of the result\n * @param fileName defines the filename to download. If present, the result will automatically be downloaded\n * @param invertY true to invert the picture in the Y dimension\n * @param toArrayBuffer true to convert the data to an ArrayBuffer (encoded as `mimeType`) instead of a base64 string\n * @param quality The quality of the image if lossy mimeType is used (e.g. image/jpeg, image/webp). See {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob | HTMLCanvasElement.toBlob()}'s `quality` parameter.\n */\nexport function DumpData(width, height, data, successCallback, mimeType = \"image/png\", fileName, invertY = false, toArrayBuffer = false, quality) {\n _CreateDumpRenderer().then((renderer) => {\n renderer.engine.setSize(width, height, true);\n // Convert if data are float32\n if (data instanceof Float32Array) {\n const data2 = new Uint8Array(data.length);\n let n = data.length;\n while (n--) {\n const v = data[n];\n data2[n] = Math.round(Clamp(v) * 255);\n }\n data = data2;\n }\n // Create the image\n const texture = renderer.engine.createRawTexture(data, width, height, Constants.TEXTUREFORMAT_RGBA, false, !invertY, Constants.TEXTURE_NEAREST_NEAREST);\n renderer.renderer.setViewport();\n renderer.renderer.applyEffectWrapper(renderer.wrapper);\n renderer.wrapper.effect._bindTexture(\"textureSampler\", texture);\n renderer.renderer.draw();\n if (toArrayBuffer) {\n Tools.ToBlob(renderer.canvas, (blob) => {\n const fileReader = new FileReader();\n fileReader.onload = (event) => {\n const arrayBuffer = event.target.result;\n if (successCallback) {\n successCallback(arrayBuffer);\n }\n };\n fileReader.readAsArrayBuffer(blob);\n }, mimeType, quality);\n }\n else {\n Tools.EncodeScreenshotCanvasData(renderer.canvas, successCallback, mimeType, fileName, quality);\n }\n texture.dispose();\n });\n}\n/**\n * Dispose the dump tools associated resources\n */\nexport function Dispose() {\n if (_dumpToolsEngine) {\n _dumpToolsEngine.wrapper.dispose();\n _dumpToolsEngine.renderer.dispose();\n _dumpToolsEngine.engine.dispose();\n }\n else {\n // in cases where the engine is not yet created, we need to wait for it to dispose it\n _enginePromise?.then((dumpToolsEngine) => {\n dumpToolsEngine.wrapper.dispose();\n dumpToolsEngine.renderer.dispose();\n dumpToolsEngine.engine.dispose();\n });\n }\n _dumpToolsEngine = null;\n}\n/**\n * Object containing a set of static utilities functions to dump data from a canvas\n * @deprecated use functions\n */\nexport const DumpTools = {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n DumpData,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n DumpDataAsync,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n DumpFramebuffer,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n Dispose,\n};\n/**\n * This will be executed automatically for UMD and es5.\n * If esm dev wants the side effects to execute they will have to run it manually\n * Once we build native modules those need to be exported.\n * @internal\n */\nconst initSideEffects = () => {\n // References the dependencies.\n Tools.DumpData = DumpData;\n Tools.DumpDataAsync = DumpDataAsync;\n Tools.DumpFramebuffer = DumpFramebuffer;\n};\ninitSideEffects();\n//# sourceMappingURL=dumpTools.js.map"],"names":["defaultOptions","positions","indices","EffectRenderer","constructor","engine","options","this","_fullscreenViewport","Viewport","_vertexBuffers","VertexBuffer","PositionKind","_indexBuffer","createIndexBuffer","_onContextRestoredObserver","onContextRestoredObservable","add","key","_rebuild","setViewport","viewport","bindBuffers","effect","applyEffectWrapper","effectWrapper","setState","depthCullingState","depthTest","stencilState","stencilTest","enableEffect","_drawWrapper","onApplyObservable","notifyObservers","saveStates","_savedStateDepthTest","_savedStateStencilTest","restoreStates","draw","drawElementsType","Constants","MATERIAL_TriangleFillMode","_isRenderTargetTexture","texture","undefined","renderTarget","render","outputTexture","isReady","out","bindFramebuffer","unBindFramebuffer","dispose","vertexBuffer","_releaseBuffer","remove","EffectWrapper","creationOptions","shaderPath","Observable","uniformNames","vertexShader","fragmentSource","fragmentShader","vertexSource","spectorName","name","push","vertex","setFloat2","defines","join","DrawWrapper","useShaderStore","fragment","createEffect","attributeNames","samplerNames","onCompiled","shaderLanguage","extraInitializationsAsync","Effect","_pipelineContext","_prepareEffect","_ignored","getEngine","_dumpToolsEngine","_enginePromise","async","DumpFramebuffer","width","height","successCallback","mimeType","fileName","quality","bufferView","readPixels","DumpData","Uint8Array","buffer","DumpDataAsync","data","invertY","toArrayBuffer","Promise","resolve","result","reject","canvas","preserveDrawingBuffer","depth","stencil","alpha","premultipliedAlpha","antialias","failIfMajorPerformanceCaveat","import","then","n","t","ThinEngine","thinEngineClass","OffscreenCanvas","e","document","createElement","EngineStore","Instances","pop","OnEnginesDisposedObservable","isDisposed","length","Dispose","getCaps","parallelShaderCompile","renderer","passPixelShader","wrapper","shader","catch","_CreateDumpRenderer","setSize","Float32Array","data2","v","Math","round","Clamp","createRawTexture","TEXTUREFORMAT_RGBA","TEXTURE_NEAREST_NEAREST","_bindTexture","Tools","ToBlob","blob","fileReader","FileReader","onload","event","arrayBuffer","target","readAsArrayBuffer","EncodeScreenshotCanvasData","dumpToolsEngine","DumpTools"],"mappings":"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"}