@carbonenginejs/runtime 0.1.0-alpha.4 → 0.1.0-alpha.5

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 (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/dds/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, isDDS } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isDDS };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nimport { decodeBc6h } from \"./bc6h.js\";\nimport { decodeBc7 } from \"./bc7.js\";\n\nexport const OUTPUT_IMAGE = \"image\";\nexport const OUTPUT_TEXTURE = \"texture\";\nexport const OUTPUT_RGBA = \"rgba\";\nexport const OUTPUT_RAW = \"raw\";\nexport const OUTPUT_JSON = \"json\";\n\nexport const DEFAULT_VALUES = Object.freeze({\n emit: OUTPUT_RAW,\n inputType: \"\",\n source: \"\"\n});\n\nconst DDS_HEADER_SIZE = 124;\nconst DDS_PIXELFORMAT_OFFSET = 76;\nconst DDS_FOURCC = 0x00000004;\nconst DDS_RGB = 0x00000040;\nconst DDS_ALPHAPIXELS = 0x00000001;\nconst DDS_ALPHA = 0x00000002;\nconst DDS_LUMINANCE = 0x00020000;\nconst DDSCAPS2_CUBEMAP = 0x00000200;\nconst DDSCAPS2_VOLUME = 0x00200000;\n\nconst DDS_CUBE_FACE_FLAGS = Object.freeze([\n [ \"positive-x\", 0x00000400 ],\n [ \"negative-x\", 0x00000800 ],\n [ \"positive-y\", 0x00001000 ],\n [ \"negative-y\", 0x00002000 ],\n [ \"positive-z\", 0x00004000 ],\n [ \"negative-z\", 0x00008000 ]\n]);\n\nconst FOURCC_PIXEL_FORMATS = Object.freeze({\n DXT1: \"bc1-rgba-unorm\",\n DXT3: \"bc2-rgba-unorm\",\n DXT5: \"bc3-rgba-unorm\",\n ATI1: \"bc4-r-unorm\",\n BC4U: \"bc4-r-unorm\",\n BC4S: \"bc4-r-snorm\",\n ATI2: \"bc5-rg-unorm\",\n BC5U: \"bc5-rg-unorm\",\n BC5S: \"bc5-rg-snorm\"\n});\n\nconst DXGI_PIXEL_FORMATS = Object.freeze({\n 2: \"rgba32float\",\n 6: \"rgb32float\",\n 10: \"rgba16float\",\n 16: \"rg32float\",\n 34: \"rg16float\",\n 41: \"r32float\",\n 54: \"r16float\",\n 28: \"rgba8unorm\",\n 29: \"rgba8unorm-srgb\",\n 49: \"rg8unorm\",\n 61: \"r8unorm\",\n 71: \"bc1-rgba-unorm\",\n 72: \"bc1-rgba-unorm-srgb\",\n 74: \"bc2-rgba-unorm\",\n 75: \"bc2-rgba-unorm-srgb\",\n 77: \"bc3-rgba-unorm\",\n 78: \"bc3-rgba-unorm-srgb\",\n 80: \"bc4-r-unorm\",\n 81: \"bc4-r-snorm\",\n 83: \"bc5-rg-unorm\",\n 84: \"bc5-rg-snorm\",\n 87: \"bgra8unorm\",\n 88: \"bgrx8unorm\",\n 91: \"bgra8unorm-srgb\",\n 93: \"bgrx8unorm-srgb\",\n 95: \"bc6h-rgb-ufloat\",\n 96: \"bc6h-rgb-float\",\n 98: \"bc7-rgba-unorm\",\n 99: \"bc7-rgba-unorm-srgb\"\n});\n\nconst COMPRESSED_PIXEL_FORMATS = new Set([\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n]);\n\nconst DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the DDS format\n * reader.\n */\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\n{\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\n values.inputType = normalizeInputType(values.inputType);\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\n return values;\n}\n\n/** Normalizes the requested input representation for the DDS format reader. */\nexport function normalizeInputType(inputType)\n{\n if (!inputType) return \"\";\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\n return value === \"jpg\" ? \"jpeg\" : value;\n}\n\n/** Normalizes the requested output representation for the DDS format reader. */\nexport function normalizeEmit(emit, inputType, readerName)\n{\n if (emit === undefined || emit === null) return OUTPUT_RAW;\n if (emit === OUTPUT_JSON && inputType) return DEBUG_OUTPUTS[inputType] || OUTPUT_JSON;\n if ([ OUTPUT_IMAGE, OUTPUT_TEXTURE, OUTPUT_RGBA, OUTPUT_RAW, OUTPUT_JSON ].includes(emit)) return emit;\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\n}\n\n/** Returns a byte view over the supplied binary input for the DDS format reader. */\n/** Inspects input using normalized format options for the DDS format reader. */\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const detected = inspectBytes(bytes);\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\n\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\n {\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\n }\n\n return {\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\n sourceFormat,\n byteLength: bytes.byteLength,\n ...detected\n };\n}\n\n/**\n * Reports whether input is supported under normalized format options for the DDS\n * format reader.\n */\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n try\n {\n const metadata = inspectWithValues(input, values, expectedType);\n const hasCompleteTextureData = metadata.isDataComplete !== false;\n const canEmitTexture = metadata.sourceFormat === \"dds\" && metadata.dataOffset > 0 && !!metadata.pixelFormat && hasCompleteTextureData;\n const canEmitRgba = canDecodeDdsToRgba(metadata) && hasCompleteTextureData;\n const textureUnsupportedReason = !metadata.pixelFormat\n ? \"DDS texture format is not recognized yet.\"\n : !hasCompleteTextureData\n ? `DDS texture data is truncated: expected ${metadata.expectedDataBytes} bytes, got ${metadata.dataBytes}.`\n : \"\";\n const variants = metadata.sourceFormat === \"dds\"\n ? [\n {\n kind: \"compressed\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture && metadata.isCompressed,\n reason: metadata.isCompressed ? textureUnsupportedReason : \"DDS is not block-compressed.\"\n },\n {\n kind: \"texture\",\n payloadType: \"texture\",\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\n supported: canEmitTexture,\n reason: canEmitTexture ? \"\" : textureUnsupportedReason\n },\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: canEmitRgba\n ? (isFloatPixelFormat(metadata.pixelFormat) ? \"rgba32float\" : \"rgba8unorm\")\n : \"rgba8unorm\",\n supported: canEmitRgba,\n reason: canEmitRgba\n ? \"\"\n : textureUnsupportedReason || (metadata.nativeTextureOnly\n ? `${metadata.pixelFormat} is available as a native compressed texture only; register a software decoder or alternate representation for RGBA fallback.`\n : \"DDS RGBA decode is not implemented for this pixel format.\")\n },\n { kind: \"raw\", payloadType: \"raw\", codec: \"dds\", supported: true }\n ]\n : [\n { kind: \"rgba\", codec: \"rgba8\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.` }\n ];\n const preferredVariant = variants.find(v => v.supported && v.kind !== \"raw\") || variants.find(v => v.supported);\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind !== \"raw\") ? \"full\" : (variants.some(v => v.supported) ? \"partial\" : \"none\")) : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: preferredVariant?.kind || \"\",\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\n metadata,\n variants,\n warnings: [],\n errors: []\n };\n }\n catch (error)\n {\n return {\n format: expectedType || values.inputType || \"\",\n source: values.source || \"buffer\",\n supported: \"none\",\n confidence: 0,\n preferredOutput: \"\",\n reason: error.message,\n metadata: null,\n variants: [],\n warnings: [],\n errors: [ error.message ]\n };\n }\n}\n\n/** Reads input using normalized format options for the DDS format reader. */\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\n{\n const bytes = asUint8Array(input, \"Image input\");\n const metadata = inspectWithValues(bytes, values, expectedType);\n\n if (values.emit === OUTPUT_RAW)\n {\n return {\n payloadType: \"raw\",\n sourceFormat: metadata.sourceFormat,\n metadata,\n bytes\n };\n }\n\n if (values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return metadata;\n }\n\n if (values.emit === OUTPUT_TEXTURE && metadata.sourceFormat === \"dds\")\n {\n return readDdsTexture(bytes, metadata);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"dds\")\n {\n return readDdsToRgba(bytes, metadata);\n }\n\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\n error.sourceFormat = metadata.sourceFormat;\n error.emit = values.emit;\n throw error;\n}\n\n/** Converts a parsed payload into a JSON-safe value for the DDS format reader. */\n/** The shared JSON policy for this reader, under the name its callers use. */\nexport { toJsonValue };\n\n/**\n * Inspects the supplied bytes without decoding their payload for the DDS format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"dds\" ? inspectDDS(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\n\n\nfunction inspectDDS(bytes)\n{\n const headerSize = readU32LE(bytes, 4);\n const pfOffset = DDS_PIXELFORMAT_OFFSET;\n const pfFlags = readU32LE(bytes, pfOffset + 4);\n const fourCcCode = readU32LE(bytes, pfOffset + 8);\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n const rgbBitCount = readU32LE(bytes, pfOffset + 12);\n const rBitMask = readU32LE(bytes, pfOffset + 16);\n const gBitMask = readU32LE(bytes, pfOffset + 20);\n const bBitMask = readU32LE(bytes, pfOffset + 24);\n const aBitMask = readU32LE(bytes, pfOffset + 28);\n const caps2 = readU32LE(bytes, 112);\n const isCube = !!(caps2 & DDSCAPS2_CUBEMAP);\n const isVolume = !!(caps2 & DDSCAPS2_VOLUME);\n const cubeFaces = getDdsCubeFaces(caps2);\n const hasDx10 = fourCc === \"DX10\" && bytes.byteLength >= 148;\n const dxgiFormat = hasDx10 ? readU32LE(bytes, 128) : 0;\n const resourceDimension = hasDx10 ? readU32LE(bytes, 132) : 0;\n const declaredArraySize = hasDx10 ? readU32LE(bytes, 140) : 1;\n const dataOffset = hasDx10 ? 148 : 128;\n const pixelFormat = getDdsPixelFormat({ pfFlags, fourCc, fourCcCode, rgbBitCount, rBitMask, gBitMask, bBitMask, aBitMask, dxgiFormat });\n const width = readU32LE(bytes, 16);\n const height = readU32LE(bytes, 12);\n const depth = readU32LE(bytes, 24);\n const mipCount = Math.max(readU32LE(bytes, 28), 1);\n const dataBytes = Math.max(bytes.byteLength - dataOffset, 0);\n const expectedFor = (count) => (pixelFormat ? getDdsExpectedDataBytes({\n pixelFormat,\n width,\n height,\n depth,\n mipCount,\n arraySize: count,\n isCube,\n isVolume\n }) : null);\n\n // A CUBE'S ARRAY SIZE IS AMBIGUOUS, and the file's own length settles it.\n //\n // The DX10 spec counts CUBES in that field, so 6 means six cubes - thirty\n // six surfaces. Frontier's `hydrogen_alpha_nebula_cube_refl.dds` writes 6\n // meaning six FACES, and the spec reading made this reader expect exactly\n // six times the data the file holds and reject it as truncated.\n //\n // Carbon does not disambiguate because it cannot express a cube array at\n // all: `CopyHeaderValuesToMembers` passes no array size for a cube\n // (`imageio/Tr2DdsHandler.cpp:445-447`) and `BitmapDimensions` forces\n // `m_arraySize( type == TEX_TYPE_CUBE ? 6 : 1 )`\n // (`imageio/include/BitmapDimensions.h:122`). Reading it the donor's way\n // would fix this file and silently drop every genuine cube array, which\n // this reader does support and is tested for.\n //\n // So neither reading is assumed. The declared count is kept when the data\n // is there for it, and dropped to one cube only when it is not AND one cube\n // accounts for the file exactly. A non-conformant writer is detectable; a\n // guess is not.\n let arraySize = declaredArraySize;\n let expectedDataBytes = expectedFor(arraySize);\n\n if (isCube && declaredArraySize > 1 && expectedDataBytes !== null && dataBytes < expectedDataBytes)\n {\n const single = expectedFor(1);\n\n if (single !== null && dataBytes === single)\n {\n arraySize = 1;\n expectedDataBytes = single;\n }\n }\n\n return {\n sourceFormat: \"dds\",\n headerSize,\n width,\n height,\n depth,\n mipCount,\n pitchOrLinearSize: readU32LE(bytes, 20),\n pfFlags,\n fourCc,\n fourCcCode,\n rgbBitCount,\n rBitMask,\n gBitMask,\n bBitMask,\n aBitMask,\n caps2,\n hasDx10,\n dxgiFormat,\n resourceDimension,\n arraySize,\n dataOffset,\n dataBytes,\n expectedDataBytes,\n isDataComplete: expectedDataBytes !== null && dataBytes >= expectedDataBytes,\n missingDataBytes: expectedDataBytes === null ? null : Math.max(expectedDataBytes - dataBytes, 0),\n extraDataBytes: expectedDataBytes === null ? null : Math.max(dataBytes - expectedDataBytes, 0),\n faces: isCube ? 6 : 1,\n cubeFaces,\n isCubeComplete: isCube && cubeFaces.length === 6,\n isCube,\n isVolume,\n dimension: isVolume ? \"3d\" : (isCube ? \"cube\" : \"2d\"),\n pixelFormat,\n textureFormat: pixelFormat || fourCc || \"dds-legacy\",\n isCompressed: COMPRESSED_PIXEL_FORMATS.has(pixelFormat),\n nativeTextureOnly: COMPRESSED_PIXEL_FORMATS.has(pixelFormat) && !canDecodeDdsToRgba({ pixelFormat }),\n hasAlpha: !!(pfFlags & DDS_ALPHAPIXELS) || /rgba|bgra/u.test(pixelFormat),\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction readDdsTexture(bytes, metadata)\n{\n if (!metadata.pixelFormat)\n {\n const error = new Error(\"dds: texture format is not recognized yet\");\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresources = buildDdsSubresources(bytes, metadata);\n return {\n payloadType: OUTPUT_TEXTURE,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n depth: metadata.depth,\n faces: metadata.faces,\n cubeFaces: metadata.cubeFaces,\n isCubeComplete: metadata.isCubeComplete,\n dimension: metadata.dimension,\n mipCount: metadata.mipCount,\n arraySize: metadata.arraySize,\n pixelFormat: metadata.pixelFormat,\n isCompressed: metadata.isCompressed,\n dataBytes: metadata.dataBytes,\n expectedDataBytes: metadata.expectedDataBytes,\n isDataComplete: metadata.isDataComplete,\n missingDataBytes: metadata.missingDataBytes,\n extraDataBytes: metadata.extraDataBytes,\n subresources,\n metadata,\n data: bytes.subarray(metadata.dataOffset, metadata.dataOffset + subresources.reduce((sum, entry) => sum + entry.byteLength, 0))\n };\n}\n\n/**\n * Block formats one slice can be decoded from, by pixel format alone.\n *\n * Narrower than `canDecodeDdsToRgba`, which answers for a whole file and\n * includes the uncompressed formats. A caller holding one slice of a volume has\n * no file to ask about, only a format name.\n *\n * @param {String} pixelFormat\n * @returns {Boolean}\n */\nexport function canDecodeDdsBlockFormat(pixelFormat)\n{\n return /^bc[1-7]/u.test(String(pixelFormat ?? \"\"));\n}\n\nfunction canDecodeDdsToRgba(metadata)\n{\n return [\n \"rgba32float\",\n \"rgb32float\",\n \"rgba16float\",\n \"rg32float\",\n \"rg16float\",\n \"r32float\",\n \"r16float\",\n \"rgba8unorm\",\n \"rgba8unorm-srgb\",\n \"bgra8unorm\",\n \"bgra8unorm-srgb\",\n \"bgrx8unorm\",\n \"bgrx8unorm-srgb\",\n \"rgbx8unorm\",\n \"bgr8unorm\",\n \"l8unorm\",\n \"l8a8unorm\",\n \"a8unorm\",\n \"rg8unorm\",\n \"r8unorm\",\n \"bc1-rgba-unorm\",\n \"bc1-rgba-unorm-srgb\",\n \"bc2-rgba-unorm\",\n \"bc2-rgba-unorm-srgb\",\n \"bc3-rgba-unorm\",\n \"bc3-rgba-unorm-srgb\",\n \"bc4-r-unorm\",\n \"bc4-r-snorm\",\n \"bc5-rg-unorm\",\n \"bc5-rg-snorm\",\n \"bc6h-rgb-ufloat\",\n \"bc6h-rgb-float\",\n \"bc7-rgba-unorm\",\n \"bc7-rgba-unorm-srgb\"\n ].includes(metadata.pixelFormat);\n}\n\nfunction readDdsToRgba(bytes, metadata)\n{\n if (!canDecodeDdsToRgba(metadata))\n {\n const error = new Error(`dds: RGBA decode is not implemented for ${metadata.pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n }\n\n const subresource = buildDdsSubresources(bytes, metadata)[0];\n const isFloat = isFloatPixelFormat(metadata.pixelFormat);\n const depth = Math.max(subresource.depth ?? 1, 1);\n\n // Every slice, not just the first.\n //\n // This decoded subresource[0] with the source's own width and height, which\n // for a volume reads one slice out of a buffer holding all of them and\n // returns it as though it were the image. A 128-cube came back as 65,536\n // bytes with `depth` absent from the payload, so a caller could not even\n // tell it had been handed 1/128th of what it asked for. Silent and\n // plausible, which is worse than an error: nothing downstream can detect it.\n //\n // Slices are `slicePitch` apart and each decodes exactly like a 2D image of\n // the same dimensions, so this is a loop rather than a second decoder.\n const slices = [];\n\n for (let z = 0; z < depth; z++)\n {\n const start = metadata.dataOffset + subresource.offset + (z * subresource.slicePitch);\n const source = bytes.subarray(start, start + subresource.slicePitch);\n\n slices.push(decodeDdsSlice(source, metadata, subresource));\n }\n\n const rgba = depth === 1 ? slices[0] : concatTypedArrays(slices);\n const sliceBytes = metadata.width * metadata.height * (isFloat ? 16 : 4);\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"dds\",\n width: metadata.width,\n height: metadata.height,\n // Always present, and 1 for a flat image. An optional field that only\n // appears for volumes is one every caller forgets to look for.\n depth,\n isVolume: depth > 1,\n pixelFormat: isFloat ? \"rgba32float\" : \"rgba8unorm\",\n strideBytes: metadata.width * (isFloat ? 16 : 4),\n // What one z-slice occupies, so a caller can cut the buffer up without\n // recomputing it from a pixel format it should not have to know about.\n sliceBytes,\n origin: \"top-left\",\n colorSpace: isFloat ? \"linear\" : (metadata.pixelFormat.endsWith(\"-srgb\") ? \"srgb\" : \"unknown\"),\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n/** Decodes one 2D slice of a DDS subresource to RGBA, whatever its block format. */\nexport function decodeDdsSlice(source, metadata, subresource)\n{\n const { width, height } = metadata;\n const pitch = subresource.rowPitch;\n const format = metadata.pixelFormat;\n\n if (format.startsWith(\"bc1-\")) return decodeBc1(source, width, height, pitch);\n if (format.startsWith(\"bc2-\")) return decodeBc2(source, width, height, pitch);\n if (format.startsWith(\"bc3-\")) return decodeBc3(source, width, height, pitch);\n if (format.startsWith(\"bc4-\")) return decodeBc4(source, width, height, pitch, format.endsWith(\"-snorm\"));\n if (format.startsWith(\"bc5-\")) return decodeBc5(source, width, height, pitch, format.endsWith(\"-snorm\"));\n if (format.startsWith(\"bc6h-\")) return decodeBc6h(source, width, height, pitch, format === \"bc6h-rgb-float\");\n if (format.startsWith(\"bc7-\")) return decodeBc7(source, width, height, pitch);\n\n return isFloatPixelFormat(format) ? decodeFloatUncompressed(source, metadata) : decodeUncompressed(source, metadata);\n}\n\n/** Joins same-typed slice buffers into one, preserving the element type. */\nfunction concatTypedArrays(parts)\n{\n let total = 0;\n\n for (const part of parts) total += part.length;\n\n const out = new parts[0].constructor(total);\n let at = 0;\n\n for (const part of parts)\n {\n out.set(part, at);\n at += part.length;\n }\n\n return out;\n}\n\nfunction buildDdsSubresources(bytes, metadata)\n{\n const subresources = [];\n let offset = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n const arrayIndex = metadata.isCube ? Math.floor(layer / 6) : layer;\n const face = metadata.isCube ? layer % 6 : 0;\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n const layout = getDdsLevelLayout(metadata.pixelFormat, width, height, depth);\n if (offset + layout.byteLength > bytes.byteLength - metadata.dataOffset)\n {\n const error = new Error(\"dds: texture data is truncated\");\n error.code = \"CJS_FORMAT_TRUNCATED\";\n error.sourceFormat = metadata.sourceFormat;\n error.expectedDataBytes = metadata.expectedDataBytes;\n error.dataBytes = metadata.dataBytes;\n error.missingDataBytes = metadata.missingDataBytes;\n throw error;\n }\n subresources.push({\n mip,\n layer,\n arrayIndex,\n face,\n offset,\n byteLength: layout.byteLength,\n rowPitch: layout.rowPitch,\n slicePitch: layout.slicePitch,\n width,\n height,\n depth\n });\n offset += layout.byteLength;\n }\n }\n\n return subresources;\n}\n\nfunction getDdsExpectedDataBytes(metadata)\n{\n let total = 0;\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\n\n for (let layer = 0; layer < layers; layer++)\n {\n for (let mip = 0; mip < metadata.mipCount; mip++)\n {\n const width = Math.max(metadata.width >> mip, 1);\n const height = Math.max(metadata.height >> mip, 1);\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\n total += getDdsLevelLayout(metadata.pixelFormat, width, height, depth).byteLength;\n }\n }\n\n return total;\n}\n\nfunction getDdsCubeFaces(caps2)\n{\n if (!(caps2 & DDSCAPS2_CUBEMAP))\n {\n return [];\n }\n return DDS_CUBE_FACE_FLAGS\n .filter((entry) => !!(caps2 & entry[1]))\n .map((entry) => entry[0]);\n}\n\nfunction getDdsLevelLayout(pixelFormat, width, height, depth)\n{\n const blockBytes = pixelFormat.startsWith(\"bc1-\") || pixelFormat.startsWith(\"bc4-\") ? 8 :\n pixelFormat.startsWith(\"bc\") ? 16 : 0;\n if (blockBytes)\n {\n const blocksWide = Math.max(Math.ceil(width / 4), 1);\n const blocksHigh = Math.max(Math.ceil(height / 4), 1);\n const rowPitch = blocksWide * blockBytes;\n const slicePitch = rowPitch * blocksHigh;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n }\n\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"rg16float\": 4,\n \"r32float\": 4,\n \"r16float\": 2,\n \"rgba8unorm\": 4,\n \"rgba8unorm-srgb\": 4,\n \"bgra8unorm\": 4,\n \"bgra8unorm-srgb\": 4,\n \"bgrx8unorm\": 4,\n \"bgrx8unorm-srgb\": 4,\n \"rgbx8unorm\": 4,\n \"bgr8unorm\": 3,\n \"l8a8unorm\": 2,\n \"l8unorm\": 1,\n \"a8unorm\": 1,\n \"rg8unorm\": 2,\n \"r8unorm\": 1\n }[pixelFormat];\n if (!bytesPerPixel)\n {\n const error = new Error(`dds: cannot calculate subresource layout for ${pixelFormat || \"unknown\"}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n throw error;\n }\n const rowPitch = width * bytesPerPixel;\n const slicePitch = rowPitch * height;\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\n}\n\nfunction decodeUncompressed(source, metadata)\n{\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n // Legacy luminance/alpha pixels are packed too: L8/A8 use one byte,\n // L8A8 uses two. A four-byte stride skips samples and blacks out most\n // of the decoded surface (including planet height maps).\n const bytesPerPixel = metadata.pixelFormat === \"bgr8unorm\" ? 3 :\n [ \"rg8unorm\", \"l8a8unorm\" ].includes(metadata.pixelFormat) ? 2 :\n [ \"r8unorm\", \"l8unorm\", \"a8unorm\" ].includes(metadata.pixelFormat) ? 1 : 4;\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n if (metadata.pixelFormat.startsWith(\"bgra\") || metadata.pixelFormat.startsWith(\"bgrx\"))\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = metadata.pixelFormat.startsWith(\"bgrx\") ? 255 : source[sourceOffset + 3];\n }\n else if (metadata.pixelFormat === \"bgr8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset + 2];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat.startsWith(\"rgbx\"))\n {\n // Fourth byte is padding, not alpha.\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = source[sourceOffset + 2];\n rgba[outputOffset + 3] = 255;\n }\n else if (metadata.pixelFormat === \"l8unorm\" || metadata.pixelFormat === \"l8a8unorm\")\n {\n // Luminance replicates its one channel across RGB.\n const luminance = source[sourceOffset];\n rgba[outputOffset] = luminance;\n rgba[outputOffset + 1] = luminance;\n rgba[outputOffset + 2] = luminance;\n rgba[outputOffset + 3] = metadata.pixelFormat === \"l8a8unorm\" ? source[sourceOffset + 1] : 255;\n }\n else if (metadata.pixelFormat === \"a8unorm\")\n {\n rgba[outputOffset] = 0;\n rgba[outputOffset + 1] = 0;\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = source[sourceOffset];\n }\n else if (metadata.pixelFormat === \"rg8unorm\")\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = source[sourceOffset + 1];\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n }\n else\n {\n rgba[outputOffset] = source[sourceOffset];\n rgba[outputOffset + 1] = bytesPerPixel > 1 ? source[sourceOffset + 1] : source[sourceOffset];\n rgba[outputOffset + 2] = bytesPerPixel > 2 ? source[sourceOffset + 2] : source[sourceOffset];\n rgba[outputOffset + 3] = bytesPerPixel > 3 ? source[sourceOffset + 3] : 255;\n }\n }\n return rgba;\n}\n\nfunction decodeFloatUncompressed(source, metadata)\n{\n const rgba = new Float32Array(metadata.width * metadata.height * 4);\n const view = new DataView(source.buffer, source.byteOffset, source.byteLength);\n const bytesPerPixel = {\n \"rgba32float\": 16,\n \"rgb32float\": 12,\n \"rgba16float\": 8,\n \"rg32float\": 8,\n \"rg16float\": 4,\n \"r32float\": 4,\n \"r16float\": 2\n }[metadata.pixelFormat];\n\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\n {\n const sourceOffset = pixel * bytesPerPixel;\n const outputOffset = pixel * 4;\n let red, green, blue, alpha;\n if (metadata.pixelFormat === \"rgba32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = view.getFloat32(sourceOffset + 12, true);\n }\n else if (metadata.pixelFormat === \"rgb32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = view.getFloat32(sourceOffset + 8, true);\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rgba16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = halfToFloat(view.getUint16(sourceOffset + 4, true));\n alpha = halfToFloat(view.getUint16(sourceOffset + 6, true));\n }\n else if (metadata.pixelFormat === \"rg32float\")\n {\n red = view.getFloat32(sourceOffset, true);\n green = view.getFloat32(sourceOffset + 4, true);\n blue = 0;\n alpha = 1;\n }\n else if (metadata.pixelFormat === \"rg16float\")\n {\n red = halfToFloat(view.getUint16(sourceOffset, true));\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\n blue = 0;\n alpha = 1;\n }\n else\n {\n red = metadata.pixelFormat === \"r16float\"\n ? halfToFloat(view.getUint16(sourceOffset, true))\n : view.getFloat32(sourceOffset, true);\n green = red;\n blue = red;\n alpha = 1;\n }\n rgba[outputOffset] = red;\n rgba[outputOffset + 1] = green;\n rgba[outputOffset + 2] = blue;\n rgba[outputOffset + 3] = alpha;\n }\n return rgba;\n}\n\nfunction isFloatPixelFormat(pixelFormat)\n{\n return typeof pixelFormat === \"string\" && (pixelFormat.startsWith(\"bc6h-\") ||\n [ \"rgba32float\", \"rgb32float\", \"rgba16float\", \"rg32float\", \"rg16float\", \"r32float\",\n \"r16float\" ].includes(pixelFormat));\n}\n\nfunction halfToFloat(value)\n{\n const sign = (value & 0x8000) ? -1 : 1;\n const exponent = (value >>> 10) & 0x1f;\n const mantissa = value & 0x03ff;\n if (exponent === 0)\n {\n return sign * Math.pow(2, -14) * (mantissa / 1024);\n }\n if (exponent === 0x1f)\n {\n return mantissa === 0 ? sign * Infinity : NaN;\n }\n return sign * Math.pow(2, exponent - 15) * (1 + mantissa / 1024);\n}\n\nfunction decodeBc1(source, width, height, rowPitch)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 8;\n const c0 = source[blockOffset] | (source[blockOffset + 1] << 8);\n const c1 = source[blockOffset + 2] | (source[blockOffset + 3] << 8);\n const colors = decodeBc1Colors(c0, c1);\n const indices = source[blockOffset + 4] |\n (source[blockOffset + 5] << 8) |\n (source[blockOffset + 6] << 16) |\n (source[blockOffset + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n rgba.set(color, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc2(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alphaNibble = (source[blockOffset + y * 2 + Math.floor(x / 2)] >>> ((x % 2) * 4)) & 0x0f;\n return alphaNibble * 17;\n }, 8);\n}\n\nfunction decodeBc3(source, width, height, rowPitch)\n{\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\n {\n const alpha0 = source[blockOffset], alpha1 = source[blockOffset + 1];\n const alphaValues = alpha0 > alpha1\n ? [ alpha0, alpha1,\n Math.round((6 * alpha0 + alpha1) / 7),\n Math.round((5 * alpha0 + 2 * alpha1) / 7),\n Math.round((4 * alpha0 + 3 * alpha1) / 7),\n Math.round((3 * alpha0 + 4 * alpha1) / 7),\n Math.round((2 * alpha0 + 5 * alpha1) / 7),\n Math.round((alpha0 + 6 * alpha1) / 7) ]\n : [ alpha0, alpha1,\n Math.round((4 * alpha0 + alpha1) / 5),\n Math.round((3 * alpha0 + 2 * alpha1) / 5),\n Math.round((2 * alpha0 + 3 * alpha1) / 5),\n Math.round((alpha0 + 4 * alpha1) / 5),\n 0, 255 ];\n let alphaBits = 0n;\n for (let i = 0; i < 6; i++) alphaBits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n return alphaValues[Number((alphaBits >> BigInt((y * 4 + x) * 3)) & 7n)];\n }, 8);\n}\n\nfunction decodeBc4(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 8, (blockOffset, x, y, outputOffset) =>\n {\n const value = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset] = value;\n rgba[outputOffset + 1] = value;\n rgba[outputOffset + 2] = value;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc5(source, width, height, rowPitch, signed)\n{\n const rgba = new Uint8Array(width * height * 4);\n forEachBcPixel(width, height, rowPitch, 16, (blockOffset, x, y, outputOffset) =>\n {\n rgba[outputOffset] = decodeBc4Value(source, blockOffset, x, y, signed);\n rgba[outputOffset + 1] = decodeBc4Value(source, blockOffset + 8, x, y, signed);\n rgba[outputOffset + 2] = 0;\n rgba[outputOffset + 3] = 255;\n });\n return rgba;\n}\n\nfunction decodeBc4Value(source, blockOffset, x, y, signed)\n{\n const endpoint0 = signed ? decodeSnormByte(source[blockOffset]) : source[blockOffset];\n const endpoint1 = signed ? decodeSnormByte(source[blockOffset + 1]) : source[blockOffset + 1];\n const values = endpoint0 > endpoint1\n ? [ endpoint0, endpoint1,\n (6 * endpoint0 + endpoint1) / 7,\n (5 * endpoint0 + 2 * endpoint1) / 7,\n (4 * endpoint0 + 3 * endpoint1) / 7,\n (3 * endpoint0 + 4 * endpoint1) / 7,\n (2 * endpoint0 + 5 * endpoint1) / 7,\n (endpoint0 + 6 * endpoint1) / 7 ]\n : [ endpoint0, endpoint1,\n (4 * endpoint0 + endpoint1) / 5,\n (3 * endpoint0 + 2 * endpoint1) / 5,\n (2 * endpoint0 + 3 * endpoint1) / 5,\n (endpoint0 + 4 * endpoint1) / 5,\n signed ? -1 : 0,\n signed ? 1 : 255 ];\n let bits = 0n;\n for (let i = 0; i < 6; i++) bits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\n const value = values[Number((bits >> BigInt((y * 4 + x) * 3)) & 7n)];\n return signed ? Math.max(0, Math.min(255, Math.round((value + 1) * 127.5))) : Math.round(value);\n}\n\nfunction decodeSnormByte(value)\n{\n const signed = value > 127 ? value - 256 : value;\n return Math.max(-1, signed / 127);\n}\n\nfunction forEachBcPixel(width, height, rowPitch, blockBytes, callback)\n{\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * blockBytes;\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX < width && outputY < height)\n {\n callback(blockOffset, x, y, (outputY * width + outputX) * 4);\n }\n }\n }\n }\n }\n}\n\nfunction decodeBcAlphaColor(source, width, height, rowPitch, alphaAt, colorOffset = 0)\n{\n const rgba = new Uint8Array(width * height * 4);\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\n {\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\n {\n const blockOffset = blockY * rowPitch + blockX * 16;\n const colorOffsetInBlock = blockOffset + colorOffset;\n const c0 = source[colorOffsetInBlock] | (source[colorOffsetInBlock + 1] << 8);\n const c1 = source[colorOffsetInBlock + 2] | (source[colorOffsetInBlock + 3] << 8);\n const colors = decodeBc1Colors(c0, c1, true);\n const indices = source[colorOffsetInBlock + 4] |\n (source[colorOffsetInBlock + 5] << 8) |\n (source[colorOffsetInBlock + 6] << 16) |\n (source[colorOffsetInBlock + 7] << 24);\n for (let y = 0; y < 4; y++)\n {\n for (let x = 0; x < 4; x++)\n {\n const outputX = blockX * 4 + x;\n const outputY = blockY * 4 + y;\n if (outputX >= width || outputY >= height) continue;\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\n const outputOffset = (outputY * width + outputX) * 4;\n rgba[outputOffset] = color[0];\n rgba[outputOffset + 1] = color[1];\n rgba[outputOffset + 2] = color[2];\n rgba[outputOffset + 3] = alphaAt(blockOffset, x, y);\n }\n }\n }\n }\n return rgba;\n}\n\nfunction decodeBc1Colors(c0, c1, forceFourColor = false)\n{\n const first = decode565(c0);\n const second = decode565(c1);\n const colors = [ first, second ];\n if (c0 > c1 || forceFourColor)\n {\n colors.push([\n Math.round((2 * first[0] + second[0]) / 3),\n Math.round((2 * first[1] + second[1]) / 3),\n Math.round((2 * first[2] + second[2]) / 3),\n 255\n ], [\n Math.round((first[0] + 2 * second[0]) / 3),\n Math.round((first[1] + 2 * second[1]) / 3),\n Math.round((first[2] + 2 * second[2]) / 3),\n 255\n ]);\n }\n else\n {\n colors.push([\n Math.round((first[0] + second[0]) / 2),\n Math.round((first[1] + second[1]) / 2),\n Math.round((first[2] + second[2]) / 2),\n 255\n ], [ 0, 0, 0, 0 ]);\n }\n return colors;\n}\n\nfunction decode565(value)\n{\n return [\n Math.round(((value >>> 11) & 0x1f) * 255 / 31),\n Math.round(((value >>> 5) & 0x3f) * 255 / 63),\n Math.round((value & 0x1f) * 255 / 31),\n 255\n ];\n}\n\n/**\n * The floating-point `D3DFORMAT` enumerators, which a legacy DDS stores as a\n * NUMBER in the four-character-code field rather than as four characters.\n *\n * That is the whole trap. `DDPF_FOURCC` is set and the field reads `114`, which\n * as text is `\"r\\0\\0\\0\"` and matches nothing, so a reader that only compares\n * character codes reports an unrecognized format for a file whose format is\n * perfectly ordinary. Every one of these six is a plain uncompressed surface.\n *\n * Two were mapped when BC6H support landed and the other four were not, so\n * `A16B16G16R16F` and `A32B32G32R32F` loaded while their one- and two-channel\n * siblings did not. Found 2026-08-16 on\n * `res:/dx9/model/ship/amarr/battleship/ab3/effects/ab3_traffic.dds`, a 256x9\n * `R32F` gradient.\n */\nconst LEGACY_D3DFMT_PIXEL_FORMATS = {\n 111: \"r16float\",\n 112: \"rg16float\",\n 113: \"rgba16float\",\n 114: \"r32float\",\n 115: \"rg32float\",\n 116: \"rgba32float\"\n};\n\nfunction getDdsPixelFormat(format)\n{\n if (format.dxgiFormat) return DXGI_PIXEL_FORMATS[format.dxgiFormat] || \"\";\n if ((format.pfFlags & DDS_FOURCC) && format.fourCc)\n {\n return FOURCC_PIXEL_FORMATS[format.fourCc] || LEGACY_D3DFMT_PIXEL_FORMATS[format.fourCcCode] || \"\";\n }\n if (format.pfFlags & DDS_RGB)\n {\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n format.aBitMask === 0xff000000) return \"rgba8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n format.aBitMask === 0xff000000) return \"bgra8unorm\";\n // D3DFMT_X8R8G8B8 / D3DFMT_X8B8G8R8: 32bpp with no alpha channel.\n // DDPF_ALPHAPIXELS is clear and the alpha mask is zero, so the fourth\n // byte is padding and reads as opaque.\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff &&\n !format.aBitMask) return \"bgrx8unorm\";\n if (format.rgbBitCount === 32 &&\n format.rBitMask === 0x000000ff &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x00ff0000 &&\n !format.aBitMask) return \"rgbx8unorm\";\n if (format.rgbBitCount === 24 &&\n format.rBitMask === 0x00ff0000 &&\n format.gBitMask === 0x0000ff00 &&\n format.bBitMask === 0x000000ff) return \"bgr8unorm\";\n }\n // Single-channel masks are authored both ways: some declare DDPF_LUMINANCE,\n // others DDPF_RGB with only a red mask. Both mean one channel replicated\n // across RGB, which is not the same as r8unorm (that samples as red only).\n if ((format.pfFlags & DDS_RGB) &&\n format.rgbBitCount === 8 &&\n format.rBitMask === 0x000000ff &&\n !format.gBitMask &&\n !format.bBitMask &&\n !format.aBitMask) return \"l8unorm\";\n if (format.pfFlags & DDS_LUMINANCE)\n {\n if (format.rgbBitCount === 8 && !(format.pfFlags & DDS_ALPHAPIXELS)) return \"l8unorm\";\n if (format.rgbBitCount === 16 && (format.pfFlags & DDS_ALPHAPIXELS)) return \"l8a8unorm\";\n }\n // D3DFMT_A8: alpha only.\n if ((format.pfFlags & DDS_ALPHA) && format.rgbBitCount === 8) return \"a8unorm\";\n return \"\";\n}\n\n\n\n\n\r\n"],"names":["OUTPUT_IMAGE","OUTPUT_TEXTURE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DDS_PIXELFORMAT_OFFSET","DDS_FOURCC","DDS_RGB","DDS_ALPHAPIXELS","DDS_ALPHA","DDS_LUMINANCE","DDSCAPS2_CUBEMAP","DDSCAPS2_VOLUME","DDS_CUBE_FACE_FLAGS","FOURCC_PIXEL_FORMATS","DXT1","DXT3","DXT5","ATI1","BC4U","BC4S","ATI2","BC5U","BC5S","DXGI_PIXEL_FORMATS","COMPRESSED_PIXEL_FORMATS","Set","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","hasCompleteTextureData","isDataComplete","canEmitTexture","dataOffset","pixelFormat","canEmitRgba","canDecodeDdsToRgba","textureUnsupportedReason","expectedDataBytes","dataBytes","variants","kind","codec","textureFormat","supported","isCompressed","reason","isFloatPixelFormat","nativeTextureOnly","toUpperCase","preferredVariant","find","v","format","some","confidence","preferredOutput","warnings","errors","error","message","readWithValues","readDdsTexture","readDdsToRgba","Error","code","identifyImageBytes","inspectDDS","foreignImageRecord","headerSize","readU32LE","pfOffset","pfFlags","fourCcCode","fourCc","fromCharCode","rgbBitCount","rBitMask","gBitMask","bBitMask","aBitMask","caps2","isCube","isVolume","cubeFaces","getDdsCubeFaces","hasDx10","dxgiFormat","resourceDimension","declaredArraySize","getDdsPixelFormat","width","height","depth","mipCount","Math","max","expectedFor","count","getDdsExpectedDataBytes","arraySize","single","pitchOrLinearSize","missingDataBytes","extraDataBytes","faces","isCubeComplete","length","dimension","has","hasAlpha","test","hasMipMaps","subresources","buildDdsSubresources","data","subarray","reduce","sum","entry","canDecodeDdsBlockFormat","subresource","isFloat","slices","z","start","offset","slicePitch","push","decodeDdsSlice","rgba","concatTypedArrays","sliceBytes","strideBytes","origin","colorSpace","endsWith","alphaMode","pitch","rowPitch","startsWith","decodeBc1","decodeBc2","decodeBc3","decodeBc4","decodeBc5","decodeBc6h","decodeBc7","decodeFloatUncompressed","decodeUncompressed","parts","total","part","out","constructor","at","set","layers","layer","arrayIndex","floor","face","mip","layout","getDdsLevelLayout","filter","map","blockBytes","blocksWide","ceil","blocksHigh","bytesPerPixel","Uint8Array","pixel","sourceOffset","outputOffset","luminance","Float32Array","view","DataView","buffer","byteOffset","red","green","blue","alpha","getFloat32","halfToFloat","getUint16","sign","exponent","mantissa","pow","Infinity","NaN","blockY","blockX","blockOffset","c0","c1","colors","decodeBc1Colors","indices","y","x","outputX","outputY","color","decodeBcAlphaColor","alphaNibble","alpha0","alpha1","alphaValues","round","alphaBits","i","BigInt","Number","signed","forEachBcPixel","decodeBc4Value","endpoint0","decodeSnormByte","endpoint1","bits","min","callback","alphaAt","colorOffset","colorOffsetInBlock","forceFourColor","first","decode565","second","LEGACY_D3DFMT_PIXEL_FORMATS"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/dds/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\r\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, isDDS } from \"../../../format/imageSignatures.js\";\r\n\r\n// The container sniffer is shared; re-exported because the format class\r\n// imports it from this module.\r\nexport { isDDS };\r\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\r\nimport { decodeBc6h } from \"./bc6h.js\";\r\nimport { decodeBc7 } from \"./bc7.js\";\r\n\r\nexport const OUTPUT_IMAGE = \"image\";\r\nexport const OUTPUT_TEXTURE = \"texture\";\r\nexport const OUTPUT_RGBA = \"rgba\";\r\nexport const OUTPUT_RAW = \"raw\";\r\nexport const OUTPUT_JSON = \"json\";\r\n\r\nexport const DEFAULT_VALUES = Object.freeze({\r\n emit: OUTPUT_RAW,\r\n inputType: \"\",\r\n source: \"\"\r\n});\r\n\r\nconst DDS_HEADER_SIZE = 124;\r\nconst DDS_PIXELFORMAT_OFFSET = 76;\r\nconst DDS_FOURCC = 0x00000004;\r\nconst DDS_RGB = 0x00000040;\r\nconst DDS_ALPHAPIXELS = 0x00000001;\r\nconst DDS_ALPHA = 0x00000002;\r\nconst DDS_LUMINANCE = 0x00020000;\r\nconst DDSCAPS2_CUBEMAP = 0x00000200;\r\nconst DDSCAPS2_VOLUME = 0x00200000;\r\n\r\nconst DDS_CUBE_FACE_FLAGS = Object.freeze([\r\n [ \"positive-x\", 0x00000400 ],\r\n [ \"negative-x\", 0x00000800 ],\r\n [ \"positive-y\", 0x00001000 ],\r\n [ \"negative-y\", 0x00002000 ],\r\n [ \"positive-z\", 0x00004000 ],\r\n [ \"negative-z\", 0x00008000 ]\r\n]);\r\n\r\nconst FOURCC_PIXEL_FORMATS = Object.freeze({\r\n DXT1: \"bc1-rgba-unorm\",\r\n DXT3: \"bc2-rgba-unorm\",\r\n DXT5: \"bc3-rgba-unorm\",\r\n ATI1: \"bc4-r-unorm\",\r\n BC4U: \"bc4-r-unorm\",\r\n BC4S: \"bc4-r-snorm\",\r\n ATI2: \"bc5-rg-unorm\",\r\n BC5U: \"bc5-rg-unorm\",\r\n BC5S: \"bc5-rg-snorm\"\r\n});\r\n\r\nconst DXGI_PIXEL_FORMATS = Object.freeze({\r\n 2: \"rgba32float\",\r\n 6: \"rgb32float\",\r\n 10: \"rgba16float\",\r\n 16: \"rg32float\",\r\n 34: \"rg16float\",\r\n 41: \"r32float\",\r\n 54: \"r16float\",\r\n 28: \"rgba8unorm\",\r\n 29: \"rgba8unorm-srgb\",\r\n 49: \"rg8unorm\",\r\n 61: \"r8unorm\",\r\n 71: \"bc1-rgba-unorm\",\r\n 72: \"bc1-rgba-unorm-srgb\",\r\n 74: \"bc2-rgba-unorm\",\r\n 75: \"bc2-rgba-unorm-srgb\",\r\n 77: \"bc3-rgba-unorm\",\r\n 78: \"bc3-rgba-unorm-srgb\",\r\n 80: \"bc4-r-unorm\",\r\n 81: \"bc4-r-snorm\",\r\n 83: \"bc5-rg-unorm\",\r\n 84: \"bc5-rg-snorm\",\r\n 87: \"bgra8unorm\",\r\n 88: \"bgrx8unorm\",\r\n 91: \"bgra8unorm-srgb\",\r\n 93: \"bgrx8unorm-srgb\",\r\n 95: \"bc6h-rgb-ufloat\",\r\n 96: \"bc6h-rgb-float\",\r\n 98: \"bc7-rgba-unorm\",\r\n 99: \"bc7-rgba-unorm-srgb\"\r\n});\r\n\r\nconst COMPRESSED_PIXEL_FORMATS = new Set([\r\n \"bc1-rgba-unorm\",\r\n \"bc1-rgba-unorm-srgb\",\r\n \"bc2-rgba-unorm\",\r\n \"bc2-rgba-unorm-srgb\",\r\n \"bc3-rgba-unorm\",\r\n \"bc3-rgba-unorm-srgb\",\r\n \"bc4-r-unorm\",\r\n \"bc4-r-snorm\",\r\n \"bc5-rg-unorm\",\r\n \"bc5-rg-snorm\",\r\n \"bc6h-rgb-ufloat\",\r\n \"bc6h-rgb-float\",\r\n \"bc7-rgba-unorm\",\r\n \"bc7-rgba-unorm-srgb\"\r\n]);\r\n\r\nconst DEBUG_OUTPUTS = Object.freeze({\r\n png: \"pngJson\",\r\n jpeg: \"jpegJson\",\r\n jpg: \"jpegJson\",\r\n tga: \"tgaJson\",\r\n dds: \"ddsJson\"\r\n});\r\n\r\n/**\r\n * Normalizes reader options against their supported defaults for the DDS format\r\n * reader.\r\n */\r\nexport function normalizeValues(base = DEFAULT_VALUES, options = {}, readerName = \"CjsImageFormat\")\r\n{\r\n const values = { ...DEFAULT_VALUES, ...(base || {}), ...(options || {}) };\r\n values.inputType = normalizeInputType(values.inputType);\r\n values.emit = normalizeEmit(values.emit, values.inputType, readerName);\r\n return values;\r\n}\r\n\r\n/** Normalizes the requested input representation for the DDS format reader. */\r\nexport function normalizeInputType(inputType)\r\n{\r\n if (!inputType) return \"\";\r\n const value = String(inputType).replace(/^\\./u, \"\").toLowerCase();\r\n return value === \"jpg\" ? \"jpeg\" : value;\r\n}\r\n\r\n/** Normalizes the requested output representation for the DDS format reader. */\r\nexport function normalizeEmit(emit, inputType, readerName)\r\n{\r\n if (emit === undefined || emit === null) return OUTPUT_RAW;\r\n if ([ OUTPUT_IMAGE, OUTPUT_TEXTURE, OUTPUT_RGBA, OUTPUT_RAW].includes(emit)) return emit;\r\n if (Object.values(DEBUG_OUTPUTS).includes(emit)) return emit;\r\n throw new TypeError(`${readerName}: unknown emit value ${JSON.stringify(emit)}`);\r\n}\r\n\r\n/** Returns a byte view over the supplied binary input for the DDS format reader. */\r\n/** Inspects input using normalized format options for the DDS format reader. */\r\nexport function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\r\n{\r\n const bytes = asUint8Array(input, \"Image input\");\r\n const detected = inspectBytes(bytes);\r\n const sourceFormat = expectedType || values.inputType || detected.sourceFormat;\r\n\r\n if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType)\r\n {\r\n throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);\r\n }\r\n\r\n return {\r\n payloadType: sourceFormat === \"dds\" ? \"texture\" : \"image\",\r\n mediaTypes: sourceFormat === \"dds\" ? [ \"texture\", \"image\" ] : [ \"image\" ],\r\n sourceFormat,\r\n byteLength: bytes.byteLength,\r\n ...detected\r\n };\r\n}\r\n\r\n/**\r\n * Reports whether input is supported under normalized format options for the DDS\r\n * format reader.\r\n */\r\nexport function probeSupportWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\r\n{\r\n try\r\n {\r\n const metadata = inspectWithValues(input, values, expectedType);\r\n const hasCompleteTextureData = metadata.isDataComplete !== false;\r\n const canEmitTexture = metadata.sourceFormat === \"dds\" && metadata.dataOffset > 0 && !!metadata.pixelFormat && hasCompleteTextureData;\r\n const canEmitRgba = canDecodeDdsToRgba(metadata) && hasCompleteTextureData;\r\n const textureUnsupportedReason = !metadata.pixelFormat\r\n ? \"DDS texture format is not recognized yet.\"\r\n : !hasCompleteTextureData\r\n ? `DDS texture data is truncated: expected ${metadata.expectedDataBytes} bytes, got ${metadata.dataBytes}.`\r\n : \"\";\r\n const variants = metadata.sourceFormat === \"dds\"\r\n ? [\r\n {\r\n kind: \"compressed\",\r\n payloadType: \"texture\",\r\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\r\n supported: canEmitTexture && metadata.isCompressed,\r\n reason: metadata.isCompressed ? textureUnsupportedReason : \"DDS is not block-compressed.\"\r\n },\r\n {\r\n kind: \"texture\",\r\n payloadType: \"texture\",\r\n codec: metadata.pixelFormat || metadata.textureFormat || \"unknown\",\r\n supported: canEmitTexture,\r\n reason: canEmitTexture ? \"\" : textureUnsupportedReason\r\n },\r\n {\r\n kind: \"rgba\",\r\n payloadType: \"rgba\",\r\n codec: canEmitRgba\r\n ? (isFloatPixelFormat(metadata.pixelFormat) ? \"rgba32float\" : \"rgba8unorm\")\r\n : \"rgba8unorm\",\r\n supported: canEmitRgba,\r\n reason: canEmitRgba\r\n ? \"\"\r\n : textureUnsupportedReason || (metadata.nativeTextureOnly\r\n ? `${metadata.pixelFormat} is available as a native compressed texture only; register a software decoder or alternate representation for RGBA fallback.`\r\n : \"DDS RGBA decode is not implemented for this pixel format.\")\r\n },\r\n { kind: \"raw\", payloadType: \"raw\", codec: \"dds\", supported: true }\r\n ]\r\n : [\r\n { kind: \"rgba\", codec: \"rgba8\", supported: false, reason: `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.` }\r\n ];\r\n const preferredVariant = variants.find(v => v.supported && v.kind !== \"raw\") || variants.find(v => v.supported);\r\n\r\n return {\r\n format: metadata.sourceFormat,\r\n source: values.source || \"buffer\",\r\n supported: metadata.sourceFormat ? (variants.some(v => v.supported && v.kind !== \"raw\") ? \"full\" : (variants.some(v => v.supported) ? \"partial\" : \"none\")) : \"none\",\r\n confidence: metadata.sourceFormat ? 1 : 0,\r\n preferredOutput: preferredVariant?.kind || \"\",\r\n reason: metadata.sourceFormat ? \"Container/header recognized.\" : \"Unrecognized image format.\",\r\n metadata,\r\n variants,\r\n warnings: [],\r\n errors: []\r\n };\r\n }\r\n catch (error)\r\n {\r\n return {\r\n format: expectedType || values.inputType || \"\",\r\n source: values.source || \"buffer\",\r\n supported: \"none\",\r\n confidence: 0,\r\n preferredOutput: \"\",\r\n reason: error.message,\r\n metadata: null,\r\n variants: [],\r\n warnings: [],\r\n errors: [ error.message ]\r\n };\r\n }\r\n}\r\n\r\n/** Reads input using normalized format options for the DDS format reader. */\r\nexport function readWithValues(input, values = DEFAULT_VALUES, expectedType = \"\")\r\n{\r\n const bytes = asUint8Array(input, \"Image input\");\r\n const metadata = inspectWithValues(bytes, values, expectedType);\r\n\r\n if (values.emit === OUTPUT_RAW)\r\n {\r\n return {\r\n payloadType: \"raw\",\r\n sourceFormat: metadata.sourceFormat,\r\n metadata,\r\n bytes\r\n };\r\n }\r\n\r\n if (values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\r\n {\r\n return metadata;\r\n }\r\n\r\n if (values.emit === OUTPUT_TEXTURE && metadata.sourceFormat === \"dds\")\r\n {\r\n return readDdsTexture(bytes, metadata, values);\r\n }\r\n\r\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"dds\")\r\n {\r\n return readDdsToRgba(bytes, metadata);\r\n }\r\n\r\n const error = new Error(`${metadata.sourceFormat}: emit \"${values.emit}\" is not implemented yet`);\r\n error.code = \"CJS_FORMAT_OUTPUT_NOT_IMPLEMENTED\";\r\n error.sourceFormat = metadata.sourceFormat;\r\n error.emit = values.emit;\r\n throw error;\r\n}\r\n\r\n/** Converts a parsed payload into a JSON-safe value for the DDS format reader. */\r\n/** The shared JSON policy for this reader, under the name its callers use. */\r\nexport { toJsonValue };\r\n\r\n/**\r\n * Inspects the supplied bytes without decoding their payload for the DDS format\r\n * reader.\r\n */\r\nexport function inspectBytes(bytes)\r\n{\r\n const sourceFormat = identifyImageBytes(bytes);\r\n return sourceFormat === \"dds\" ? inspectDDS(bytes) : foreignImageRecord(sourceFormat);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nfunction inspectDDS(bytes)\r\n{\r\n const headerSize = readU32LE(bytes, 4);\r\n const pfOffset = DDS_PIXELFORMAT_OFFSET;\r\n const pfFlags = readU32LE(bytes, pfOffset + 4);\r\n const fourCcCode = readU32LE(bytes, pfOffset + 8);\r\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\r\n const rgbBitCount = readU32LE(bytes, pfOffset + 12);\r\n const rBitMask = readU32LE(bytes, pfOffset + 16);\r\n const gBitMask = readU32LE(bytes, pfOffset + 20);\r\n const bBitMask = readU32LE(bytes, pfOffset + 24);\r\n const aBitMask = readU32LE(bytes, pfOffset + 28);\r\n const caps2 = readU32LE(bytes, 112);\r\n const isCube = !!(caps2 & DDSCAPS2_CUBEMAP);\r\n const isVolume = !!(caps2 & DDSCAPS2_VOLUME);\r\n const cubeFaces = getDdsCubeFaces(caps2);\r\n const hasDx10 = fourCc === \"DX10\" && bytes.byteLength >= 148;\r\n const dxgiFormat = hasDx10 ? readU32LE(bytes, 128) : 0;\r\n const resourceDimension = hasDx10 ? readU32LE(bytes, 132) : 0;\r\n const declaredArraySize = hasDx10 ? readU32LE(bytes, 140) : 1;\r\n const dataOffset = hasDx10 ? 148 : 128;\r\n const pixelFormat = getDdsPixelFormat({ pfFlags, fourCc, fourCcCode, rgbBitCount, rBitMask, gBitMask, bBitMask, aBitMask, dxgiFormat });\r\n const width = readU32LE(bytes, 16);\r\n const height = readU32LE(bytes, 12);\r\n const depth = readU32LE(bytes, 24);\r\n const mipCount = Math.max(readU32LE(bytes, 28), 1);\r\n const dataBytes = Math.max(bytes.byteLength - dataOffset, 0);\r\n const expectedFor = (count) => (pixelFormat ? getDdsExpectedDataBytes({\r\n pixelFormat,\r\n width,\r\n height,\r\n depth,\r\n mipCount,\r\n arraySize: count,\r\n isCube,\r\n isVolume\r\n }) : null);\r\n\r\n // A CUBE'S ARRAY SIZE IS AMBIGUOUS, and the file's own length settles it.\r\n //\r\n // The DX10 spec counts CUBES in that field, so 6 means six cubes - thirty\r\n // six surfaces. Frontier's `hydrogen_alpha_nebula_cube_refl.dds` writes 6\r\n // meaning six FACES, and the spec reading made this reader expect exactly\r\n // six times the data the file holds and reject it as truncated.\r\n //\r\n // Carbon does not disambiguate because it cannot express a cube array at\r\n // all: `CopyHeaderValuesToMembers` passes no array size for a cube\r\n // (`imageio/Tr2DdsHandler.cpp:445-447`) and `BitmapDimensions` forces\r\n // `m_arraySize( type == TEX_TYPE_CUBE ? 6 : 1 )`\r\n // (`imageio/include/BitmapDimensions.h:122`). Reading it the donor's way\r\n // would fix this file and silently drop every genuine cube array, which\r\n // this reader does support and is tested for.\r\n //\r\n // So neither reading is assumed. The declared count is kept when the data\r\n // is there for it, and dropped to one cube only when it is not AND one cube\r\n // accounts for the file exactly. A non-conformant writer is detectable; a\r\n // guess is not.\r\n let arraySize = declaredArraySize;\r\n let expectedDataBytes = expectedFor(arraySize);\r\n\r\n if (isCube && declaredArraySize > 1 && expectedDataBytes !== null && dataBytes < expectedDataBytes)\r\n {\r\n const single = expectedFor(1);\r\n\r\n if (single !== null && dataBytes === single)\r\n {\r\n arraySize = 1;\r\n expectedDataBytes = single;\r\n }\r\n }\r\n\r\n return {\r\n sourceFormat: \"dds\",\r\n headerSize,\r\n width,\r\n height,\r\n depth,\r\n mipCount,\r\n pitchOrLinearSize: readU32LE(bytes, 20),\r\n pfFlags,\r\n fourCc,\r\n fourCcCode,\r\n rgbBitCount,\r\n rBitMask,\r\n gBitMask,\r\n bBitMask,\r\n aBitMask,\r\n caps2,\r\n hasDx10,\r\n dxgiFormat,\r\n resourceDimension,\r\n arraySize,\r\n dataOffset,\r\n dataBytes,\r\n expectedDataBytes,\r\n isDataComplete: expectedDataBytes !== null && dataBytes >= expectedDataBytes,\r\n missingDataBytes: expectedDataBytes === null ? null : Math.max(expectedDataBytes - dataBytes, 0),\r\n extraDataBytes: expectedDataBytes === null ? null : Math.max(dataBytes - expectedDataBytes, 0),\r\n faces: isCube ? 6 : 1,\r\n cubeFaces,\r\n isCubeComplete: isCube && cubeFaces.length === 6,\r\n isCube,\r\n isVolume,\r\n dimension: isVolume ? \"3d\" : (isCube ? \"cube\" : \"2d\"),\r\n pixelFormat,\r\n textureFormat: pixelFormat || fourCc || \"dds-legacy\",\r\n isCompressed: COMPRESSED_PIXEL_FORMATS.has(pixelFormat),\r\n nativeTextureOnly: COMPRESSED_PIXEL_FORMATS.has(pixelFormat) && !canDecodeDdsToRgba({ pixelFormat }),\r\n hasAlpha: !!(pfFlags & DDS_ALPHAPIXELS) || /rgba|bgra/u.test(pixelFormat),\r\n hasMipMaps: readU32LE(bytes, 28) > 1\r\n };\r\n}\r\n\r\n/**\r\n * Carbon's load-time clean-up of 24-bit RGB: BGR -> BGRX with X = 0\r\n * (imageio/Tr2DdsHandler.cpp Convert24BitTo32Bit, :774-795).\r\n *\r\n * @param {Uint8Array} source 24-bit pixels.\r\n * @returns {Uint8Array} 32-bit pixels.\r\n */\r\nexport function expand24To32(source)\r\n{\r\n const pixels = Math.floor(source.length / 3);\r\n const out = new Uint8Array(pixels * 4);\r\n\r\n for (let p = 0, s = 0, d = 0; p < pixels; p++)\r\n {\r\n out[d++] = source[s++];\r\n out[d++] = source[s++];\r\n out[d++] = source[s++];\r\n out[d++] = 0;\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/**\r\n * Carbon's load-time clean-up of A8L8: luminance and alpha -> BGRA with\r\n * B = G = R = L (Tr2DdsHandler.cpp:863-868, via HostBitmap::ConvertFormat\r\n * R8G8 -> B8G8R8A8, HostBitmap.cpp:386-396).\r\n *\r\n * @param {Uint8Array} source L8A8 pixels.\r\n * @returns {Uint8Array} BGRA pixels.\r\n */\r\nexport function convertL8A8ToBgra(source)\r\n{\r\n const pixels = Math.floor(source.length / 2);\r\n const out = new Uint8Array(pixels * 4);\r\n\r\n for (let p = 0, s = 0, d = 0; p < pixels; p++, s += 2)\r\n {\r\n out[d++] = source[s];\r\n out[d++] = source[s];\r\n out[d++] = source[s];\r\n out[d++] = source[s + 1];\r\n }\r\n\r\n return out;\r\n}\r\n\r\n/** The legacy layouts `expandLegacy` rewrites, with their converter and resulting format. */\r\nconst LEGACY_EXPANSIONS = {\r\n \"bgr8unorm\": { convert: expand24To32, pixelFormat: \"bgrx8unorm\", scale: 4 / 3 },\r\n \"l8a8unorm\": { convert: convertL8A8ToBgra, pixelFormat: \"bgra8unorm\", scale: 2 }\r\n};\r\n\r\n/**\r\n * Rewrite a 24-bit or A8L8 texture payload into Carbon's 32-bit shape, subresource\r\n * by subresource, when `values.expandLegacy` asks for it.\r\n */\r\nfunction expandLegacyTexture(texture)\r\n{\r\n const rule = LEGACY_EXPANSIONS[texture.pixelFormat];\r\n if (!rule) return texture;\r\n\r\n const parts = [];\r\n let offset = 0;\r\n const subresources = texture.subresources.map(sub =>\r\n {\r\n const data = rule.convert(texture.data.subarray(sub.offset, sub.offset + sub.byteLength));\r\n parts.push(data);\r\n const next = {\r\n ...sub,\r\n offset,\r\n byteLength: data.length,\r\n rowPitch: Math.round(sub.rowPitch * rule.scale),\r\n slicePitch: Math.round(sub.slicePitch * rule.scale)\r\n };\r\n offset += data.length;\r\n return next;\r\n });\r\n\r\n const data = new Uint8Array(offset);\r\n for (let i = 0, at = 0; i < parts.length; at += parts[i].length, i++) data.set(parts[i], at);\r\n\r\n return { ...texture, pixelFormat: rule.pixelFormat, dataBytes: offset, subresources, data };\r\n}\r\n\r\nfunction readDdsTexture(bytes, metadata, values = DEFAULT_VALUES)\r\n{\r\n if (!metadata.pixelFormat)\r\n {\r\n const error = new Error(\"dds: texture format is not recognized yet\");\r\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\r\n error.sourceFormat = metadata.sourceFormat;\r\n throw error;\r\n }\r\n\r\n const subresources = buildDdsSubresources(bytes, metadata);\r\n const texture = {\r\n payloadType: OUTPUT_TEXTURE,\r\n sourceFormat: \"dds\",\r\n width: metadata.width,\r\n height: metadata.height,\r\n depth: metadata.depth,\r\n faces: metadata.faces,\r\n cubeFaces: metadata.cubeFaces,\r\n isCubeComplete: metadata.isCubeComplete,\r\n dimension: metadata.dimension,\r\n mipCount: metadata.mipCount,\r\n arraySize: metadata.arraySize,\r\n pixelFormat: metadata.pixelFormat,\r\n isCompressed: metadata.isCompressed,\r\n dataBytes: metadata.dataBytes,\r\n expectedDataBytes: metadata.expectedDataBytes,\r\n isDataComplete: metadata.isDataComplete,\r\n missingDataBytes: metadata.missingDataBytes,\r\n extraDataBytes: metadata.extraDataBytes,\r\n subresources,\r\n metadata,\r\n data: bytes.subarray(metadata.dataOffset, metadata.dataOffset + subresources.reduce((sum, entry) => sum + entry.byteLength, 0))\r\n };\r\n\r\n return values.expandLegacy ? expandLegacyTexture(texture) : texture;\r\n}\r\n\r\n/**\r\n * Block formats one slice can be decoded from, by pixel format alone.\r\n *\r\n * Narrower than `canDecodeDdsToRgba`, which answers for a whole file and\r\n * includes the uncompressed formats. A caller holding one slice of a volume has\r\n * no file to ask about, only a format name.\r\n *\r\n * @param {String} pixelFormat\r\n * @returns {Boolean}\r\n */\r\nexport function canDecodeDdsBlockFormat(pixelFormat)\r\n{\r\n return /^bc[1-7]/u.test(String(pixelFormat ?? \"\"));\r\n}\r\n\r\nfunction canDecodeDdsToRgba(metadata)\r\n{\r\n return [\r\n \"rgba32float\",\r\n \"rgb32float\",\r\n \"rgba16float\",\r\n \"rg32float\",\r\n \"rg16float\",\r\n \"r32float\",\r\n \"r16float\",\r\n \"rgba8unorm\",\r\n \"rgba8unorm-srgb\",\r\n \"bgra8unorm\",\r\n \"bgra8unorm-srgb\",\r\n \"bgrx8unorm\",\r\n \"bgrx8unorm-srgb\",\r\n \"rgbx8unorm\",\r\n \"bgr8unorm\",\r\n \"l8unorm\",\r\n \"l8a8unorm\",\r\n \"a8unorm\",\r\n \"rg8unorm\",\r\n \"r8unorm\",\r\n \"bc1-rgba-unorm\",\r\n \"bc1-rgba-unorm-srgb\",\r\n \"bc2-rgba-unorm\",\r\n \"bc2-rgba-unorm-srgb\",\r\n \"bc3-rgba-unorm\",\r\n \"bc3-rgba-unorm-srgb\",\r\n \"bc4-r-unorm\",\r\n \"bc4-r-snorm\",\r\n \"bc5-rg-unorm\",\r\n \"bc5-rg-snorm\",\r\n \"bc6h-rgb-ufloat\",\r\n \"bc6h-rgb-float\",\r\n \"bc7-rgba-unorm\",\r\n \"bc7-rgba-unorm-srgb\"\r\n ].includes(metadata.pixelFormat);\r\n}\r\n\r\nfunction readDdsToRgba(bytes, metadata)\r\n{\r\n if (!canDecodeDdsToRgba(metadata))\r\n {\r\n const error = new Error(`dds: RGBA decode is not implemented for ${metadata.pixelFormat || \"unknown\"}`);\r\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\r\n error.sourceFormat = metadata.sourceFormat;\r\n throw error;\r\n }\r\n\r\n const subresource = buildDdsSubresources(bytes, metadata)[0];\r\n const isFloat = isFloatPixelFormat(metadata.pixelFormat);\r\n const depth = Math.max(subresource.depth ?? 1, 1);\r\n\r\n // Every slice, not just the first.\r\n //\r\n // This decoded subresource[0] with the source's own width and height, which\r\n // for a volume reads one slice out of a buffer holding all of them and\r\n // returns it as though it were the image. A 128-cube came back as 65,536\r\n // bytes with `depth` absent from the payload, so a caller could not even\r\n // tell it had been handed 1/128th of what it asked for. Silent and\r\n // plausible, which is worse than an error: nothing downstream can detect it.\r\n //\r\n // Slices are `slicePitch` apart and each decodes exactly like a 2D image of\r\n // the same dimensions, so this is a loop rather than a second decoder.\r\n const slices = [];\r\n\r\n for (let z = 0; z < depth; z++)\r\n {\r\n const start = metadata.dataOffset + subresource.offset + (z * subresource.slicePitch);\r\n const source = bytes.subarray(start, start + subresource.slicePitch);\r\n\r\n slices.push(decodeDdsSlice(source, metadata, subresource));\r\n }\r\n\r\n const rgba = depth === 1 ? slices[0] : concatTypedArrays(slices);\r\n const sliceBytes = metadata.width * metadata.height * (isFloat ? 16 : 4);\r\n\r\n return {\r\n payloadType: OUTPUT_RGBA,\r\n sourceFormat: \"dds\",\r\n width: metadata.width,\r\n height: metadata.height,\r\n // Always present, and 1 for a flat image. An optional field that only\r\n // appears for volumes is one every caller forgets to look for.\r\n depth,\r\n isVolume: depth > 1,\r\n pixelFormat: isFloat ? \"rgba32float\" : \"rgba8unorm\",\r\n strideBytes: metadata.width * (isFloat ? 16 : 4),\r\n // What one z-slice occupies, so a caller can cut the buffer up without\r\n // recomputing it from a pixel format it should not have to know about.\r\n sliceBytes,\r\n origin: \"top-left\",\r\n colorSpace: isFloat ? \"linear\" : (metadata.pixelFormat.endsWith(\"-srgb\") ? \"srgb\" : \"unknown\"),\r\n alphaMode: metadata.hasAlpha ? \"straight\" : \"opaque\",\r\n metadata,\r\n data: rgba\r\n };\r\n}\r\n\r\n/** Decodes one 2D slice of a DDS subresource to RGBA, whatever its block format. */\r\nexport function decodeDdsSlice(source, metadata, subresource)\r\n{\r\n const { width, height } = metadata;\r\n const pitch = subresource.rowPitch;\r\n const format = metadata.pixelFormat;\r\n\r\n if (format.startsWith(\"bc1-\")) return decodeBc1(source, width, height, pitch);\r\n if (format.startsWith(\"bc2-\")) return decodeBc2(source, width, height, pitch);\r\n if (format.startsWith(\"bc3-\")) return decodeBc3(source, width, height, pitch);\r\n if (format.startsWith(\"bc4-\")) return decodeBc4(source, width, height, pitch, format.endsWith(\"-snorm\"));\r\n if (format.startsWith(\"bc5-\")) return decodeBc5(source, width, height, pitch, format.endsWith(\"-snorm\"));\r\n if (format.startsWith(\"bc6h-\")) return decodeBc6h(source, width, height, pitch, format === \"bc6h-rgb-float\");\r\n if (format.startsWith(\"bc7-\")) return decodeBc7(source, width, height, pitch);\r\n\r\n return isFloatPixelFormat(format) ? decodeFloatUncompressed(source, metadata) : decodeUncompressed(source, metadata);\r\n}\r\n\r\n/** Joins same-typed slice buffers into one, preserving the element type. */\r\nfunction concatTypedArrays(parts)\r\n{\r\n let total = 0;\r\n\r\n for (const part of parts) total += part.length;\r\n\r\n const out = new parts[0].constructor(total);\r\n let at = 0;\r\n\r\n for (const part of parts)\r\n {\r\n out.set(part, at);\r\n at += part.length;\r\n }\r\n\r\n return out;\r\n}\r\n\r\nfunction buildDdsSubresources(bytes, metadata)\r\n{\r\n const subresources = [];\r\n let offset = 0;\r\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\r\n\r\n for (let layer = 0; layer < layers; layer++)\r\n {\r\n const arrayIndex = metadata.isCube ? Math.floor(layer / 6) : layer;\r\n const face = metadata.isCube ? layer % 6 : 0;\r\n for (let mip = 0; mip < metadata.mipCount; mip++)\r\n {\r\n const width = Math.max(metadata.width >> mip, 1);\r\n const height = Math.max(metadata.height >> mip, 1);\r\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\r\n const layout = getDdsLevelLayout(metadata.pixelFormat, width, height, depth);\r\n if (offset + layout.byteLength > bytes.byteLength - metadata.dataOffset)\r\n {\r\n const error = new Error(\"dds: texture data is truncated\");\r\n error.code = \"CJS_FORMAT_TRUNCATED\";\r\n error.sourceFormat = metadata.sourceFormat;\r\n error.expectedDataBytes = metadata.expectedDataBytes;\r\n error.dataBytes = metadata.dataBytes;\r\n error.missingDataBytes = metadata.missingDataBytes;\r\n throw error;\r\n }\r\n subresources.push({\r\n mip,\r\n layer,\r\n arrayIndex,\r\n face,\r\n offset,\r\n byteLength: layout.byteLength,\r\n rowPitch: layout.rowPitch,\r\n slicePitch: layout.slicePitch,\r\n width,\r\n height,\r\n depth\r\n });\r\n offset += layout.byteLength;\r\n }\r\n }\r\n\r\n return subresources;\r\n}\r\n\r\nfunction getDdsExpectedDataBytes(metadata)\r\n{\r\n let total = 0;\r\n const layers = Math.max(metadata.arraySize, 1) * (metadata.isCube ? 6 : 1);\r\n\r\n for (let layer = 0; layer < layers; layer++)\r\n {\r\n for (let mip = 0; mip < metadata.mipCount; mip++)\r\n {\r\n const width = Math.max(metadata.width >> mip, 1);\r\n const height = Math.max(metadata.height >> mip, 1);\r\n const depth = metadata.isVolume ? Math.max(metadata.depth >> mip, 1) : 1;\r\n total += getDdsLevelLayout(metadata.pixelFormat, width, height, depth).byteLength;\r\n }\r\n }\r\n\r\n return total;\r\n}\r\n\r\nfunction getDdsCubeFaces(caps2)\r\n{\r\n if (!(caps2 & DDSCAPS2_CUBEMAP))\r\n {\r\n return [];\r\n }\r\n return DDS_CUBE_FACE_FLAGS\r\n .filter((entry) => !!(caps2 & entry[1]))\r\n .map((entry) => entry[0]);\r\n}\r\n\r\nfunction getDdsLevelLayout(pixelFormat, width, height, depth)\r\n{\r\n const blockBytes = pixelFormat.startsWith(\"bc1-\") || pixelFormat.startsWith(\"bc4-\") ? 8 :\r\n pixelFormat.startsWith(\"bc\") ? 16 : 0;\r\n if (blockBytes)\r\n {\r\n const blocksWide = Math.max(Math.ceil(width / 4), 1);\r\n const blocksHigh = Math.max(Math.ceil(height / 4), 1);\r\n const rowPitch = blocksWide * blockBytes;\r\n const slicePitch = rowPitch * blocksHigh;\r\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\r\n }\r\n\r\n const bytesPerPixel = {\r\n \"rgba32float\": 16,\r\n \"rgb32float\": 12,\r\n \"rgba16float\": 8,\r\n \"rg32float\": 8,\r\n \"rg16float\": 4,\r\n \"r32float\": 4,\r\n \"r16float\": 2,\r\n \"rgba8unorm\": 4,\r\n \"rgba8unorm-srgb\": 4,\r\n \"bgra8unorm\": 4,\r\n \"bgra8unorm-srgb\": 4,\r\n \"bgrx8unorm\": 4,\r\n \"bgrx8unorm-srgb\": 4,\r\n \"rgbx8unorm\": 4,\r\n \"bgr8unorm\": 3,\r\n \"l8a8unorm\": 2,\r\n \"l8unorm\": 1,\r\n \"a8unorm\": 1,\r\n \"rg8unorm\": 2,\r\n \"r8unorm\": 1\r\n }[pixelFormat];\r\n if (!bytesPerPixel)\r\n {\r\n const error = new Error(`dds: cannot calculate subresource layout for ${pixelFormat || \"unknown\"}`);\r\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\r\n throw error;\r\n }\r\n const rowPitch = width * bytesPerPixel;\r\n const slicePitch = rowPitch * height;\r\n return { rowPitch, slicePitch, byteLength: slicePitch * depth };\r\n}\r\n\r\nfunction decodeUncompressed(source, metadata)\r\n{\r\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\r\n // Legacy luminance/alpha pixels are packed too: L8/A8 use one byte,\r\n // L8A8 uses two. A four-byte stride skips samples and blacks out most\r\n // of the decoded surface (including planet height maps).\r\n const bytesPerPixel = metadata.pixelFormat === \"bgr8unorm\" ? 3 :\r\n [ \"rg8unorm\", \"l8a8unorm\" ].includes(metadata.pixelFormat) ? 2 :\r\n [ \"r8unorm\", \"l8unorm\", \"a8unorm\" ].includes(metadata.pixelFormat) ? 1 : 4;\r\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\r\n {\r\n const sourceOffset = pixel * bytesPerPixel;\r\n const outputOffset = pixel * 4;\r\n if (metadata.pixelFormat.startsWith(\"bgra\") || metadata.pixelFormat.startsWith(\"bgrx\"))\r\n {\r\n rgba[outputOffset] = source[sourceOffset + 2];\r\n rgba[outputOffset + 1] = source[sourceOffset + 1];\r\n rgba[outputOffset + 2] = source[sourceOffset];\r\n rgba[outputOffset + 3] = metadata.pixelFormat.startsWith(\"bgrx\") ? 255 : source[sourceOffset + 3];\r\n }\r\n else if (metadata.pixelFormat === \"bgr8unorm\")\r\n {\r\n rgba[outputOffset] = source[sourceOffset + 2];\r\n rgba[outputOffset + 1] = source[sourceOffset + 1];\r\n rgba[outputOffset + 2] = source[sourceOffset];\r\n rgba[outputOffset + 3] = 255;\r\n }\r\n else if (metadata.pixelFormat.startsWith(\"rgbx\"))\r\n {\r\n // Fourth byte is padding, not alpha.\r\n rgba[outputOffset] = source[sourceOffset];\r\n rgba[outputOffset + 1] = source[sourceOffset + 1];\r\n rgba[outputOffset + 2] = source[sourceOffset + 2];\r\n rgba[outputOffset + 3] = 255;\r\n }\r\n else if (metadata.pixelFormat === \"l8unorm\" || metadata.pixelFormat === \"l8a8unorm\")\r\n {\r\n // Luminance replicates its one channel across RGB.\r\n const luminance = source[sourceOffset];\r\n rgba[outputOffset] = luminance;\r\n rgba[outputOffset + 1] = luminance;\r\n rgba[outputOffset + 2] = luminance;\r\n rgba[outputOffset + 3] = metadata.pixelFormat === \"l8a8unorm\" ? source[sourceOffset + 1] : 255;\r\n }\r\n else if (metadata.pixelFormat === \"a8unorm\")\r\n {\r\n rgba[outputOffset] = 0;\r\n rgba[outputOffset + 1] = 0;\r\n rgba[outputOffset + 2] = 0;\r\n rgba[outputOffset + 3] = source[sourceOffset];\r\n }\r\n else if (metadata.pixelFormat === \"rg8unorm\")\r\n {\r\n rgba[outputOffset] = source[sourceOffset];\r\n rgba[outputOffset + 1] = source[sourceOffset + 1];\r\n rgba[outputOffset + 2] = 0;\r\n rgba[outputOffset + 3] = 255;\r\n }\r\n else\r\n {\r\n rgba[outputOffset] = source[sourceOffset];\r\n rgba[outputOffset + 1] = bytesPerPixel > 1 ? source[sourceOffset + 1] : source[sourceOffset];\r\n rgba[outputOffset + 2] = bytesPerPixel > 2 ? source[sourceOffset + 2] : source[sourceOffset];\r\n rgba[outputOffset + 3] = bytesPerPixel > 3 ? source[sourceOffset + 3] : 255;\r\n }\r\n }\r\n return rgba;\r\n}\r\n\r\nfunction decodeFloatUncompressed(source, metadata)\r\n{\r\n const rgba = new Float32Array(metadata.width * metadata.height * 4);\r\n const view = new DataView(source.buffer, source.byteOffset, source.byteLength);\r\n const bytesPerPixel = {\r\n \"rgba32float\": 16,\r\n \"rgb32float\": 12,\r\n \"rgba16float\": 8,\r\n \"rg32float\": 8,\r\n \"rg16float\": 4,\r\n \"r32float\": 4,\r\n \"r16float\": 2\r\n }[metadata.pixelFormat];\r\n\r\n for (let pixel = 0; pixel < metadata.width * metadata.height; pixel++)\r\n {\r\n const sourceOffset = pixel * bytesPerPixel;\r\n const outputOffset = pixel * 4;\r\n let red, green, blue, alpha;\r\n if (metadata.pixelFormat === \"rgba32float\")\r\n {\r\n red = view.getFloat32(sourceOffset, true);\r\n green = view.getFloat32(sourceOffset + 4, true);\r\n blue = view.getFloat32(sourceOffset + 8, true);\r\n alpha = view.getFloat32(sourceOffset + 12, true);\r\n }\r\n else if (metadata.pixelFormat === \"rgb32float\")\r\n {\r\n red = view.getFloat32(sourceOffset, true);\r\n green = view.getFloat32(sourceOffset + 4, true);\r\n blue = view.getFloat32(sourceOffset + 8, true);\r\n alpha = 1;\r\n }\r\n else if (metadata.pixelFormat === \"rgba16float\")\r\n {\r\n red = halfToFloat(view.getUint16(sourceOffset, true));\r\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\r\n blue = halfToFloat(view.getUint16(sourceOffset + 4, true));\r\n alpha = halfToFloat(view.getUint16(sourceOffset + 6, true));\r\n }\r\n else if (metadata.pixelFormat === \"rg32float\")\r\n {\r\n red = view.getFloat32(sourceOffset, true);\r\n green = view.getFloat32(sourceOffset + 4, true);\r\n blue = 0;\r\n alpha = 1;\r\n }\r\n else if (metadata.pixelFormat === \"rg16float\")\r\n {\r\n red = halfToFloat(view.getUint16(sourceOffset, true));\r\n green = halfToFloat(view.getUint16(sourceOffset + 2, true));\r\n blue = 0;\r\n alpha = 1;\r\n }\r\n else\r\n {\r\n red = metadata.pixelFormat === \"r16float\"\r\n ? halfToFloat(view.getUint16(sourceOffset, true))\r\n : view.getFloat32(sourceOffset, true);\r\n green = red;\r\n blue = red;\r\n alpha = 1;\r\n }\r\n rgba[outputOffset] = red;\r\n rgba[outputOffset + 1] = green;\r\n rgba[outputOffset + 2] = blue;\r\n rgba[outputOffset + 3] = alpha;\r\n }\r\n return rgba;\r\n}\r\n\r\nfunction isFloatPixelFormat(pixelFormat)\r\n{\r\n return typeof pixelFormat === \"string\" && (pixelFormat.startsWith(\"bc6h-\") ||\r\n [ \"rgba32float\", \"rgb32float\", \"rgba16float\", \"rg32float\", \"rg16float\", \"r32float\",\r\n \"r16float\" ].includes(pixelFormat));\r\n}\r\n\r\nfunction halfToFloat(value)\r\n{\r\n const sign = (value & 0x8000) ? -1 : 1;\r\n const exponent = (value >>> 10) & 0x1f;\r\n const mantissa = value & 0x03ff;\r\n if (exponent === 0)\r\n {\r\n return sign * Math.pow(2, -14) * (mantissa / 1024);\r\n }\r\n if (exponent === 0x1f)\r\n {\r\n return mantissa === 0 ? sign * Infinity : NaN;\r\n }\r\n return sign * Math.pow(2, exponent - 15) * (1 + mantissa / 1024);\r\n}\r\n\r\nfunction decodeBc1(source, width, height, rowPitch)\r\n{\r\n const rgba = new Uint8Array(width * height * 4);\r\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\r\n {\r\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\r\n {\r\n const blockOffset = blockY * rowPitch + blockX * 8;\r\n const c0 = source[blockOffset] | (source[blockOffset + 1] << 8);\r\n const c1 = source[blockOffset + 2] | (source[blockOffset + 3] << 8);\r\n const colors = decodeBc1Colors(c0, c1);\r\n const indices = source[blockOffset + 4] |\r\n (source[blockOffset + 5] << 8) |\r\n (source[blockOffset + 6] << 16) |\r\n (source[blockOffset + 7] << 24);\r\n for (let y = 0; y < 4; y++)\r\n {\r\n for (let x = 0; x < 4; x++)\r\n {\r\n const outputX = blockX * 4 + x;\r\n const outputY = blockY * 4 + y;\r\n if (outputX >= width || outputY >= height) continue;\r\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\r\n rgba.set(color, (outputY * width + outputX) * 4);\r\n }\r\n }\r\n }\r\n }\r\n return rgba;\r\n}\r\n\r\nfunction decodeBc2(source, width, height, rowPitch)\r\n{\r\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\r\n {\r\n const alphaNibble = (source[blockOffset + y * 2 + Math.floor(x / 2)] >>> ((x % 2) * 4)) & 0x0f;\r\n return alphaNibble * 17;\r\n }, 8);\r\n}\r\n\r\nfunction decodeBc3(source, width, height, rowPitch)\r\n{\r\n return decodeBcAlphaColor(source, width, height, rowPitch, (blockOffset, x, y) =>\r\n {\r\n const alpha0 = source[blockOffset], alpha1 = source[blockOffset + 1];\r\n const alphaValues = alpha0 > alpha1\r\n ? [ alpha0, alpha1,\r\n Math.round((6 * alpha0 + alpha1) / 7),\r\n Math.round((5 * alpha0 + 2 * alpha1) / 7),\r\n Math.round((4 * alpha0 + 3 * alpha1) / 7),\r\n Math.round((3 * alpha0 + 4 * alpha1) / 7),\r\n Math.round((2 * alpha0 + 5 * alpha1) / 7),\r\n Math.round((alpha0 + 6 * alpha1) / 7) ]\r\n : [ alpha0, alpha1,\r\n Math.round((4 * alpha0 + alpha1) / 5),\r\n Math.round((3 * alpha0 + 2 * alpha1) / 5),\r\n Math.round((2 * alpha0 + 3 * alpha1) / 5),\r\n Math.round((alpha0 + 4 * alpha1) / 5),\r\n 0, 255 ];\r\n let alphaBits = 0n;\r\n for (let i = 0; i < 6; i++) alphaBits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\r\n return alphaValues[Number((alphaBits >> BigInt((y * 4 + x) * 3)) & 7n)];\r\n }, 8);\r\n}\r\n\r\nfunction decodeBc4(source, width, height, rowPitch, signed)\r\n{\r\n const rgba = new Uint8Array(width * height * 4);\r\n forEachBcPixel(width, height, rowPitch, 8, (blockOffset, x, y, outputOffset) =>\r\n {\r\n const value = decodeBc4Value(source, blockOffset, x, y, signed);\r\n rgba[outputOffset] = value;\r\n rgba[outputOffset + 1] = value;\r\n rgba[outputOffset + 2] = value;\r\n rgba[outputOffset + 3] = 255;\r\n });\r\n return rgba;\r\n}\r\n\r\nfunction decodeBc5(source, width, height, rowPitch, signed)\r\n{\r\n const rgba = new Uint8Array(width * height * 4);\r\n forEachBcPixel(width, height, rowPitch, 16, (blockOffset, x, y, outputOffset) =>\r\n {\r\n rgba[outputOffset] = decodeBc4Value(source, blockOffset, x, y, signed);\r\n rgba[outputOffset + 1] = decodeBc4Value(source, blockOffset + 8, x, y, signed);\r\n rgba[outputOffset + 2] = 0;\r\n rgba[outputOffset + 3] = 255;\r\n });\r\n return rgba;\r\n}\r\n\r\nfunction decodeBc4Value(source, blockOffset, x, y, signed)\r\n{\r\n const endpoint0 = signed ? decodeSnormByte(source[blockOffset]) : source[blockOffset];\r\n const endpoint1 = signed ? decodeSnormByte(source[blockOffset + 1]) : source[blockOffset + 1];\r\n const values = endpoint0 > endpoint1\r\n ? [ endpoint0, endpoint1,\r\n (6 * endpoint0 + endpoint1) / 7,\r\n (5 * endpoint0 + 2 * endpoint1) / 7,\r\n (4 * endpoint0 + 3 * endpoint1) / 7,\r\n (3 * endpoint0 + 4 * endpoint1) / 7,\r\n (2 * endpoint0 + 5 * endpoint1) / 7,\r\n (endpoint0 + 6 * endpoint1) / 7 ]\r\n : [ endpoint0, endpoint1,\r\n (4 * endpoint0 + endpoint1) / 5,\r\n (3 * endpoint0 + 2 * endpoint1) / 5,\r\n (2 * endpoint0 + 3 * endpoint1) / 5,\r\n (endpoint0 + 4 * endpoint1) / 5,\r\n signed ? -1 : 0,\r\n signed ? 1 : 255 ];\r\n let bits = 0n;\r\n for (let i = 0; i < 6; i++) bits |= BigInt(source[blockOffset + 2 + i]) << BigInt(i * 8);\r\n const value = values[Number((bits >> BigInt((y * 4 + x) * 3)) & 7n)];\r\n return signed ? Math.max(0, Math.min(255, Math.round((value + 1) * 127.5))) : Math.round(value);\r\n}\r\n\r\nfunction decodeSnormByte(value)\r\n{\r\n const signed = value > 127 ? value - 256 : value;\r\n return Math.max(-1, signed / 127);\r\n}\r\n\r\nfunction forEachBcPixel(width, height, rowPitch, blockBytes, callback)\r\n{\r\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\r\n {\r\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\r\n {\r\n const blockOffset = blockY * rowPitch + blockX * blockBytes;\r\n for (let y = 0; y < 4; y++)\r\n {\r\n for (let x = 0; x < 4; x++)\r\n {\r\n const outputX = blockX * 4 + x;\r\n const outputY = blockY * 4 + y;\r\n if (outputX < width && outputY < height)\r\n {\r\n callback(blockOffset, x, y, (outputY * width + outputX) * 4);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction decodeBcAlphaColor(source, width, height, rowPitch, alphaAt, colorOffset = 0)\r\n{\r\n const rgba = new Uint8Array(width * height * 4);\r\n for (let blockY = 0; blockY < Math.ceil(height / 4); blockY++)\r\n {\r\n for (let blockX = 0; blockX < Math.ceil(width / 4); blockX++)\r\n {\r\n const blockOffset = blockY * rowPitch + blockX * 16;\r\n const colorOffsetInBlock = blockOffset + colorOffset;\r\n const c0 = source[colorOffsetInBlock] | (source[colorOffsetInBlock + 1] << 8);\r\n const c1 = source[colorOffsetInBlock + 2] | (source[colorOffsetInBlock + 3] << 8);\r\n const colors = decodeBc1Colors(c0, c1, true);\r\n const indices = source[colorOffsetInBlock + 4] |\r\n (source[colorOffsetInBlock + 5] << 8) |\r\n (source[colorOffsetInBlock + 6] << 16) |\r\n (source[colorOffsetInBlock + 7] << 24);\r\n for (let y = 0; y < 4; y++)\r\n {\r\n for (let x = 0; x < 4; x++)\r\n {\r\n const outputX = blockX * 4 + x;\r\n const outputY = blockY * 4 + y;\r\n if (outputX >= width || outputY >= height) continue;\r\n const color = colors[(indices >>> (2 * (y * 4 + x))) & 3];\r\n const outputOffset = (outputY * width + outputX) * 4;\r\n rgba[outputOffset] = color[0];\r\n rgba[outputOffset + 1] = color[1];\r\n rgba[outputOffset + 2] = color[2];\r\n rgba[outputOffset + 3] = alphaAt(blockOffset, x, y);\r\n }\r\n }\r\n }\r\n }\r\n return rgba;\r\n}\r\n\r\nfunction decodeBc1Colors(c0, c1, forceFourColor = false)\r\n{\r\n const first = decode565(c0);\r\n const second = decode565(c1);\r\n const colors = [ first, second ];\r\n if (c0 > c1 || forceFourColor)\r\n {\r\n colors.push([\r\n Math.round((2 * first[0] + second[0]) / 3),\r\n Math.round((2 * first[1] + second[1]) / 3),\r\n Math.round((2 * first[2] + second[2]) / 3),\r\n 255\r\n ], [\r\n Math.round((first[0] + 2 * second[0]) / 3),\r\n Math.round((first[1] + 2 * second[1]) / 3),\r\n Math.round((first[2] + 2 * second[2]) / 3),\r\n 255\r\n ]);\r\n }\r\n else\r\n {\r\n colors.push([\r\n Math.round((first[0] + second[0]) / 2),\r\n Math.round((first[1] + second[1]) / 2),\r\n Math.round((first[2] + second[2]) / 2),\r\n 255\r\n ], [ 0, 0, 0, 0 ]);\r\n }\r\n return colors;\r\n}\r\n\r\nfunction decode565(value)\r\n{\r\n return [\r\n Math.round(((value >>> 11) & 0x1f) * 255 / 31),\r\n Math.round(((value >>> 5) & 0x3f) * 255 / 63),\r\n Math.round((value & 0x1f) * 255 / 31),\r\n 255\r\n ];\r\n}\r\n\r\n/**\r\n * The floating-point `D3DFORMAT` enumerators, which a legacy DDS stores as a\r\n * NUMBER in the four-character-code field rather than as four characters.\r\n *\r\n * That is the whole trap. `DDPF_FOURCC` is set and the field reads `114`, which\r\n * as text is `\"r\\0\\0\\0\"` and matches nothing, so a reader that only compares\r\n * character codes reports an unrecognized format for a file whose format is\r\n * perfectly ordinary. Every one of these six is a plain uncompressed surface.\r\n *\r\n * Two were mapped when BC6H support landed and the other four were not, so\r\n * `A16B16G16R16F` and `A32B32G32R32F` loaded while their one- and two-channel\r\n * siblings did not. Found 2026-08-16 on\r\n * `res:/dx9/model/ship/amarr/battleship/ab3/effects/ab3_traffic.dds`, a 256x9\r\n * `R32F` gradient.\r\n */\r\nconst LEGACY_D3DFMT_PIXEL_FORMATS = {\r\n 111: \"r16float\",\r\n 112: \"rg16float\",\r\n 113: \"rgba16float\",\r\n 114: \"r32float\",\r\n 115: \"rg32float\",\r\n 116: \"rgba32float\"\r\n};\r\n\r\nfunction getDdsPixelFormat(format)\r\n{\r\n if (format.dxgiFormat) return DXGI_PIXEL_FORMATS[format.dxgiFormat] || \"\";\r\n if ((format.pfFlags & DDS_FOURCC) && format.fourCc)\r\n {\r\n return FOURCC_PIXEL_FORMATS[format.fourCc] || LEGACY_D3DFMT_PIXEL_FORMATS[format.fourCcCode] || \"\";\r\n }\r\n if (format.pfFlags & DDS_RGB)\r\n {\r\n if (format.rgbBitCount === 32 &&\r\n format.rBitMask === 0x000000ff &&\r\n format.gBitMask === 0x0000ff00 &&\r\n format.bBitMask === 0x00ff0000 &&\r\n format.aBitMask === 0xff000000) return \"rgba8unorm\";\r\n if (format.rgbBitCount === 32 &&\r\n format.rBitMask === 0x00ff0000 &&\r\n format.gBitMask === 0x0000ff00 &&\r\n format.bBitMask === 0x000000ff &&\r\n format.aBitMask === 0xff000000) return \"bgra8unorm\";\r\n // D3DFMT_X8R8G8B8 / D3DFMT_X8B8G8R8: 32bpp with no alpha channel.\r\n // DDPF_ALPHAPIXELS is clear and the alpha mask is zero, so the fourth\r\n // byte is padding and reads as opaque.\r\n if (format.rgbBitCount === 32 &&\r\n format.rBitMask === 0x00ff0000 &&\r\n format.gBitMask === 0x0000ff00 &&\r\n format.bBitMask === 0x000000ff &&\r\n !format.aBitMask) return \"bgrx8unorm\";\r\n if (format.rgbBitCount === 32 &&\r\n format.rBitMask === 0x000000ff &&\r\n format.gBitMask === 0x0000ff00 &&\r\n format.bBitMask === 0x00ff0000 &&\r\n !format.aBitMask) return \"rgbx8unorm\";\r\n if (format.rgbBitCount === 24 &&\r\n format.rBitMask === 0x00ff0000 &&\r\n format.gBitMask === 0x0000ff00 &&\r\n format.bBitMask === 0x000000ff) return \"bgr8unorm\";\r\n }\r\n // Single-channel masks are authored both ways: some declare DDPF_LUMINANCE,\r\n // others DDPF_RGB with only a red mask. Both mean one channel replicated\r\n // across RGB, which is not the same as r8unorm (that samples as red only).\r\n if ((format.pfFlags & DDS_RGB) &&\r\n format.rgbBitCount === 8 &&\r\n format.rBitMask === 0x000000ff &&\r\n !format.gBitMask &&\r\n !format.bBitMask &&\r\n !format.aBitMask) return \"l8unorm\";\r\n if (format.pfFlags & DDS_LUMINANCE)\r\n {\r\n if (format.rgbBitCount === 8 && !(format.pfFlags & DDS_ALPHAPIXELS)) return \"l8unorm\";\r\n if (format.rgbBitCount === 16 && (format.pfFlags & DDS_ALPHAPIXELS)) return \"l8a8unorm\";\r\n }\r\n // D3DFMT_A8: alpha only.\r\n if ((format.pfFlags & DDS_ALPHA) && format.rgbBitCount === 8) return \"a8unorm\";\r\n return \"\";\r\n}\r\n\r\n\r\n\r\n\r\n\r\n"],"names":["OUTPUT_IMAGE","OUTPUT_TEXTURE","OUTPUT_RGBA","OUTPUT_RAW","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DDS_PIXELFORMAT_OFFSET","DDS_FOURCC","DDS_RGB","DDS_ALPHAPIXELS","DDS_ALPHA","DDS_LUMINANCE","DDSCAPS2_CUBEMAP","DDSCAPS2_VOLUME","DDS_CUBE_FACE_FLAGS","FOURCC_PIXEL_FORMATS","DXT1","DXT3","DXT5","ATI1","BC4U","BC4S","ATI2","BC5U","BC5S","DXGI_PIXEL_FORMATS","COMPRESSED_PIXEL_FORMATS","Set","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalizeFormatId","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","hasCompleteTextureData","isDataComplete","canEmitTexture","dataOffset","pixelFormat","canEmitRgba","canDecodeDdsToRgba","textureUnsupportedReason","expectedDataBytes","dataBytes","variants","kind","codec","textureFormat","supported","isCompressed","reason","isFloatPixelFormat","nativeTextureOnly","toUpperCase","preferredVariant","find","v","format","some","confidence","preferredOutput","warnings","errors","error","message","readWithValues","readDdsTexture","readDdsToRgba","Error","code","identifyImageBytes","inspectDDS","foreignImageRecord","headerSize","readU32LE","pfOffset","pfFlags","fourCcCode","fourCc","fromCharCode","rgbBitCount","rBitMask","gBitMask","bBitMask","aBitMask","caps2","isCube","isVolume","cubeFaces","getDdsCubeFaces","hasDx10","dxgiFormat","resourceDimension","declaredArraySize","getDdsPixelFormat","width","height","depth","mipCount","Math","max","expectedFor","count","getDdsExpectedDataBytes","arraySize","single","pitchOrLinearSize","missingDataBytes","extraDataBytes","faces","isCubeComplete","length","dimension","has","hasAlpha","test","hasMipMaps","expand24To32","pixels","floor","out","Uint8Array","p","s","d","convertL8A8ToBgra","LEGACY_EXPANSIONS","convert","scale","expandLegacyTexture","texture","rule","parts","offset","subresources","map","sub","data","subarray","push","next","rowPitch","round","slicePitch","i","at","set","buildDdsSubresources","reduce","sum","entry","expandLegacy","canDecodeDdsBlockFormat","subresource","isFloat","slices","z","start","decodeDdsSlice","rgba","concatTypedArrays","sliceBytes","strideBytes","origin","colorSpace","endsWith","alphaMode","pitch","startsWith","decodeBc1","decodeBc2","decodeBc3","decodeBc4","decodeBc5","decodeBc6h","decodeBc7","decodeFloatUncompressed","decodeUncompressed","total","part","constructor","layers","layer","arrayIndex","face","mip","layout","getDdsLevelLayout","filter","blockBytes","blocksWide","ceil","blocksHigh","bytesPerPixel","pixel","sourceOffset","outputOffset","luminance","Float32Array","view","DataView","buffer","byteOffset","red","green","blue","alpha","getFloat32","halfToFloat","getUint16","sign","exponent","mantissa","pow","Infinity","NaN","blockY","blockX","blockOffset","c0","c1","colors","decodeBc1Colors","indices","y","x","outputX","outputY","color","decodeBcAlphaColor","alphaNibble","alpha0","alpha1","alphaValues","alphaBits","BigInt","Number","signed","forEachBcPixel","decodeBc4Value","endpoint0","decodeSnormByte","endpoint1","bits","min","callback","alphaAt","colorOffset","colorOffsetInBlock","forceFourColor","first","decode565","second","LEGACY_D3DFMT_PIXEL_FORMATS"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { CjsFormat } from '../../format/CjsFormat.js';
2
- import { DxbcContainer } from './core/container.js';
2
+ import { DxbcContainer } from './core/DxbcContainer.js';
3
3
  import { disassembleInstructions } from './core/disassemble.js';
4
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, OUTPUT_JSON, OUTPUT_RAW } from './core/helpers.js';
4
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, OUTPUT_RAW } from './core/helpers.js';
5
5
  import { toJsonWithCollections } from '../../format/jsonPolicies.js';
