@babylonjs/core 9.11.0 → 9.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1012) hide show
  1. package/Actions/actionManager.d.ts +1 -1
  2. package/Actions/actionManager.js +8 -5
  3. package/Actions/actionManager.js.map +1 -1
  4. package/Animations/animatable.core.d.ts +1 -1
  5. package/Animations/animatable.core.js +2 -2
  6. package/Animations/animatable.core.js.map +1 -1
  7. package/Animations/animationPropertiesOverride.js +1 -1
  8. package/Animations/animationPropertiesOverride.js.map +1 -1
  9. package/Animations/animatorAvatar.d.ts +2 -2
  10. package/Animations/animatorAvatar.js +3 -3
  11. package/Animations/animatorAvatar.js.map +1 -1
  12. package/Animations/pathCursor.d.ts +1 -1
  13. package/Animations/pathCursor.js +1 -1
  14. package/Animations/pathCursor.js.map +1 -1
  15. package/Animations/runtimeAnimation.d.ts +1 -1
  16. package/Animations/runtimeAnimation.js +2 -2
  17. package/Animations/runtimeAnimation.js.map +1 -1
  18. package/Audio/analyser.js +1 -1
  19. package/Audio/analyser.js.map +1 -1
  20. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js +1 -1
  21. package/AudioV2/abstractAudio/components/spatialAudioAttacherComponent.js.map +1 -1
  22. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +1 -1
  23. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +1 -1
  24. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
  25. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.d.ts +1 -1
  26. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js +1 -1
  27. package/AudioV2/abstractAudio/subProperties/abstractSpatialAudioListener.js.map +1 -1
  28. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +1 -1
  29. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +1 -1
  30. package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
  31. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js +1 -1
  32. package/AudioV2/webAudio/subProperties/spatialWebAudioListener.js.map +1 -1
  33. package/AudioV2/webAudio/webAudioStreamingSound.js +1 -1
  34. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  35. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +1 -1
  36. package/BakedVertexAnimation/bakedVertexAnimationManager.js +1 -1
  37. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  38. package/BakedVertexAnimation/vertexAnimationBaker.js +1 -1
  39. package/BakedVertexAnimation/vertexAnimationBaker.js.map +1 -1
  40. package/Behaviors/Cameras/bouncingBehavior.js +1 -1
  41. package/Behaviors/Cameras/bouncingBehavior.js.map +1 -1
  42. package/Behaviors/Cameras/framingBehavior.d.ts +1 -1
  43. package/Behaviors/Cameras/framingBehavior.js +2 -2
  44. package/Behaviors/Cameras/framingBehavior.js.map +1 -1
  45. package/Behaviors/Cameras/interpolatingBehavior.d.ts +13 -1
  46. package/Behaviors/Cameras/interpolatingBehavior.js +13 -1
  47. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  48. package/Behaviors/Meshes/attachToBoxBehavior.js +1 -1
  49. package/Behaviors/Meshes/attachToBoxBehavior.js.map +1 -1
  50. package/Behaviors/Meshes/baseSixDofDragBehavior.d.ts +3 -3
  51. package/Behaviors/Meshes/baseSixDofDragBehavior.js +4 -4
  52. package/Behaviors/Meshes/baseSixDofDragBehavior.js.map +1 -1
  53. package/Behaviors/Meshes/followBehavior.js +1 -1
  54. package/Behaviors/Meshes/followBehavior.js.map +1 -1
  55. package/Behaviors/Meshes/handConstraintBehavior.js +2 -2
  56. package/Behaviors/Meshes/handConstraintBehavior.js.map +1 -1
  57. package/Behaviors/Meshes/multiPointerScaleBehavior.js +1 -1
  58. package/Behaviors/Meshes/multiPointerScaleBehavior.js.map +1 -1
  59. package/Behaviors/Meshes/pointerDragBehavior.d.ts +3 -3
  60. package/Behaviors/Meshes/pointerDragBehavior.js +5 -5
  61. package/Behaviors/Meshes/pointerDragBehavior.js.map +1 -1
  62. package/Behaviors/Meshes/sixDofDragBehavior.d.ts +1 -1
  63. package/Behaviors/Meshes/sixDofDragBehavior.js +2 -2
  64. package/Behaviors/Meshes/sixDofDragBehavior.js.map +1 -1
  65. package/Behaviors/Meshes/surfaceMagnetismBehavior.js +1 -1
  66. package/Behaviors/Meshes/surfaceMagnetismBehavior.js.map +1 -1
  67. package/Bones/boneIKController.d.ts +1 -1
  68. package/Bones/boneIKController.js +1 -1
  69. package/Bones/boneIKController.js.map +1 -1
  70. package/Bones/boneLookController.d.ts +1 -1
  71. package/Bones/boneLookController.js +1 -1
  72. package/Bones/boneLookController.js.map +1 -1
  73. package/Bones/skeleton.d.ts +2 -2
  74. package/Bones/skeleton.functions.d.ts +1 -1
  75. package/Bones/skeleton.functions.js +3 -3
  76. package/Bones/skeleton.functions.js.map +1 -1
  77. package/Bones/skeleton.js +3 -4
  78. package/Bones/skeleton.js.map +1 -1
  79. package/Buffers/buffer.align.pure.js +6 -0
  80. package/Buffers/buffer.align.pure.js.map +1 -1
  81. package/Buffers/buffer.nonFloatVertexBuffers.js +2 -1
  82. package/Buffers/buffer.nonFloatVertexBuffers.js.map +1 -1
  83. package/Buffers/buffer.pure.d.ts +8 -0
  84. package/Buffers/buffer.pure.js +31 -2
  85. package/Buffers/buffer.pure.js.map +1 -1
  86. package/Buffers/bufferUtils.js +17 -5
  87. package/Buffers/bufferUtils.js.map +1 -1
  88. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +1 -1
  89. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  90. package/Cameras/Inputs/BaseCameraPointersInput.js +1 -1
  91. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  92. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +1 -1
  93. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  94. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +2 -2
  95. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  96. package/Cameras/Inputs/flyCameraKeyboardInput.js +2 -2
  97. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  98. package/Cameras/Inputs/flyCameraMouseInput.js +2 -2
  99. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  100. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +1 -1
  101. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  102. package/Cameras/Inputs/followCameraMouseWheelInput.js +1 -1
  103. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  104. package/Cameras/Inputs/freeCameraGamepadInput.js +1 -1
  105. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  106. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +2 -2
  107. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  108. package/Cameras/Inputs/freeCameraMouseInput.js +1 -1
  109. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  110. package/Cameras/Inputs/freeCameraMouseWheelInput.js +1 -1
  111. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  112. package/Cameras/Inputs/freeCameraTouchInput.js +2 -2
  113. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  114. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +1 -1
  115. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  116. package/Cameras/Limits/geospatialLimits.d.ts +1 -1
  117. package/Cameras/Limits/geospatialLimits.js +1 -1
  118. package/Cameras/Limits/geospatialLimits.js.map +1 -1
  119. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js +2 -2
  120. package/Cameras/RigModes/stereoscopicAnaglyphRigMode.js.map +1 -1
  121. package/Cameras/RigModes/stereoscopicRigMode.d.ts +1 -1
  122. package/Cameras/RigModes/stereoscopicRigMode.js +3 -3
  123. package/Cameras/RigModes/stereoscopicRigMode.js.map +1 -1
  124. package/Cameras/RigModes/vrRigMode.js +2 -2
  125. package/Cameras/RigModes/vrRigMode.js.map +1 -1
  126. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.d.ts +3 -3
  127. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js +5 -5
  128. package/Cameras/Stereoscopic/stereoscopicScreenUniversalCamera.js.map +1 -1
  129. package/Cameras/VR/vrCameraMetrics.d.ts +1 -1
  130. package/Cameras/VR/vrCameraMetrics.js +1 -1
  131. package/Cameras/VR/vrCameraMetrics.js.map +1 -1
  132. package/Cameras/cameraInputsManager.d.ts +1 -1
  133. package/Cameras/cameraInputsManager.js +1 -1
  134. package/Cameras/cameraInputsManager.js.map +1 -1
  135. package/Collisions/collider.d.ts +1 -1
  136. package/Collisions/collider.js +1 -1
  137. package/Collisions/collider.js.map +1 -1
  138. package/Collisions/gpuPicker.d.ts +1 -1
  139. package/Collisions/gpuPicker.js +5 -5
  140. package/Collisions/gpuPicker.js.map +1 -1
  141. package/Collisions/meshCollisionData.d.ts +1 -1
  142. package/Collisions/meshCollisionData.js +1 -1
  143. package/Collisions/meshCollisionData.js.map +1 -1
  144. package/Collisions/pickingInfo.d.ts +1 -1
  145. package/Collisions/pickingInfo.js +2 -2
  146. package/Collisions/pickingInfo.js.map +1 -1
  147. package/Culling/Octrees/octreeBlock.d.ts +1 -1
  148. package/Culling/Octrees/octreeBlock.js +1 -1
  149. package/Culling/Octrees/octreeBlock.js.map +1 -1
  150. package/Culling/boundingBox.d.ts +1 -1
  151. package/Culling/boundingBox.js +1 -1
  152. package/Culling/boundingBox.js.map +1 -1
  153. package/Culling/boundingInfo.d.ts +1 -1
  154. package/Culling/boundingInfo.js +1 -1
  155. package/Culling/boundingInfo.js.map +1 -1
  156. package/Culling/boundingSphere.d.ts +1 -1
  157. package/Culling/boundingSphere.js +1 -1
  158. package/Culling/boundingSphere.js.map +1 -1
  159. package/Culling/ray.core.d.ts +1 -1
  160. package/Culling/ray.core.js +1 -1
  161. package/Culling/ray.core.js.map +1 -1
  162. package/Debug/axesViewer.d.ts +1 -1
  163. package/Debug/axesViewer.js +3 -3
  164. package/Debug/axesViewer.js.map +1 -1
  165. package/Debug/boneAxesViewer.d.ts +1 -1
  166. package/Debug/boneAxesViewer.js +1 -1
  167. package/Debug/boneAxesViewer.js.map +1 -1
  168. package/Debug/directionalLightFrustumViewer.d.ts +1 -1
  169. package/Debug/directionalLightFrustumViewer.js +6 -6
  170. package/Debug/directionalLightFrustumViewer.js.map +1 -1
  171. package/Debug/rayHelper.d.ts +1 -1
  172. package/Debug/rayHelper.js +2 -2
  173. package/Debug/rayHelper.js.map +1 -1
  174. package/Debug/skeletonViewer.d.ts +2 -2
  175. package/Debug/skeletonViewer.js +10 -10
  176. package/Debug/skeletonViewer.js.map +1 -1
  177. package/DeviceInput/internalDeviceSourceManager.d.ts +1 -1
  178. package/DeviceInput/internalDeviceSourceManager.js +0 -1
  179. package/DeviceInput/internalDeviceSourceManager.js.map +1 -1
  180. package/DeviceInput/webDeviceInputSystem.js +1 -1
  181. package/DeviceInput/webDeviceInputSystem.js.map +1 -1
  182. package/Engines/Extensions/engine.views.d.ts +1 -1
  183. package/Engines/Extensions/engine.views.js +1 -1
  184. package/Engines/Extensions/engine.views.js.map +1 -1
  185. package/Engines/Native/nativeHelpers.js +4 -1
  186. package/Engines/Native/nativeHelpers.js.map +1 -1
  187. package/Engines/WebGPU/webgpuCacheRenderPipeline.d.ts +1 -1
  188. package/Engines/WebGPU/webgpuCacheRenderPipeline.js +11 -1
  189. package/Engines/WebGPU/webgpuCacheRenderPipeline.js.map +1 -1
  190. package/Engines/WebGPU/webgpuComputeContext.d.ts +1 -1
  191. package/Engines/WebGPU/webgpuComputeContext.js.map +1 -1
  192. package/Engines/WebGPU/webgpuTintWASM.js +1 -1
  193. package/Engines/WebGPU/webgpuTintWASM.js.map +1 -1
  194. package/Engines/abstractEngine.pure.js +2 -2
  195. package/Engines/abstractEngine.pure.js.map +1 -1
  196. package/Engines/constants.d.ts +4 -0
  197. package/Engines/constants.js +4 -0
  198. package/Engines/constants.js.map +1 -1
  199. package/Engines/engineFactory.d.ts +2 -2
  200. package/Engines/engineFactory.js +3 -3
  201. package/Engines/engineFactory.js.map +1 -1
  202. package/Events/pointerEvents.d.ts +1 -1
  203. package/Events/pointerEvents.js +1 -1
  204. package/Events/pointerEvents.js.map +1 -1
  205. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js +1 -1
  206. package/FlowGraph/Blocks/Data/Utils/flowGraphCodeExecutionBlock.js.map +1 -1
  207. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.d.ts +1 -1
  208. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js +1 -1
  209. package/FlowGraph/Blocks/Data/flowGraphCachedOperationBlock.js.map +1 -1
  210. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js +1 -1
  211. package/FlowGraph/Blocks/Event/flowGraphKeyboardEventBlock.js.map +1 -1
  212. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.d.ts +1 -1
  213. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js +3 -3
  214. package/FlowGraph/Blocks/Execution/Animation/flowGraphInterpolationBlock.pure.js.map +1 -1
  215. package/FlowGraph/CustomTypes/flowGraphMatrix.d.ts +1 -1
  216. package/FlowGraph/CustomTypes/flowGraphMatrix.js +1 -1
  217. package/FlowGraph/CustomTypes/flowGraphMatrix.js.map +1 -1
  218. package/FlowGraph/flowGraphBlock.d.ts +1 -1
  219. package/FlowGraph/flowGraphBlock.js +1 -1
  220. package/FlowGraph/flowGraphBlock.js.map +1 -1
  221. package/FlowGraph/flowGraphExecutionBlock.d.ts +1 -1
  222. package/FlowGraph/flowGraphExecutionBlock.js +1 -1
  223. package/FlowGraph/flowGraphExecutionBlock.js.map +1 -1
  224. package/FlowGraph/flowGraphMath.d.ts +1 -1
  225. package/FlowGraph/flowGraphMath.js +1 -1
  226. package/FlowGraph/flowGraphMath.js.map +1 -1
  227. package/FlowGraph/flowGraphParser.js +1 -1
  228. package/FlowGraph/flowGraphParser.js.map +1 -1
  229. package/FlowGraph/flowGraphPathConverterComponent.d.ts +1 -1
  230. package/FlowGraph/flowGraphPathConverterComponent.js +2 -2
  231. package/FlowGraph/flowGraphPathConverterComponent.js.map +1 -1
  232. package/FlowGraph/flowGraphValidator.js.map +1 -1
  233. package/FlowGraph/serialization.js +4 -4
  234. package/FlowGraph/serialization.js.map +1 -1
  235. package/FlowGraph/utils.js.map +1 -1
  236. package/FrameGraph/Node/nodeRenderGraph.d.ts +2 -2
  237. package/FrameGraph/Node/nodeRenderGraph.js +7 -7
  238. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  239. package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +30 -0
  240. package/FrameGraph/Tasks/Layers/baseLayerTask.js +28 -1
  241. package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
  242. package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +2 -2
  243. package/FrameGraph/Tasks/Misc/computeShaderTask.js +2 -2
  244. package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
  245. package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +1 -1
  246. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +2 -2
  247. package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -1
  248. package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +7 -0
  249. package/FrameGraph/Tasks/PostProcesses/blurTask.js +8 -1
  250. package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
  251. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +1 -1
  252. package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
  253. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +1 -1
  254. package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
  255. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +1 -1
  256. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +1 -1
  257. package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -1
  258. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +2 -2
  259. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +3 -3
  260. package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -1
  261. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -1
  262. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +2 -2
  263. package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
  264. package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +6 -0
  265. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +14 -5
  266. package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
  267. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +1 -1
  268. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +1 -1
  269. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  270. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.d.ts +1 -1
  271. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js +1 -1
  272. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsSpatialBlurTask.js.map +1 -1
  273. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.d.ts +1 -1
  274. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js +2 -2
  275. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsTracingTask.js.map +1 -1
  276. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.d.ts +1 -1
  277. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js +2 -2
  278. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsVoxelizationTask.js.map +1 -1
  279. package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +7 -1
  280. package/FrameGraph/Tasks/Rendering/objectRendererTask.js +7 -1
  281. package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
  282. package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -1
  283. package/FrameGraph/Tasks/Texture/clearTextureTask.js +1 -1
  284. package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
  285. package/FrameGraph/frameGraphRenderContext.js +1 -1
  286. package/FrameGraph/frameGraphRenderContext.js.map +1 -1
  287. package/FrameGraph/frameGraphTextureManager.d.ts +1 -1
  288. package/FrameGraph/frameGraphTextureManager.js +1 -1
  289. package/FrameGraph/frameGraphTextureManager.js.map +1 -1
  290. package/Gamepads/gamepadManager.js +1 -1
  291. package/Gamepads/gamepadManager.js.map +1 -1
  292. package/Gizmos/axisDragGizmo.d.ts +5 -5
  293. package/Gizmos/axisDragGizmo.js +6 -6
  294. package/Gizmos/axisDragGizmo.js.map +1 -1
  295. package/Gizmos/axisScaleGizmo.d.ts +4 -4
  296. package/Gizmos/axisScaleGizmo.js +6 -6
  297. package/Gizmos/axisScaleGizmo.js.map +1 -1
  298. package/Gizmos/boundingBoxGizmo.d.ts +5 -5
  299. package/Gizmos/boundingBoxGizmo.js +7 -7
  300. package/Gizmos/boundingBoxGizmo.js.map +1 -1
  301. package/Gizmos/cameraGizmo.d.ts +3 -3
  302. package/Gizmos/cameraGizmo.js +7 -7
  303. package/Gizmos/cameraGizmo.js.map +1 -1
  304. package/Gizmos/gizmo.d.ts +2 -2
  305. package/Gizmos/gizmo.js +3 -3
  306. package/Gizmos/gizmo.js.map +1 -1
  307. package/Gizmos/gizmoManager.d.ts +2 -2
  308. package/Gizmos/gizmoManager.js +2 -2
  309. package/Gizmos/gizmoManager.js.map +1 -1
  310. package/Gizmos/lightGizmo.d.ts +4 -4
  311. package/Gizmos/lightGizmo.js +11 -11
  312. package/Gizmos/lightGizmo.js.map +1 -1
  313. package/Gizmos/planeDragGizmo.d.ts +4 -4
  314. package/Gizmos/planeDragGizmo.js +5 -5
  315. package/Gizmos/planeDragGizmo.js.map +1 -1
  316. package/Gizmos/positionGizmo.d.ts +1 -1
  317. package/Gizmos/positionGizmo.js +2 -2
  318. package/Gizmos/positionGizmo.js.map +1 -1
  319. package/Gizmos/rotationGizmo.d.ts +3 -3
  320. package/Gizmos/rotationGizmo.js +3 -3
  321. package/Gizmos/rotationGizmo.js.map +1 -1
  322. package/Gizmos/scaleGizmo.d.ts +2 -2
  323. package/Gizmos/scaleGizmo.js +4 -4
  324. package/Gizmos/scaleGizmo.js.map +1 -1
  325. package/Gizmos/spatialAudioGizmo.d.ts +2 -2
  326. package/Gizmos/spatialAudioGizmo.js +6 -6
  327. package/Gizmos/spatialAudioGizmo.js.map +1 -1
  328. package/Helpers/environmentHelper.d.ts +6 -6
  329. package/Helpers/environmentHelper.js +12 -12
  330. package/Helpers/environmentHelper.js.map +1 -1
  331. package/Helpers/materialConversionHelper.d.ts +1 -1
  332. package/Helpers/materialConversionHelper.js +1 -1
  333. package/Helpers/materialConversionHelper.js.map +1 -1
  334. package/Helpers/photoDome.d.ts +1 -1
  335. package/Helpers/photoDome.js +1 -1
  336. package/Helpers/photoDome.js.map +1 -1
  337. package/Helpers/textureDome.d.ts +4 -4
  338. package/Helpers/textureDome.js +6 -6
  339. package/Helpers/textureDome.js.map +1 -1
  340. package/Helpers/videoDome.d.ts +1 -1
  341. package/Helpers/videoDome.js +2 -2
  342. package/Helpers/videoDome.js.map +1 -1
  343. package/Inputs/scene.inputManager.d.ts +1 -1
  344. package/Inputs/scene.inputManager.js +1 -1
  345. package/Inputs/scene.inputManager.js.map +1 -1
  346. package/Instrumentation/sceneInstrumentation.js +1 -1
  347. package/Instrumentation/sceneInstrumentation.js.map +1 -1
  348. package/Layers/effectLayer.d.ts +1 -1
  349. package/Layers/effectLayer.js +3 -3
  350. package/Layers/effectLayer.js.map +1 -1
  351. package/Layers/layer.d.ts +2 -2
  352. package/Layers/layer.js +4 -4
  353. package/Layers/layer.js.map +1 -1
  354. package/Layers/thinEffectLayer.d.ts +2 -2
  355. package/Layers/thinEffectLayer.js +3 -3
  356. package/Layers/thinEffectLayer.js.map +1 -1
  357. package/Layers/thinGlowLayer.d.ts +1 -1
  358. package/Layers/thinGlowLayer.js +3 -3
  359. package/Layers/thinGlowLayer.js.map +1 -1
  360. package/Layers/thinHighlightLayer.d.ts +1 -1
  361. package/Layers/thinHighlightLayer.js +3 -3
  362. package/Layers/thinHighlightLayer.js.map +1 -1
  363. package/Layers/thinSelectionOutlineLayer.d.ts +1 -1
  364. package/Layers/thinSelectionOutlineLayer.js +3 -3
  365. package/Layers/thinSelectionOutlineLayer.js.map +1 -1
  366. package/Legacy/legacy.js +12 -1
  367. package/Legacy/legacy.js.map +1 -1
  368. package/LensFlares/lensFlare.d.ts +2 -2
  369. package/LensFlares/lensFlare.js +3 -3
  370. package/LensFlares/lensFlare.js.map +1 -1
  371. package/LensFlares/lensFlareSystem.d.ts +1 -1
  372. package/LensFlares/lensFlareSystem.js +6 -6
  373. package/LensFlares/lensFlareSystem.js.map +1 -1
  374. package/Lights/LTC/ltcTextureTool.js +1 -1
  375. package/Lights/LTC/ltcTextureTool.js.map +1 -1
  376. package/Lights/Shadows/cascadedShadowGenerator.d.ts +1 -285
  377. package/Lights/Shadows/cascadedShadowGenerator.js +3 -857
  378. package/Lights/Shadows/cascadedShadowGenerator.js.map +1 -1
  379. package/Lights/Shadows/cascadedShadowGenerator.pure.d.ts +290 -0
  380. package/Lights/Shadows/cascadedShadowGenerator.pure.js +868 -0
  381. package/Lights/Shadows/cascadedShadowGenerator.pure.js.map +1 -0
  382. package/Lights/Shadows/pure.d.ts +1 -0
  383. package/Lights/Shadows/pure.js +1 -0
  384. package/Lights/Shadows/pure.js.map +1 -1
  385. package/Lights/Shadows/shadowGenerator.d.ts +3 -3
  386. package/Lights/Shadows/shadowGenerator.js +7 -7
  387. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  388. package/Lights/areaLight.d.ts +1 -1
  389. package/Lights/areaLight.js +0 -1
  390. package/Lights/areaLight.js.map +1 -1
  391. package/Lights/light.d.ts +2 -2
  392. package/Lights/light.js +2 -2
  393. package/Lights/light.js.map +1 -1
  394. package/Lights/shadowLight.d.ts +1 -1
  395. package/Lights/shadowLight.js +1 -1
  396. package/Lights/shadowLight.js.map +1 -1
  397. package/Loading/sceneLoader.d.ts +2 -2
  398. package/Loading/sceneLoader.js +3 -3
  399. package/Loading/sceneLoader.js.map +1 -1
  400. package/Materials/GreasedLine/greasedLineMaterialDefaults.d.ts +1 -1
  401. package/Materials/GreasedLine/greasedLineMaterialDefaults.js +1 -1
  402. package/Materials/GreasedLine/greasedLineMaterialDefaults.js.map +1 -1
  403. package/Materials/GreasedLine/greasedLineSimpleMaterial.d.ts +3 -3
  404. package/Materials/GreasedLine/greasedLineSimpleMaterial.js +3 -3
  405. package/Materials/GreasedLine/greasedLineSimpleMaterial.js.map +1 -1
  406. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js +6 -6
  407. package/Materials/Node/Blocks/Fragment/prePassOutputBlock.pure.js.map +1 -1
  408. package/Materials/Node/nodeMaterial.pure.d.ts +12 -0
  409. package/Materials/Node/nodeMaterial.pure.js +68 -13
  410. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  411. package/Materials/Node/nodeMaterialDefault.js +14 -14
  412. package/Materials/Node/nodeMaterialDefault.js.map +1 -1
  413. package/Materials/PBR/openpbrMaterial.pure.js +19 -4
  414. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  415. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +40 -2
  416. package/Materials/PBR/pbrAnisotropicConfiguration.js +41 -3
  417. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  418. package/Materials/PBR/pbrBRDFConfiguration.d.ts +5 -1
  419. package/Materials/PBR/pbrBRDFConfiguration.js +5 -1
  420. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  421. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +2 -2
  422. package/Materials/PBR/pbrBaseSimpleMaterial.js +2 -2
  423. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  424. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +42 -2
  425. package/Materials/PBR/pbrClearCoatConfiguration.js +42 -2
  426. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  427. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +38 -1
  428. package/Materials/PBR/pbrIridescenceConfiguration.js +38 -1
  429. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  430. package/Materials/PBR/pbrSheenConfiguration.d.ts +41 -2
  431. package/Materials/PBR/pbrSheenConfiguration.js +41 -2
  432. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  433. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +41 -2
  434. package/Materials/PBR/pbrSubSurfaceConfiguration.js +42 -3
  435. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  436. package/Materials/Textures/Filtering/hdrFiltering.js +1 -1
  437. package/Materials/Textures/Filtering/hdrFiltering.js.map +1 -1
  438. package/Materials/Textures/Filtering/hdrIrradianceFiltering.d.ts +1 -1
  439. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js +2 -2
  440. package/Materials/Textures/Filtering/hdrIrradianceFiltering.js.map +1 -1
  441. package/Materials/Textures/Loaders/EXR/exrLoader.core.d.ts +1 -1
  442. package/Materials/Textures/Loaders/EXR/exrLoader.core.js +5 -109
  443. package/Materials/Textures/Loaders/EXR/exrLoader.core.js.map +1 -1
  444. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js +1 -1
  445. package/Materials/Textures/Loaders/EXR/exrLoader.decoder.js.map +1 -1
  446. package/Materials/Textures/Loaders/basisTextureLoader.js +2 -2
  447. package/Materials/Textures/Loaders/basisTextureLoader.js.map +1 -1
  448. package/Materials/Textures/Loaders/ddsTextureLoader.js +1 -1
  449. package/Materials/Textures/Loaders/ddsTextureLoader.js.map +1 -1
  450. package/Materials/Textures/Loaders/envTextureLoader.js +3 -1
  451. package/Materials/Textures/Loaders/envTextureLoader.js.map +1 -1
  452. package/Materials/Textures/Loaders/ktxTextureLoader.js +11 -2
  453. package/Materials/Textures/Loaders/ktxTextureLoader.js.map +1 -1
  454. package/Materials/Textures/MultiviewRenderTarget.d.ts +1 -1
  455. package/Materials/Textures/MultiviewRenderTarget.js +1 -1
  456. package/Materials/Textures/MultiviewRenderTarget.js.map +1 -1
  457. package/Materials/Textures/Packer/packer.d.ts +1 -1
  458. package/Materials/Textures/Packer/packer.js +6 -6
  459. package/Materials/Textures/Packer/packer.js.map +1 -1
  460. package/Materials/Textures/Procedurals/customProceduralTexture.d.ts +2 -2
  461. package/Materials/Textures/Procedurals/customProceduralTexture.js +4 -4
  462. package/Materials/Textures/Procedurals/customProceduralTexture.js.map +1 -1
  463. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +4 -1
  464. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  465. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js +1 -1
  466. package/Materials/Textures/Procedurals/proceduralTextureSceneComponent.js.map +1 -1
  467. package/Materials/Textures/prePassRenderTarget.d.ts +1 -1
  468. package/Materials/Textures/prePassRenderTarget.js +1 -1
  469. package/Materials/Textures/prePassRenderTarget.js.map +1 -1
  470. package/Materials/Textures/rawCubeTexture.d.ts +1 -1
  471. package/Materials/Textures/rawCubeTexture.js +2 -2
  472. package/Materials/Textures/rawCubeTexture.js.map +1 -1
  473. package/Materials/Textures/rawTexture.d.ts +1 -1
  474. package/Materials/Textures/rawTexture.js +1 -1
  475. package/Materials/Textures/rawTexture.js.map +1 -1
  476. package/Materials/Textures/rawTexture2DArray.d.ts +1 -1
  477. package/Materials/Textures/rawTexture2DArray.js +1 -1
  478. package/Materials/Textures/rawTexture2DArray.js.map +1 -1
  479. package/Materials/Textures/rawTexture3D.d.ts +1 -1
  480. package/Materials/Textures/rawTexture3D.js +1 -1
  481. package/Materials/Textures/rawTexture3D.js.map +1 -1
  482. package/Materials/Textures/refractionTexture.d.ts +1 -1
  483. package/Materials/Textures/refractionTexture.js +1 -1
  484. package/Materials/Textures/refractionTexture.js.map +1 -1
  485. package/Materials/Textures/textureMerger.d.ts +1 -1
  486. package/Materials/Textures/textureMerger.js +1 -1
  487. package/Materials/Textures/textureMerger.js.map +1 -1
  488. package/Materials/Textures/textureProcessor.d.ts +1 -1
  489. package/Materials/Textures/textureProcessor.js +2 -2
  490. package/Materials/Textures/textureProcessor.js.map +1 -1
  491. package/Materials/Textures/thinRenderTargetTexture.d.ts +4 -4
  492. package/Materials/Textures/thinRenderTargetTexture.js +2 -2
  493. package/Materials/Textures/thinRenderTargetTexture.js.map +1 -1
  494. package/Materials/clipPlaneMaterialHelper.js +1 -1
  495. package/Materials/clipPlaneMaterialHelper.js.map +1 -1
  496. package/Materials/effectRenderer.pure.js +4 -2
  497. package/Materials/effectRenderer.pure.js.map +1 -1
  498. package/Materials/floatingOriginMatrixOverrides.d.ts +1 -1
  499. package/Materials/floatingOriginMatrixOverrides.js +1 -1
  500. package/Materials/floatingOriginMatrixOverrides.js.map +1 -1
  501. package/Materials/material.detailMapConfiguration.d.ts +39 -1
  502. package/Materials/material.detailMapConfiguration.js +39 -1
  503. package/Materials/material.detailMapConfiguration.js.map +1 -1
  504. package/Materials/materialHelper.functions.js +45 -1
  505. package/Materials/materialHelper.functions.js.map +1 -1
  506. package/Materials/materialHelper.geometryrendering.d.ts +1 -1
  507. package/Materials/materialHelper.geometryrendering.js +1 -1
  508. package/Materials/materialHelper.geometryrendering.js.map +1 -1
  509. package/Materials/materialPluginFactoryExport.js +2 -2
  510. package/Materials/materialPluginFactoryExport.js.map +1 -1
  511. package/Materials/pushMaterial.d.ts +7 -1
  512. package/Materials/pushMaterial.js +7 -1
  513. package/Materials/pushMaterial.js.map +1 -1
  514. package/Materials/uniformBuffer.js +1 -1
  515. package/Materials/uniformBuffer.js.map +1 -1
  516. package/Maths/math.axis.d.ts +1 -1
  517. package/Maths/math.axis.js +1 -1
  518. package/Maths/math.axis.js.map +1 -1
  519. package/Maths/math.d.ts +2 -2
  520. package/Maths/math.functions.d.ts +1 -1
  521. package/Maths/math.functions.js +1 -1
  522. package/Maths/math.functions.js.map +1 -1
  523. package/Maths/math.isovector.d.ts +1 -1
  524. package/Maths/math.isovector.js +1 -1
  525. package/Maths/math.isovector.js.map +1 -1
  526. package/Maths/math.js +2 -2
  527. package/Maths/math.js.map +1 -1
  528. package/Maths/math.path.d.ts +1 -1
  529. package/Maths/math.path.js +1 -1
  530. package/Maths/math.path.js.map +1 -1
  531. package/Maths/math.plane.d.ts +1 -1
  532. package/Maths/math.plane.js +1 -1
  533. package/Maths/math.plane.js.map +1 -1
  534. package/Maths/math.polar.d.ts +1 -1
  535. package/Maths/math.polar.js +1 -1
  536. package/Maths/math.polar.js.map +1 -1
  537. package/Maths/math.vertexFormat.d.ts +1 -1
  538. package/Maths/math.vertexFormat.js +1 -1
  539. package/Maths/math.vertexFormat.js.map +1 -1
  540. package/Maths/pure.d.ts +1 -0
  541. package/Maths/pure.js +1 -0
  542. package/Maths/pure.js.map +1 -1
  543. package/Meshes/Builders/geodesicBuilder.js +1 -1
  544. package/Meshes/Builders/geodesicBuilder.js.map +1 -1
  545. package/Meshes/Builders/goldbergBuilder.d.ts +1 -1
  546. package/Meshes/Builders/goldbergBuilder.js +4 -4
  547. package/Meshes/Builders/goldbergBuilder.js.map +1 -1
  548. package/Meshes/Builders/greasedLineBuilder.d.ts +4 -4
  549. package/Meshes/Builders/greasedLineBuilder.js +5 -5
  550. package/Meshes/Builders/greasedLineBuilder.js.map +1 -1
  551. package/Meshes/Builders/textBuilder.d.ts +2 -2
  552. package/Meshes/Builders/textBuilder.js +4 -4
  553. package/Meshes/Builders/textBuilder.js.map +1 -1
  554. package/Meshes/Builders/tiledBoxBuilder.d.ts +3 -3
  555. package/Meshes/Builders/tiledBoxBuilder.js +3 -3
  556. package/Meshes/Builders/tiledBoxBuilder.js.map +1 -1
  557. package/Meshes/Builders/tiledPlaneBuilder.d.ts +1 -1
  558. package/Meshes/Builders/tiledPlaneBuilder.js +1 -1
  559. package/Meshes/Builders/tiledPlaneBuilder.js.map +1 -1
  560. package/Meshes/Compression/dracoCodec.js +1 -1
  561. package/Meshes/Compression/dracoCodec.js.map +1 -1
  562. package/Meshes/Compression/dracoDecoder.js +1 -1
  563. package/Meshes/Compression/dracoDecoder.js.map +1 -1
  564. package/Meshes/Compression/dracoEncoder.d.ts +1 -1
  565. package/Meshes/Compression/dracoEncoder.js +2 -2
  566. package/Meshes/Compression/dracoEncoder.js.map +1 -1
  567. package/Meshes/Compression/meshoptCompression.js +1 -1
  568. package/Meshes/Compression/meshoptCompression.js.map +1 -1
  569. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +64 -3
  570. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  571. package/Meshes/GreasedLine/greasedLineBaseMesh.d.ts +2 -2
  572. package/Meshes/GreasedLine/greasedLineBaseMesh.js +3 -3
  573. package/Meshes/GreasedLine/greasedLineBaseMesh.js.map +1 -1
  574. package/Meshes/Node/nodeGeometry.d.ts +2 -2
  575. package/Meshes/Node/nodeGeometry.js +4 -4
  576. package/Meshes/Node/nodeGeometry.js.map +1 -1
  577. package/Meshes/Node/nodeGeometryBuildState.d.ts +1 -1
  578. package/Meshes/Node/nodeGeometryBuildState.js +1 -1
  579. package/Meshes/Node/nodeGeometryBuildState.js.map +1 -1
  580. package/Meshes/abstractMesh.hotSpot.d.ts +1 -1
  581. package/Meshes/abstractMesh.hotSpot.js +2 -2
  582. package/Meshes/abstractMesh.hotSpot.js.map +1 -1
  583. package/Meshes/abstractMesh.pure.js +2 -13
  584. package/Meshes/abstractMesh.pure.js.map +1 -1
  585. package/Meshes/buffer.d.ts +1 -1
  586. package/Meshes/buffer.js +1 -1
  587. package/Meshes/buffer.js.map +1 -1
  588. package/Meshes/csg.d.ts +3 -3
  589. package/Meshes/csg.js +4 -4
  590. package/Meshes/csg.js.map +1 -1
  591. package/Meshes/csg2.d.ts +1 -1
  592. package/Meshes/csg2.js +38 -11
  593. package/Meshes/csg2.js.map +1 -1
  594. package/Meshes/geodesicMesh.d.ts +1 -1
  595. package/Meshes/geodesicMesh.js +1 -1
  596. package/Meshes/geodesicMesh.js.map +1 -1
  597. package/Meshes/geometry.d.ts +2 -2
  598. package/Meshes/geometry.js +4 -4
  599. package/Meshes/geometry.js.map +1 -1
  600. package/Meshes/lattice.d.ts +1 -1
  601. package/Meshes/lattice.js +1 -1
  602. package/Meshes/lattice.js.map +1 -1
  603. package/Meshes/lattice.material.d.ts +1 -1
  604. package/Meshes/lattice.material.js +1 -1
  605. package/Meshes/lattice.material.js.map +1 -1
  606. package/Meshes/mesh.vertexData.d.ts +2 -2
  607. package/Meshes/mesh.vertexData.js +3 -4
  608. package/Meshes/mesh.vertexData.js.map +1 -1
  609. package/Meshes/mesh.vertexData.subdivide.js +1 -1
  610. package/Meshes/mesh.vertexData.subdivide.js.map +1 -1
  611. package/Meshes/meshBuilder.d.ts +18 -18
  612. package/Meshes/meshBuilder.js +18 -18
  613. package/Meshes/meshBuilder.js.map +1 -1
  614. package/Meshes/meshSimplification.d.ts +1 -1
  615. package/Meshes/meshSimplification.js +4 -4
  616. package/Meshes/meshSimplification.js.map +1 -1
  617. package/Meshes/meshUVSpaceRenderer.d.ts +1 -1
  618. package/Meshes/meshUVSpaceRenderer.js +0 -1
  619. package/Meshes/meshUVSpaceRenderer.js.map +1 -1
  620. package/Meshes/meshUtils.d.ts +1 -1
  621. package/Meshes/meshUtils.js +2 -2
  622. package/Meshes/meshUtils.js.map +1 -1
  623. package/Meshes/polygonMesh.d.ts +2 -2
  624. package/Meshes/polygonMesh.js +3 -3
  625. package/Meshes/polygonMesh.js.map +1 -1
  626. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js +2 -2
  627. package/Misc/HighDynamicRange/cubemapToSphericalPolynomial.js.map +1 -1
  628. package/Misc/HighDynamicRange/panoramaToCubemap.js +1 -1
  629. package/Misc/HighDynamicRange/panoramaToCubemap.js.map +1 -1
  630. package/Misc/PerformanceViewer/performanceViewerCollector.js +1 -1
  631. package/Misc/PerformanceViewer/performanceViewerCollector.js.map +1 -1
  632. package/Misc/areaLightsTextureTools.d.ts +1 -1
  633. package/Misc/areaLightsTextureTools.js +3 -3
  634. package/Misc/areaLightsTextureTools.js.map +1 -1
  635. package/Misc/assetsManager.d.ts +4 -4
  636. package/Misc/assetsManager.js +5 -5
  637. package/Misc/assetsManager.js.map +1 -1
  638. package/Misc/basisWorker.js +1 -1
  639. package/Misc/basisWorker.js.map +1 -1
  640. package/Misc/brdfTextureTools.js +1 -1
  641. package/Misc/brdfTextureTools.js.map +1 -1
  642. package/Misc/copyTextureToTexture.d.ts +1 -1
  643. package/Misc/copyTextureToTexture.js +1 -1
  644. package/Misc/copyTextureToTexture.js.map +1 -1
  645. package/Misc/decorators.serialization.js +2 -2
  646. package/Misc/decorators.serialization.js.map +1 -1
  647. package/Misc/depthReducer.d.ts +2 -2
  648. package/Misc/depthReducer.js +2 -2
  649. package/Misc/depthReducer.js.map +1 -1
  650. package/Misc/gradients.d.ts +1 -1
  651. package/Misc/gradients.js +1 -1
  652. package/Misc/gradients.js.map +1 -1
  653. package/Misc/greasedLineTools.d.ts +1 -1
  654. package/Misc/greasedLineTools.js +3 -3
  655. package/Misc/greasedLineTools.js.map +1 -1
  656. package/Misc/halfFloat.d.ts +17 -0
  657. package/Misc/halfFloat.js +131 -0
  658. package/Misc/halfFloat.js.map +1 -0
  659. package/Misc/khronosTextureContainer2.js +1 -1
  660. package/Misc/khronosTextureContainer2.js.map +1 -1
  661. package/Misc/meshExploder.js +1 -1
  662. package/Misc/meshExploder.js.map +1 -1
  663. package/Misc/pivotTools.js +1 -1
  664. package/Misc/pivotTools.js.map +1 -1
  665. package/Misc/rgbdTextureTools.js +1 -1
  666. package/Misc/rgbdTextureTools.js.map +1 -1
  667. package/Misc/sceneOptimizer.js +1 -1
  668. package/Misc/sceneOptimizer.js.map +1 -1
  669. package/Misc/sceneRecorder.js +7 -7
  670. package/Misc/sceneRecorder.js.map +1 -1
  671. package/Misc/sceneSerializer.js +3 -3
  672. package/Misc/sceneSerializer.js.map +1 -1
  673. package/Misc/snapshotRenderingHelper.js +1 -1
  674. package/Misc/snapshotRenderingHelper.js.map +1 -1
  675. package/Misc/textureTools.d.ts +3 -13
  676. package/Misc/textureTools.js +6 -64
  677. package/Misc/textureTools.js.map +1 -1
  678. package/Misc/thinMinMaxReducer.d.ts +1 -1
  679. package/Misc/thinMinMaxReducer.js +1 -1
  680. package/Misc/thinMinMaxReducer.js.map +1 -1
  681. package/Misc/tools.internals.js +1 -1
  682. package/Misc/tools.internals.js.map +1 -1
  683. package/Misc/tools.pure.js +1 -1
  684. package/Misc/tools.pure.js.map +1 -1
  685. package/Misc/trajectoryClassifier.d.ts +1 -1
  686. package/Misc/trajectoryClassifier.js +1 -1
  687. package/Misc/trajectoryClassifier.js.map +1 -1
  688. package/Misc/videoRecorder.js +1 -1
  689. package/Misc/videoRecorder.js.map +1 -1
  690. package/Misc/virtualJoystick.d.ts +1 -1
  691. package/Misc/virtualJoystick.js +1 -1
  692. package/Misc/virtualJoystick.js.map +1 -1
  693. package/Morph/morphTarget.js +1 -1
  694. package/Morph/morphTarget.js.map +1 -1
  695. package/Navigation/Plugins/recastJSPlugin.d.ts +1 -1
  696. package/Navigation/Plugins/recastJSPlugin.js +2 -2
  697. package/Navigation/Plugins/recastJSPlugin.js.map +1 -1
  698. package/Particles/EmitterTypes/boxParticleEmitter.d.ts +1 -1
  699. package/Particles/EmitterTypes/boxParticleEmitter.js +1 -1
  700. package/Particles/EmitterTypes/boxParticleEmitter.js.map +1 -1
  701. package/Particles/EmitterTypes/coneParticleEmitter.d.ts +1 -1
  702. package/Particles/EmitterTypes/coneParticleEmitter.js +1 -1
  703. package/Particles/EmitterTypes/coneParticleEmitter.js.map +1 -1
  704. package/Particles/EmitterTypes/customParticleEmitter.d.ts +1 -1
  705. package/Particles/EmitterTypes/customParticleEmitter.js +1 -1
  706. package/Particles/EmitterTypes/customParticleEmitter.js.map +1 -1
  707. package/Particles/EmitterTypes/cylinderParticleEmitter.d.ts +1 -1
  708. package/Particles/EmitterTypes/cylinderParticleEmitter.js +1 -1
  709. package/Particles/EmitterTypes/cylinderParticleEmitter.js.map +1 -1
  710. package/Particles/EmitterTypes/hemisphericParticleEmitter.d.ts +1 -1
  711. package/Particles/EmitterTypes/hemisphericParticleEmitter.js +1 -1
  712. package/Particles/EmitterTypes/hemisphericParticleEmitter.js.map +1 -1
  713. package/Particles/EmitterTypes/meshParticleEmitter.d.ts +1 -1
  714. package/Particles/EmitterTypes/meshParticleEmitter.js +2 -2
  715. package/Particles/EmitterTypes/meshParticleEmitter.js.map +1 -1
  716. package/Particles/EmitterTypes/pointParticleEmitter.d.ts +1 -1
  717. package/Particles/EmitterTypes/pointParticleEmitter.js +1 -1
  718. package/Particles/EmitterTypes/pointParticleEmitter.js.map +1 -1
  719. package/Particles/EmitterTypes/sphereParticleEmitter.d.ts +1 -1
  720. package/Particles/EmitterTypes/sphereParticleEmitter.js +1 -1
  721. package/Particles/EmitterTypes/sphereParticleEmitter.js.map +1 -1
  722. package/Particles/Node/nodeParticleBuildState.d.ts +4 -4
  723. package/Particles/Node/nodeParticleBuildState.js +2 -2
  724. package/Particles/Node/nodeParticleBuildState.js.map +1 -1
  725. package/Particles/Node/nodeParticleSystemSet.d.ts +2 -2
  726. package/Particles/Node/nodeParticleSystemSet.helper.js +31 -31
  727. package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
  728. package/Particles/Node/nodeParticleSystemSet.js +8 -8
  729. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  730. package/Particles/attractor.d.ts +1 -1
  731. package/Particles/attractor.js +1 -1
  732. package/Particles/attractor.js.map +1 -1
  733. package/Particles/flowMap.d.ts +7 -1
  734. package/Particles/flowMap.js +7 -1
  735. package/Particles/flowMap.js.map +1 -1
  736. package/Particles/particle.d.ts +2 -2
  737. package/Particles/particle.js +2 -2
  738. package/Particles/particle.js.map +1 -1
  739. package/Particles/particleHelper.js +5 -5
  740. package/Particles/particleHelper.js.map +1 -1
  741. package/Particles/particleSystem.functions.d.ts +1 -1
  742. package/Particles/particleSystem.functions.js +1 -1
  743. package/Particles/particleSystem.functions.js.map +1 -1
  744. package/Particles/particleSystemSet.d.ts +1 -1
  745. package/Particles/particleSystemSet.js +5 -5
  746. package/Particles/particleSystemSet.js.map +1 -1
  747. package/Particles/pointsCloudSystem.d.ts +1 -1
  748. package/Particles/pointsCloudSystem.js +6 -6
  749. package/Particles/pointsCloudSystem.js.map +1 -1
  750. package/Particles/solidParticle.d.ts +2 -2
  751. package/Particles/solidParticle.js +3 -3
  752. package/Particles/solidParticle.js.map +1 -1
  753. package/Particles/solidParticleSystem.d.ts +4 -4
  754. package/Particles/solidParticleSystem.js +7 -7
  755. package/Particles/solidParticleSystem.js.map +1 -1
  756. package/Particles/subEmitter.js +1 -1
  757. package/Particles/subEmitter.js.map +1 -1
  758. package/Particles/thinParticleSystem.function.js +2 -2
  759. package/Particles/thinParticleSystem.function.js.map +1 -1
  760. package/Physics/Plugins/cannonJSPlugin.d.ts +1 -1
  761. package/Physics/Plugins/cannonJSPlugin.js +1 -1
  762. package/Physics/Plugins/cannonJSPlugin.js.map +1 -1
  763. package/Physics/castingResult.d.ts +1 -1
  764. package/Physics/castingResult.js +1 -1
  765. package/Physics/castingResult.js.map +1 -1
  766. package/Physics/physicsHelper.d.ts +1 -1
  767. package/Physics/physicsHelper.js +4 -4
  768. package/Physics/physicsHelper.js.map +1 -1
  769. package/Physics/physicsImpostor.d.ts +1 -1
  770. package/Physics/physicsImpostor.js +1 -1
  771. package/Physics/physicsImpostor.js.map +1 -1
  772. package/Physics/physicsRaycastResult.d.ts +1 -1
  773. package/Physics/physicsRaycastResult.js +1 -1
  774. package/Physics/physicsRaycastResult.js.map +1 -1
  775. package/Physics/v1/Plugins/ammoJSPlugin.d.ts +2 -2
  776. package/Physics/v1/Plugins/ammoJSPlugin.js +5 -5
  777. package/Physics/v1/Plugins/ammoJSPlugin.js.map +1 -1
  778. package/Physics/v1/Plugins/oimoJSPlugin.d.ts +2 -2
  779. package/Physics/v1/Plugins/oimoJSPlugin.js +2 -2
  780. package/Physics/v1/Plugins/oimoJSPlugin.js.map +1 -1
  781. package/Physics/v1/physicsEngine.d.ts +1 -1
  782. package/Physics/v1/physicsEngine.js +1 -1
  783. package/Physics/v1/physicsEngine.js.map +1 -1
  784. package/Physics/v2/Plugins/havokPlugin.d.ts +14 -2
  785. package/Physics/v2/Plugins/havokPlugin.js +45 -7
  786. package/Physics/v2/Plugins/havokPlugin.js.map +1 -1
  787. package/Physics/v2/characterController.d.ts +1 -1
  788. package/Physics/v2/characterController.js +2 -2
  789. package/Physics/v2/characterController.js.map +1 -1
  790. package/Physics/v2/physicsAggregate.d.ts +3 -3
  791. package/Physics/v2/physicsAggregate.js +10 -6
  792. package/Physics/v2/physicsAggregate.js.map +1 -1
  793. package/Physics/v2/physicsBody.d.ts +1 -1
  794. package/Physics/v2/physicsBody.js +1 -1
  795. package/Physics/v2/physicsBody.js.map +1 -1
  796. package/Physics/v2/physicsEngine.d.ts +1 -1
  797. package/Physics/v2/physicsEngine.js +1 -1
  798. package/Physics/v2/physicsEngine.js.map +1 -1
  799. package/Physics/v2/physicsShape.d.ts +1 -1
  800. package/Physics/v2/physicsShape.js +1 -1
  801. package/Physics/v2/physicsShape.js.map +1 -1
  802. package/Physics/v2/ragdoll.d.ts +2 -2
  803. package/Physics/v2/ragdoll.js +2 -2
  804. package/Physics/v2/ragdoll.js.map +1 -1
  805. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.d.ts +1 -0
  806. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +8 -6
  807. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  808. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js +1 -1
  809. package/PostProcesses/RenderPipeline/Pipelines/thinSSRRenderingPipeline.js.map +1 -1
  810. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js +1 -1
  811. package/PostProcesses/RenderPipeline/postProcessRenderEffect.js.map +1 -1
  812. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +3 -2
  813. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  814. package/PostProcesses/bloomEffect.d.ts +1 -1
  815. package/PostProcesses/bloomEffect.js +4 -4
  816. package/PostProcesses/bloomEffect.js.map +1 -1
  817. package/PostProcesses/depthOfFieldEffect.d.ts +1 -1
  818. package/PostProcesses/depthOfFieldEffect.js +3 -3
  819. package/PostProcesses/depthOfFieldEffect.js.map +1 -1
  820. package/PostProcesses/depthOfFieldMergePostProcess.d.ts +1 -1
  821. package/PostProcesses/depthOfFieldMergePostProcess.js +1 -1
  822. package/PostProcesses/depthOfFieldMergePostProcess.js.map +1 -1
  823. package/PostProcesses/highlightsPostProcess.d.ts +1 -1
  824. package/PostProcesses/highlightsPostProcess.js +1 -1
  825. package/PostProcesses/highlightsPostProcess.js.map +1 -1
  826. package/PostProcesses/imageProcessingPostProcess.d.ts +1 -1
  827. package/PostProcesses/imageProcessingPostProcess.js +1 -1
  828. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  829. package/PostProcesses/postProcessManager.d.ts +3 -0
  830. package/PostProcesses/postProcessManager.js +4 -1
  831. package/PostProcesses/postProcessManager.js.map +1 -1
  832. package/PostProcesses/subSurfaceScatteringPostProcess.pure.d.ts +1 -0
  833. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js +10 -0
  834. package/PostProcesses/subSurfaceScatteringPostProcess.pure.js.map +1 -1
  835. package/PostProcesses/thinAnaglyphPostProcess.d.ts +1 -1
  836. package/PostProcesses/thinAnaglyphPostProcess.js +1 -1
  837. package/PostProcesses/thinAnaglyphPostProcess.js.map +1 -1
  838. package/PostProcesses/thinBlackAndWhitePostProcess.d.ts +1 -1
  839. package/PostProcesses/thinBlackAndWhitePostProcess.js +1 -1
  840. package/PostProcesses/thinBlackAndWhitePostProcess.js.map +1 -1
  841. package/PostProcesses/thinBloomEffect.js +1 -1
  842. package/PostProcesses/thinBloomEffect.js.map +1 -1
  843. package/PostProcesses/thinBloomMergePostProcess.d.ts +1 -1
  844. package/PostProcesses/thinBloomMergePostProcess.js +1 -1
  845. package/PostProcesses/thinBloomMergePostProcess.js.map +1 -1
  846. package/PostProcesses/thinBlurPostProcess.d.ts +1 -1
  847. package/PostProcesses/thinBlurPostProcess.js +1 -1
  848. package/PostProcesses/thinBlurPostProcess.js.map +1 -1
  849. package/PostProcesses/thinChromaticAberrationPostProcess.d.ts +2 -2
  850. package/PostProcesses/thinChromaticAberrationPostProcess.js +2 -2
  851. package/PostProcesses/thinChromaticAberrationPostProcess.js.map +1 -1
  852. package/PostProcesses/thinCircleOfConfusionPostProcess.d.ts +1 -1
  853. package/PostProcesses/thinCircleOfConfusionPostProcess.js +1 -1
  854. package/PostProcesses/thinCircleOfConfusionPostProcess.js.map +1 -1
  855. package/PostProcesses/thinColorCorrectionPostProcess.d.ts +1 -1
  856. package/PostProcesses/thinColorCorrectionPostProcess.js +2 -2
  857. package/PostProcesses/thinColorCorrectionPostProcess.js.map +1 -1
  858. package/PostProcesses/thinConvolutionPostProcess.d.ts +1 -1
  859. package/PostProcesses/thinConvolutionPostProcess.js +1 -1
  860. package/PostProcesses/thinConvolutionPostProcess.js.map +1 -1
  861. package/PostProcesses/thinCustomPostProcess.d.ts +1 -1
  862. package/PostProcesses/thinCustomPostProcess.js +1 -1
  863. package/PostProcesses/thinCustomPostProcess.js.map +1 -1
  864. package/PostProcesses/thinDepthOfFieldEffect.d.ts +3 -0
  865. package/PostProcesses/thinDepthOfFieldEffect.js +4 -1
  866. package/PostProcesses/thinDepthOfFieldEffect.js.map +1 -1
  867. package/PostProcesses/thinDepthOfFieldMergePostProcess.d.ts +1 -1
  868. package/PostProcesses/thinDepthOfFieldMergePostProcess.js +1 -1
  869. package/PostProcesses/thinDepthOfFieldMergePostProcess.js.map +1 -1
  870. package/PostProcesses/thinExtractHighlightsPostProcess.d.ts +1 -1
  871. package/PostProcesses/thinExtractHighlightsPostProcess.js +1 -1
  872. package/PostProcesses/thinExtractHighlightsPostProcess.js.map +1 -1
  873. package/PostProcesses/thinFXAAPostProcess.d.ts +2 -2
  874. package/PostProcesses/thinFXAAPostProcess.js +2 -2
  875. package/PostProcesses/thinFXAAPostProcess.js.map +1 -1
  876. package/PostProcesses/thinFilterPostProcess.d.ts +2 -2
  877. package/PostProcesses/thinFilterPostProcess.js +2 -2
  878. package/PostProcesses/thinFilterPostProcess.js.map +1 -1
  879. package/PostProcesses/thinGrainPostProcess.d.ts +1 -1
  880. package/PostProcesses/thinGrainPostProcess.js +1 -1
  881. package/PostProcesses/thinGrainPostProcess.js.map +1 -1
  882. package/PostProcesses/thinImageProcessingPostProcess.d.ts +2 -2
  883. package/PostProcesses/thinImageProcessingPostProcess.js +2 -2
  884. package/PostProcesses/thinImageProcessingPostProcess.js.map +1 -1
  885. package/PostProcesses/thinMotionBlurPostProcess.d.ts +1 -1
  886. package/PostProcesses/thinMotionBlurPostProcess.js +2 -2
  887. package/PostProcesses/thinMotionBlurPostProcess.js.map +1 -1
  888. package/PostProcesses/thinPassPostProcess.d.ts +1 -1
  889. package/PostProcesses/thinPassPostProcess.js +1 -1
  890. package/PostProcesses/thinPassPostProcess.js.map +1 -1
  891. package/PostProcesses/thinSSAO2BlurPostProcess.d.ts +1 -1
  892. package/PostProcesses/thinSSAO2BlurPostProcess.js +1 -1
  893. package/PostProcesses/thinSSAO2BlurPostProcess.js.map +1 -1
  894. package/PostProcesses/thinSSAO2CombinePostProcess.d.ts +1 -1
  895. package/PostProcesses/thinSSAO2CombinePostProcess.js +2 -2
  896. package/PostProcesses/thinSSAO2CombinePostProcess.js.map +1 -1
  897. package/PostProcesses/thinSSAO2PostProcess.d.ts +7 -2
  898. package/PostProcesses/thinSSAO2PostProcess.js +36 -4
  899. package/PostProcesses/thinSSAO2PostProcess.js.map +1 -1
  900. package/PostProcesses/thinSSRBlurCombinerPostProcess.d.ts +1 -1
  901. package/PostProcesses/thinSSRBlurCombinerPostProcess.js +2 -2
  902. package/PostProcesses/thinSSRBlurCombinerPostProcess.js.map +1 -1
  903. package/PostProcesses/thinSSRBlurPostProcess.d.ts +2 -2
  904. package/PostProcesses/thinSSRBlurPostProcess.js +2 -2
  905. package/PostProcesses/thinSSRBlurPostProcess.js.map +1 -1
  906. package/PostProcesses/thinSSRPostProcess.d.ts +1 -1
  907. package/PostProcesses/thinSSRPostProcess.js +2 -2
  908. package/PostProcesses/thinSSRPostProcess.js.map +1 -1
  909. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.d.ts +1 -1
  910. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js +1 -1
  911. package/PostProcesses/thinScreenSpaceCurvaturePostProcess.js.map +1 -1
  912. package/PostProcesses/thinSharpenPostProcess.d.ts +1 -1
  913. package/PostProcesses/thinSharpenPostProcess.js +1 -1
  914. package/PostProcesses/thinSharpenPostProcess.js.map +1 -1
  915. package/PostProcesses/thinTAAPostProcess.d.ts +3 -3
  916. package/PostProcesses/thinTAAPostProcess.js +4 -4
  917. package/PostProcesses/thinTAAPostProcess.js.map +1 -1
  918. package/PostProcesses/thinTonemapPostProcess.d.ts +1 -1
  919. package/PostProcesses/thinTonemapPostProcess.js +1 -1
  920. package/PostProcesses/thinTonemapPostProcess.js.map +1 -1
  921. package/PostProcesses/vrDistortionCorrectionPostProcess.d.ts +1 -1
  922. package/PostProcesses/vrDistortionCorrectionPostProcess.js +3 -3
  923. package/PostProcesses/vrDistortionCorrectionPostProcess.js.map +1 -1
  924. package/Rendering/IBLShadows/iblShadowsAccumulationPass.d.ts +2 -2
  925. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js +4 -4
  926. package/Rendering/IBLShadows/iblShadowsAccumulationPass.js.map +1 -1
  927. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.d.ts +2 -2
  928. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js +4 -4
  929. package/Rendering/IBLShadows/iblShadowsSpatialBlurPass.js.map +1 -1
  930. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.d.ts +3 -3
  931. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js +4 -4
  932. package/Rendering/IBLShadows/iblShadowsVoxelTracingPass.js.map +1 -1
  933. package/Rendering/depthPeelingRenderer.d.ts +1 -1
  934. package/Rendering/depthPeelingRenderer.js +2 -2
  935. package/Rendering/depthPeelingRenderer.js.map +1 -1
  936. package/Rendering/fluidRenderer/fluidRenderingObject.d.ts +1 -1
  937. package/Rendering/fluidRenderer/fluidRenderingObject.js +1 -1
  938. package/Rendering/fluidRenderer/fluidRenderingObject.js.map +1 -1
  939. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.d.ts +1 -1
  940. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js +2 -2
  941. package/Rendering/fluidRenderer/fluidRenderingObjectCustomParticles.js.map +1 -1
  942. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.d.ts +3 -3
  943. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js +3 -3
  944. package/Rendering/fluidRenderer/fluidRenderingTargetRenderer.js.map +1 -1
  945. package/Rendering/fluidRenderer/fluidRenderingTextures.d.ts +2 -2
  946. package/Rendering/fluidRenderer/fluidRenderingTextures.js +3 -3
  947. package/Rendering/fluidRenderer/fluidRenderingTextures.js.map +1 -1
  948. package/Rendering/iblCdfGenerator.d.ts +3 -3
  949. package/Rendering/iblCdfGenerator.js +5 -5
  950. package/Rendering/iblCdfGenerator.js.map +1 -1
  951. package/Rendering/renderingGroup.js +1 -1
  952. package/Rendering/renderingGroup.js.map +1 -1
  953. package/Rendering/subSurfaceConfiguration.d.ts +2 -2
  954. package/Rendering/subSurfaceConfiguration.js +2 -2
  955. package/Rendering/subSurfaceConfiguration.js.map +1 -1
  956. package/Rendering/utilityLayerRenderer.d.ts +2 -2
  957. package/Rendering/utilityLayerRenderer.js +4 -4
  958. package/Rendering/utilityLayerRenderer.js.map +1 -1
  959. package/Shaders/ssao2.fragment.js +10 -2
  960. package/Shaders/ssao2.fragment.js.map +1 -1
  961. package/ShadersWGSL/ssao2.fragment.js +10 -2
  962. package/ShadersWGSL/ssao2.fragment.js.map +1 -1
  963. package/SmartAssets/smartAssetSerializer.js +1 -1
  964. package/SmartAssets/smartAssetSerializer.js.map +1 -1
  965. package/Sprites/sprite.d.ts +2 -2
  966. package/Sprites/sprite.js +2 -2
  967. package/Sprites/sprite.js.map +1 -1
  968. package/Sprites/spriteManager.d.ts +2 -2
  969. package/Sprites/spriteManager.js +4 -5
  970. package/Sprites/spriteManager.js.map +1 -1
  971. package/Sprites/spritePackedManager.js +1 -1
  972. package/Sprites/spritePackedManager.js.map +1 -1
  973. package/Sprites/spriteRenderer.js +2 -2
  974. package/Sprites/spriteRenderer.js.map +1 -1
  975. package/XR/features/WebXRHitTestLegacy.d.ts +1 -1
  976. package/XR/features/WebXRHitTestLegacy.js +2 -2
  977. package/XR/features/WebXRHitTestLegacy.js.map +1 -1
  978. package/XR/motionController/webXRAbstractMotionController.js +2 -2
  979. package/XR/motionController/webXRAbstractMotionController.js.map +1 -1
  980. package/XR/motionController/webXRGenericMotionController.js +2 -2
  981. package/XR/motionController/webXRGenericMotionController.js.map +1 -1
  982. package/XR/motionController/webXRProfiledMotionController.js +4 -4
  983. package/XR/motionController/webXRProfiledMotionController.js.map +1 -1
  984. package/XR/webXRCamera.d.ts +3 -3
  985. package/XR/webXRCamera.js +4 -4
  986. package/XR/webXRCamera.js.map +1 -1
  987. package/XR/webXRDefaultExperience.d.ts +4 -4
  988. package/XR/webXRDefaultExperience.js +4 -4
  989. package/XR/webXRDefaultExperience.js.map +1 -1
  990. package/XR/webXREnterExitUI.js +1 -1
  991. package/XR/webXREnterExitUI.js.map +1 -1
  992. package/XR/webXRExperienceHelper.js +2 -2
  993. package/XR/webXRExperienceHelper.js.map +1 -1
  994. package/XR/webXRFeaturesManager.d.ts +47 -0
  995. package/XR/webXRFeaturesManager.js +1 -1
  996. package/XR/webXRFeaturesManager.js.map +1 -1
  997. package/XR/webXRInput.js +1 -1
  998. package/XR/webXRInput.js.map +1 -1
  999. package/XR/webXRInputSource.js +4 -4
  1000. package/XR/webXRInputSource.js.map +1 -1
  1001. package/XR/webXRManagedOutputCanvas.js +1 -1
  1002. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  1003. package/XR/webXRRenderTargetTextureProvider.d.ts +1 -1
  1004. package/XR/webXRRenderTargetTextureProvider.js +1 -1
  1005. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  1006. package/assetContainer.d.ts +4 -4
  1007. package/assetContainer.js +6 -6
  1008. package/assetContainer.js.map +1 -1
  1009. package/node.d.ts +1 -1
  1010. package/node.js +6 -2
  1011. package/node.js.map +1 -1
  1012. package/package.json +44 -174
