three-stdlib 2.35.3 → 2.35.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (514) hide show
  1. package/_polyfill/CapsuleGeometry.cjs +20 -17
  2. package/_polyfill/CapsuleGeometry.cjs.map +1 -1
  3. package/_polyfill/CapsuleGeometry.js +20 -17
  4. package/_polyfill/CapsuleGeometry.js.map +1 -1
  5. package/_polyfill/constants.cjs +1 -1
  6. package/_polyfill/constants.cjs.map +1 -1
  7. package/_polyfill/constants.js +1 -1
  8. package/_polyfill/constants.js.map +1 -1
  9. package/animation/AnimationClipCreator.cjs +13 -13
  10. package/animation/AnimationClipCreator.cjs.map +1 -1
  11. package/animation/AnimationClipCreator.js +13 -13
  12. package/animation/AnimationClipCreator.js.map +1 -1
  13. package/animation/CCDIKSolver.cjs +11 -11
  14. package/animation/CCDIKSolver.cjs.map +1 -1
  15. package/animation/CCDIKSolver.js +12 -12
  16. package/animation/CCDIKSolver.js.map +1 -1
  17. package/animation/MMDAnimationHelper.cjs +1 -1
  18. package/animation/MMDAnimationHelper.cjs.map +1 -1
  19. package/animation/MMDAnimationHelper.js +1 -1
  20. package/animation/MMDAnimationHelper.js.map +1 -1
  21. package/animation/MMDPhysics.cjs +4 -4
  22. package/animation/MMDPhysics.cjs.map +1 -1
  23. package/animation/MMDPhysics.js +4 -4
  24. package/animation/MMDPhysics.js.map +1 -1
  25. package/controls/ArcballControls.cjs +2 -2
  26. package/controls/ArcballControls.cjs.map +1 -1
  27. package/controls/ArcballControls.js +3 -3
  28. package/controls/ArcballControls.js.map +1 -1
  29. package/controls/FirstPersonControls.cjs +1 -1
  30. package/controls/FirstPersonControls.cjs.map +1 -1
  31. package/controls/FirstPersonControls.js +1 -1
  32. package/controls/FirstPersonControls.js.map +1 -1
  33. package/controls/OrbitControls.cjs +2 -2
  34. package/controls/OrbitControls.cjs.map +1 -1
  35. package/controls/OrbitControls.js +3 -3
  36. package/controls/OrbitControls.js.map +1 -1
  37. package/controls/PointerLockControls.cjs +2 -2
  38. package/controls/PointerLockControls.cjs.map +1 -1
  39. package/controls/PointerLockControls.js +3 -3
  40. package/controls/PointerLockControls.js.map +1 -1
  41. package/csm/CSM.cjs +4 -4
  42. package/csm/CSM.cjs.map +1 -1
  43. package/csm/CSM.js +5 -5
  44. package/csm/CSM.js.map +1 -1
  45. package/csm/CSMFrustum.cjs +1 -1
  46. package/csm/CSMFrustum.cjs.map +1 -1
  47. package/csm/CSMFrustum.js +2 -2
  48. package/csm/CSMFrustum.js.map +1 -1
  49. package/deprecated/Geometry.cjs +722 -715
  50. package/deprecated/Geometry.cjs.map +1 -1
  51. package/deprecated/Geometry.js +723 -716
  52. package/deprecated/Geometry.js.map +1 -1
  53. package/effects/AnaglyphEffect.cjs +2 -1
  54. package/effects/AnaglyphEffect.cjs.map +1 -1
  55. package/effects/AnaglyphEffect.js +3 -2
  56. package/effects/AnaglyphEffect.js.map +1 -1
  57. package/effects/OutlineEffect.cjs +2 -1
  58. package/effects/OutlineEffect.cjs.map +1 -1
  59. package/effects/OutlineEffect.js +3 -2
  60. package/effects/OutlineEffect.js.map +1 -1
  61. package/effects/ParallaxBarrierEffect.cjs +2 -1
  62. package/effects/ParallaxBarrierEffect.cjs.map +1 -1
  63. package/effects/ParallaxBarrierEffect.js +3 -2
  64. package/effects/ParallaxBarrierEffect.js.map +1 -1
  65. package/exporters/DRACOExporter.cjs +133 -122
  66. package/exporters/DRACOExporter.cjs.map +1 -1
  67. package/exporters/DRACOExporter.d.ts +23 -21
  68. package/exporters/DRACOExporter.js +133 -122
  69. package/exporters/DRACOExporter.js.map +1 -1
  70. package/exporters/GLTFExporter.cjs +170 -167
  71. package/exporters/GLTFExporter.cjs.map +1 -1
  72. package/exporters/GLTFExporter.js +170 -167
  73. package/exporters/GLTFExporter.js.map +1 -1
  74. package/geometries/LightningStrike.cjs +524 -515
  75. package/geometries/LightningStrike.cjs.map +1 -1
  76. package/geometries/LightningStrike.js +524 -515
  77. package/geometries/LightningStrike.js.map +1 -1
  78. package/geometries/RoundedBoxGeometry.cjs +1 -1
  79. package/geometries/RoundedBoxGeometry.cjs.map +1 -1
  80. package/geometries/RoundedBoxGeometry.js +2 -2
  81. package/geometries/RoundedBoxGeometry.js.map +1 -1
  82. package/helpers/RaycasterHelper.cjs +2 -2
  83. package/helpers/RaycasterHelper.cjs.map +1 -1
  84. package/helpers/RaycasterHelper.js +3 -3
  85. package/helpers/RaycasterHelper.js.map +1 -1
  86. package/helpers/VertexNormalsHelper.cjs +3 -3
  87. package/helpers/VertexNormalsHelper.cjs.map +1 -1
  88. package/helpers/VertexNormalsHelper.js +4 -4
  89. package/helpers/VertexNormalsHelper.js.map +1 -1
  90. package/helpers/VertexTangentsHelper.cjs +2 -2
  91. package/helpers/VertexTangentsHelper.cjs.map +1 -1
  92. package/helpers/VertexTangentsHelper.js +3 -3
  93. package/helpers/VertexTangentsHelper.js.map +1 -1
  94. package/interactive/InteractiveGroup.cjs +1 -1
  95. package/interactive/InteractiveGroup.cjs.map +1 -1
  96. package/interactive/InteractiveGroup.js +2 -2
  97. package/interactive/InteractiveGroup.js.map +1 -1
  98. package/interactive/SelectionBox.cjs +15 -15
  99. package/interactive/SelectionBox.cjs.map +1 -1
  100. package/interactive/SelectionBox.js +16 -16
  101. package/interactive/SelectionBox.js.map +1 -1
  102. package/libs/chevrotain.cjs +1 -1
  103. package/libs/chevrotain.cjs.map +1 -1
  104. package/libs/chevrotain.js +1 -1
  105. package/libs/chevrotain.js.map +1 -1
  106. package/libs/lottie.cjs +1 -1
  107. package/libs/lottie.cjs.map +1 -1
  108. package/libs/lottie.js +1 -1
  109. package/libs/lottie.js.map +1 -1
  110. package/libs/opentype.cjs +1 -1
  111. package/libs/opentype.cjs.map +1 -1
  112. package/libs/opentype.js +1 -1
  113. package/libs/opentype.js.map +1 -1
  114. package/lights/LightProbeGenerator.cjs +5 -5
  115. package/lights/LightProbeGenerator.cjs.map +1 -1
  116. package/lights/LightProbeGenerator.js +5 -5
  117. package/lights/LightProbeGenerator.js.map +1 -1
  118. package/lights/RectAreaLightUniformsLib.cjs +3 -3
  119. package/lights/RectAreaLightUniformsLib.cjs.map +1 -1
  120. package/lights/RectAreaLightUniformsLib.js +3 -3
  121. package/lights/RectAreaLightUniformsLib.js.map +1 -1
  122. package/lines/LineMaterial.cjs +2 -1
  123. package/lines/LineMaterial.cjs.map +1 -1
  124. package/lines/LineMaterial.js +3 -2
  125. package/lines/LineMaterial.js.map +1 -1
  126. package/lines/LineSegments2.cjs +13 -13
  127. package/lines/LineSegments2.cjs.map +1 -1
  128. package/lines/LineSegments2.js +14 -14
  129. package/lines/LineSegments2.js.map +1 -1
  130. package/lines/LineSegmentsGeometry.cjs +2 -2
  131. package/lines/LineSegmentsGeometry.cjs.map +1 -1
  132. package/lines/LineSegmentsGeometry.js +3 -3
  133. package/lines/LineSegmentsGeometry.js.map +1 -1
  134. package/lines/Wireframe.cjs +3 -3
  135. package/lines/Wireframe.cjs.map +1 -1
  136. package/lines/Wireframe.js +4 -4
  137. package/lines/Wireframe.js.map +1 -1
  138. package/loaders/BasisTextureLoader.cjs +441 -435
  139. package/loaders/BasisTextureLoader.cjs.map +1 -1
  140. package/loaders/BasisTextureLoader.js +441 -435
  141. package/loaders/BasisTextureLoader.js.map +1 -1
  142. package/loaders/EXRLoader.cjs +2 -1
  143. package/loaders/EXRLoader.cjs.map +1 -1
  144. package/loaders/EXRLoader.js +3 -2
  145. package/loaders/EXRLoader.js.map +1 -1
  146. package/loaders/FBXLoader.cjs +2 -2
  147. package/loaders/FBXLoader.cjs.map +1 -1
  148. package/loaders/FBXLoader.js +2 -2
  149. package/loaders/FBXLoader.js.map +1 -1
  150. package/loaders/FontLoader.cjs +2 -2
  151. package/loaders/FontLoader.cjs.map +1 -1
  152. package/loaders/FontLoader.d.ts +2 -2
  153. package/loaders/FontLoader.js +2 -2
  154. package/loaders/FontLoader.js.map +1 -1
  155. package/loaders/GLTFLoader.cjs +2 -2
  156. package/loaders/GLTFLoader.cjs.map +1 -1
  157. package/loaders/GLTFLoader.js +2 -2
  158. package/loaders/GLTFLoader.js.map +1 -1
  159. package/loaders/KTX2Loader.cjs +377 -374
  160. package/loaders/KTX2Loader.cjs.map +1 -1
  161. package/loaders/KTX2Loader.js +377 -374
  162. package/loaders/KTX2Loader.js.map +1 -1
  163. package/loaders/LDrawLoader.cjs +5 -4
  164. package/loaders/LDrawLoader.cjs.map +1 -1
  165. package/loaders/LDrawLoader.js +6 -5
  166. package/loaders/LDrawLoader.js.map +1 -1
  167. package/loaders/OBJLoader.cjs +5 -5
  168. package/loaders/OBJLoader.cjs.map +1 -1
  169. package/loaders/OBJLoader.js +6 -6
  170. package/loaders/OBJLoader.js.map +1 -1
  171. package/loaders/PRWMLoader.cjs +46 -43
  172. package/loaders/PRWMLoader.cjs.map +1 -1
  173. package/loaders/PRWMLoader.js +46 -43
  174. package/loaders/PRWMLoader.js.map +1 -1
  175. package/loaders/SVGLoader.cjs +1694 -1688
  176. package/loaders/SVGLoader.cjs.map +1 -1
  177. package/loaders/SVGLoader.js +1694 -1688
  178. package/loaders/SVGLoader.js.map +1 -1
  179. package/loaders/XLoader.cjs +1 -1
  180. package/loaders/XLoader.cjs.map +1 -1
  181. package/loaders/XLoader.js +1 -1
  182. package/loaders/XLoader.js.map +1 -1
  183. package/math/Capsule.cjs +3 -3
  184. package/math/Capsule.cjs.map +1 -1
  185. package/math/Capsule.js +3 -3
  186. package/math/Capsule.js.map +1 -1
  187. package/math/ColorConverter.cjs +9 -9
  188. package/math/ColorConverter.cjs.map +1 -1
  189. package/math/ColorConverter.js +9 -9
  190. package/math/ColorConverter.js.map +1 -1
  191. package/math/ConvexHull.cjs +53 -50
  192. package/math/ConvexHull.cjs.map +1 -1
  193. package/math/ConvexHull.js +53 -50
  194. package/math/ConvexHull.js.map +1 -1
  195. package/math/ImprovedNoise.cjs +1 -1
  196. package/math/ImprovedNoise.cjs.map +1 -1
  197. package/math/ImprovedNoise.js +1 -1
  198. package/math/ImprovedNoise.js.map +1 -1
  199. package/math/MeshSurfaceSampler.cjs +2 -2
  200. package/math/MeshSurfaceSampler.cjs.map +1 -1
  201. package/math/MeshSurfaceSampler.js +2 -2
  202. package/math/MeshSurfaceSampler.js.map +1 -1
  203. package/math/OBB.cjs +14 -14
  204. package/math/OBB.cjs.map +1 -1
  205. package/math/OBB.js +15 -15
  206. package/math/OBB.js.map +1 -1
  207. package/math/Octree.cjs +7 -7
  208. package/math/Octree.cjs.map +1 -1
  209. package/math/Octree.js +8 -8
  210. package/math/Octree.js.map +1 -1
  211. package/misc/ConvexObjectBreaker.cjs +271 -268
  212. package/misc/ConvexObjectBreaker.cjs.map +1 -1
  213. package/misc/ConvexObjectBreaker.js +272 -269
  214. package/misc/ConvexObjectBreaker.js.map +1 -1
  215. package/misc/Gyroscope.cjs +6 -6
  216. package/misc/Gyroscope.cjs.map +1 -1
  217. package/misc/Gyroscope.js +7 -7
  218. package/misc/Gyroscope.js.map +1 -1
  219. package/modifiers/CurveModifier.cjs +1 -1
  220. package/modifiers/CurveModifier.cjs.map +1 -1
  221. package/modifiers/CurveModifier.js +2 -2
  222. package/modifiers/CurveModifier.js.map +1 -1
  223. package/modifiers/SimplifyModifier.cjs +2 -2
  224. package/modifiers/SimplifyModifier.cjs.map +1 -1
  225. package/modifiers/SimplifyModifier.js +2 -2
  226. package/modifiers/SimplifyModifier.js.map +1 -1
  227. package/objects/BatchedMesh.cjs +2 -2
  228. package/objects/BatchedMesh.cjs.map +1 -1
  229. package/objects/BatchedMesh.js +3 -3
  230. package/objects/BatchedMesh.js.map +1 -1
  231. package/objects/GroundProjectedEnv.cjs +2 -1
  232. package/objects/GroundProjectedEnv.cjs.map +1 -1
  233. package/objects/GroundProjectedEnv.js +3 -2
  234. package/objects/GroundProjectedEnv.js.map +1 -1
  235. package/objects/Lensflare.cjs +209 -206
  236. package/objects/Lensflare.cjs.map +1 -1
  237. package/objects/Lensflare.js +209 -206
  238. package/objects/Lensflare.js.map +1 -1
  239. package/objects/Reflector.cjs +154 -146
  240. package/objects/Reflector.cjs.map +1 -1
  241. package/objects/Reflector.js +154 -146
  242. package/objects/Reflector.js.map +1 -1
  243. package/objects/ReflectorForSSRPass.cjs +183 -180
  244. package/objects/ReflectorForSSRPass.cjs.map +1 -1
  245. package/objects/ReflectorForSSRPass.js +183 -180
  246. package/objects/ReflectorForSSRPass.js.map +1 -1
  247. package/objects/Refractor.cjs +164 -161
  248. package/objects/Refractor.cjs.map +1 -1
  249. package/objects/Refractor.js +164 -161
  250. package/objects/Refractor.js.map +1 -1
  251. package/objects/ShadowMesh.cjs +1 -1
  252. package/objects/ShadowMesh.cjs.map +1 -1
  253. package/objects/ShadowMesh.js +2 -2
  254. package/objects/ShadowMesh.js.map +1 -1
  255. package/objects/Sky.cjs +35 -32
  256. package/objects/Sky.cjs.map +1 -1
  257. package/objects/Sky.d.ts +100 -6
  258. package/objects/Sky.js +35 -32
  259. package/objects/Sky.js.map +1 -1
  260. package/objects/Water.cjs +2 -1
  261. package/objects/Water.cjs.map +1 -1
  262. package/objects/Water.js +3 -2
  263. package/objects/Water.js.map +1 -1
  264. package/objects/Water2.cjs +143 -140
  265. package/objects/Water2.cjs.map +1 -1
  266. package/objects/Water2.js +143 -140
  267. package/objects/Water2.js.map +1 -1
  268. package/package.json +1 -1
  269. package/postprocessing/SAOPass.cjs +267 -264
  270. package/postprocessing/SAOPass.cjs.map +1 -1
  271. package/postprocessing/SAOPass.js +267 -264
  272. package/postprocessing/SAOPass.js.map +1 -1
  273. package/postprocessing/SSAOPass.cjs +253 -250
  274. package/postprocessing/SSAOPass.cjs.map +1 -1
  275. package/postprocessing/SSAOPass.js +253 -250
  276. package/postprocessing/SSAOPass.js.map +1 -1
  277. package/postprocessing/SSRPass.cjs +379 -376
  278. package/postprocessing/SSRPass.cjs.map +1 -1
  279. package/postprocessing/SSRPass.js +379 -376
  280. package/postprocessing/SSRPass.js.map +1 -1
  281. package/postprocessing/UnrealBloomPass.cjs +205 -202
  282. package/postprocessing/UnrealBloomPass.cjs.map +1 -1
  283. package/postprocessing/UnrealBloomPass.js +205 -202
  284. package/postprocessing/UnrealBloomPass.js.map +1 -1
  285. package/renderers/CSS2DRenderer.cjs +5 -5
  286. package/renderers/CSS2DRenderer.cjs.map +1 -1
  287. package/renderers/CSS2DRenderer.js +5 -5
  288. package/renderers/CSS2DRenderer.js.map +1 -1
  289. package/renderers/CSS3DRenderer.cjs +5 -5
  290. package/renderers/CSS3DRenderer.cjs.map +1 -1
  291. package/renderers/CSS3DRenderer.js +6 -6
  292. package/renderers/CSS3DRenderer.js.map +1 -1
  293. package/shaders/ACESFilmicToneMappingShader.cjs +71 -46
  294. package/shaders/ACESFilmicToneMappingShader.cjs.map +1 -1
  295. package/shaders/ACESFilmicToneMappingShader.js +71 -46
  296. package/shaders/ACESFilmicToneMappingShader.js.map +1 -1
  297. package/shaders/AfterimageShader.cjs +41 -22
  298. package/shaders/AfterimageShader.cjs.map +1 -1
  299. package/shaders/AfterimageShader.js +41 -22
  300. package/shaders/AfterimageShader.js.map +1 -1
  301. package/shaders/BasicShader.cjs +20 -6
  302. package/shaders/BasicShader.cjs.map +1 -1
  303. package/shaders/BasicShader.js +20 -6
  304. package/shaders/BasicShader.js.map +1 -1
  305. package/shaders/BleachBypassShader.cjs +46 -26
  306. package/shaders/BleachBypassShader.cjs.map +1 -1
  307. package/shaders/BleachBypassShader.js +46 -26
  308. package/shaders/BleachBypassShader.js.map +1 -1
  309. package/shaders/BlendShader.cjs +33 -19
  310. package/shaders/BlendShader.cjs.map +1 -1
  311. package/shaders/BlendShader.js +33 -19
  312. package/shaders/BlendShader.js.map +1 -1
  313. package/shaders/BokehShader.cjs +117 -90
  314. package/shaders/BokehShader.cjs.map +1 -1
  315. package/shaders/BokehShader.js +117 -90
  316. package/shaders/BokehShader.js.map +1 -1
  317. package/shaders/BokehShader2.cjs +333 -232
  318. package/shaders/BokehShader2.cjs.map +1 -1
  319. package/shaders/BokehShader2.js +333 -232
  320. package/shaders/BokehShader2.js.map +1 -1
  321. package/shaders/BrightnessContrastShader.cjs +38 -22
  322. package/shaders/BrightnessContrastShader.cjs.map +1 -1
  323. package/shaders/BrightnessContrastShader.js +38 -22
  324. package/shaders/BrightnessContrastShader.js.map +1 -1
  325. package/shaders/ColorCorrectionShader.cjs +35 -21
  326. package/shaders/ColorCorrectionShader.cjs.map +1 -1
  327. package/shaders/ColorCorrectionShader.js +35 -21
  328. package/shaders/ColorCorrectionShader.js.map +1 -1
  329. package/shaders/ColorifyShader.cjs +34 -19
  330. package/shaders/ColorifyShader.cjs.map +1 -1
  331. package/shaders/ColorifyShader.js +34 -19
  332. package/shaders/ColorifyShader.js.map +1 -1
  333. package/shaders/ConvolutionShader.cjs +43 -24
  334. package/shaders/ConvolutionShader.cjs.map +1 -1
  335. package/shaders/ConvolutionShader.js +43 -24
  336. package/shaders/ConvolutionShader.js.map +1 -1
  337. package/shaders/CopyShader.cjs +30 -16
  338. package/shaders/CopyShader.cjs.map +1 -1
  339. package/shaders/CopyShader.js +30 -16
  340. package/shaders/CopyShader.js.map +1 -1
  341. package/shaders/DOFMipMapShader.cjs +38 -21
  342. package/shaders/DOFMipMapShader.cjs.map +1 -1
  343. package/shaders/DOFMipMapShader.js +38 -21
  344. package/shaders/DOFMipMapShader.js.map +1 -1
  345. package/shaders/DepthLimitedBlurShader.cjs +98 -69
  346. package/shaders/DepthLimitedBlurShader.cjs.map +1 -1
  347. package/shaders/DepthLimitedBlurShader.js +98 -69
  348. package/shaders/DepthLimitedBlurShader.js.map +1 -1
  349. package/shaders/DigitalGlitch.cjs +70 -59
  350. package/shaders/DigitalGlitch.cjs.map +1 -1
  351. package/shaders/DigitalGlitch.js +70 -59
  352. package/shaders/DigitalGlitch.js.map +1 -1
  353. package/shaders/DotScreenShader.cjs +49 -28
  354. package/shaders/DotScreenShader.cjs.map +1 -1
  355. package/shaders/DotScreenShader.js +49 -28
  356. package/shaders/DotScreenShader.js.map +1 -1
  357. package/shaders/FXAAShader.cjs +1098 -1089
  358. package/shaders/FXAAShader.cjs.map +1 -1
  359. package/shaders/FXAAShader.js +1098 -1089
  360. package/shaders/FXAAShader.js.map +1 -1
  361. package/shaders/FilmShader.cjs +57 -29
  362. package/shaders/FilmShader.cjs.map +1 -1
  363. package/shaders/FilmShader.js +57 -29
  364. package/shaders/FilmShader.js.map +1 -1
  365. package/shaders/FocusShader.cjs +70 -43
  366. package/shaders/FocusShader.cjs.map +1 -1
  367. package/shaders/FocusShader.js +70 -43
  368. package/shaders/FocusShader.js.map +1 -1
  369. package/shaders/FreiChenShader.cjs +74 -53
  370. package/shaders/FreiChenShader.cjs.map +1 -1
  371. package/shaders/FreiChenShader.js +74 -53
  372. package/shaders/FreiChenShader.js.map +1 -1
  373. package/shaders/FresnelShader.cjs +55 -35
  374. package/shaders/FresnelShader.cjs.map +1 -1
  375. package/shaders/FresnelShader.js +55 -35
  376. package/shaders/FresnelShader.js.map +1 -1
  377. package/shaders/GammaCorrectionShader.cjs +33 -19
  378. package/shaders/GammaCorrectionShader.cjs.map +1 -1
  379. package/shaders/GammaCorrectionShader.js +33 -19
  380. package/shaders/GammaCorrectionShader.js.map +1 -1
  381. package/shaders/GodRaysShader.cjs +193 -116
  382. package/shaders/GodRaysShader.cjs.map +1 -1
  383. package/shaders/GodRaysShader.js +193 -116
  384. package/shaders/GodRaysShader.js.map +1 -1
  385. package/shaders/HalftoneShader.cjs +270 -192
  386. package/shaders/HalftoneShader.cjs.map +1 -1
  387. package/shaders/HalftoneShader.js +270 -192
  388. package/shaders/HalftoneShader.js.map +1 -1
  389. package/shaders/HorizontalTiltShiftShader.cjs +43 -27
  390. package/shaders/HorizontalTiltShiftShader.cjs.map +1 -1
  391. package/shaders/HorizontalTiltShiftShader.js +43 -27
  392. package/shaders/HorizontalTiltShiftShader.js.map +1 -1
  393. package/shaders/HueSaturationShader.cjs +47 -31
  394. package/shaders/HueSaturationShader.cjs.map +1 -1
  395. package/shaders/HueSaturationShader.js +47 -31
  396. package/shaders/HueSaturationShader.js.map +1 -1
  397. package/shaders/KaleidoShader.cjs +37 -24
  398. package/shaders/KaleidoShader.cjs.map +1 -1
  399. package/shaders/KaleidoShader.js +37 -24
  400. package/shaders/KaleidoShader.js.map +1 -1
  401. package/shaders/LuminosityHighPassShader.cjs +43 -24
  402. package/shaders/LuminosityHighPassShader.cjs.map +1 -1
  403. package/shaders/LuminosityHighPassShader.js +43 -24
  404. package/shaders/LuminosityHighPassShader.js.map +1 -1
  405. package/shaders/LuminosityShader.cjs +34 -17
  406. package/shaders/LuminosityShader.cjs.map +1 -1
  407. package/shaders/LuminosityShader.js +34 -17
  408. package/shaders/LuminosityShader.js.map +1 -1
  409. package/shaders/MirrorShader.cjs +39 -26
  410. package/shaders/MirrorShader.cjs.map +1 -1
  411. package/shaders/MirrorShader.js +39 -26
  412. package/shaders/MirrorShader.js.map +1 -1
  413. package/shaders/NormalMapShader.cjs +36 -21
  414. package/shaders/NormalMapShader.cjs.map +1 -1
  415. package/shaders/NormalMapShader.js +36 -21
  416. package/shaders/NormalMapShader.js.map +1 -1
  417. package/shaders/ParallaxShader.cjs +147 -97
  418. package/shaders/ParallaxShader.cjs.map +1 -1
  419. package/shaders/ParallaxShader.js +147 -97
  420. package/shaders/ParallaxShader.js.map +1 -1
  421. package/shaders/PixelShader.cjs +31 -18
  422. package/shaders/PixelShader.cjs.map +1 -1
  423. package/shaders/PixelShader.js +31 -18
  424. package/shaders/PixelShader.js.map +1 -1
  425. package/shaders/RGBShiftShader.cjs +33 -20
  426. package/shaders/RGBShiftShader.cjs.map +1 -1
  427. package/shaders/RGBShiftShader.js +33 -20
  428. package/shaders/RGBShiftShader.js.map +1 -1
  429. package/shaders/SAOShader.cjs +154 -117
  430. package/shaders/SAOShader.cjs.map +1 -1
  431. package/shaders/SAOShader.js +154 -117
  432. package/shaders/SAOShader.js.map +1 -1
  433. package/shaders/SMAAShader.cjs +358 -270
  434. package/shaders/SMAAShader.cjs.map +1 -1
  435. package/shaders/SMAAShader.js +358 -270
  436. package/shaders/SMAAShader.js.map +1 -1
  437. package/shaders/SSAOShader.cjs +236 -142
  438. package/shaders/SSAOShader.cjs.map +1 -1
  439. package/shaders/SSAOShader.js +236 -142
  440. package/shaders/SSAOShader.js.map +1 -1
  441. package/shaders/SSRShader.cjs +4 -4
  442. package/shaders/SSRShader.cjs.map +1 -1
  443. package/shaders/SSRShader.js +4 -4
  444. package/shaders/SSRShader.js.map +1 -1
  445. package/shaders/SepiaShader.cjs +36 -20
  446. package/shaders/SepiaShader.cjs.map +1 -1
  447. package/shaders/SepiaShader.js +36 -20
  448. package/shaders/SepiaShader.js.map +1 -1
  449. package/shaders/SobelOperatorShader.cjs +64 -37
  450. package/shaders/SobelOperatorShader.cjs.map +1 -1
  451. package/shaders/SobelOperatorShader.js +64 -37
  452. package/shaders/SobelOperatorShader.js.map +1 -1
  453. package/shaders/TechnicolorShader.cjs +29 -16
  454. package/shaders/TechnicolorShader.cjs.map +1 -1
  455. package/shaders/TechnicolorShader.js +29 -16
  456. package/shaders/TechnicolorShader.js.map +1 -1
  457. package/shaders/ToneMapShader.cjs +55 -35
  458. package/shaders/ToneMapShader.cjs.map +1 -1
  459. package/shaders/ToneMapShader.js +55 -35
  460. package/shaders/ToneMapShader.js.map +1 -1
  461. package/shaders/ToonShader.cjs +275 -165
  462. package/shaders/ToonShader.cjs.map +1 -1
  463. package/shaders/ToonShader.js +275 -165
  464. package/shaders/ToonShader.js.map +1 -1
  465. package/shaders/TriangleBlurShader.cjs +50 -27
  466. package/shaders/TriangleBlurShader.cjs.map +1 -1
  467. package/shaders/TriangleBlurShader.js +50 -27
  468. package/shaders/TriangleBlurShader.js.map +1 -1
  469. package/shaders/UnpackDepthRGBAShader.cjs +32 -17
  470. package/shaders/UnpackDepthRGBAShader.cjs.map +1 -1
  471. package/shaders/UnpackDepthRGBAShader.js +32 -17
  472. package/shaders/UnpackDepthRGBAShader.js.map +1 -1
  473. package/shaders/VerticalTiltShiftShader.cjs +43 -27
  474. package/shaders/VerticalTiltShiftShader.cjs.map +1 -1
  475. package/shaders/VerticalTiltShiftShader.js +43 -27
  476. package/shaders/VerticalTiltShiftShader.js.map +1 -1
  477. package/shaders/VignetteShader.cjs +43 -27
  478. package/shaders/VignetteShader.cjs.map +1 -1
  479. package/shaders/VignetteShader.js +43 -27
  480. package/shaders/VignetteShader.js.map +1 -1
  481. package/shaders/VolumeShader.cjs +264 -213
  482. package/shaders/VolumeShader.cjs.map +1 -1
  483. package/shaders/VolumeShader.js +264 -213
  484. package/shaders/VolumeShader.js.map +1 -1
  485. package/shaders/WaterRefractionShader.cjs +63 -35
  486. package/shaders/WaterRefractionShader.cjs.map +1 -1
  487. package/shaders/WaterRefractionShader.js +63 -35
  488. package/shaders/WaterRefractionShader.js.map +1 -1
  489. package/utils/GeometryCompressionUtils.cjs +2 -1
  490. package/utils/GeometryCompressionUtils.cjs.map +1 -1
  491. package/utils/GeometryCompressionUtils.js +3 -2
  492. package/utils/GeometryCompressionUtils.js.map +1 -1
  493. package/utils/RoughnessMipmapper.cjs +3 -3
  494. package/utils/RoughnessMipmapper.cjs.map +1 -1
  495. package/utils/RoughnessMipmapper.js +4 -4
  496. package/utils/RoughnessMipmapper.js.map +1 -1
  497. package/webxr/ARButton.cjs +109 -106
  498. package/webxr/ARButton.cjs.map +1 -1
  499. package/webxr/ARButton.d.ts +4 -3
  500. package/webxr/ARButton.js +109 -106
  501. package/webxr/ARButton.js.map +1 -1
  502. package/webxr/OculusHandPointerModel.cjs +2 -2
  503. package/webxr/OculusHandPointerModel.cjs.map +1 -1
  504. package/webxr/OculusHandPointerModel.js +2 -2
  505. package/webxr/OculusHandPointerModel.js.map +1 -1
  506. package/webxr/VRButton.cjs +98 -95
  507. package/webxr/VRButton.cjs.map +1 -1
  508. package/webxr/VRButton.d.ts +6 -5
  509. package/webxr/VRButton.js +98 -95
  510. package/webxr/VRButton.js.map +1 -1
  511. package/webxr/XRHandPrimitiveModel.cjs +2 -2
  512. package/webxr/XRHandPrimitiveModel.cjs.map +1 -1
  513. package/webxr/XRHandPrimitiveModel.js +3 -3
  514. package/webxr/XRHandPrimitiveModel.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BasisTextureLoader.js","sources":["../../src/loaders/BasisTextureLoader.js"],"sourcesContent":["import {\n CompressedTexture,\n FileLoader,\n LinearFilter,\n LinearMipmapLinearFilter,\n Loader,\n RGBAFormat,\n RGBA_ASTC_4x4_Format,\n RGBA_BPTC_Format,\n RGBA_ETC2_EAC_Format,\n RGBA_PVRTC_4BPPV1_Format,\n RGBA_S3TC_DXT5_Format,\n RGB_ETC1_Format,\n RGB_ETC2_Format,\n RGB_PVRTC_4BPPV1_Format,\n RGB_S3TC_DXT1_Format,\n UnsignedByteType,\n} from 'three'\n\n/**\n * Loader for Basis Universal GPU Texture Codec.\n *\n * Basis Universal is a \"supercompressed\" GPU texture and texture video\n * compression system that outputs a highly compressed intermediate file format\n * (.basis) that can be quickly transcoded to a wide variety of GPU texture\n * compression formats.\n *\n * This loader parallelizes the transcoding process across a configurable number\n * of web workers, before transferring the transcoded compressed texture back\n * to the main thread.\n */\n\nconst _taskCache = new WeakMap()\n\nclass BasisTextureLoader extends Loader {\n /* CONSTANTS */\n\n static BasisFormat = {\n ETC1S: 0,\n UASTC_4x4: 1,\n }\n\n static TranscoderFormat = {\n ETC1: 0,\n ETC2: 1,\n BC1: 2,\n BC3: 3,\n BC4: 4,\n BC5: 5,\n BC7_M6_OPAQUE_ONLY: 6,\n BC7_M5: 7,\n PVRTC1_4_RGB: 8,\n PVRTC1_4_RGBA: 9,\n ASTC_4x4: 10,\n ATC_RGB: 11,\n ATC_RGBA_INTERPOLATED_ALPHA: 12,\n RGBA32: 13,\n RGB565: 14,\n BGR565: 15,\n RGBA4444: 16,\n }\n\n static EngineFormat = {\n RGBAFormat: RGBAFormat,\n RGBA_ASTC_4x4_Format: RGBA_ASTC_4x4_Format,\n RGBA_BPTC_Format: RGBA_BPTC_Format,\n RGBA_ETC2_EAC_Format: RGBA_ETC2_EAC_Format,\n RGBA_PVRTC_4BPPV1_Format: RGBA_PVRTC_4BPPV1_Format,\n RGBA_S3TC_DXT5_Format: RGBA_S3TC_DXT5_Format,\n RGB_ETC1_Format: RGB_ETC1_Format,\n RGB_ETC2_Format: RGB_ETC2_Format,\n RGB_PVRTC_4BPPV1_Format: RGB_PVRTC_4BPPV1_Format,\n RGB_S3TC_DXT1_Format: RGB_S3TC_DXT1_Format,\n }\n\n /* WEB WORKER */\n\n static BasisWorker = function () {\n let config\n let transcoderPending\n let BasisModule\n\n const EngineFormat = _EngineFormat\n const TranscoderFormat = _TranscoderFormat\n const BasisFormat = _BasisFormat\n\n onmessage = function (e) {\n const message = e.data\n\n switch (message.type) {\n case 'init':\n config = message.config\n init(message.transcoderBinary)\n break\n\n case 'transcode':\n transcoderPending.then(() => {\n try {\n const { width, height, hasAlpha, mipmaps, format } = message.taskConfig.lowLevel\n ? transcodeLowLevel(message.taskConfig)\n : transcode(message.buffers[0])\n\n const buffers = []\n\n for (let i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer)\n }\n\n self.postMessage({ type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps, format }, buffers)\n } catch (error) {\n console.error(error)\n\n self.postMessage({ type: 'error', id: message.id, error: error.message })\n }\n })\n break\n }\n }\n\n function init(wasmBinary) {\n transcoderPending = new Promise((resolve) => {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve }\n BASIS(BasisModule)\n }).then(() => {\n BasisModule.initializeBasis()\n })\n }\n\n function transcodeLowLevel(taskConfig) {\n const { basisFormat, width, height, hasAlpha } = taskConfig\n\n const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha)\n\n const blockByteLength = BasisModule.getBytesPerBlockOrPixel(transcoderFormat)\n\n assert(BasisModule.isFormatSupported(transcoderFormat), 'THREE.BasisTextureLoader: Unsupported format.')\n\n const mipmaps = []\n\n if (basisFormat === BasisFormat.ETC1S) {\n const transcoder = new BasisModule.LowLevelETC1SImageTranscoder()\n\n const { endpointCount, endpointsData, selectorCount, selectorsData, tablesData } = taskConfig.globalData\n\n try {\n let ok\n\n ok = transcoder.decodePalettes(endpointCount, endpointsData, selectorCount, selectorsData)\n\n assert(ok, 'THREE.BasisTextureLoader: decodePalettes() failed.')\n\n ok = transcoder.decodeTables(tablesData)\n\n assert(ok, 'THREE.BasisTextureLoader: decodeTables() failed.')\n\n for (let i = 0; i < taskConfig.levels.length; i++) {\n const level = taskConfig.levels[i]\n const imageDesc = taskConfig.globalData.imageDescs[i]\n\n const dstByteLength = getTranscodedImageByteLength(transcoderFormat, level.width, level.height)\n const dst = new Uint8Array(dstByteLength)\n\n ok = transcoder.transcodeImage(\n transcoderFormat,\n dst,\n dstByteLength / blockByteLength,\n level.data,\n getWidthInBlocks(transcoderFormat, level.width),\n getHeightInBlocks(transcoderFormat, level.height),\n level.width,\n level.height,\n level.index,\n imageDesc.rgbSliceByteOffset,\n imageDesc.rgbSliceByteLength,\n imageDesc.alphaSliceByteOffset,\n imageDesc.alphaSliceByteLength,\n imageDesc.imageFlags,\n hasAlpha,\n false,\n 0,\n 0,\n )\n\n assert(ok, 'THREE.BasisTextureLoader: transcodeImage() failed for level ' + level.index + '.')\n\n mipmaps.push({ data: dst, width: level.width, height: level.height })\n }\n } finally {\n transcoder.delete()\n }\n } else {\n for (let i = 0; i < taskConfig.levels.length; i++) {\n const level = taskConfig.levels[i]\n\n const dstByteLength = getTranscodedImageByteLength(transcoderFormat, level.width, level.height)\n const dst = new Uint8Array(dstByteLength)\n\n const ok = BasisModule.transcodeUASTCImage(\n transcoderFormat,\n dst,\n dstByteLength / blockByteLength,\n level.data,\n getWidthInBlocks(transcoderFormat, level.width),\n getHeightInBlocks(transcoderFormat, level.height),\n level.width,\n level.height,\n level.index,\n 0,\n level.data.byteLength,\n 0,\n hasAlpha,\n false,\n 0,\n 0,\n -1,\n -1,\n )\n\n assert(ok, 'THREE.BasisTextureLoader: transcodeUASTCImage() failed for level ' + level.index + '.')\n\n mipmaps.push({ data: dst, width: level.width, height: level.height })\n }\n }\n\n return { width, height, hasAlpha, mipmaps, format: engineFormat }\n }\n\n function transcode(buffer) {\n const basisFile = new BasisModule.BasisFile(new Uint8Array(buffer))\n\n const basisFormat = basisFile.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S\n const width = basisFile.getImageWidth(0, 0)\n const height = basisFile.getImageHeight(0, 0)\n const levels = basisFile.getNumLevels(0)\n const hasAlpha = basisFile.getHasAlpha()\n\n function cleanup() {\n basisFile.close()\n basisFile.delete()\n }\n\n const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha)\n\n if (!width || !height || !levels) {\n cleanup()\n throw new Error('THREE.BasisTextureLoader:\tInvalid texture')\n }\n\n if (!basisFile.startTranscoding()) {\n cleanup()\n throw new Error('THREE.BasisTextureLoader: .startTranscoding failed')\n }\n\n const mipmaps = []\n\n for (let mip = 0; mip < levels; mip++) {\n const mipWidth = basisFile.getImageWidth(0, mip)\n const mipHeight = basisFile.getImageHeight(0, mip)\n const dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, transcoderFormat))\n\n const status = basisFile.transcodeImage(dst, 0, mip, transcoderFormat, 0, hasAlpha)\n\n if (!status) {\n cleanup()\n throw new Error('THREE.BasisTextureLoader: .transcodeImage failed.')\n }\n\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight })\n }\n\n cleanup()\n\n return { width, height, hasAlpha, mipmaps, format: engineFormat }\n }\n\n //\n\n // Optimal choice of a transcoder target format depends on the Basis format (ETC1S or UASTC),\n // device capabilities, and texture dimensions. The list below ranks the formats separately\n // for ETC1S and UASTC.\n //\n // In some cases, transcoding UASTC to RGBA32 might be preferred for higher quality (at\n // significant memory cost) compared to ETC1/2, BC1/3, and PVRTC. The transcoder currently\n // chooses RGBA32 only as a last resort and does not expose that option to the caller.\n const FORMAT_OPTIONS = [\n {\n if: 'astcSupported',\n basisFormat: [BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],\n engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],\n priorityETC1S: Infinity,\n priorityUASTC: 1,\n needsPowerOfTwo: false,\n },\n {\n if: 'bptcSupported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],\n engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],\n priorityETC1S: 3,\n priorityUASTC: 2,\n needsPowerOfTwo: false,\n },\n {\n if: 'dxtSupported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],\n engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],\n priorityETC1S: 4,\n priorityUASTC: 5,\n needsPowerOfTwo: false,\n },\n {\n if: 'etc2Supported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],\n engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],\n priorityETC1S: 1,\n priorityUASTC: 3,\n needsPowerOfTwo: false,\n },\n {\n if: 'etc1Supported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC1],\n engineFormat: [EngineFormat.RGB_ETC1_Format, EngineFormat.RGB_ETC1_Format],\n priorityETC1S: 2,\n priorityUASTC: 4,\n needsPowerOfTwo: false,\n },\n {\n if: 'pvrtcSupported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],\n engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],\n priorityETC1S: 5,\n priorityUASTC: 6,\n needsPowerOfTwo: true,\n },\n ]\n\n const ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function (a, b) {\n return a.priorityETC1S - b.priorityETC1S\n })\n const UASTC_OPTIONS = FORMAT_OPTIONS.sort(function (a, b) {\n return a.priorityUASTC - b.priorityUASTC\n })\n\n function getTranscoderFormat(basisFormat, width, height, hasAlpha) {\n let transcoderFormat\n let engineFormat\n\n const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS\n\n for (let i = 0; i < options.length; i++) {\n const opt = options[i]\n\n if (!config[opt.if]) continue\n if (!opt.basisFormat.includes(basisFormat)) continue\n if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height))) continue\n\n transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0]\n engineFormat = opt.engineFormat[hasAlpha ? 1 : 0]\n\n return { transcoderFormat, engineFormat }\n }\n\n console.warn('THREE.BasisTextureLoader: No suitable compressed texture format found. Decoding to RGBA32.')\n\n transcoderFormat = TranscoderFormat.RGBA32\n engineFormat = EngineFormat.RGBAFormat\n\n return { transcoderFormat, engineFormat }\n }\n\n function assert(ok, message) {\n if (!ok) throw new Error(message)\n }\n\n function getWidthInBlocks(transcoderFormat, width) {\n return Math.ceil(width / BasisModule.getFormatBlockWidth(transcoderFormat))\n }\n\n function getHeightInBlocks(transcoderFormat, height) {\n return Math.ceil(height / BasisModule.getFormatBlockHeight(transcoderFormat))\n }\n\n function getTranscodedImageByteLength(transcoderFormat, width, height) {\n const blockByteLength = BasisModule.getBytesPerBlockOrPixel(transcoderFormat)\n\n if (BasisModule.formatIsUncompressed(transcoderFormat)) {\n return width * height * blockByteLength\n }\n\n if (transcoderFormat === TranscoderFormat.PVRTC1_4_RGB || transcoderFormat === TranscoderFormat.PVRTC1_4_RGBA) {\n // GL requires extra padding for very small textures:\n // https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_compression_pvrtc.txt\n const paddedWidth = (width + 3) & ~3\n const paddedHeight = (height + 3) & ~3\n\n return (Math.max(8, paddedWidth) * Math.max(8, paddedHeight) * 4 + 7) / 8\n }\n\n return getWidthInBlocks(transcoderFormat, width) * getHeightInBlocks(transcoderFormat, height) * blockByteLength\n }\n\n function isPowerOfTwo(value) {\n if (value <= 2) return true\n\n return (value & (value - 1)) === 0 && value !== 0\n }\n }\n\n constructor(manager) {\n super(manager)\n\n this.transcoderPath = ''\n this.transcoderBinary = null\n this.transcoderPending = null\n\n this.workerLimit = 4\n this.workerPool = []\n this.workerNextTaskID = 1\n this.workerSourceURL = ''\n this.workerConfig = null\n }\n\n setTranscoderPath(path) {\n this.transcoderPath = path\n\n return this\n }\n\n setWorkerLimit(workerLimit) {\n this.workerLimit = workerLimit\n\n return this\n }\n\n detectSupport(renderer) {\n this.workerConfig = {\n astcSupported: renderer.extensions.has('WEBGL_compressed_texture_astc'),\n etc1Supported: renderer.extensions.has('WEBGL_compressed_texture_etc1'),\n etc2Supported: renderer.extensions.has('WEBGL_compressed_texture_etc'),\n dxtSupported: renderer.extensions.has('WEBGL_compressed_texture_s3tc'),\n bptcSupported: renderer.extensions.has('EXT_texture_compression_bptc'),\n pvrtcSupported:\n renderer.extensions.has('WEBGL_compressed_texture_pvrtc') ||\n renderer.extensions.has('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n }\n\n return this\n }\n\n load(url, onLoad, onProgress, onError) {\n const loader = new FileLoader(this.manager)\n\n loader.setResponseType('arraybuffer')\n loader.setWithCredentials(this.withCredentials)\n\n const texture = new CompressedTexture()\n\n loader.load(\n url,\n (buffer) => {\n // Check for an existing task using this buffer. A transferred buffer cannot be transferred\n // again from this thread.\n if (_taskCache.has(buffer)) {\n const cachedTask = _taskCache.get(buffer)\n\n return cachedTask.promise.then(onLoad).catch(onError)\n }\n\n this._createTexture([buffer])\n .then(function (_texture) {\n texture.copy(_texture)\n texture.needsUpdate = true\n\n if (onLoad) onLoad(texture)\n })\n .catch(onError)\n },\n onProgress,\n onError,\n )\n\n return texture\n }\n\n /** Low-level transcoding API, exposed for use by KTX2Loader. */\n parseInternalAsync(options) {\n const { levels } = options\n\n const buffers = new Set()\n\n for (let i = 0; i < levels.length; i++) {\n buffers.add(levels[i].data.buffer)\n }\n\n return this._createTexture(Array.from(buffers), { ...options, lowLevel: true })\n }\n\n /**\n * @param {ArrayBuffer[]} buffers\n * @param {object?} config\n * @return {Promise<CompressedTexture>}\n */\n _createTexture(buffers, config = {}) {\n let worker\n let taskID\n\n const taskConfig = config\n let taskCost = 0\n\n for (let i = 0; i < buffers.length; i++) {\n taskCost += buffers[i].byteLength\n }\n\n const texturePending = this._allocateWorker(taskCost)\n .then((_worker) => {\n worker = _worker\n taskID = this.workerNextTaskID++\n\n return new Promise((resolve, reject) => {\n worker._callbacks[taskID] = { resolve, reject }\n\n worker.postMessage({ type: 'transcode', id: taskID, buffers: buffers, taskConfig: taskConfig }, buffers)\n })\n })\n .then((message) => {\n const { mipmaps, width, height, format } = message\n\n const texture = new CompressedTexture(mipmaps, width, height, format, UnsignedByteType)\n texture.minFilter = mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter\n texture.magFilter = LinearFilter\n texture.generateMipmaps = false\n texture.needsUpdate = true\n\n return texture\n })\n\n // Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)\n texturePending\n .catch(() => true)\n .then(() => {\n if (worker && taskID) {\n worker._taskLoad -= taskCost\n delete worker._callbacks[taskID]\n }\n })\n\n // Cache the task result.\n _taskCache.set(buffers[0], { promise: texturePending })\n\n return texturePending\n }\n\n _initTranscoder() {\n if (!this.transcoderPending) {\n // Load transcoder wrapper.\n const jsLoader = new FileLoader(this.manager)\n jsLoader.setPath(this.transcoderPath)\n jsLoader.setWithCredentials(this.withCredentials)\n const jsContent = new Promise((resolve, reject) => {\n jsLoader.load('basis_transcoder.js', resolve, undefined, reject)\n })\n\n // Load transcoder WASM binary.\n const binaryLoader = new FileLoader(this.manager)\n binaryLoader.setPath(this.transcoderPath)\n binaryLoader.setResponseType('arraybuffer')\n binaryLoader.setWithCredentials(this.withCredentials)\n const binaryContent = new Promise((resolve, reject) => {\n binaryLoader.load('basis_transcoder.wasm', resolve, undefined, reject)\n })\n\n this.transcoderPending = Promise.all([jsContent, binaryContent]).then(([jsContent, binaryContent]) => {\n const fn = BasisTextureLoader.BasisWorker.toString()\n\n const body = [\n '/* constants */',\n 'let _EngineFormat = ' + JSON.stringify(BasisTextureLoader.EngineFormat),\n 'let _TranscoderFormat = ' + JSON.stringify(BasisTextureLoader.TranscoderFormat),\n 'let _BasisFormat = ' + JSON.stringify(BasisTextureLoader.BasisFormat),\n '/* basis_transcoder.js */',\n jsContent,\n '/* worker */',\n fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}')),\n ].join('\\n')\n\n this.workerSourceURL = URL.createObjectURL(new Blob([body]))\n this.transcoderBinary = binaryContent\n })\n }\n\n return this.transcoderPending\n }\n\n _allocateWorker(taskCost) {\n return this._initTranscoder().then(() => {\n if (this.workerPool.length < this.workerLimit) {\n const worker = new Worker(this.workerSourceURL)\n\n worker._callbacks = {}\n worker._taskLoad = 0\n\n worker.postMessage({\n type: 'init',\n config: this.workerConfig,\n transcoderBinary: this.transcoderBinary,\n })\n\n worker.onmessage = function (e) {\n const message = e.data\n\n switch (message.type) {\n case 'transcode':\n worker._callbacks[message.id].resolve(message)\n break\n\n case 'error':\n worker._callbacks[message.id].reject(message)\n break\n\n default:\n console.error('THREE.BasisTextureLoader: Unexpected message, \"' + message.type + '\"')\n }\n }\n\n this.workerPool.push(worker)\n } else {\n this.workerPool.sort(function (a, b) {\n return a._taskLoad > b._taskLoad ? -1 : 1\n })\n }\n\n const worker = this.workerPool[this.workerPool.length - 1]\n\n worker._taskLoad += taskCost\n\n return worker\n })\n }\n\n dispose() {\n for (let i = 0; i < this.workerPool.length; i++) {\n this.workerPool[i].terminate()\n }\n\n this.workerPool.length = 0\n\n return this\n }\n}\n\nexport { BasisTextureLoader }\n"],"names":["jsContent","binaryContent","worker"],"mappings":"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"}