6
6
 
7
7
  const FORMAT_NAME = "CjsDxbcFormat";
@@ -43,9 +43,9 @@ function resolveDecoderRecord(input, options) {
43
43
  * decoder objects for backends (GLSL/WGSL emitters) that want them.
44
44
  */
45
45
  class CjsDxbcFormat extends CjsFormat {
46
- #emit = DEFAULT_VALUES.emit;
47
- #source = DEFAULT_VALUES.source;
48
- #decodeInstructions = DEFAULT_VALUES.decodeInstructions;
46
+ _emit = DEFAULT_VALUES.emit;
47
+ _source = DEFAULT_VALUES.source;
48
+ _decodeInstructions = DEFAULT_VALUES.decodeInstructions;
49
49
 
50
50
  /**
51
51
  * Create a reusable format profile.
@@ -65,9 +65,9 @@ class CjsDxbcFormat extends CjsFormat {
65
65
  */
66
66
  SetValues(options = {}) {
67
67
  const values = normalizeValues(this.GetValues(), options, FORMAT_NAME);
68
- this.#emit = values.emit;
69
- this.#source = values.source;
70
- this.#decodeInstructions = values.decodeInstructions;
68
+ this._emit = values.emit;
69
+ this._source = values.source;
70
+ this._decodeInstructions = values.decodeInstructions;
71
71
  return this;
72
72
  }
73
73
 
@@ -79,9 +79,9 @@ class CjsDxbcFormat extends CjsFormat {
79
79
  */
80
80
  GetValues(options = {}) {
81
81
  return normalizeValues({
82
- emit: this.#emit,
83
- source: this.#source,
84
- decodeInstructions: this.#decodeInstructions
82
+ emit: this._emit,
83
+ source: this._source,
84
+ decodeInstructions: this._decodeInstructions
85
85
  }, options, FORMAT_NAME);
86
86
  }
87
87
 
@@ -169,10 +169,8 @@ class CjsDxbcFormat extends CjsFormat {
169
169
  static toJSON(value) {
170
170
  return toJsonWithCollections(value);
171
171
  }
172
- static OUTPUT_JSON = OUTPUT_JSON;
173
- static OUTPUT_RAW = OUTPUT_RAW;
174
- static id = "dxbc";
175
- static mediaTypes = Object.freeze(["shader"]);
172
+ static id = "CjsDxbcFormat";
173
+ static mediaTypes = ["shader"];
176
174
  static outputs = CjsFormat.defineOutputs({
177
175
  json: {
178
176
  default: true,
@@ -183,7 +181,7 @@ class CjsDxbcFormat extends CjsFormat {
183
181
  decoded: true
184
182
  }
185
183
  });
186
- static extensions = Object.freeze([]);
184
+ static extensions = [];
187
185
  }
188
186
 
189
187
  export { CjsDxbcFormat, CjsDxbcFormat as default };