@@ -1 +1 @@
1
- {"version":3,"file":"exrLoader.decoder.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/Materials/Textures/Loaders/EXR/exrLoader.decoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { type DataCursor, CompressionCodes, DecodeFloat32, ParseFloat16, ParseFloat32, ParseInt32, ParseInt64, ParseUint16, ParseUint32 } from \"./exrLoader.core\";\r\nimport { UncompressPIZ, UncompressPXR, UncompressRAW, UncompressRLE, UncompressZIP } from \"./exrLoader.compression\";\r\nimport { FLOAT32_SIZE, INT16_SIZE, type IEXRDecoder, type IEXRHeader } from \"./exrLoader.interfaces\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { Tools } from \"core/Misc/tools\";\r\nimport { ExrLoaderGlobalConfiguration, EXROutputType } from \"./exrLoader.configuration\";\r\n\r\n/**\r\n * Inspired by https://github.com/sciecode/three.js/blob/dev/examples/jsm/loaders/EXRLoader.js\r\n * Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita\r\n * implementation.\r\n */\r\n\r\n// /*\r\n// Copyright (c) 2014 - 2017, Syoyo Fujita\r\n// All rights reserved.\r\n\r\n// Redistribution and use in source and binary forms, with or without\r\n// modification, are permitted provided that the following conditions are met:\r\n// * Redistributions of source code must retain the above copyright\r\n// notice, this list of conditions and the following disclaimer.\r\n// * Redistributions in binary form must reproduce the above copyright\r\n// notice, this list of conditions and the following disclaimer in the\r\n// documentation and/or other materials provided with the distribution.\r\n// * Neither the name of the Syoyo Fujita nor the\r\n// names of its contributors may be used to endorse or promote products\r\n// derived from this software without specific prior written permission.\r\n\r\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\r\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\n// DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\r\n// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r\n// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r\n// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r\n// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n// */\r\n\r\n// // TinyEXR contains some OpenEXR code, which is licensed under ------------\r\n\r\n// ///////////////////////////////////////////////////////////////////////////\r\n// //\r\n// // Copyright (c) 2002, Industrial Light & Magic, a division of Lucas\r\n// // Digital Ltd. LLC\r\n// //\r\n// // All rights reserved.\r\n// //\r\n// // Redistribution and use in source and binary forms, with or without\r\n// // modification, are permitted provided that the following conditions are\r\n// // met:\r\n// // * Redistributions of source code must retain the above copyright\r\n// // notice, this list of conditions and the following disclaimer.\r\n// // * Redistributions in binary form must reproduce the above\r\n// // copyright notice, this list of conditions and the following disclaimer\r\n// // in the documentation and/or other materials provided with the\r\n// // distribution.\r\n// // * Neither the name of Industrial Light & Magic nor the names of\r\n// // its contributors may be used to endorse or promote products derived\r\n// // from this software without specific prior written permission.\r\n// //\r\n// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r\n// // \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r\n// // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r\n// // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r\n// // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n// // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r\n// // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n// // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n// // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n// // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r\n// // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n// //\r\n// ///////////////////////////////////////////////////////////////////////////\r\n\r\n// // End of OpenEXR license -------------------------------------------------\r\n\r\n/**\r\n * Create a decoder for the exr file\r\n * @param header header of the exr file\r\n * @param dataView dataview of the exr file\r\n * @param offset current offset\r\n * @param outputType expected output type (float or half float)\r\n * @returns a promise that resolves with the decoder\r\n */\r\nexport async function CreateDecoderAsync(header: IEXRHeader, dataView: DataView, offset: DataCursor, outputType: EXROutputType): Promise<IEXRDecoder> {\r\n const decoder: IEXRDecoder = {\r\n size: 0,\r\n viewer: dataView,\r\n array: new Uint8Array(dataView.buffer),\r\n offset: offset,\r\n width: header.dataWindow.xMax - header.dataWindow.xMin + 1,\r\n height: header.dataWindow.yMax - header.dataWindow.yMin + 1,\r\n channels: header.channels.length,\r\n channelLineOffsets: {},\r\n scanOrder: () => 0,\r\n bytesPerLine: 0,\r\n outLineWidth: 0,\r\n lines: 0,\r\n scanlineBlockSize: 0,\r\n inputSize: null,\r\n type: 0,\r\n uncompress: null,\r\n getter: () => 0,\r\n format: Constants.TEXTUREFORMAT_RGBA,\r\n outputChannels: 0,\r\n decodeChannels: {},\r\n blockCount: null,\r\n byteArray: null,\r\n linearSpace: false,\r\n textureType: 0,\r\n };\r\n\r\n switch (header.compression) {\r\n case CompressionCodes.NO_COMPRESSION:\r\n decoder.lines = 1;\r\n decoder.uncompress = UncompressRAW;\r\n break;\r\n\r\n case CompressionCodes.RLE_COMPRESSION:\r\n decoder.lines = 1;\r\n decoder.uncompress = UncompressRLE;\r\n break;\r\n\r\n case CompressionCodes.ZIPS_COMPRESSION:\r\n decoder.lines = 1;\r\n decoder.uncompress = UncompressZIP;\r\n await Tools.LoadScriptAsync(ExrLoaderGlobalConfiguration.FFLATEUrl);\r\n break;\r\n\r\n case CompressionCodes.ZIP_COMPRESSION:\r\n decoder.lines = 16;\r\n decoder.uncompress = UncompressZIP;\r\n await Tools.LoadScriptAsync(ExrLoaderGlobalConfiguration.FFLATEUrl);\r\n break;\r\n\r\n case CompressionCodes.PIZ_COMPRESSION:\r\n decoder.lines = 32;\r\n decoder.uncompress = UncompressPIZ;\r\n break;\r\n\r\n case CompressionCodes.PXR24_COMPRESSION:\r\n decoder.lines = 16;\r\n decoder.uncompress = UncompressPXR;\r\n await Tools.LoadScriptAsync(ExrLoaderGlobalConfiguration.FFLATEUrl);\r\n break;\r\n\r\n default:\r\n throw new Error(CompressionCodes[header.compression] + \" is unsupported\");\r\n }\r\n\r\n decoder.scanlineBlockSize = decoder.lines;\r\n\r\n const channels: {\r\n [key: string]: boolean;\r\n } = {};\r\n for (const channel of header.channels) {\r\n switch (channel.name) {\r\n case \"R\":\r\n case \"G\":\r\n case \"B\":\r\n case \"A\":\r\n channels[channel.name] = true;\r\n decoder.type = channel.pixelType;\r\n break;\r\n case \"Y\":\r\n channels[channel.name] = true;\r\n decoder.type = channel.pixelType;\r\n // Note: 'Y' is deprecated in OpenGL 3.0+; prefer 'R' for single-channel EXRs.\r\n break;\r\n default:\r\n // Skip unsupported channels\r\n break;\r\n }\r\n }\r\n\r\n // RGB images will be converted to RGBA format, preventing software emulation in select devices.\r\n let fillAlpha = false;\r\n\r\n if (channels.R && channels.G && channels.B && channels.A) {\r\n decoder.outputChannels = 4;\r\n decoder.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };\r\n } else if (channels.R && channels.G && channels.B) {\r\n fillAlpha = true;\r\n decoder.outputChannels = 4;\r\n decoder.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };\r\n } else if (channels.R && channels.G) {\r\n decoder.outputChannels = 2;\r\n decoder.decodeChannels = { R: 0, G: 1 };\r\n } else if (channels.R) {\r\n decoder.outputChannels = 1;\r\n decoder.decodeChannels = { R: 0 };\r\n } else if (channels.Y) {\r\n decoder.outputChannels = 1;\r\n decoder.decodeChannels = { Y: 0 };\r\n // Note: Supporting 'Y' channel for legacy compatibility; prefer 'R' in new EXRs.\r\n } else {\r\n throw new Error(\"EXRLoader.parse: file contains unsupported data channels.\");\r\n }\r\n\r\n if (decoder.type === 1) {\r\n // half\r\n switch (outputType) {\r\n case EXROutputType.Float:\r\n decoder.getter = ParseFloat16;\r\n decoder.inputSize = INT16_SIZE;\r\n break;\r\n\r\n case EXROutputType.HalfFloat:\r\n decoder.getter = ParseUint16;\r\n decoder.inputSize = INT16_SIZE;\r\n break;\r\n }\r\n } else if (decoder.type === 2) {\r\n // float\r\n switch (outputType) {\r\n case EXROutputType.Float:\r\n decoder.getter = ParseFloat32;\r\n decoder.inputSize = FLOAT32_SIZE;\r\n break;\r\n\r\n case EXROutputType.HalfFloat:\r\n decoder.getter = DecodeFloat32;\r\n decoder.inputSize = FLOAT32_SIZE;\r\n }\r\n } else {\r\n throw new Error(\"Unsupported pixelType \" + decoder.type + \" for \" + header.compression);\r\n }\r\n\r\n decoder.blockCount = decoder.height / decoder.scanlineBlockSize;\r\n\r\n for (let i = 0; i < decoder.blockCount; i++) {\r\n ParseInt64(dataView, offset); // scanlineOffset\r\n }\r\n\r\n // we should be passed the scanline offset table, ready to start reading pixel data.\r\n const size = decoder.width * decoder.height * decoder.outputChannels;\r\n\r\n switch (outputType) {\r\n case EXROutputType.Float:\r\n decoder.byteArray = new Float32Array(size);\r\n decoder.textureType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Fill initially with 1s for the alpha value if the texture is not RGBA, RGB values will be overwritten\r\n if (fillAlpha) {\r\n decoder.byteArray.fill(1, 0, size);\r\n }\r\n\r\n break;\r\n\r\n case EXROutputType.HalfFloat:\r\n decoder.byteArray = new Uint16Array(size);\r\n decoder.textureType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n if (fillAlpha) {\r\n decoder.byteArray.fill(0x3c00, 0, size); // Uint16Array holds half float data, 0x3C00 is 1\r\n }\r\n\r\n break;\r\n\r\n default:\r\n throw new Error(\"Unsupported type: \" + outputType);\r\n }\r\n\r\n let byteOffset = 0;\r\n for (const channel of header.channels) {\r\n if (decoder.decodeChannels[channel.name] !== undefined) {\r\n decoder.channelLineOffsets[channel.name] = byteOffset * decoder.width;\r\n }\r\n\r\n byteOffset += channel.pixelType * 2;\r\n }\r\n\r\n decoder.bytesPerLine = decoder.width * byteOffset;\r\n decoder.outLineWidth = decoder.width * decoder.outputChannels;\r\n\r\n if (header.lineOrder === \"INCREASING_Y\") {\r\n decoder.scanOrder = (y) => y;\r\n } else {\r\n decoder.scanOrder = (y) => decoder.height - 1 - y;\r\n }\r\n\r\n if (decoder.outputChannels == 4) {\r\n decoder.format = Constants.TEXTUREFORMAT_RGBA;\r\n decoder.linearSpace = true;\r\n } else {\r\n decoder.format = Constants.TEXTUREFORMAT_R;\r\n decoder.linearSpace = false;\r\n }\r\n\r\n return decoder;\r\n}\r\n\r\n/**\r\n * Scan the data of the exr file\r\n * @param decoder decoder to use\r\n * @param header header of the exr file\r\n * @param dataView dataview of the exr file\r\n * @param offset current offset\r\n */\r\nexport function ScanData(decoder: IEXRDecoder, header: IEXRHeader, dataView: DataView, offset: DataCursor): void {\r\n const tmpOffset = { value: 0 };\r\n\r\n for (let scanlineBlockIdx = 0; scanlineBlockIdx < decoder.height / decoder.scanlineBlockSize; scanlineBlockIdx++) {\r\n const line = ParseInt32(dataView, offset) - header.dataWindow.yMin; // line_no\r\n decoder.size = ParseUint32(dataView, offset); // data_len\r\n decoder.lines = line + decoder.scanlineBlockSize > decoder.height ? decoder.height - line : decoder.scanlineBlockSize;\r\n\r\n const isCompressed = decoder.size < decoder.lines * decoder.bytesPerLine;\r\n const viewer = isCompressed && decoder.uncompress ? decoder.uncompress(decoder) : UncompressRAW(decoder);\r\n\r\n offset.value += decoder.size;\r\n\r\n for (let lineY = 0; lineY < decoder.scanlineBlockSize; lineY++) {\r\n const scanY = scanlineBlockIdx * decoder.scanlineBlockSize;\r\n const trueY = lineY + decoder.scanOrder(scanY);\r\n if (trueY >= decoder.height) {\r\n continue;\r\n }\r\n\r\n const lineOffset = lineY * decoder.bytesPerLine;\r\n const outLineOffset = (decoder.height - 1 - trueY) * decoder.outLineWidth;\r\n\r\n for (let channelID = 0; channelID < decoder.channels; channelID++) {\r\n const name = header.channels[channelID].name;\r\n const lOff = decoder.channelLineOffsets[name];\r\n const cOff = decoder.decodeChannels[name];\r\n\r\n if (cOff === undefined) {\r\n continue;\r\n }\r\n\r\n tmpOffset.value = lineOffset + lOff;\r\n\r\n for (let x = 0; x < decoder.width; x++) {\r\n const outIndex = outLineOffset + x * decoder.outputChannels + cOff;\r\n if (decoder.byteArray) {\r\n decoder.byteArray[outIndex] = decoder.getter(viewer, tmpOffset);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"exrLoader.decoder.js","sourceRoot":"","sources":["../../../../../../../dev/core/src/Materials/Textures/Loaders/EXR/exrLoader.decoder.ts"],"names":[],"mappings":"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","sourcesContent":["import { type DataCursor, CompressionCodes, DecodeFloat32, ParseFloat16, ParseFloat32, ParseInt32, ParseInt64, ParseUint16, ParseUint32 } from \"./exrLoader.core\";\r\nimport { UncompressPIZ, UncompressPXR, UncompressRAW, UncompressRLE, UncompressZIP } from \"./exrLoader.compression\";\r\nimport { FLOAT32_SIZE, INT16_SIZE, type IEXRDecoder, type IEXRHeader } from \"./exrLoader.interfaces\";\r\nimport { Constants } from \"core/Engines/constants\";\r\nimport { Tools } from \"core/Misc/tools.pure\";\r\nimport { ExrLoaderGlobalConfiguration, EXROutputType } from \"./exrLoader.configuration\";\r\n\r\n/**\r\n * Inspired by https://github.com/sciecode/three.js/blob/dev/examples/jsm/loaders/EXRLoader.js\r\n * Referred to the original Industrial Light & Magic OpenEXR implementation and the TinyEXR / Syoyo Fujita\r\n * implementation.\r\n */\r\n\r\n// /*\r\n// Copyright (c) 2014 - 2017, Syoyo Fujita\r\n// All rights reserved.\r\n\r\n// Redistribution and use in source and binary forms, with or without\r\n// modification, are permitted provided that the following conditions are met:\r\n// * Redistributions of source code must retain the above copyright\r\n// notice, this list of conditions and the following disclaimer.\r\n// * Redistributions in binary form must reproduce the above copyright\r\n// notice, this list of conditions and the following disclaimer in the\r\n// documentation and/or other materials provided with the distribution.\r\n// * Neither the name of the Syoyo Fujita nor the\r\n// names of its contributors may be used to endorse or promote products\r\n// derived from this software without specific prior written permission.\r\n\r\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\r\n// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r\n// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\n// DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\r\n// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r\n// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\r\n// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r\n// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n// */\r\n\r\n// // TinyEXR contains some OpenEXR code, which is licensed under ------------\r\n\r\n// ///////////////////////////////////////////////////////////////////////////\r\n// //\r\n// // Copyright (c) 2002, Industrial Light & Magic, a division of Lucas\r\n// // Digital Ltd. LLC\r\n// //\r\n// // All rights reserved.\r\n// //\r\n// // Redistribution and use in source and binary forms, with or without\r\n// // modification, are permitted provided that the following conditions are\r\n// // met:\r\n// // * Redistributions of source code must retain the above copyright\r\n// // notice, this list of conditions and the following disclaimer.\r\n// // * Redistributions in binary form must reproduce the above\r\n// // copyright notice, this list of conditions and the following disclaimer\r\n// // in the documentation and/or other materials provided with the\r\n// // distribution.\r\n// // * Neither the name of Industrial Light & Magic nor the names of\r\n// // its contributors may be used to endorse or promote products derived\r\n// // from this software without specific prior written permission.\r\n// //\r\n// // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r\n// // \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r\n// // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r\n// // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r\n// // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n// // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r\n// // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n// // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n// // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n// // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r\n// // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n// //\r\n// ///////////////////////////////////////////////////////////////////////////\r\n\r\n// // End of OpenEXR license -------------------------------------------------\r\n\r\n/**\r\n * Create a decoder for the exr file\r\n * @param header header of the exr file\r\n * @param dataView dataview of the exr file\r\n * @param offset current offset\r\n * @param outputType expected output type (float or half float)\r\n * @returns a promise that resolves with the decoder\r\n */\r\nexport async function CreateDecoderAsync(header: IEXRHeader, dataView: DataView, offset: DataCursor, outputType: EXROutputType): Promise<IEXRDecoder> {\r\n const decoder: IEXRDecoder = {\r\n size: 0,\r\n viewer: dataView,\r\n array: new Uint8Array(dataView.buffer),\r\n offset: offset,\r\n width: header.dataWindow.xMax - header.dataWindow.xMin + 1,\r\n height: header.dataWindow.yMax - header.dataWindow.yMin + 1,\r\n channels: header.channels.length,\r\n channelLineOffsets: {},\r\n scanOrder: () => 0,\r\n bytesPerLine: 0,\r\n outLineWidth: 0,\r\n lines: 0,\r\n scanlineBlockSize: 0,\r\n inputSize: null,\r\n type: 0,\r\n uncompress: null,\r\n getter: () => 0,\r\n format: Constants.TEXTUREFORMAT_RGBA,\r\n outputChannels: 0,\r\n decodeChannels: {},\r\n blockCount: null,\r\n byteArray: null,\r\n linearSpace: false,\r\n textureType: 0,\r\n };\r\n\r\n switch (header.compression) {\r\n case CompressionCodes.NO_COMPRESSION:\r\n decoder.lines = 1;\r\n decoder.uncompress = UncompressRAW;\r\n break;\r\n\r\n case CompressionCodes.RLE_COMPRESSION:\r\n decoder.lines = 1;\r\n decoder.uncompress = UncompressRLE;\r\n break;\r\n\r\n case CompressionCodes.ZIPS_COMPRESSION:\r\n decoder.lines = 1;\r\n decoder.uncompress = UncompressZIP;\r\n await Tools.LoadScriptAsync(ExrLoaderGlobalConfiguration.FFLATEUrl);\r\n break;\r\n\r\n case CompressionCodes.ZIP_COMPRESSION:\r\n decoder.lines = 16;\r\n decoder.uncompress = UncompressZIP;\r\n await Tools.LoadScriptAsync(ExrLoaderGlobalConfiguration.FFLATEUrl);\r\n break;\r\n\r\n case CompressionCodes.PIZ_COMPRESSION:\r\n decoder.lines = 32;\r\n decoder.uncompress = UncompressPIZ;\r\n break;\r\n\r\n case CompressionCodes.PXR24_COMPRESSION:\r\n decoder.lines = 16;\r\n decoder.uncompress = UncompressPXR;\r\n await Tools.LoadScriptAsync(ExrLoaderGlobalConfiguration.FFLATEUrl);\r\n break;\r\n\r\n default:\r\n throw new Error(CompressionCodes[header.compression] + \" is unsupported\");\r\n }\r\n\r\n decoder.scanlineBlockSize = decoder.lines;\r\n\r\n const channels: {\r\n [key: string]: boolean;\r\n } = {};\r\n for (const channel of header.channels) {\r\n switch (channel.name) {\r\n case \"R\":\r\n case \"G\":\r\n case \"B\":\r\n case \"A\":\r\n channels[channel.name] = true;\r\n decoder.type = channel.pixelType;\r\n break;\r\n case \"Y\":\r\n channels[channel.name] = true;\r\n decoder.type = channel.pixelType;\r\n // Note: 'Y' is deprecated in OpenGL 3.0+; prefer 'R' for single-channel EXRs.\r\n break;\r\n default:\r\n // Skip unsupported channels\r\n break;\r\n }\r\n }\r\n\r\n // RGB images will be converted to RGBA format, preventing software emulation in select devices.\r\n let fillAlpha = false;\r\n\r\n if (channels.R && channels.G && channels.B && channels.A) {\r\n decoder.outputChannels = 4;\r\n decoder.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };\r\n } else if (channels.R && channels.G && channels.B) {\r\n fillAlpha = true;\r\n decoder.outputChannels = 4;\r\n decoder.decodeChannels = { R: 0, G: 1, B: 2, A: 3 };\r\n } else if (channels.R && channels.G) {\r\n decoder.outputChannels = 2;\r\n decoder.decodeChannels = { R: 0, G: 1 };\r\n } else if (channels.R) {\r\n decoder.outputChannels = 1;\r\n decoder.decodeChannels = { R: 0 };\r\n } else if (channels.Y) {\r\n decoder.outputChannels = 1;\r\n decoder.decodeChannels = { Y: 0 };\r\n // Note: Supporting 'Y' channel for legacy compatibility; prefer 'R' in new EXRs.\r\n } else {\r\n throw new Error(\"EXRLoader.parse: file contains unsupported data channels.\");\r\n }\r\n\r\n if (decoder.type === 1) {\r\n // half\r\n switch (outputType) {\r\n case EXROutputType.Float:\r\n decoder.getter = ParseFloat16;\r\n decoder.inputSize = INT16_SIZE;\r\n break;\r\n\r\n case EXROutputType.HalfFloat:\r\n decoder.getter = ParseUint16;\r\n decoder.inputSize = INT16_SIZE;\r\n break;\r\n }\r\n } else if (decoder.type === 2) {\r\n // float\r\n switch (outputType) {\r\n case EXROutputType.Float:\r\n decoder.getter = ParseFloat32;\r\n decoder.inputSize = FLOAT32_SIZE;\r\n break;\r\n\r\n case EXROutputType.HalfFloat:\r\n decoder.getter = DecodeFloat32;\r\n decoder.inputSize = FLOAT32_SIZE;\r\n }\r\n } else {\r\n throw new Error(\"Unsupported pixelType \" + decoder.type + \" for \" + header.compression);\r\n }\r\n\r\n decoder.blockCount = decoder.height / decoder.scanlineBlockSize;\r\n\r\n for (let i = 0; i < decoder.blockCount; i++) {\r\n ParseInt64(dataView, offset); // scanlineOffset\r\n }\r\n\r\n // we should be passed the scanline offset table, ready to start reading pixel data.\r\n const size = decoder.width * decoder.height * decoder.outputChannels;\r\n\r\n switch (outputType) {\r\n case EXROutputType.Float:\r\n decoder.byteArray = new Float32Array(size);\r\n decoder.textureType = Constants.TEXTURETYPE_FLOAT;\r\n\r\n // Fill initially with 1s for the alpha value if the texture is not RGBA, RGB values will be overwritten\r\n if (fillAlpha) {\r\n decoder.byteArray.fill(1, 0, size);\r\n }\r\n\r\n break;\r\n\r\n case EXROutputType.HalfFloat:\r\n decoder.byteArray = new Uint16Array(size);\r\n decoder.textureType = Constants.TEXTURETYPE_HALF_FLOAT;\r\n\r\n if (fillAlpha) {\r\n decoder.byteArray.fill(0x3c00, 0, size); // Uint16Array holds half float data, 0x3C00 is 1\r\n }\r\n\r\n break;\r\n\r\n default:\r\n throw new Error(\"Unsupported type: \" + outputType);\r\n }\r\n\r\n let byteOffset = 0;\r\n for (const channel of header.channels) {\r\n if (decoder.decodeChannels[channel.name] !== undefined) {\r\n decoder.channelLineOffsets[channel.name] = byteOffset * decoder.width;\r\n }\r\n\r\n byteOffset += channel.pixelType * 2;\r\n }\r\n\r\n decoder.bytesPerLine = decoder.width * byteOffset;\r\n decoder.outLineWidth = decoder.width * decoder.outputChannels;\r\n\r\n if (header.lineOrder === \"INCREASING_Y\") {\r\n decoder.scanOrder = (y) => y;\r\n } else {\r\n decoder.scanOrder = (y) => decoder.height - 1 - y;\r\n }\r\n\r\n if (decoder.outputChannels == 4) {\r\n decoder.format = Constants.TEXTUREFORMAT_RGBA;\r\n decoder.linearSpace = true;\r\n } else {\r\n decoder.format = Constants.TEXTUREFORMAT_R;\r\n decoder.linearSpace = false;\r\n }\r\n\r\n return decoder;\r\n}\r\n\r\n/**\r\n * Scan the data of the exr file\r\n * @param decoder decoder to use\r\n * @param header header of the exr file\r\n * @param dataView dataview of the exr file\r\n * @param offset current offset\r\n */\r\nexport function ScanData(decoder: IEXRDecoder, header: IEXRHeader, dataView: DataView, offset: DataCursor): void {\r\n const tmpOffset = { value: 0 };\r\n\r\n for (let scanlineBlockIdx = 0; scanlineBlockIdx < decoder.height / decoder.scanlineBlockSize; scanlineBlockIdx++) {\r\n const line = ParseInt32(dataView, offset) - header.dataWindow.yMin; // line_no\r\n decoder.size = ParseUint32(dataView, offset); // data_len\r\n decoder.lines = line + decoder.scanlineBlockSize > decoder.height ? decoder.height - line : decoder.scanlineBlockSize;\r\n\r\n const isCompressed = decoder.size < decoder.lines * decoder.bytesPerLine;\r\n const viewer = isCompressed && decoder.uncompress ? decoder.uncompress(decoder) : UncompressRAW(decoder);\r\n\r\n offset.value += decoder.size;\r\n\r\n for (let lineY = 0; lineY < decoder.scanlineBlockSize; lineY++) {\r\n const scanY = scanlineBlockIdx * decoder.scanlineBlockSize;\r\n const trueY = lineY + decoder.scanOrder(scanY);\r\n if (trueY >= decoder.height) {\r\n continue;\r\n }\r\n\r\n const lineOffset = lineY * decoder.bytesPerLine;\r\n const outLineOffset = (decoder.height - 1 - trueY) * decoder.outLineWidth;\r\n\r\n for (let channelID = 0; channelID < decoder.channels; channelID++) {\r\n const name = header.channels[channelID].name;\r\n const lOff = decoder.channelLineOffsets[name];\r\n const cOff = decoder.decodeChannels[name];\r\n\r\n if (cOff === undefined) {\r\n continue;\r\n }\r\n\r\n tmpOffset.value = lineOffset + lOff;\r\n\r\n for (let x = 0; x < decoder.width; x++) {\r\n const outIndex = outLineOffset + x * decoder.outputChannels + cOff;\r\n if (decoder.byteArray) {\r\n decoder.byteArray[outIndex] = decoder.getter(viewer, tmpOffset);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
- import { LoadTextureFromTranscodeResult, TranscodeAsync } from "../../../Misc/basis.js";
2
- import { Tools } from "../../../Misc/tools.js";
1
+ import { LoadTextureFromTranscodeResult, TranscodeAsync } from "../../../Misc/basis.pure.js";
2
+ import { Tools } from "../../../Misc/tools.pure.js";
3
3
  /**
4
4
  * Loader for .basis file format
5
5
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"basisTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/basisTextureLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../../types\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { LoadTextureFromTranscodeResult, TranscodeAsync } from \"../../../Misc/basis\";\r\nimport { Tools } from \"../../../Misc/tools\";\r\n\r\n/**\r\n * Loader for .basis file format\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _BasisTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = false;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n * @param onError defines the callback to trigger in case of error\r\n */\r\n public loadCubeData(\r\n data: ArrayBufferView | ArrayBufferView[],\r\n texture: InternalTexture,\r\n createPolynomials: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>\r\n ): void {\r\n if (Array.isArray(data)) {\r\n return;\r\n }\r\n const caps = texture.getEngine().getCaps();\r\n const transcodeConfig = {\r\n supportedCompressionFormats: {\r\n etc1: caps.etc1 ? true : false,\r\n s3tc: caps.s3tc ? true : false,\r\n pvrtc: caps.pvrtc ? true : false,\r\n etc2: caps.etc2 ? true : false,\r\n astc: caps.astc ? true : false,\r\n bc7: caps.bptc ? true : false,\r\n },\r\n };\r\n TranscodeAsync(data, transcodeConfig)\r\n // eslint-disable-next-line github/no-then\r\n .then((result) => {\r\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\r\n LoadTextureFromTranscodeResult(texture, result);\r\n texture.getEngine()._setCubeMapTextureParams(texture, hasMipmap);\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n })\r\n // eslint-disable-next-line github/no-then\r\n .catch((err) => {\r\n const errorMessage = \"Failed to transcode Basis file, transcoding may not be supported on this device\";\r\n Tools.Warn(errorMessage);\r\n texture.isReady = true;\r\n if (onError) {\r\n onError(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param callback defines the method to call once ready to upload\r\n */\r\n public loadData(\r\n data: ArrayBufferView,\r\n texture: InternalTexture,\r\n callback: (width: number, height: number, loadMipmap: boolean, isCompressed: boolean, done: () => void, failedLoading?: boolean) => void\r\n ): void {\r\n const caps = texture.getEngine().getCaps();\r\n const transcodeConfig = {\r\n supportedCompressionFormats: {\r\n etc1: caps.etc1 ? true : false,\r\n s3tc: caps.s3tc ? true : false,\r\n pvrtc: caps.pvrtc ? true : false,\r\n etc2: caps.etc2 ? true : false,\r\n astc: caps.astc ? true : false,\r\n bc7: caps.bptc ? true : false,\r\n },\r\n };\r\n TranscodeAsync(data, transcodeConfig)\r\n // eslint-disable-next-line github/no-then\r\n .then((result) => {\r\n const rootImage = result.fileInfo.images[0].levels[0];\r\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\r\n callback(rootImage.width, rootImage.height, hasMipmap, result.format !== -1, () => {\r\n LoadTextureFromTranscodeResult(texture, result);\r\n });\r\n })\r\n // eslint-disable-next-line github/no-then\r\n .catch((err) => {\r\n Tools.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\");\r\n Tools.Warn(`Failed to transcode Basis file: ${err}`);\r\n callback(0, 0, false, false, () => {}, true);\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"basisTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/basisTextureLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../../types\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { LoadTextureFromTranscodeResult, TranscodeAsync } from \"../../../Misc/basis.pure\";\r\nimport { Tools } from \"../../../Misc/tools.pure\";\r\n\r\n/**\r\n * Loader for .basis file format\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _BasisTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = false;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n * @param onError defines the callback to trigger in case of error\r\n */\r\n public loadCubeData(\r\n data: ArrayBufferView | ArrayBufferView[],\r\n texture: InternalTexture,\r\n createPolynomials: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>\r\n ): void {\r\n if (Array.isArray(data)) {\r\n return;\r\n }\r\n const caps = texture.getEngine().getCaps();\r\n const transcodeConfig = {\r\n supportedCompressionFormats: {\r\n etc1: caps.etc1 ? true : false,\r\n s3tc: caps.s3tc ? true : false,\r\n pvrtc: caps.pvrtc ? true : false,\r\n etc2: caps.etc2 ? true : false,\r\n astc: caps.astc ? true : false,\r\n bc7: caps.bptc ? true : false,\r\n },\r\n };\r\n TranscodeAsync(data, transcodeConfig)\r\n // eslint-disable-next-line github/no-then\r\n .then((result) => {\r\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\r\n LoadTextureFromTranscodeResult(texture, result);\r\n texture.getEngine()._setCubeMapTextureParams(texture, hasMipmap);\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n })\r\n // eslint-disable-next-line github/no-then\r\n .catch((err) => {\r\n const errorMessage = \"Failed to transcode Basis file, transcoding may not be supported on this device\";\r\n Tools.Warn(errorMessage);\r\n texture.isReady = true;\r\n if (onError) {\r\n onError(err);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param callback defines the method to call once ready to upload\r\n */\r\n public loadData(\r\n data: ArrayBufferView,\r\n texture: InternalTexture,\r\n callback: (width: number, height: number, loadMipmap: boolean, isCompressed: boolean, done: () => void, failedLoading?: boolean) => void\r\n ): void {\r\n const caps = texture.getEngine().getCaps();\r\n const transcodeConfig = {\r\n supportedCompressionFormats: {\r\n etc1: caps.etc1 ? true : false,\r\n s3tc: caps.s3tc ? true : false,\r\n pvrtc: caps.pvrtc ? true : false,\r\n etc2: caps.etc2 ? true : false,\r\n astc: caps.astc ? true : false,\r\n bc7: caps.bptc ? true : false,\r\n },\r\n };\r\n TranscodeAsync(data, transcodeConfig)\r\n // eslint-disable-next-line github/no-then\r\n .then((result) => {\r\n const rootImage = result.fileInfo.images[0].levels[0];\r\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\r\n callback(rootImage.width, rootImage.height, hasMipmap, result.format !== -1, () => {\r\n LoadTextureFromTranscodeResult(texture, result);\r\n });\r\n })\r\n // eslint-disable-next-line github/no-then\r\n .catch((err) => {\r\n Tools.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\");\r\n Tools.Warn(`Failed to transcode Basis file: ${err}`);\r\n callback(0, 0, false, false, () => {}, true);\r\n });\r\n }\r\n}\r\n"]}
@@ -1,5 +1,5 @@
1
1
  import { SphericalPolynomial } from "../../../Maths/sphericalPolynomial.js";
2
- import { DDSTools } from "../../../Misc/dds.js";
2
+ import { DDSTools } from "../../../Misc/dds.pure.js";
3
3
  /**
4
4
  * Implementation of the DDS Texture Loader.
5
5
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"ddsTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/ddsTextureLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../../types\";\r\nimport { SphericalPolynomial } from \"../../../Maths/sphericalPolynomial\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { type DDSInfo, DDSTools } from \"../../../Misc/dds\";\r\n\r\nimport { type Engine } from \"core/Engines/engine\";\r\n\r\n/**\r\n * Implementation of the DDS Texture Loader.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _DDSTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = true;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param imgs contains the cube maps\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n */\r\n public loadCubeData(imgs: ArrayBufferView | ArrayBufferView[], texture: InternalTexture, createPolynomials: boolean, onLoad: Nullable<(data?: any) => void>): void {\r\n const engine = texture.getEngine() as Engine;\r\n let info: DDSInfo | undefined;\r\n let loadMipmap: boolean = false;\r\n let maxLevel: number = 1000;\r\n if (Array.isArray(imgs)) {\r\n for (let index = 0; index < imgs.length; index++) {\r\n const data = imgs[index];\r\n info = DDSTools.GetDDSInfo(data);\r\n\r\n texture.width = info.width;\r\n texture.height = info.height;\r\n\r\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\r\n\r\n engine._unpackFlipY(info.isCompressed);\r\n\r\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6, -1, index);\r\n\r\n if (!info.isFourCC && info.mipmapCount === 1) {\r\n engine.generateMipMapsForCubemap(texture);\r\n } else {\r\n maxLevel = info.mipmapCount - 1;\r\n }\r\n }\r\n } else {\r\n const data = imgs;\r\n info = DDSTools.GetDDSInfo(data);\r\n\r\n texture.width = info.width;\r\n texture.height = info.height;\r\n\r\n if (createPolynomials) {\r\n info.sphericalPolynomial = new SphericalPolynomial();\r\n }\r\n\r\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\r\n engine._unpackFlipY(info.isCompressed);\r\n\r\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6);\r\n\r\n if (!info.isFourCC && info.mipmapCount === 1) {\r\n // Do not unbind as we still need to set the parameters.\r\n engine.generateMipMapsForCubemap(texture, false);\r\n } else {\r\n maxLevel = info.mipmapCount - 1;\r\n }\r\n }\r\n engine._setCubeMapTextureParams(texture, loadMipmap, maxLevel);\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n\r\n if (onLoad) {\r\n onLoad({ isDDS: true, width: texture.width, info, data: imgs, texture });\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param callback defines the method to call once ready to upload\r\n */\r\n public loadData(\r\n data: ArrayBufferView,\r\n texture: InternalTexture,\r\n callback: (width: number, height: number, loadMipmap: boolean, isCompressed: boolean, done: () => void) => void\r\n ): void {\r\n const info = DDSTools.GetDDSInfo(data);\r\n\r\n const loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps && Math.max(info.width, info.height) >> (info.mipmapCount - 1) === 1;\r\n callback(info.width, info.height, loadMipmap, info.isFourCC, () => {\r\n DDSTools.UploadDDSLevels(texture.getEngine(), texture, data, info, loadMipmap, 1);\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ddsTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/ddsTextureLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Nullable } from \"../../../types\";\r\nimport { SphericalPolynomial } from \"../../../Maths/sphericalPolynomial\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { type DDSInfo, DDSTools } from \"../../../Misc/dds.pure\";\r\n\r\nimport { type Engine } from \"core/Engines/engine\";\r\n\r\n/**\r\n * Implementation of the DDS Texture Loader.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _DDSTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = true;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param imgs contains the cube maps\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n */\r\n public loadCubeData(imgs: ArrayBufferView | ArrayBufferView[], texture: InternalTexture, createPolynomials: boolean, onLoad: Nullable<(data?: any) => void>): void {\r\n const engine = texture.getEngine() as Engine;\r\n let info: DDSInfo | undefined;\r\n let loadMipmap: boolean = false;\r\n let maxLevel: number = 1000;\r\n if (Array.isArray(imgs)) {\r\n for (let index = 0; index < imgs.length; index++) {\r\n const data = imgs[index];\r\n info = DDSTools.GetDDSInfo(data);\r\n\r\n texture.width = info.width;\r\n texture.height = info.height;\r\n\r\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\r\n\r\n engine._unpackFlipY(info.isCompressed);\r\n\r\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6, -1, index);\r\n\r\n if (!info.isFourCC && info.mipmapCount === 1) {\r\n engine.generateMipMapsForCubemap(texture);\r\n } else {\r\n maxLevel = info.mipmapCount - 1;\r\n }\r\n }\r\n } else {\r\n const data = imgs;\r\n info = DDSTools.GetDDSInfo(data);\r\n\r\n texture.width = info.width;\r\n texture.height = info.height;\r\n\r\n if (createPolynomials) {\r\n info.sphericalPolynomial = new SphericalPolynomial();\r\n }\r\n\r\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\r\n engine._unpackFlipY(info.isCompressed);\r\n\r\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6);\r\n\r\n if (!info.isFourCC && info.mipmapCount === 1) {\r\n // Do not unbind as we still need to set the parameters.\r\n engine.generateMipMapsForCubemap(texture, false);\r\n } else {\r\n maxLevel = info.mipmapCount - 1;\r\n }\r\n }\r\n engine._setCubeMapTextureParams(texture, loadMipmap, maxLevel);\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n\r\n if (onLoad) {\r\n onLoad({ isDDS: true, width: texture.width, info, data: imgs, texture });\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param callback defines the method to call once ready to upload\r\n */\r\n public loadData(\r\n data: ArrayBufferView,\r\n texture: InternalTexture,\r\n callback: (width: number, height: number, loadMipmap: boolean, isCompressed: boolean, done: () => void) => void\r\n ): void {\r\n const info = DDSTools.GetDDSInfo(data);\r\n\r\n const loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps && Math.max(info.width, info.height) >> (info.mipmapCount - 1) === 1;\r\n callback(info.width, info.height, loadMipmap, info.isFourCC, () => {\r\n DDSTools.UploadDDSLevels(texture.getEngine(), texture, data, info, loadMipmap, 1);\r\n });\r\n }\r\n}\r\n"]}
@@ -1,4 +1,5 @@
1
- import { GetEnvInfo, UploadEnvLevelsAsync, UploadEnvSpherical } from "../../../Misc/environmentTextureTools.js";
1
+ import { GetEnvInfo, UploadEnvLevelsAsync, UploadEnvSpherical } from "../../../Misc/environmentTextureTools.pure.js";
2
+ import { RegisterBaseTexturePolynomial } from "../baseTexture.polynomial.pure.js";
2
3
  /**
3
4
  * Implementation of the ENV Texture Loader.
4
5
  * @internal
@@ -28,6 +29,7 @@ export class _ENVTextureLoader {
28
29
  texture.width = info.width;
29
30
  texture.height = info.width;
30
31
  try {
32
+ RegisterBaseTexturePolynomial();
31
33
  UploadEnvSpherical(texture, info);
32
34
  // eslint-disable-next-line github/no-then
33
35
  UploadEnvLevelsAsync(texture, data, info).then(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"envTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/envTextureLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAK7G;;;GAGG;AACH,gEAAgE;AAChE,MAAM,OAAO,iBAAiB;IAA9B;QACI;;WAEG;QACa,oBAAe,GAAG,KAAK,CAAC;IAyD5C,CAAC;IAvDG;;;;;;;OAOG;IACI,YAAY,CACf,IAAyC,EACzC,OAAwB,EACxB,iBAA0B,EAC1B,MAAsC,EACtC,OAA8D;QAE9D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YAE5B,IAAI,CAAC;gBACD,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,0CAA0C;gBAC1C,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAC1C,GAAG,EAAE;oBACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBACvB,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACpD,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBACnC,IAAI,MAAM,EAAE,CAAC;wBACT,MAAM,EAAE,CAAC;oBACb,CAAC;gBACL,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;oBACP,OAAO,EAAE,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;gBAC3D,CAAC,CACJ,CAAC;YACN,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,4CAA4C;QAC5C,MAAM,2BAA2B,CAAC;IACtC,CAAC;CACJ","sourcesContent":["import { GetEnvInfo, UploadEnvLevelsAsync, UploadEnvSpherical } from \"../../../Misc/environmentTextureTools\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\n\r\n/**\r\n * Implementation of the ENV Texture Loader.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _ENVTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = false;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n * @param onError defines the callback to trigger in case of error\r\n */\r\n public loadCubeData(\r\n data: ArrayBufferView | ArrayBufferView[],\r\n texture: InternalTexture,\r\n createPolynomials: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>\r\n ): void {\r\n if (Array.isArray(data)) {\r\n return;\r\n }\r\n\r\n const info = GetEnvInfo(data);\r\n if (info) {\r\n texture.width = info.width;\r\n texture.height = info.width;\r\n\r\n try {\r\n UploadEnvSpherical(texture, info);\r\n // eslint-disable-next-line github/no-then\r\n UploadEnvLevelsAsync(texture, data, info).then(\r\n () => {\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n },\r\n (reason) => {\r\n onError?.(\"Can not upload environment levels\", reason);\r\n }\r\n );\r\n } catch (e) {\r\n onError?.(\"Can not upload environment file\", e);\r\n }\r\n } else if (onError) {\r\n onError(\"Can not parse the environment file\", null);\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n */\r\n public loadData(): void {\r\n // eslint-disable-next-line no-throw-literal\r\n throw \".env not supported in 2d.\";\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"envTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/envTextureLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAIlH,OAAO,EAAE,6BAA6B,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;GAGG;AACH,gEAAgE;AAChE,MAAM,OAAO,iBAAiB;IAA9B;QACI;;WAEG;QACa,oBAAe,GAAG,KAAK,CAAC;IA0D5C,CAAC;IAxDG;;;;;;;OAOG;IACI,YAAY,CACf,IAAyC,EACzC,OAAwB,EACxB,iBAA0B,EAC1B,MAAsC,EACtC,OAA8D;QAE9D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QAED,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,EAAE,CAAC;YACP,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC3B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC;YAE5B,IAAI,CAAC;gBACD,6BAA6B,EAAE,CAAC;gBAChC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAClC,0CAA0C;gBAC1C,oBAAoB,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAC1C,GAAG,EAAE;oBACD,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;oBACvB,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;oBACpD,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBACnC,IAAI,MAAM,EAAE,CAAC;wBACT,MAAM,EAAE,CAAC;oBACb,CAAC;gBACL,CAAC,EACD,CAAC,MAAM,EAAE,EAAE;oBACP,OAAO,EAAE,CAAC,mCAAmC,EAAE,MAAM,CAAC,CAAC;gBAC3D,CAAC,CACJ,CAAC;YACN,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,EAAE,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;YACpD,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACjB,OAAO,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;QACxD,CAAC;IACL,CAAC;IAED;;OAEG;IACI,QAAQ;QACX,4CAA4C;QAC5C,MAAM,2BAA2B,CAAC;IACtC,CAAC;CACJ","sourcesContent":["import { GetEnvInfo, UploadEnvLevelsAsync, UploadEnvSpherical } from \"../../../Misc/environmentTextureTools.pure\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { RegisterBaseTexturePolynomial } from \"../baseTexture.polynomial.pure\";\r\n\r\n/**\r\n * Implementation of the ENV Texture Loader.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _ENVTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = false;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n * @param onError defines the callback to trigger in case of error\r\n */\r\n public loadCubeData(\r\n data: ArrayBufferView | ArrayBufferView[],\r\n texture: InternalTexture,\r\n createPolynomials: boolean,\r\n onLoad: Nullable<(data?: any) => void>,\r\n onError: Nullable<(message?: string, exception?: any) => void>\r\n ): void {\r\n if (Array.isArray(data)) {\r\n return;\r\n }\r\n\r\n const info = GetEnvInfo(data);\r\n if (info) {\r\n texture.width = info.width;\r\n texture.height = info.width;\r\n\r\n try {\r\n RegisterBaseTexturePolynomial();\r\n UploadEnvSpherical(texture, info);\r\n // eslint-disable-next-line github/no-then\r\n UploadEnvLevelsAsync(texture, data, info).then(\r\n () => {\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n },\r\n (reason) => {\r\n onError?.(\"Can not upload environment levels\", reason);\r\n }\r\n );\r\n } catch (e) {\r\n onError?.(\"Can not upload environment file\", e);\r\n }\r\n } else if (onError) {\r\n onError(\"Can not parse the environment file\", null);\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n */\r\n public loadData(): void {\r\n // eslint-disable-next-line no-throw-literal\r\n throw \".env not supported in 2d.\";\r\n }\r\n}\r\n"]}
@@ -76,6 +76,15 @@ export class _KTXTextureLoader {
76
76
  texture._invertVScale = !texture.invertY;
77
77
  const engine = texture.getEngine();
78
78
  const ktx = new KhronosTextureContainer(data, 6);
79
+ const mappedFormat = MapSRGBToLinear(ktx.glInternalFormat);
80
+ if (mappedFormat !== null) {
81
+ texture.format = mappedFormat;
82
+ texture._useSRGBBuffer = engine._getUseSRGBBuffer(true, !texture.generateMipMaps);
83
+ texture._gammaSpace = true;
84
+ }
85
+ else {
86
+ texture.format = ktx.glInternalFormat;
87
+ }
79
88
  const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;
80
89
  engine._unpackFlipY(true);
81
90
  ktx.uploadLevels(texture, texture.generateMipMaps);
@@ -102,9 +111,9 @@ export class _KTXTextureLoader {
102
111
  texture._invertVScale = !texture.invertY;
103
112
  const ktx = new KhronosTextureContainer(data, 1);
104
113
  const mappedFormat = MapSRGBToLinear(ktx.glInternalFormat);
105
- if (mappedFormat) {
114
+ if (mappedFormat !== null) {
106
115
  texture.format = mappedFormat;
107
- texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, texture.generateMipMaps);
116
+ texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, !texture.generateMipMaps);
108
117
  texture._gammaSpace = true;
109
118
  }
110
119
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"ktxTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/ktxTextureLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { KhronosTextureContainer } from \"../../../Misc/khronosTextureContainer\";\r\nimport { KhronosTextureContainer2 } from \"../../../Misc/khronosTextureContainer2\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { Logger } from \"../../../Misc/logger\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\n\r\nfunction MapSRGBToLinear(format: number): Nullable<number> {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Implementation of the KTX Texture Loader.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _KTXTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = false;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n */\r\n public loadCubeData(data: ArrayBufferView | ArrayBufferView[], texture: InternalTexture, createPolynomials: boolean, onLoad: Nullable<(data?: any) => void>): void {\r\n if (Array.isArray(data)) {\r\n return;\r\n }\r\n\r\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\r\n texture._invertVScale = !texture.invertY;\r\n const engine = texture.getEngine();\r\n const ktx = new KhronosTextureContainer(data, 6);\r\n\r\n const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;\r\n\r\n engine._unpackFlipY(true);\r\n\r\n ktx.uploadLevels(texture, texture.generateMipMaps);\r\n\r\n texture.width = ktx.pixelWidth;\r\n texture.height = ktx.pixelHeight;\r\n\r\n engine._setCubeMapTextureParams(texture, loadMipmap, ktx.numberOfMipmapLevels - 1);\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param callback defines the method to call once ready to upload\r\n * @param options\r\n */\r\n public loadData(\r\n data: ArrayBufferView,\r\n texture: InternalTexture,\r\n callback: (width: number, height: number, loadMipmap: boolean, isCompressed: boolean, done: () => void, loadFailed: boolean) => void,\r\n options?: any\r\n ): void {\r\n if (KhronosTextureContainer.IsValid(data)) {\r\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\r\n texture._invertVScale = !texture.invertY;\r\n const ktx = new KhronosTextureContainer(data, 1);\r\n\r\n const mappedFormat = MapSRGBToLinear(ktx.glInternalFormat);\r\n if (mappedFormat) {\r\n texture.format = mappedFormat;\r\n texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, texture.generateMipMaps);\r\n texture._gammaSpace = true;\r\n } else {\r\n texture.format = ktx.glInternalFormat;\r\n }\r\n\r\n callback(\r\n ktx.pixelWidth,\r\n ktx.pixelHeight,\r\n texture.generateMipMaps,\r\n true,\r\n () => {\r\n ktx.uploadLevels(texture, texture.generateMipMaps);\r\n },\r\n ktx.isInvalid\r\n );\r\n } else if (KhronosTextureContainer2.IsValid(data)) {\r\n const ktx2 = new KhronosTextureContainer2(texture.getEngine());\r\n // eslint-disable-next-line github/no-then\r\n ktx2._uploadAsync(data, texture, options).then(\r\n () => {\r\n callback(texture.width, texture.height, texture.generateMipMaps, true, () => {}, false);\r\n },\r\n (error) => {\r\n Logger.Warn(`Failed to load KTX2 texture data: ${error.message}`);\r\n callback(0, 0, false, false, () => {}, true);\r\n }\r\n );\r\n } else {\r\n Logger.Error(\"texture missing KTX identifier\");\r\n callback(0, 0, false, false, () => {}, true);\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ktxTextureLoader.js","sourceRoot":"","sources":["../../../../../../dev/core/src/Materials/Textures/Loaders/ktxTextureLoader.ts"],"names":[],"mappings":"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","sourcesContent":["import { KhronosTextureContainer } from \"../../../Misc/khronosTextureContainer\";\r\nimport { KhronosTextureContainer2 } from \"../../../Misc/khronosTextureContainer2\";\r\nimport { type Nullable } from \"../../../types\";\r\nimport { type InternalTexture } from \"../../../Materials/Textures/internalTexture\";\r\nimport { type IInternalTextureLoader } from \"./internalTextureLoader\";\r\nimport { Logger } from \"../../../Misc/logger\";\r\nimport { Constants } from \"../../../Engines/constants\";\r\n\r\nfunction MapSRGBToLinear(format: number): Nullable<number> {\r\n switch (format) {\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_S3TC_DXT1_EXT:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ETC2:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_ETC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x4;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_5x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_6x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_8x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x5;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x6;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x8;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_10x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x10;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_12x12;\r\n case Constants.TEXTUREFORMAT_COMPRESSED_SRGB_ALPHA_BPTC_UNORM:\r\n return Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\r\n }\r\n\r\n return null;\r\n}\r\n\r\n/**\r\n * Implementation of the KTX Texture Loader.\r\n * @internal\r\n */\r\n// eslint-disable-next-line @typescript-eslint/naming-convention\r\nexport class _KTXTextureLoader implements IInternalTextureLoader {\r\n /**\r\n * Defines whether the loader supports cascade loading the different faces.\r\n */\r\n public readonly supportCascades = false;\r\n\r\n /**\r\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param createPolynomials will be true if polynomials have been requested\r\n * @param onLoad defines the callback to trigger once the texture is ready\r\n */\r\n public loadCubeData(data: ArrayBufferView | ArrayBufferView[], texture: InternalTexture, createPolynomials: boolean, onLoad: Nullable<(data?: any) => void>): void {\r\n if (Array.isArray(data)) {\r\n return;\r\n }\r\n\r\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\r\n texture._invertVScale = !texture.invertY;\r\n const engine = texture.getEngine();\r\n const ktx = new KhronosTextureContainer(data, 6);\r\n\r\n const mappedFormat = MapSRGBToLinear(ktx.glInternalFormat);\r\n if (mappedFormat !== null) {\r\n texture.format = mappedFormat;\r\n texture._useSRGBBuffer = engine._getUseSRGBBuffer(true, !texture.generateMipMaps);\r\n texture._gammaSpace = true;\r\n } else {\r\n texture.format = ktx.glInternalFormat;\r\n }\r\n\r\n const loadMipmap = ktx.numberOfMipmapLevels > 1 && texture.generateMipMaps;\r\n\r\n engine._unpackFlipY(true);\r\n\r\n ktx.uploadLevels(texture, texture.generateMipMaps);\r\n\r\n texture.width = ktx.pixelWidth;\r\n texture.height = ktx.pixelHeight;\r\n\r\n engine._setCubeMapTextureParams(texture, loadMipmap, ktx.numberOfMipmapLevels - 1);\r\n texture.isReady = true;\r\n texture.onLoadedObservable.notifyObservers(texture);\r\n texture.onLoadedObservable.clear();\r\n\r\n if (onLoad) {\r\n onLoad();\r\n }\r\n }\r\n\r\n /**\r\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\r\n * @param data contains the texture data\r\n * @param texture defines the BabylonJS internal texture\r\n * @param callback defines the method to call once ready to upload\r\n * @param options\r\n */\r\n public loadData(\r\n data: ArrayBufferView,\r\n texture: InternalTexture,\r\n callback: (width: number, height: number, loadMipmap: boolean, isCompressed: boolean, done: () => void, loadFailed: boolean) => void,\r\n options?: any\r\n ): void {\r\n if (KhronosTextureContainer.IsValid(data)) {\r\n // Need to invert vScale as invertY via UNPACK_FLIP_Y_WEBGL is not supported by compressed texture\r\n texture._invertVScale = !texture.invertY;\r\n const ktx = new KhronosTextureContainer(data, 1);\r\n\r\n const mappedFormat = MapSRGBToLinear(ktx.glInternalFormat);\r\n if (mappedFormat !== null) {\r\n texture.format = mappedFormat;\r\n texture._useSRGBBuffer = texture.getEngine()._getUseSRGBBuffer(true, !texture.generateMipMaps);\r\n texture._gammaSpace = true;\r\n } else {\r\n texture.format = ktx.glInternalFormat;\r\n }\r\n\r\n callback(\r\n ktx.pixelWidth,\r\n ktx.pixelHeight,\r\n texture.generateMipMaps,\r\n true,\r\n () => {\r\n ktx.uploadLevels(texture, texture.generateMipMaps);\r\n },\r\n ktx.isInvalid\r\n );\r\n } else if (KhronosTextureContainer2.IsValid(data)) {\r\n const ktx2 = new KhronosTextureContainer2(texture.getEngine());\r\n // eslint-disable-next-line github/no-then\r\n ktx2._uploadAsync(data, texture, options).then(\r\n () => {\r\n callback(texture.width, texture.height, texture.generateMipMaps, true, () => {}, false);\r\n },\r\n (error) => {\r\n Logger.Warn(`Failed to load KTX2 texture data: ${error.message}`);\r\n callback(0, 0, false, false, () => {}, true);\r\n }\r\n );\r\n } else {\r\n Logger.Error(\"texture missing KTX identifier\");\r\n callback(0, 0, false, false, () => {}, true);\r\n }\r\n }\r\n}\r\n"]}
@@ -1,4 +1,4 @@
1
- import { RenderTargetTexture } from "../Textures/renderTargetTexture.js";
1
+ import { RenderTargetTexture } from "../Textures/renderTargetTexture.pure.js";
2
2
  import { type Scene } from "../../scene.js";
3
3
  /**
4
4
  * Renders to multiple views with a single draw call
@@ -1,4 +1,4 @@
1
- import { RenderTargetTexture } from "../Textures/renderTargetTexture.js";
1
+ import { RenderTargetTexture } from "../Textures/renderTargetTexture.pure.js";
2
2
 
3
3
  /**
4
4
  * Renders to multiple views with a single draw call
@@ -1 +1 @@
1
- {"version":3,"file":"MultiviewRenderTarget.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/MultiviewRenderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAC1D,IAAoB,OAAO,CAAC,KAAa;QACrC,wGAAwG;QACxG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAoB,OAAO;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,YAAY,KAAa,EAAE,OAAuE,GAAG;QACjG,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7I,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,EAAa,CAAC,kCAAkC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAChJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAG,CAAC,OAAO,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED;;OAEG;IACa,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QACA,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,EAAa,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,CAAC,CAAC;IACb,CAAC;CACJ","sourcesContent":["import { RenderTargetTexture } from \"../Textures/renderTargetTexture\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Engine } from \"../../Engines/engine\";\r\n\r\n/**\r\n * Renders to multiple views with a single draw call\r\n * Only for WebGL backends\r\n * @see https://www.khronos.org/registry/webgl/extensions/OVR_multiview2/\r\n */\r\nexport class MultiviewRenderTarget extends RenderTargetTexture {\r\n public override set samples(value: number) {\r\n // We override this setter because multisampling is handled by framebufferTextureMultisampleMultiviewOVR\r\n this._samples = value;\r\n }\r\n\r\n public override get samples(): number {\r\n return this._samples;\r\n }\r\n\r\n /**\r\n * Creates a multiview render target\r\n * @param scene scene used with the render target\r\n * @param size the size of the render target (used for each view)\r\n */\r\n constructor(scene?: Scene, size: number | { width: number; height: number } | { ratio: number } = 512) {\r\n super(\"multiview rtt\", size, scene, false, true, Constants.TEXTURETYPE_UNSIGNED_BYTE, false, undefined, false, false, true, undefined, true);\r\n this._renderTarget = (this.getScene()!.getEngine() as Engine).createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight());\r\n this._texture = this._renderTarget.texture!;\r\n this._texture.isMultiview = true;\r\n this._texture.format = Constants.TEXTUREFORMAT_RGBA;\r\n this.samples = this._getEngine()!.getCaps().maxSamples || this.samples;\r\n this._texture.samples = this._samples;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _bindFrameBuffer() {\r\n if (!this._renderTarget) {\r\n return;\r\n }\r\n (this.getScene()!.getEngine() as Engine).bindMultiviewFramebuffer(this._renderTarget);\r\n }\r\n\r\n /**\r\n * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)\r\n * @returns the view count\r\n */\r\n public override getViewCount() {\r\n return 2;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"MultiviewRenderTarget.js","sourceRoot":"","sources":["../../../../../dev/core/src/Materials/Textures/MultiviewRenderTarget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGpD;;;;GAIG;AACH,MAAM,OAAO,qBAAsB,SAAQ,mBAAmB;IAC1D,IAAoB,OAAO,CAAC,KAAa;QACrC,wGAAwG;QACxG,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAoB,OAAO;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACH,YAAY,KAAa,EAAE,OAAuE,GAAG;QACjG,KAAK,CAAC,eAAe,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,CAAC,yBAAyB,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QAC7I,IAAI,CAAC,aAAa,GAAI,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,EAAa,CAAC,kCAAkC,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QAChJ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC,kBAAkB,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAG,CAAC,OAAO,EAAE,CAAC,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC;QACvE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED;;OAEG;IACa,gBAAgB;QAC5B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,OAAO;QACX,CAAC;QACA,IAAI,CAAC,QAAQ,EAAG,CAAC,SAAS,EAAa,CAAC,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1F,CAAC;IAED;;;OAGG;IACa,YAAY;QACxB,OAAO,CAAC,CAAC;IACb,CAAC;CACJ","sourcesContent":["import { RenderTargetTexture } from \"../Textures/renderTargetTexture.pure\";\r\nimport { type Scene } from \"../../scene\";\r\nimport { Constants } from \"../../Engines/constants\";\r\nimport { type Engine } from \"../../Engines/engine\";\r\n\r\n/**\r\n * Renders to multiple views with a single draw call\r\n * Only for WebGL backends\r\n * @see https://www.khronos.org/registry/webgl/extensions/OVR_multiview2/\r\n */\r\nexport class MultiviewRenderTarget extends RenderTargetTexture {\r\n public override set samples(value: number) {\r\n // We override this setter because multisampling is handled by framebufferTextureMultisampleMultiviewOVR\r\n this._samples = value;\r\n }\r\n\r\n public override get samples(): number {\r\n return this._samples;\r\n }\r\n\r\n /**\r\n * Creates a multiview render target\r\n * @param scene scene used with the render target\r\n * @param size the size of the render target (used for each view)\r\n */\r\n constructor(scene?: Scene, size: number | { width: number; height: number } | { ratio: number } = 512) {\r\n super(\"multiview rtt\", size, scene, false, true, Constants.TEXTURETYPE_UNSIGNED_BYTE, false, undefined, false, false, true, undefined, true);\r\n this._renderTarget = (this.getScene()!.getEngine() as Engine).createMultiviewRenderTargetTexture(this.getRenderWidth(), this.getRenderHeight());\r\n this._texture = this._renderTarget.texture!;\r\n this._texture.isMultiview = true;\r\n this._texture.format = Constants.TEXTUREFORMAT_RGBA;\r\n this.samples = this._getEngine()!.getCaps().maxSamples || this.samples;\r\n this._texture.samples = this._samples;\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n public override _bindFrameBuffer() {\r\n if (!this._renderTarget) {\r\n return;\r\n }\r\n (this.getScene()!.getEngine() as Engine).bindMultiviewFramebuffer(this._renderTarget);\r\n }\r\n\r\n /**\r\n * Gets the number of views the corresponding to the texture (eg. a MultiviewRenderTarget will have > 1)\r\n * @returns the view count\r\n */\r\n public override getViewCount() {\r\n return 2;\r\n }\r\n}\r\n"]}
@@ -1,7 +1,7 @@
1
1
  import { type AbstractMesh } from "../../../Meshes/abstractMesh.js";
2
2
  import { type Scene } from "../../../scene.js";
3
3
  import { type Nullable } from "../../../types.js";
4
- import { Color3, Color4 } from "../../../Maths/math.color.js";
4
+ import { Color3, Color4 } from "../../../Maths/math.color.pure.js";
5
5
  import { TexturePackerFrame } from "./frame.js";
6
6
  /**
7
7
  * Defines the basic options interface of a TexturePacker
@@ -1,11 +1,11 @@
1
- import { VertexBuffer } from "../../../Buffers/buffer.js";
2
- import { Texture } from "../texture.js";
3
- import { DynamicTexture } from "../dynamicTexture.js";
4
- import { Vector2 } from "../../../Maths/math.vector.js";
5
- import { Color3, Color4 } from "../../../Maths/math.color.js";
1
+ import { VertexBuffer } from "../../../Buffers/buffer.pure.js";
2
+ import { Texture } from "../texture.pure.js";
3
+ import { DynamicTexture } from "../dynamicTexture.pure.js";
4
+ import { Vector2 } from "../../../Maths/math.vector.pure.js";
5
+ import { Color3, Color4 } from "../../../Maths/math.color.pure.js";
6
6
  import { TexturePackerFrame } from "./frame.js";
7
7
  import { Logger } from "../../../Misc/logger.js";
8
- import { Tools } from "../../../Misc/tools.js";
8
+ import { Tools } from "../../../Misc/tools.pure.js";
9
9
 
10
10
  /**
11
11
  * This is a support class that generates a series of packed texture sets.