1
+ {"version":3,"file":"BasisTextureLoader.js","sources":["../../src/loaders/BasisTextureLoader.js"],"sourcesContent":["import {\n CompressedTexture,\n FileLoader,\n LinearFilter,\n LinearMipmapLinearFilter,\n Loader,\n RGBAFormat,\n RGBA_ASTC_4x4_Format,\n RGBA_BPTC_Format,\n RGBA_ETC2_EAC_Format,\n RGBA_PVRTC_4BPPV1_Format,\n RGBA_S3TC_DXT5_Format,\n RGB_ETC1_Format,\n RGB_ETC2_Format,\n RGB_PVRTC_4BPPV1_Format,\n RGB_S3TC_DXT1_Format,\n UnsignedByteType,\n} from 'three'\n\n/**\n * Loader for Basis Universal GPU Texture Codec.\n *\n * Basis Universal is a \"supercompressed\" GPU texture and texture video\n * compression system that outputs a highly compressed intermediate file format\n * (.basis) that can be quickly transcoded to a wide variety of GPU texture\n * compression formats.\n *\n * This loader parallelizes the transcoding process across a configurable number\n * of web workers, before transferring the transcoded compressed texture back\n * to the main thread.\n */\n\nconst _taskCache = new WeakMap()\n\nconst BasisTextureLoader = /* @__PURE__ */ (() => {\n class BasisTextureLoader extends Loader {\n /* CONSTANTS */\n\n static BasisFormat = {\n ETC1S: 0,\n UASTC_4x4: 1,\n }\n\n static TranscoderFormat = {\n ETC1: 0,\n ETC2: 1,\n BC1: 2,\n BC3: 3,\n BC4: 4,\n BC5: 5,\n BC7_M6_OPAQUE_ONLY: 6,\n BC7_M5: 7,\n PVRTC1_4_RGB: 8,\n PVRTC1_4_RGBA: 9,\n ASTC_4x4: 10,\n ATC_RGB: 11,\n ATC_RGBA_INTERPOLATED_ALPHA: 12,\n RGBA32: 13,\n RGB565: 14,\n BGR565: 15,\n RGBA4444: 16,\n }\n\n static EngineFormat = {\n RGBAFormat: RGBAFormat,\n RGBA_ASTC_4x4_Format: RGBA_ASTC_4x4_Format,\n RGBA_BPTC_Format: RGBA_BPTC_Format,\n RGBA_ETC2_EAC_Format: RGBA_ETC2_EAC_Format,\n RGBA_PVRTC_4BPPV1_Format: RGBA_PVRTC_4BPPV1_Format,\n RGBA_S3TC_DXT5_Format: RGBA_S3TC_DXT5_Format,\n RGB_ETC1_Format: RGB_ETC1_Format,\n RGB_ETC2_Format: RGB_ETC2_Format,\n RGB_PVRTC_4BPPV1_Format: RGB_PVRTC_4BPPV1_Format,\n RGB_S3TC_DXT1_Format: RGB_S3TC_DXT1_Format,\n }\n\n /* WEB WORKER */\n\n static BasisWorker = function () {\n let config\n let transcoderPending\n let BasisModule\n\n const EngineFormat = _EngineFormat\n const TranscoderFormat = _TranscoderFormat\n const BasisFormat = _BasisFormat\n\n onmessage = function (e) {\n const message = e.data\n\n switch (message.type) {\n case 'init':\n config = message.config\n init(message.transcoderBinary)\n break\n\n case 'transcode':\n transcoderPending.then(() => {\n try {\n const { width, height, hasAlpha, mipmaps, format } = message.taskConfig.lowLevel\n ? transcodeLowLevel(message.taskConfig)\n : transcode(message.buffers[0])\n\n const buffers = []\n\n for (let i = 0; i < mipmaps.length; ++i) {\n buffers.push(mipmaps[i].data.buffer)\n }\n\n self.postMessage(\n { type: 'transcode', id: message.id, width, height, hasAlpha, mipmaps, format },\n buffers,\n )\n } catch (error) {\n console.error(error)\n\n self.postMessage({ type: 'error', id: message.id, error: error.message })\n }\n })\n break\n }\n }\n\n function init(wasmBinary) {\n transcoderPending = new Promise((resolve) => {\n BasisModule = { wasmBinary, onRuntimeInitialized: resolve }\n BASIS(BasisModule)\n }).then(() => {\n BasisModule.initializeBasis()\n })\n }\n\n function transcodeLowLevel(taskConfig) {\n const { basisFormat, width, height, hasAlpha } = taskConfig\n\n const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha)\n\n const blockByteLength = BasisModule.getBytesPerBlockOrPixel(transcoderFormat)\n\n assert(BasisModule.isFormatSupported(transcoderFormat), 'THREE.BasisTextureLoader: Unsupported format.')\n\n const mipmaps = []\n\n if (basisFormat === BasisFormat.ETC1S) {\n const transcoder = new BasisModule.LowLevelETC1SImageTranscoder()\n\n const { endpointCount, endpointsData, selectorCount, selectorsData, tablesData } = taskConfig.globalData\n\n try {\n let ok\n\n ok = transcoder.decodePalettes(endpointCount, endpointsData, selectorCount, selectorsData)\n\n assert(ok, 'THREE.BasisTextureLoader: decodePalettes() failed.')\n\n ok = transcoder.decodeTables(tablesData)\n\n assert(ok, 'THREE.BasisTextureLoader: decodeTables() failed.')\n\n for (let i = 0; i < taskConfig.levels.length; i++) {\n const level = taskConfig.levels[i]\n const imageDesc = taskConfig.globalData.imageDescs[i]\n\n const dstByteLength = getTranscodedImageByteLength(transcoderFormat, level.width, level.height)\n const dst = new Uint8Array(dstByteLength)\n\n ok = transcoder.transcodeImage(\n transcoderFormat,\n dst,\n dstByteLength / blockByteLength,\n level.data,\n getWidthInBlocks(transcoderFormat, level.width),\n getHeightInBlocks(transcoderFormat, level.height),\n level.width,\n level.height,\n level.index,\n imageDesc.rgbSliceByteOffset,\n imageDesc.rgbSliceByteLength,\n imageDesc.alphaSliceByteOffset,\n imageDesc.alphaSliceByteLength,\n imageDesc.imageFlags,\n hasAlpha,\n false,\n 0,\n 0,\n )\n\n assert(ok, 'THREE.BasisTextureLoader: transcodeImage() failed for level ' + level.index + '.')\n\n mipmaps.push({ data: dst, width: level.width, height: level.height })\n }\n } finally {\n transcoder.delete()\n }\n } else {\n for (let i = 0; i < taskConfig.levels.length; i++) {\n const level = taskConfig.levels[i]\n\n const dstByteLength = getTranscodedImageByteLength(transcoderFormat, level.width, level.height)\n const dst = new Uint8Array(dstByteLength)\n\n const ok = BasisModule.transcodeUASTCImage(\n transcoderFormat,\n dst,\n dstByteLength / blockByteLength,\n level.data,\n getWidthInBlocks(transcoderFormat, level.width),\n getHeightInBlocks(transcoderFormat, level.height),\n level.width,\n level.height,\n level.index,\n 0,\n level.data.byteLength,\n 0,\n hasAlpha,\n false,\n 0,\n 0,\n -1,\n -1,\n )\n\n assert(ok, 'THREE.BasisTextureLoader: transcodeUASTCImage() failed for level ' + level.index + '.')\n\n mipmaps.push({ data: dst, width: level.width, height: level.height })\n }\n }\n\n return { width, height, hasAlpha, mipmaps, format: engineFormat }\n }\n\n function transcode(buffer) {\n const basisFile = new BasisModule.BasisFile(new Uint8Array(buffer))\n\n const basisFormat = basisFile.isUASTC() ? BasisFormat.UASTC_4x4 : BasisFormat.ETC1S\n const width = basisFile.getImageWidth(0, 0)\n const height = basisFile.getImageHeight(0, 0)\n const levels = basisFile.getNumLevels(0)\n const hasAlpha = basisFile.getHasAlpha()\n\n function cleanup() {\n basisFile.close()\n basisFile.delete()\n }\n\n const { transcoderFormat, engineFormat } = getTranscoderFormat(basisFormat, width, height, hasAlpha)\n\n if (!width || !height || !levels) {\n cleanup()\n throw new Error('THREE.BasisTextureLoader:\tInvalid texture')\n }\n\n if (!basisFile.startTranscoding()) {\n cleanup()\n throw new Error('THREE.BasisTextureLoader: .startTranscoding failed')\n }\n\n const mipmaps = []\n\n for (let mip = 0; mip < levels; mip++) {\n const mipWidth = basisFile.getImageWidth(0, mip)\n const mipHeight = basisFile.getImageHeight(0, mip)\n const dst = new Uint8Array(basisFile.getImageTranscodedSizeInBytes(0, mip, transcoderFormat))\n\n const status = basisFile.transcodeImage(dst, 0, mip, transcoderFormat, 0, hasAlpha)\n\n if (!status) {\n cleanup()\n throw new Error('THREE.BasisTextureLoader: .transcodeImage failed.')\n }\n\n mipmaps.push({ data: dst, width: mipWidth, height: mipHeight })\n }\n\n cleanup()\n\n return { width, height, hasAlpha, mipmaps, format: engineFormat }\n }\n\n //\n\n // Optimal choice of a transcoder target format depends on the Basis format (ETC1S or UASTC),\n // device capabilities, and texture dimensions. The list below ranks the formats separately\n // for ETC1S and UASTC.\n //\n // In some cases, transcoding UASTC to RGBA32 might be preferred for higher quality (at\n // significant memory cost) compared to ETC1/2, BC1/3, and PVRTC. The transcoder currently\n // chooses RGBA32 only as a last resort and does not expose that option to the caller.\n const FORMAT_OPTIONS = [\n {\n if: 'astcSupported',\n basisFormat: [BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ASTC_4x4, TranscoderFormat.ASTC_4x4],\n engineFormat: [EngineFormat.RGBA_ASTC_4x4_Format, EngineFormat.RGBA_ASTC_4x4_Format],\n priorityETC1S: Infinity,\n priorityUASTC: 1,\n needsPowerOfTwo: false,\n },\n {\n if: 'bptcSupported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.BC7_M5, TranscoderFormat.BC7_M5],\n engineFormat: [EngineFormat.RGBA_BPTC_Format, EngineFormat.RGBA_BPTC_Format],\n priorityETC1S: 3,\n priorityUASTC: 2,\n needsPowerOfTwo: false,\n },\n {\n if: 'dxtSupported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.BC1, TranscoderFormat.BC3],\n engineFormat: [EngineFormat.RGB_S3TC_DXT1_Format, EngineFormat.RGBA_S3TC_DXT5_Format],\n priorityETC1S: 4,\n priorityUASTC: 5,\n needsPowerOfTwo: false,\n },\n {\n if: 'etc2Supported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC2],\n engineFormat: [EngineFormat.RGB_ETC2_Format, EngineFormat.RGBA_ETC2_EAC_Format],\n priorityETC1S: 1,\n priorityUASTC: 3,\n needsPowerOfTwo: false,\n },\n {\n if: 'etc1Supported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.ETC1, TranscoderFormat.ETC1],\n engineFormat: [EngineFormat.RGB_ETC1_Format, EngineFormat.RGB_ETC1_Format],\n priorityETC1S: 2,\n priorityUASTC: 4,\n needsPowerOfTwo: false,\n },\n {\n if: 'pvrtcSupported',\n basisFormat: [BasisFormat.ETC1S, BasisFormat.UASTC_4x4],\n transcoderFormat: [TranscoderFormat.PVRTC1_4_RGB, TranscoderFormat.PVRTC1_4_RGBA],\n engineFormat: [EngineFormat.RGB_PVRTC_4BPPV1_Format, EngineFormat.RGBA_PVRTC_4BPPV1_Format],\n priorityETC1S: 5,\n priorityUASTC: 6,\n needsPowerOfTwo: true,\n },\n ]\n\n const ETC1S_OPTIONS = FORMAT_OPTIONS.sort(function (a, b) {\n return a.priorityETC1S - b.priorityETC1S\n })\n const UASTC_OPTIONS = FORMAT_OPTIONS.sort(function (a, b) {\n return a.priorityUASTC - b.priorityUASTC\n })\n\n function getTranscoderFormat(basisFormat, width, height, hasAlpha) {\n let transcoderFormat\n let engineFormat\n\n const options = basisFormat === BasisFormat.ETC1S ? ETC1S_OPTIONS : UASTC_OPTIONS\n\n for (let i = 0; i < options.length; i++) {\n const opt = options[i]\n\n if (!config[opt.if]) continue\n if (!opt.basisFormat.includes(basisFormat)) continue\n if (opt.needsPowerOfTwo && !(isPowerOfTwo(width) && isPowerOfTwo(height))) continue\n\n transcoderFormat = opt.transcoderFormat[hasAlpha ? 1 : 0]\n engineFormat = opt.engineFormat[hasAlpha ? 1 : 0]\n\n return { transcoderFormat, engineFormat }\n }\n\n console.warn('THREE.BasisTextureLoader: No suitable compressed texture format found. Decoding to RGBA32.')\n\n transcoderFormat = TranscoderFormat.RGBA32\n engineFormat = EngineFormat.RGBAFormat\n\n return { transcoderFormat, engineFormat }\n }\n\n function assert(ok, message) {\n if (!ok) throw new Error(message)\n }\n\n function getWidthInBlocks(transcoderFormat, width) {\n return Math.ceil(width / BasisModule.getFormatBlockWidth(transcoderFormat))\n }\n\n function getHeightInBlocks(transcoderFormat, height) {\n return Math.ceil(height / BasisModule.getFormatBlockHeight(transcoderFormat))\n }\n\n function getTranscodedImageByteLength(transcoderFormat, width, height) {\n const blockByteLength = BasisModule.getBytesPerBlockOrPixel(transcoderFormat)\n\n if (BasisModule.formatIsUncompressed(transcoderFormat)) {\n return width * height * blockByteLength\n }\n\n if (transcoderFormat === TranscoderFormat.PVRTC1_4_RGB || transcoderFormat === TranscoderFormat.PVRTC1_4_RGBA) {\n // GL requires extra padding for very small textures:\n // https://www.khronos.org/registry/OpenGL/extensions/IMG/IMG_texture_compression_pvrtc.txt\n const paddedWidth = (width + 3) & ~3\n const paddedHeight = (height + 3) & ~3\n\n return (Math.max(8, paddedWidth) * Math.max(8, paddedHeight) * 4 + 7) / 8\n }\n\n return getWidthInBlocks(transcoderFormat, width) * getHeightInBlocks(transcoderFormat, height) * blockByteLength\n }\n\n function isPowerOfTwo(value) {\n if (value <= 2) return true\n\n return (value & (value - 1)) === 0 && value !== 0\n }\n }\n\n constructor(manager) {\n super(manager)\n\n this.transcoderPath = ''\n this.transcoderBinary = null\n this.transcoderPending = null\n\n this.workerLimit = 4\n this.workerPool = []\n this.workerNextTaskID = 1\n this.workerSourceURL = ''\n this.workerConfig = null\n }\n\n setTranscoderPath(path) {\n this.transcoderPath = path\n\n return this\n }\n\n setWorkerLimit(workerLimit) {\n this.workerLimit = workerLimit\n\n return this\n }\n\n detectSupport(renderer) {\n this.workerConfig = {\n astcSupported: renderer.extensions.has('WEBGL_compressed_texture_astc'),\n etc1Supported: renderer.extensions.has('WEBGL_compressed_texture_etc1'),\n etc2Supported: renderer.extensions.has('WEBGL_compressed_texture_etc'),\n dxtSupported: renderer.extensions.has('WEBGL_compressed_texture_s3tc'),\n bptcSupported: renderer.extensions.has('EXT_texture_compression_bptc'),\n pvrtcSupported:\n renderer.extensions.has('WEBGL_compressed_texture_pvrtc') ||\n renderer.extensions.has('WEBKIT_WEBGL_compressed_texture_pvrtc'),\n }\n\n return this\n }\n\n load(url, onLoad, onProgress, onError) {\n const loader = new FileLoader(this.manager)\n\n loader.setResponseType('arraybuffer')\n loader.setWithCredentials(this.withCredentials)\n\n const texture = new CompressedTexture()\n\n loader.load(\n url,\n (buffer) => {\n // Check for an existing task using this buffer. A transferred buffer cannot be transferred\n // again from this thread.\n if (_taskCache.has(buffer)) {\n const cachedTask = _taskCache.get(buffer)\n\n return cachedTask.promise.then(onLoad).catch(onError)\n }\n\n this._createTexture([buffer])\n .then(function (_texture) {\n texture.copy(_texture)\n texture.needsUpdate = true\n\n if (onLoad) onLoad(texture)\n })\n .catch(onError)\n },\n onProgress,\n onError,\n )\n\n return texture\n }\n\n /** Low-level transcoding API, exposed for use by KTX2Loader. */\n parseInternalAsync(options) {\n const { levels } = options\n\n const buffers = new Set()\n\n for (let i = 0; i < levels.length; i++) {\n buffers.add(levels[i].data.buffer)\n }\n\n return this._createTexture(Array.from(buffers), { ...options, lowLevel: true })\n }\n\n /**\n * @param {ArrayBuffer[]} buffers\n * @param {object?} config\n * @return {Promise<CompressedTexture>}\n */\n _createTexture(buffers, config = {}) {\n let worker\n let taskID\n\n const taskConfig = config\n let taskCost = 0\n\n for (let i = 0; i < buffers.length; i++) {\n taskCost += buffers[i].byteLength\n }\n\n const texturePending = this._allocateWorker(taskCost)\n .then((_worker) => {\n worker = _worker\n taskID = this.workerNextTaskID++\n\n return new Promise((resolve, reject) => {\n worker._callbacks[taskID] = { resolve, reject }\n\n worker.postMessage({ type: 'transcode', id: taskID, buffers: buffers, taskConfig: taskConfig }, buffers)\n })\n })\n .then((message) => {\n const { mipmaps, width, height, format } = message\n\n const texture = new CompressedTexture(mipmaps, width, height, format, UnsignedByteType)\n texture.minFilter = mipmaps.length === 1 ? LinearFilter : LinearMipmapLinearFilter\n texture.magFilter = LinearFilter\n texture.generateMipmaps = false\n texture.needsUpdate = true\n\n return texture\n })\n\n // Note: replaced '.finally()' with '.catch().then()' block - iOS 11 support (#19416)\n texturePending\n .catch(() => true)\n .then(() => {\n if (worker && taskID) {\n worker._taskLoad -= taskCost\n delete worker._callbacks[taskID]\n }\n })\n\n // Cache the task result.\n _taskCache.set(buffers[0], { promise: texturePending })\n\n return texturePending\n }\n\n _initTranscoder() {\n if (!this.transcoderPending) {\n // Load transcoder wrapper.\n const jsLoader = new FileLoader(this.manager)\n jsLoader.setPath(this.transcoderPath)\n jsLoader.setWithCredentials(this.withCredentials)\n const jsContent = new Promise((resolve, reject) => {\n jsLoader.load('basis_transcoder.js', resolve, undefined, reject)\n })\n\n // Load transcoder WASM binary.\n const binaryLoader = new FileLoader(this.manager)\n binaryLoader.setPath(this.transcoderPath)\n binaryLoader.setResponseType('arraybuffer')\n binaryLoader.setWithCredentials(this.withCredentials)\n const binaryContent = new Promise((resolve, reject) => {\n binaryLoader.load('basis_transcoder.wasm', resolve, undefined, reject)\n })\n\n this.transcoderPending = Promise.all([jsContent, binaryContent]).then(([jsContent, binaryContent]) => {\n const fn = BasisTextureLoader.BasisWorker.toString()\n\n const body = [\n '/* constants */',\n 'let _EngineFormat = ' + JSON.stringify(BasisTextureLoader.EngineFormat),\n 'let _TranscoderFormat = ' + JSON.stringify(BasisTextureLoader.TranscoderFormat),\n 'let _BasisFormat = ' + JSON.stringify(BasisTextureLoader.BasisFormat),\n '/* basis_transcoder.js */',\n jsContent,\n '/* worker */',\n fn.substring(fn.indexOf('{') + 1, fn.lastIndexOf('}')),\n ].join('\\n')\n\n this.workerSourceURL = URL.createObjectURL(new Blob([body]))\n this.transcoderBinary = binaryContent\n })\n }\n\n return this.transcoderPending\n }\n\n _allocateWorker(taskCost) {\n return this._initTranscoder().then(() => {\n if (this.workerPool.length < this.workerLimit) {\n const worker = new Worker(this.workerSourceURL)\n\n worker._callbacks = {}\n worker._taskLoad = 0\n\n worker.postMessage({\n type: 'init',\n config: this.workerConfig,\n transcoderBinary: this.transcoderBinary,\n })\n\n worker.onmessage = function (e) {\n const message = e.data\n\n switch (message.type) {\n case 'transcode':\n worker._callbacks[message.id].resolve(message)\n break\n\n case 'error':\n worker._callbacks[message.id].reject(message)\n break\n\n default:\n console.error('THREE.BasisTextureLoader: Unexpected message, \"' + message.type + '\"')\n }\n }\n\n this.workerPool.push(worker)\n } else {\n this.workerPool.sort(function (a, b) {\n return a._taskLoad > b._taskLoad ? -1 : 1\n })\n }\n\n const worker = this.workerPool[this.workerPool.length - 1]\n\n worker._taskLoad += taskCost\n\n return worker\n })\n }\n\n dispose() {\n for (let i = 0; i < this.workerPool.length; i++) {\n this.workerPool[i].terminate()\n }\n\n this.workerPool.length = 0\n\n return this\n }\n }\n\n return BasisTextureLoader\n})()\n\nexport { BasisTextureLoader }\n"],"names":["jsContent","binaryContent","worker","BasisTextureLoader"],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const THREE = require("three");
4
4
  const fflate = require("fflate");
5
- const hasColorSpace = "colorSpace" in new THREE.Texture();
5
+ const constants = require("../_polyfill/constants.cjs");
6
+ const hasColorSpace = constants.version >= 152;
6
7
  class EXRLoader extends THREE.DataTextureLoader {
7
8
  constructor(manager) {
8
9
  super(manager);