@carbonenginejs/runtime 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1,4 +1,7 @@
1
- import { asUint8Array, readU32BE, readU16BE, readU32LE, readU16LE } from '#utils/bytes';
1
+ import { imageMimeType, capitalizeFormatId, rawVariant, pngChannels, identifyImageBytes, foreignImageRecord } from '../../../format/imageSignatures.js';
2
+ export { isPNG } from '../../../format/imageSignatures.js';
3
+ import { asUint8Array, readU32BE } from '#utils/bytes';
4
+ import { decompressBytes } from '#utils/compression';
2
5
 
3
6
  const OUTPUT_IMAGE = "image";
4
7
  const OUTPUT_RGBA = "rgba";
@@ -16,13 +19,6 @@ const DEBUG_OUTPUTS = Object.freeze({
16
19
  tga: "tgaJson",
17
20
  dds: "ddsJson"
18
21
  });
19
- const IMAGE_MIME_TYPES = Object.freeze({
20
- png: "image/png",
21
- jpeg: "image/jpeg",
22
- jpg: "image/jpeg",
23
- tga: "image/x-tga",
24
- dds: "image/vnd-ms.dds"
25
- });
26
22
 
27
23
  /**
28
24
  * Normalizes reader options against their supported defaults for the PNG format
@@ -62,7 +58,7 @@ function inspectWithValues(input, values = DEFAULT_VALUES, expectedType = "") {
62
58
  const detected = inspectBytes(bytes);
63
59
  const sourceFormat = expectedType || values.inputType || detected.sourceFormat;
64
60
  if (expectedType && detected.sourceFormat && detected.sourceFormat !== expectedType) {
65
- throw new TypeError(`CjsFormat${capitalize(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);
61
+ throw new TypeError(`CjsFormat${capitalizeFormatId(expectedType)}: expected ${expectedType}, got ${detected.sourceFormat}`);
66
62
  }
67
63
  return {
68
64
  payloadType: sourceFormat === "dds" ? "texture" : "image",
@@ -158,73 +154,13 @@ async function readWithValuesAsync(input, values = DEFAULT_VALUES, expectedType
158
154
  return readWithValues(bytes, values, expectedType);
159
155
  }
160
156
 
161
- /** Converts a parsed payload into a JSON-safe value for the PNG format reader. */
162
- function toJsonValue(value) {
163
- if (value instanceof Uint8Array) {
164
- return {
165
- byteLength: value.byteLength
166
- };
167
- }
168
- if (Array.isArray(value)) return value.map(toJsonValue);
169
- if (value && typeof value === "object") {
170
- const output = {};
171
- for (const [key, entry] of Object.entries(value)) output[key] = toJsonValue(entry);
172
- return output;
173
- }
174
- return value;
175
- }
176
-
177
157
  /**
178
158
  * Inspects the supplied bytes without decoding their payload for the PNG format
179
159
  * reader.
180
160
  */
181
161
  function inspectBytes(bytes) {
182
- if (isPNG(bytes)) return inspectPNG(bytes);
183
- if (isJPEG(bytes)) return inspectJPEG(bytes);
184
- if (isDDS(bytes)) return inspectDDS(bytes);
185
- if (isTGA(bytes)) return inspectTGA(bytes);
186
- return {
187
- sourceFormat: "",
188
- width: 0,
189
- height: 0
190
- };
191
- }
192
-
193
- /**
194
- * Reports whether the supplied bytes begin with a PNG signature for the PNG
195
- * format reader.
196
- */
197
- function isPNG(bytes) {
198
- return bytes.byteLength >= 24 && bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 && bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;
199
- }
200
-
201
- /**
202
- * Reports whether the supplied bytes begin with a JPEG signature for the PNG
203
- * format reader.
204
- */
205
- function isJPEG(bytes) {
206
- return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;
207
- }
208
-
209
- /**
210
- * Reports whether the supplied bytes begin with a DDS signature for the PNG
211
- * format reader.
212
- */
213
- function isDDS(bytes) {
214
- return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;
215
- }
216
-
217
- /**
218
- * Reports whether the supplied bytes have a supported TGA header for the PNG
219
- * format reader.
220
- */
221
- function isTGA(bytes) {
222
- if (bytes.byteLength < 18) return false;
223
- const imageType = bytes[2],
224
- width = readU16LE(bytes, 12),
225
- height = readU16LE(bytes, 14),
226
- bpp = bytes[16];
227
- return width > 0 && height > 0 && [1, 2, 3, 9, 10, 11].includes(imageType) && [8, 16, 24, 32].includes(bpp);
162
+ const sourceFormat = identifyImageBytes(bytes);
163
+ return sourceFormat === "png" ? inspectPNG(bytes) : foreignImageRecord(sourceFormat);
228
164
  }
229
165
  function inspectPNG(bytes) {
230
166
  const colorType = bytes[25],
@@ -257,7 +193,7 @@ async function decodePngToRgba(bytes, metadata) {
257
193
  metadata.__pngTransparentGray = metadata.bitDepth === 16 ? chunks.trns[0] << 8 | chunks.trns[1] : chunks.trns[1];
258
194
  }
259
195
  const compressed = concatBytes(chunks.idat);
260
- const inflated = new Uint8Array(await new Response(new Blob([compressed]).stream().pipeThrough(new DecompressionStream("deflate"))).arrayBuffer());
196
+ const inflated = await decompressBytes(compressed, "deflate");
261
197
  const channels = pngChannels(metadata.colorType);
262
198
  const rgba = new Uint8Array(metadata.width * metadata.height * 4);
263
199
  if (metadata.interlaceMethod === 0) {
@@ -290,18 +226,6 @@ async function decodePngToRgba(bytes, metadata) {
290
226
  data: rgba
291
227
  };
292
228
  }
293
- function rawVariant(metadata) {
294
- return {
295
- kind: "raw",
296
- payloadType: "raw",
297
- codec: metadata.sourceFormat,
298
- mimeType: imageMimeType(metadata.sourceFormat),
299
- supported: true
300
- };
301
- }
302
- function imageMimeType(sourceFormat) {
303
- return IMAGE_MIME_TYPES[sourceFormat] || "application/octet-stream";
304
- }
305
229
  function pngRgbaSupport(metadata) {
306
230
  if (metadata.idatChunkCount < 1 || metadata.idatBytes < 1) {
307
231
  return {
@@ -340,7 +264,10 @@ function pngRgbaSupport(metadata) {
340
264
  reason: "PNG compression/filter methods are unsupported by the RGBA decoder."
341
265
  };
342
266
  }
343
- if (typeof DecompressionStream !== "function" || typeof Blob !== "function" || typeof Response !== "function") {
267
+ // `Blob` is deliberately not required: the shared `decompressBytes` feeds the
268
+ // bytes straight to `Response`, so an environment with DecompressionStream and
269
+ // Response but no Blob can decode and used to be told it could not.
270
+ if (typeof DecompressionStream !== "function" || typeof Response !== "function") {
344
271
  return {
345
272
  supported: false,
346
273
  reason: "PNG async RGBA decode requires platform DecompressionStream support."
@@ -554,75 +481,9 @@ function throwPngUnsupported(metadata, message) {
554
481
  error.sourceFormat = metadata.sourceFormat;
555
482
  throw error;
556
483
  }
557
- function inspectJPEG(bytes) {
558
- let offset = 2;
559
- while (offset + 9 < bytes.byteLength) {
560
- if (bytes[offset] !== 0xff) {
561
- offset++;
562
- continue;
563
- }
564
- const marker = bytes[offset + 1],
565
- length = readU16BE(bytes, offset + 2);
566
- if ([0xc0, 0xc1, 0xc2, 0xc3].includes(marker)) {
567
- return {
568
- sourceFormat: "jpeg",
569
- width: readU16BE(bytes, offset + 7),
570
- height: readU16BE(bytes, offset + 5),
571
- channels: bytes[offset + 9],
572
- marker,
573
- pixelFormat: "jpeg-ycbcr",
574
- isCompressed: true
575
- };
576
- }
577
- offset += Math.max(length + 2, 2);
578
- }
579
- return {
580
- sourceFormat: "jpeg",
581
- width: 0,
582
- height: 0,
583
- channels: 0,
584
- pixelFormat: "jpeg",
585
- isCompressed: true
586
- };
587
- }
588
- function inspectDDS(bytes) {
589
- const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\0+$/u, "");
590
- return {
591
- sourceFormat: "dds",
592
- width: readU32LE(bytes, 16),
593
- height: readU32LE(bytes, 12),
594
- mipCount: Math.max(readU32LE(bytes, 28), 1),
595
- fourCc,
596
- textureFormat: fourCc || "dds-legacy",
597
- isCompressed: !!fourCc,
598
- hasMipMaps: readU32LE(bytes, 28) > 1
599
- };
600
- }
601
- function inspectTGA(bytes) {
602
- return {
603
- sourceFormat: "tga",
604
- width: readU16LE(bytes, 12),
605
- height: readU16LE(bytes, 14),
606
- channels: Math.max(bytes[16] / 8, 1),
607
- imageType: bytes[2],
608
- pixelFormat: `tga-${bytes[16]}`,
609
- isCompressed: [9, 10, 11].includes(bytes[2])
610
- };
611
- }
612
- function pngChannels(colorType) {
613
- if (colorType === 0) return 1;
614
- if (colorType === 2) return 3;
615
- if (colorType === 3) return 1;
616
- if (colorType === 4) return 2;
617
- if (colorType === 6) return 4;
618
- return 0;
619
- }
620
484
  function readI32BE(bytes, offset) {
621
485
  return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getInt32(0, false);
622
486
  }
623
- function capitalize(value) {
624
- return value ? value[0].toUpperCase() + value.slice(1) : "Image";
625
- }
626
487
 
627
- export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, isDDS, isJPEG, isPNG, isTGA, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues, readWithValuesAsync, toJsonValue };
488
+ export { DEFAULT_VALUES, OUTPUT_IMAGE, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, inspectBytes, inspectWithValues, normalizeEmit, normalizeInputType, normalizeValues, probeSupportWithValues, readWithValues, readWithValuesAsync };
628
489
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/png/core/helpers.js"],"sourcesContent":["import { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\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 DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\nconst IMAGE_MIME_TYPES = Object.freeze({\n png: \"image/png\",\n jpeg: \"image/jpeg\",\n jpg: \"image/jpeg\",\n tga: \"image/x-tga\",\n dds: \"image/vnd-ms.dds\"\n});\n\n/**\n * Normalizes reader options against their supported defaults for the PNG 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 PNG 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 PNG 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_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 PNG format reader. */\r/** Inspects input using normalized format options for the PNG 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${capitalize(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 PNG\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 pngSupport = metadata.sourceFormat === \"png\" ? pngRgbaSupport(metadata) : null;\n const variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: pngSupport?.supported === true,\n reason: pngSupport?.reason || `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`,\n meta: { async: true }\n },\n rawVariant(metadata)\n ];\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some((variant) => variant.kind === \"rgba\" && variant.supported) ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.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 PNG 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 mimeType: imageMimeType(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 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/**\n * Reads input asynchronously using normalized format options for the PNG format\n * reader.\n */\nexport async function readWithValuesAsync(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 || values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return readWithValues(bytes, values, expectedType);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"png\")\n {\n return decodePngToRgba(bytes, metadata);\n }\n\n return readWithValues(bytes, values, expectedType);\n}\n\n/** Converts a parsed payload into a JSON-safe value for the PNG format reader. */\nexport function toJsonValue(value)\n{\n if (value instanceof Uint8Array)\n {\n return { byteLength: value.byteLength };\n }\n if (Array.isArray(value)) return value.map(toJsonValue);\n if (value && typeof value === \"object\")\n {\n const output = {};\n for (const [ key, entry ] of Object.entries(value)) output[key] = toJsonValue(entry);\n return output;\n }\n return value;\n}\n\n/**\n * Inspects the supplied bytes without decoding their payload for the PNG format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n if (isPNG(bytes)) return inspectPNG(bytes);\n if (isJPEG(bytes)) return inspectJPEG(bytes);\n if (isDDS(bytes)) return inspectDDS(bytes);\n if (isTGA(bytes)) return inspectTGA(bytes);\n return { sourceFormat: \"\", width: 0, height: 0 };\n}\n\n/**\n * Reports whether the supplied bytes begin with a PNG signature for the PNG\n * format reader.\n */\nexport function isPNG(bytes)\n{\n return bytes.byteLength >= 24 &&\n bytes[0] === 0x89 && bytes[1] === 0x50 && bytes[2] === 0x4e && bytes[3] === 0x47 &&\n bytes[4] === 0x0d && bytes[5] === 0x0a && bytes[6] === 0x1a && bytes[7] === 0x0a;\n}\n\n/**\n * Reports whether the supplied bytes begin with a JPEG signature for the PNG\n * format reader.\n */\nexport function isJPEG(bytes)\n{\n return bytes.byteLength >= 4 && bytes[0] === 0xff && bytes[1] === 0xd8;\n}\n\n/**\n * Reports whether the supplied bytes begin with a DDS signature for the PNG\n * format reader.\n */\nexport function isDDS(bytes)\n{\n return bytes.byteLength >= 128 && bytes[0] === 0x44 && bytes[1] === 0x44 && bytes[2] === 0x53 && bytes[3] === 0x20;\n}\n\n/**\n * Reports whether the supplied bytes have a supported TGA header for the PNG\n * format reader.\n */\nexport function isTGA(bytes)\n{\n if (bytes.byteLength < 18) return false;\n const imageType = bytes[2], width = readU16LE(bytes, 12), height = readU16LE(bytes, 14), bpp = bytes[16];\n return width > 0 && height > 0 && [ 1, 2, 3, 9, 10, 11 ].includes(imageType) && [ 8, 16, 24, 32 ].includes(bpp);\n}\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n const chunks = readPngChunkSummary(bytes);\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false,\n compressionMethod: bytes[26],\n filterMethod: bytes[27],\n interlaceMethod: bytes[28],\n ...chunks\n };\n}\n\nasync function decodePngToRgba(bytes, metadata)\n{\n const support = pngRgbaSupport(metadata);\n if (!support.supported)\n {\n throwPngUnsupported(metadata, support.reason);\n }\n\n const chunks = readPngChunks(bytes);\n metadata.__pngPalette = chunks.palette;\n metadata.__pngTransparency = chunks.trns;\n if (chunks.trns && metadata.colorType === 0)\n {\n metadata.__pngTransparentGray = metadata.bitDepth === 16\n ? (chunks.trns[0] << 8) | chunks.trns[1]\n : chunks.trns[1];\n }\n const compressed = concatBytes(chunks.idat);\n const inflated = new Uint8Array(await new Response(\n new Blob([ compressed ]).stream().pipeThrough(new DecompressionStream(\"deflate\"))\n ).arrayBuffer());\n const channels = pngChannels(metadata.colorType);\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n if (metadata.interlaceMethod === 0)\n {\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const rowBytes = Math.ceil(metadata.width * channels * metadata.bitDepth / 8);\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n const expectedLength = metadata.height * (rowBytes + 1);\n if (inflated.byteLength < expectedLength)\n {\n throwPngUnsupported(metadata, \"PNG image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated, metadata.height, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < metadata.height; y++)\n {\n decodePngRow(rows, y * rowBytes, rgba, y * metadata.width * 4, metadata, metadata.width);\n }\n }\n else\n {\n decodeAdam7Rows(inflated, rgba, metadata);\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"png\",\n mimeType: \"image/png\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: chunks.srgb ? \"srgb\" : \"unknown\",\n alphaMode: [ 4, 6 ].includes(metadata.colorType) || chunks.trns ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\nfunction rawVariant(metadata)\n{\n return {\n kind: \"raw\",\n payloadType: \"raw\",\n codec: metadata.sourceFormat,\n mimeType: imageMimeType(metadata.sourceFormat),\n supported: true,\n };\n}\n\nfunction imageMimeType(sourceFormat)\n{\n return IMAGE_MIME_TYPES[sourceFormat] || \"application/octet-stream\";\n}\n\nfunction pngRgbaSupport(metadata)\n{\n if (metadata.idatChunkCount < 1 || metadata.idatBytes < 1)\n {\n return { supported: false, reason: \"PNG has no IDAT image data for RGBA decode.\" };\n }\n if (!metadata.hasIend)\n {\n return { supported: false, reason: \"PNG stream has no complete IEND chunk.\" };\n }\n const depths = {\n 0: [ 1, 2, 4, 8, 16 ],\n 2: [ 8, 16 ],\n 3: [ 1, 2, 4, 8 ],\n 4: [ 8, 16 ],\n 6: [ 8, 16 ]\n };\n if (!Object.hasOwn(depths, metadata.colorType) || !depths[metadata.colorType].includes(metadata.bitDepth))\n {\n return { supported: false, reason: \"PNG color type and bit depth are unsupported by the RGBA decoder.\" };\n }\n if (![ 0, 1 ].includes(metadata.interlaceMethod))\n {\n return { supported: false, reason: \"PNG interlace method is unsupported by the RGBA decoder.\" };\n }\n if (metadata.compressionMethod !== 0 || metadata.filterMethod !== 0)\n {\n return { supported: false, reason: \"PNG compression/filter methods are unsupported by the RGBA decoder.\" };\n }\n if (typeof DecompressionStream !== \"function\" || typeof Blob !== \"function\" || typeof Response !== \"function\")\n {\n return { supported: false, reason: \"PNG async RGBA decode requires platform DecompressionStream support.\" };\n }\n return { supported: true, reason: \"Use readAsync/readWithValuesAsync for platform deflate decode.\" };\n}\n\nfunction readPngChunks(bytes)\n{\n const chunks = { idat: [], palette: null, trns: null, srgb: false };\n let offset = 8;\n while (offset + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, offset);\n const type = String.fromCharCode(bytes[offset + 4], bytes[offset + 5], bytes[offset + 6], bytes[offset + 7]);\n const start = offset + 8;\n const end = start + length;\n if (end + 4 > bytes.byteLength) break;\n const data = bytes.subarray(start, end);\n if (type === \"IDAT\") chunks.idat.push(data);\n else if (type === \"PLTE\") chunks.palette = data;\n else if (type === \"tRNS\") chunks.trns = data;\n else if (type === \"sRGB\") chunks.srgb = true;\n offset = end + 4;\n if (type === \"IEND\") break;\n }\n return chunks;\n}\n\nfunction readPngChunkSummary(bytes)\n{\n let cursor = 8;\n let chunkCount = 0;\n let idatChunkCount = 0;\n let idatBytes = 0;\n let hasPalette = false;\n let hasTransparency = false;\n let hasSrgb = false;\n let hasIend = false;\n let chunksComplete = true;\n let pngOffset = null;\n let physicalPixelDimensions = null;\n while (cursor + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, cursor);\n const type = String.fromCharCode(bytes[cursor + 4], bytes[cursor + 5], bytes[cursor + 6], bytes[cursor + 7]);\n const end = cursor + 8 + length;\n if (end + 4 > bytes.byteLength)\n {\n chunksComplete = false;\n break;\n }\n chunkCount++;\n if (type === \"IDAT\")\n {\n idatChunkCount++;\n idatBytes += length;\n }\n else if (type === \"PLTE\") hasPalette = true;\n else if (type === \"tRNS\") hasTransparency = true;\n else if (type === \"sRGB\") hasSrgb = true;\n else if (type === \"oFFs\" && length === 9)\n {\n pngOffset = {\n x: readI32BE(bytes, cursor + 8),\n y: readI32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"pHYs\" && length === 9)\n {\n physicalPixelDimensions = {\n x: readU32BE(bytes, cursor + 8),\n y: readU32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"IEND\") hasIend = true;\n cursor = end + 4;\n if (type === \"IEND\") break;\n }\n return {\n chunkCount,\n idatChunkCount,\n idatBytes,\n hasPalette,\n hasTransparency,\n hasSrgb,\n hasIend,\n chunksComplete,\n offset: pngOffset,\n physicalPixelDimensions\n };\n}\n\nfunction concatBytes(chunks)\n{\n const length = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);\n const output = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks)\n {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nfunction unfilterPngRows(inflated, height, rowBytes, bytesPerPixel)\n{\n const rows = new Uint8Array(height * rowBytes);\n let inputOffset = 0;\n for (let y = 0; y < height; y++)\n {\n const filter = inflated[inputOffset++];\n const rowOffset = y * rowBytes;\n const previousOffset = (y - 1) * rowBytes;\n for (let x = 0; x < rowBytes; x++)\n {\n const raw = inflated[inputOffset++];\n const left = x >= bytesPerPixel ? rows[rowOffset + x - bytesPerPixel] : 0;\n const up = y > 0 ? rows[previousOffset + x] : 0;\n const upLeft = y > 0 && x >= bytesPerPixel ? rows[previousOffset + x - bytesPerPixel] : 0;\n let value = raw;\n if (filter === 1) value = raw + left;\n else if (filter === 2) value = raw + up;\n else if (filter === 3) value = raw + Math.floor((left + up) / 2);\n else if (filter === 4) value = raw + paeth(left, up, upLeft);\n else if (filter !== 0) throw new Error(`png: unsupported filter type ${filter}`);\n rows[rowOffset + x] = value & 0xff;\n }\n }\n return rows;\n}\n\nfunction decodePngRow(rows, rowOffset, output, outputOffset, metadata, rowWidth, xStep = 1)\n{\n const channels = pngChannels(metadata.colorType);\n const bitDepth = metadata.bitDepth;\n for (let x = 0; x < rowWidth; x++)\n {\n const samples = [];\n for (let channel = 0; channel < channels; channel++)\n {\n samples.push(readPngSample(rows, rowOffset, x * channels + channel, bitDepth));\n }\n const out = outputOffset + x * xStep * 4;\n if (metadata.colorType === 0)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = pngTransparentGray(metadata, samples[0]) ? 0 : 255;\n }\n else if (metadata.colorType === 2)\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = 255;\n }\n else if (metadata.colorType === 3)\n {\n const index = samples[0];\n const palette = metadata.__pngPalette || [];\n output[out] = palette[index * 3] || 0;\n output[out + 1] = palette[index * 3 + 1] || 0;\n output[out + 2] = palette[index * 3 + 2] || 0;\n output[out + 3] = metadata.__pngTransparency?.[index] ?? 255;\n }\n else if (metadata.colorType === 4)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = scalePngSample(samples[1], bitDepth);\n }\n else\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = scalePngSample(samples[3], bitDepth);\n }\n }\n}\n\nfunction decodeAdam7Rows(inflated, output, metadata)\n{\n const passes = [\n [ 0, 0, 8, 8 ],\n [ 4, 0, 8, 8 ],\n [ 0, 4, 4, 8 ],\n [ 2, 0, 4, 4 ],\n [ 0, 2, 2, 4 ],\n [ 1, 0, 2, 2 ],\n [ 0, 1, 1, 2 ]\n ];\n const channels = pngChannels(metadata.colorType);\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n let offset = 0;\n\n for (const [ xStart, yStart, xStep, yStep ] of passes)\n {\n const passWidth = Math.max(0, Math.ceil((metadata.width - xStart) / xStep));\n const passHeight = Math.max(0, Math.ceil((metadata.height - yStart) / yStep));\n if (passWidth === 0 || passHeight === 0) continue;\n\n const rowBytes = Math.ceil(passWidth * channels * metadata.bitDepth / 8);\n const expectedLength = passHeight * (rowBytes + 1);\n if (offset + expectedLength > inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated.subarray(offset, offset + expectedLength), passHeight, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < passHeight; y++)\n {\n const destinationY = yStart + y * yStep;\n const destinationX = xStart;\n const outputOffset = (destinationY * metadata.width + destinationX) * 4;\n decodePngRow(rows, y * rowBytes, output, outputOffset, metadata, passWidth, xStep);\n }\n offset += expectedLength;\n }\n\n if (offset !== inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data has trailing bytes.\");\n }\n}\n\nfunction readPngSample(rows, rowOffset, sampleIndex, bitDepth)\n{\n if (bitDepth >= 8)\n {\n const bytesPerSample = bitDepth / 8;\n const offset = rowOffset + sampleIndex * bytesPerSample;\n return bytesPerSample === 1 ? rows[offset] : (rows[offset] << 8) | rows[offset + 1];\n }\n const perByte = 8 / bitDepth;\n const offset = rowOffset + Math.floor(sampleIndex / perByte);\n const shift = (perByte - 1 - (sampleIndex % perByte)) * bitDepth;\n return (rows[offset] >>> shift) & ((1 << bitDepth) - 1);\n}\n\nfunction scalePngSample(value, bitDepth)\n{\n const max = (1 << Math.min(bitDepth, 16)) - 1;\n return Math.round(value * 255 / max);\n}\n\nfunction pngTransparentGray(metadata, value)\n{\n return metadata.__pngTransparentGray !== undefined && value === metadata.__pngTransparentGray;\n}\n\nfunction paeth(a, b, c)\n{\n const p = a + b - c;\n const pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c);\n return pa <= pb && pa <= pc ? a : pb <= pc ? b : c;\n}\n\nfunction throwPngUnsupported(metadata, message)\n{\n const error = new Error(`png: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\nfunction inspectJPEG(bytes)\n{\n let offset = 2;\n while (offset + 9 < bytes.byteLength)\n {\n if (bytes[offset] !== 0xff)\n {\n offset++;\n continue;\n }\n const marker = bytes[offset + 1], length = readU16BE(bytes, offset + 2);\n if ([ 0xc0, 0xc1, 0xc2, 0xc3 ].includes(marker))\n {\n return {\n sourceFormat: \"jpeg\",\n width: readU16BE(bytes, offset + 7),\n height: readU16BE(bytes, offset + 5),\n channels: bytes[offset + 9],\n marker,\n pixelFormat: \"jpeg-ycbcr\",\n isCompressed: true\n };\n }\n offset += Math.max(length + 2, 2);\n }\n return { sourceFormat: \"jpeg\", width: 0, height: 0, channels: 0, pixelFormat: \"jpeg\", isCompressed: true };\n}\n\nfunction inspectDDS(bytes)\n{\n const fourCc = String.fromCharCode(bytes[84], bytes[85], bytes[86], bytes[87]).replace(/\\0+$/u, \"\");\n return {\n sourceFormat: \"dds\",\n width: readU32LE(bytes, 16),\n height: readU32LE(bytes, 12),\n mipCount: Math.max(readU32LE(bytes, 28), 1),\n fourCc,\n textureFormat: fourCc || \"dds-legacy\",\n isCompressed: !!fourCc,\n hasMipMaps: readU32LE(bytes, 28) > 1\n };\n}\n\nfunction inspectTGA(bytes)\n{\n return {\n sourceFormat: \"tga\",\n width: readU16LE(bytes, 12),\n height: readU16LE(bytes, 14),\n channels: Math.max(bytes[16] / 8, 1),\n imageType: bytes[2],\n pixelFormat: `tga-${bytes[16]}`,\n isCompressed: [ 9, 10, 11 ].includes(bytes[2])\n };\n}\n\nfunction pngChannels(colorType)\n{\n if (colorType === 0) return 1;\n if (colorType === 2) return 3;\n if (colorType === 3) return 1;\n if (colorType === 4) return 2;\n if (colorType === 6) return 4;\n return 0;\n}\n\nfunction readI32BE(bytes, offset)\n{\n return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getInt32(0, false);\n}\n\nfunction capitalize(value)\n{\n return value ? value[0].toUpperCase() + value.slice(1) : \"Image\";\n}\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","DEBUG_OUTPUTS","png","jpeg","jpg","tga","dds","IMAGE_MIME_TYPES","normalizeValues","base","options","readerName","values","normalizeInputType","normalizeEmit","value","String","replace","toLowerCase","undefined","includes","TypeError","JSON","stringify","inspectWithValues","input","expectedType","bytes","asUint8Array","detected","inspectBytes","sourceFormat","capitalize","payloadType","mediaTypes","byteLength","probeSupportWithValues","metadata","pngSupport","pngRgbaSupport","variants","kind","codec","supported","reason","toUpperCase","meta","async","rawVariant","format","some","variant","confidence","preferredOutput","find","v","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","Error","code","readWithValuesAsync","decodePngToRgba","toJsonValue","Uint8Array","Array","isArray","map","output","key","entry","entries","isPNG","inspectPNG","isJPEG","inspectJPEG","isDDS","inspectDDS","isTGA","inspectTGA","width","height","imageType","readU16LE","bpp","colorType","bitDepth","chunks","readPngChunkSummary","readU32BE","channels","pngChannels","pixelFormat","isCompressed","compressionMethod","filterMethod","interlaceMethod","support","throwPngUnsupported","readPngChunks","__pngPalette","palette","__pngTransparency","trns","__pngTransparentGray","compressed","concatBytes","idat","inflated","Response","Blob","stream","pipeThrough","DecompressionStream","arrayBuffer","rgba","bytesPerSample","Math","ceil","rowBytes","filterBytesPerPixel","max","expectedLength","rows","unfilterPngRows","y","decodePngRow","decodeAdam7Rows","strideBytes","origin","colorSpace","srgb","alphaMode","data","idatChunkCount","idatBytes","hasIend","depths","hasOwn","offset","length","type","fromCharCode","start","end","subarray","push","cursor","chunkCount","hasPalette","hasTransparency","hasSrgb","chunksComplete","pngOffset","physicalPixelDimensions","x","readI32BE","unit","reduce","sum","chunk","set","bytesPerPixel","inputOffset","filter","rowOffset","previousOffset","raw","left","up","upLeft","floor","paeth","outputOffset","rowWidth","xStep","samples","channel","readPngSample","out","gray","scalePngSample","pngTransparentGray","index","passes","xStart","yStart","yStep","passWidth","passHeight","destinationY","destinationX","sampleIndex","perByte","shift","min","round","a","b","c","p","pa","abs","pb","pc","marker","readU16BE","fourCc","readU32LE","mipCount","textureFormat","hasMipMaps","DataView","buffer","byteOffset","getInt32","slice"],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sources":["../../../../../../src/resource/formats/png/core/helpers.js"],"sourcesContent":["import { toJsonWithByteSummary as toJsonValue } from \"../../../format/jsonPolicies.js\";\nimport { capitalizeFormatId, foreignImageRecord, identifyImageBytes, imageMimeType, isPNG, pngChannels, rawVariant } from \"../../../format/imageSignatures.js\";\n\n// The container sniffer is shared; re-exported because the format class\n// imports it from this module.\nexport { isPNG };\nimport { asUint8Array, readU16BE, readU16LE, readU32BE, readU32LE } from \"#utils/bytes\";\nimport { decompressBytes } from \"#utils/compression\";\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 DEBUG_OUTPUTS = Object.freeze({\n png: \"pngJson\",\n jpeg: \"jpegJson\",\n jpg: \"jpegJson\",\n tga: \"tgaJson\",\n dds: \"ddsJson\"\n});\n\n\n/**\n * Normalizes reader options against their supported defaults for the PNG 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 PNG 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 PNG 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_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 PNG format reader. */\n/** Inspects input using normalized format options for the PNG 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 PNG\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 pngSupport = metadata.sourceFormat === \"png\" ? pngRgbaSupport(metadata) : null;\n const variants = [\n {\n kind: \"rgba\",\n payloadType: \"rgba\",\n codec: \"rgba8unorm\",\n supported: pngSupport?.supported === true,\n reason: pngSupport?.reason || `${metadata.sourceFormat.toUpperCase()} RGBA decode is not implemented yet.`,\n meta: { async: true }\n },\n rawVariant(metadata)\n ];\n\n return {\n format: metadata.sourceFormat,\n source: values.source || \"buffer\",\n supported: metadata.sourceFormat ? (variants.some((variant) => variant.kind === \"rgba\" && variant.supported) ? \"full\" : \"partial\") : \"none\",\n confidence: metadata.sourceFormat ? 1 : 0,\n preferredOutput: variants.find(v => v.supported)?.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 PNG 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 mimeType: imageMimeType(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 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/**\n * Reads input asynchronously using normalized format options for the PNG format\n * reader.\n */\nexport async function readWithValuesAsync(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 || values.emit === OUTPUT_JSON || values.emit === DEBUG_OUTPUTS[metadata.sourceFormat])\n {\n return readWithValues(bytes, values, expectedType);\n }\n\n if ((values.emit === OUTPUT_RGBA || values.emit === OUTPUT_IMAGE) && metadata.sourceFormat === \"png\")\n {\n return decodePngToRgba(bytes, metadata);\n }\n\n return readWithValues(bytes, values, expectedType);\n}\n\n/** Converts a parsed payload into a JSON-safe value for the PNG 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 PNG format\n * reader.\n */\nexport function inspectBytes(bytes)\n{\n const sourceFormat = identifyImageBytes(bytes);\n return sourceFormat === \"png\" ? inspectPNG(bytes) : foreignImageRecord(sourceFormat);\n}\n\n\n\n\n\nfunction inspectPNG(bytes)\n{\n const colorType = bytes[25], bitDepth = bytes[24];\n const chunks = readPngChunkSummary(bytes);\n return {\n sourceFormat: \"png\",\n width: readU32BE(bytes, 16),\n height: readU32BE(bytes, 20),\n bitDepth,\n colorType,\n channels: pngChannels(colorType),\n pixelFormat: `png-${bitDepth}-${colorType}`,\n isCompressed: false,\n compressionMethod: bytes[26],\n filterMethod: bytes[27],\n interlaceMethod: bytes[28],\n ...chunks\n };\n}\n\nasync function decodePngToRgba(bytes, metadata)\n{\n const support = pngRgbaSupport(metadata);\n if (!support.supported)\n {\n throwPngUnsupported(metadata, support.reason);\n }\n\n const chunks = readPngChunks(bytes);\n metadata.__pngPalette = chunks.palette;\n metadata.__pngTransparency = chunks.trns;\n if (chunks.trns && metadata.colorType === 0)\n {\n metadata.__pngTransparentGray = metadata.bitDepth === 16\n ? (chunks.trns[0] << 8) | chunks.trns[1]\n : chunks.trns[1];\n }\n const compressed = concatBytes(chunks.idat);\n const inflated = await decompressBytes(compressed, \"deflate\");\n const channels = pngChannels(metadata.colorType);\n const rgba = new Uint8Array(metadata.width * metadata.height * 4);\n if (metadata.interlaceMethod === 0)\n {\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const rowBytes = Math.ceil(metadata.width * channels * metadata.bitDepth / 8);\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n const expectedLength = metadata.height * (rowBytes + 1);\n if (inflated.byteLength < expectedLength)\n {\n throwPngUnsupported(metadata, \"PNG image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated, metadata.height, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < metadata.height; y++)\n {\n decodePngRow(rows, y * rowBytes, rgba, y * metadata.width * 4, metadata, metadata.width);\n }\n }\n else\n {\n decodeAdam7Rows(inflated, rgba, metadata);\n }\n\n return {\n payloadType: OUTPUT_RGBA,\n sourceFormat: \"png\",\n mimeType: \"image/png\",\n width: metadata.width,\n height: metadata.height,\n pixelFormat: \"rgba8unorm\",\n strideBytes: metadata.width * 4,\n origin: \"top-left\",\n colorSpace: chunks.srgb ? \"srgb\" : \"unknown\",\n alphaMode: [ 4, 6 ].includes(metadata.colorType) || chunks.trns ? \"straight\" : \"opaque\",\n metadata,\n data: rgba\n };\n}\n\n\n\nfunction pngRgbaSupport(metadata)\n{\n if (metadata.idatChunkCount < 1 || metadata.idatBytes < 1)\n {\n return { supported: false, reason: \"PNG has no IDAT image data for RGBA decode.\" };\n }\n if (!metadata.hasIend)\n {\n return { supported: false, reason: \"PNG stream has no complete IEND chunk.\" };\n }\n const depths = {\n 0: [ 1, 2, 4, 8, 16 ],\n 2: [ 8, 16 ],\n 3: [ 1, 2, 4, 8 ],\n 4: [ 8, 16 ],\n 6: [ 8, 16 ]\n };\n if (!Object.hasOwn(depths, metadata.colorType) || !depths[metadata.colorType].includes(metadata.bitDepth))\n {\n return { supported: false, reason: \"PNG color type and bit depth are unsupported by the RGBA decoder.\" };\n }\n if (![ 0, 1 ].includes(metadata.interlaceMethod))\n {\n return { supported: false, reason: \"PNG interlace method is unsupported by the RGBA decoder.\" };\n }\n if (metadata.compressionMethod !== 0 || metadata.filterMethod !== 0)\n {\n return { supported: false, reason: \"PNG compression/filter methods are unsupported by the RGBA decoder.\" };\n }\n // `Blob` is deliberately not required: the shared `decompressBytes` feeds the\n // bytes straight to `Response`, so an environment with DecompressionStream and\n // Response but no Blob can decode and used to be told it could not.\n if (typeof DecompressionStream !== \"function\" || typeof Response !== \"function\")\n {\n return { supported: false, reason: \"PNG async RGBA decode requires platform DecompressionStream support.\" };\n }\n return { supported: true, reason: \"Use readAsync/readWithValuesAsync for platform deflate decode.\" };\n}\n\nfunction readPngChunks(bytes)\n{\n const chunks = { idat: [], palette: null, trns: null, srgb: false };\n let offset = 8;\n while (offset + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, offset);\n const type = String.fromCharCode(bytes[offset + 4], bytes[offset + 5], bytes[offset + 6], bytes[offset + 7]);\n const start = offset + 8;\n const end = start + length;\n if (end + 4 > bytes.byteLength) break;\n const data = bytes.subarray(start, end);\n if (type === \"IDAT\") chunks.idat.push(data);\n else if (type === \"PLTE\") chunks.palette = data;\n else if (type === \"tRNS\") chunks.trns = data;\n else if (type === \"sRGB\") chunks.srgb = true;\n offset = end + 4;\n if (type === \"IEND\") break;\n }\n return chunks;\n}\n\nfunction readPngChunkSummary(bytes)\n{\n let cursor = 8;\n let chunkCount = 0;\n let idatChunkCount = 0;\n let idatBytes = 0;\n let hasPalette = false;\n let hasTransparency = false;\n let hasSrgb = false;\n let hasIend = false;\n let chunksComplete = true;\n let pngOffset = null;\n let physicalPixelDimensions = null;\n while (cursor + 12 <= bytes.byteLength)\n {\n const length = readU32BE(bytes, cursor);\n const type = String.fromCharCode(bytes[cursor + 4], bytes[cursor + 5], bytes[cursor + 6], bytes[cursor + 7]);\n const end = cursor + 8 + length;\n if (end + 4 > bytes.byteLength)\n {\n chunksComplete = false;\n break;\n }\n chunkCount++;\n if (type === \"IDAT\")\n {\n idatChunkCount++;\n idatBytes += length;\n }\n else if (type === \"PLTE\") hasPalette = true;\n else if (type === \"tRNS\") hasTransparency = true;\n else if (type === \"sRGB\") hasSrgb = true;\n else if (type === \"oFFs\" && length === 9)\n {\n pngOffset = {\n x: readI32BE(bytes, cursor + 8),\n y: readI32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"pHYs\" && length === 9)\n {\n physicalPixelDimensions = {\n x: readU32BE(bytes, cursor + 8),\n y: readU32BE(bytes, cursor + 12),\n unit: bytes[cursor + 16]\n };\n }\n else if (type === \"IEND\") hasIend = true;\n cursor = end + 4;\n if (type === \"IEND\") break;\n }\n return {\n chunkCount,\n idatChunkCount,\n idatBytes,\n hasPalette,\n hasTransparency,\n hasSrgb,\n hasIend,\n chunksComplete,\n offset: pngOffset,\n physicalPixelDimensions\n };\n}\n\nfunction concatBytes(chunks)\n{\n const length = chunks.reduce((sum, chunk) => sum + chunk.byteLength, 0);\n const output = new Uint8Array(length);\n let offset = 0;\n for (const chunk of chunks)\n {\n output.set(chunk, offset);\n offset += chunk.byteLength;\n }\n return output;\n}\n\nfunction unfilterPngRows(inflated, height, rowBytes, bytesPerPixel)\n{\n const rows = new Uint8Array(height * rowBytes);\n let inputOffset = 0;\n for (let y = 0; y < height; y++)\n {\n const filter = inflated[inputOffset++];\n const rowOffset = y * rowBytes;\n const previousOffset = (y - 1) * rowBytes;\n for (let x = 0; x < rowBytes; x++)\n {\n const raw = inflated[inputOffset++];\n const left = x >= bytesPerPixel ? rows[rowOffset + x - bytesPerPixel] : 0;\n const up = y > 0 ? rows[previousOffset + x] : 0;\n const upLeft = y > 0 && x >= bytesPerPixel ? rows[previousOffset + x - bytesPerPixel] : 0;\n let value = raw;\n if (filter === 1) value = raw + left;\n else if (filter === 2) value = raw + up;\n else if (filter === 3) value = raw + Math.floor((left + up) / 2);\n else if (filter === 4) value = raw + paeth(left, up, upLeft);\n else if (filter !== 0) throw new Error(`png: unsupported filter type ${filter}`);\n rows[rowOffset + x] = value & 0xff;\n }\n }\n return rows;\n}\n\nfunction decodePngRow(rows, rowOffset, output, outputOffset, metadata, rowWidth, xStep = 1)\n{\n const channels = pngChannels(metadata.colorType);\n const bitDepth = metadata.bitDepth;\n for (let x = 0; x < rowWidth; x++)\n {\n const samples = [];\n for (let channel = 0; channel < channels; channel++)\n {\n samples.push(readPngSample(rows, rowOffset, x * channels + channel, bitDepth));\n }\n const out = outputOffset + x * xStep * 4;\n if (metadata.colorType === 0)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = pngTransparentGray(metadata, samples[0]) ? 0 : 255;\n }\n else if (metadata.colorType === 2)\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = 255;\n }\n else if (metadata.colorType === 3)\n {\n const index = samples[0];\n const palette = metadata.__pngPalette || [];\n output[out] = palette[index * 3] || 0;\n output[out + 1] = palette[index * 3 + 1] || 0;\n output[out + 2] = palette[index * 3 + 2] || 0;\n output[out + 3] = metadata.__pngTransparency?.[index] ?? 255;\n }\n else if (metadata.colorType === 4)\n {\n const gray = scalePngSample(samples[0], bitDepth);\n output[out] = gray;\n output[out + 1] = gray;\n output[out + 2] = gray;\n output[out + 3] = scalePngSample(samples[1], bitDepth);\n }\n else\n {\n output[out] = scalePngSample(samples[0], bitDepth);\n output[out + 1] = scalePngSample(samples[1], bitDepth);\n output[out + 2] = scalePngSample(samples[2], bitDepth);\n output[out + 3] = scalePngSample(samples[3], bitDepth);\n }\n }\n}\n\nfunction decodeAdam7Rows(inflated, output, metadata)\n{\n const passes = [\n [ 0, 0, 8, 8 ],\n [ 4, 0, 8, 8 ],\n [ 0, 4, 4, 8 ],\n [ 2, 0, 4, 4 ],\n [ 0, 2, 2, 4 ],\n [ 1, 0, 2, 2 ],\n [ 0, 1, 1, 2 ]\n ];\n const channels = pngChannels(metadata.colorType);\n const bytesPerSample = metadata.bitDepth >= 8 ? Math.ceil(metadata.bitDepth / 8) : 1;\n const filterBytesPerPixel = Math.max(1, channels * bytesPerSample);\n let offset = 0;\n\n for (const [ xStart, yStart, xStep, yStep ] of passes)\n {\n const passWidth = Math.max(0, Math.ceil((metadata.width - xStart) / xStep));\n const passHeight = Math.max(0, Math.ceil((metadata.height - yStart) / yStep));\n if (passWidth === 0 || passHeight === 0) continue;\n\n const rowBytes = Math.ceil(passWidth * channels * metadata.bitDepth / 8);\n const expectedLength = passHeight * (rowBytes + 1);\n if (offset + expectedLength > inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data is truncated.\");\n }\n\n const rows = unfilterPngRows(inflated.subarray(offset, offset + expectedLength), passHeight, rowBytes, filterBytesPerPixel);\n for (let y = 0; y < passHeight; y++)\n {\n const destinationY = yStart + y * yStep;\n const destinationX = xStart;\n const outputOffset = (destinationY * metadata.width + destinationX) * 4;\n decodePngRow(rows, y * rowBytes, output, outputOffset, metadata, passWidth, xStep);\n }\n offset += expectedLength;\n }\n\n if (offset !== inflated.byteLength)\n {\n throwPngUnsupported(metadata, \"PNG Adam7 image data has trailing bytes.\");\n }\n}\n\nfunction readPngSample(rows, rowOffset, sampleIndex, bitDepth)\n{\n if (bitDepth >= 8)\n {\n const bytesPerSample = bitDepth / 8;\n const offset = rowOffset + sampleIndex * bytesPerSample;\n return bytesPerSample === 1 ? rows[offset] : (rows[offset] << 8) | rows[offset + 1];\n }\n const perByte = 8 / bitDepth;\n const offset = rowOffset + Math.floor(sampleIndex / perByte);\n const shift = (perByte - 1 - (sampleIndex % perByte)) * bitDepth;\n return (rows[offset] >>> shift) & ((1 << bitDepth) - 1);\n}\n\nfunction scalePngSample(value, bitDepth)\n{\n const max = (1 << Math.min(bitDepth, 16)) - 1;\n return Math.round(value * 255 / max);\n}\n\nfunction pngTransparentGray(metadata, value)\n{\n return metadata.__pngTransparentGray !== undefined && value === metadata.__pngTransparentGray;\n}\n\nfunction paeth(a, b, c)\n{\n const p = a + b - c;\n const pa = Math.abs(p - a), pb = Math.abs(p - b), pc = Math.abs(p - c);\n return pa <= pb && pa <= pc ? a : pb <= pc ? b : c;\n}\n\nfunction throwPngUnsupported(metadata, message)\n{\n const error = new Error(`png: ${message}`);\n error.code = \"CJS_FORMAT_OUTPUT_NOT_SUPPORTED\";\n error.sourceFormat = metadata.sourceFormat;\n throw error;\n}\n\n\n\n\n\nfunction readI32BE(bytes, offset)\n{\n return new DataView(bytes.buffer, bytes.byteOffset + offset, 4).getInt32(0, false);\n}\n\n\n"],"names":["OUTPUT_IMAGE","OUTPUT_RGBA","OUTPUT_RAW","OUTPUT_JSON","DEFAULT_VALUES","Object","freeze","emit","inputType","source","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","pngSupport","pngRgbaSupport","variants","kind","codec","supported","reason","toUpperCase","meta","async","rawVariant","format","some","variant","confidence","preferredOutput","find","v","warnings","errors","error","message","readWithValues","mimeType","imageMimeType","Error","code","readWithValuesAsync","decodePngToRgba","identifyImageBytes","inspectPNG","foreignImageRecord","colorType","bitDepth","chunks","readPngChunkSummary","width","readU32BE","height","channels","pngChannels","pixelFormat","isCompressed","compressionMethod","filterMethod","interlaceMethod","support","throwPngUnsupported","readPngChunks","__pngPalette","palette","__pngTransparency","trns","__pngTransparentGray","compressed","concatBytes","idat","inflated","decompressBytes","rgba","Uint8Array","bytesPerSample","Math","ceil","rowBytes","filterBytesPerPixel","max","expectedLength","rows","unfilterPngRows","y","decodePngRow","decodeAdam7Rows","strideBytes","origin","colorSpace","srgb","alphaMode","data","idatChunkCount","idatBytes","hasIend","depths","hasOwn","DecompressionStream","Response","offset","length","type","fromCharCode","start","end","subarray","push","cursor","chunkCount","hasPalette","hasTransparency","hasSrgb","chunksComplete","pngOffset","physicalPixelDimensions","x","readI32BE","unit","reduce","sum","chunk","output","set","bytesPerPixel","inputOffset","filter","rowOffset","previousOffset","raw","left","up","upLeft","floor","paeth","outputOffset","rowWidth","xStep","samples","channel","readPngSample","out","gray","scalePngSample","pngTransparentGray","index","passes","xStart","yStart","yStep","passWidth","passHeight","destinationY","destinationX","sampleIndex","perByte","shift","min","round","a","b","c","p","pa","abs","pb","pc","DataView","buffer","byteOffset","getInt32"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { adler32, crc32 } from '#utils/checksum';
2
+
1
3
  /**
2
4
  * PNG encoding, from the normalized RGBA payload every image format here
3
5
  * decodes TO.
@@ -24,35 +26,9 @@
24
26
  const SIGNATURE = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];
25
27
 
26
28
  /** CRC-32, built once. PNG tags every chunk with one and decoders check it. */
27
- const CRC_TABLE = (() => {
28
- const table = new Uint32Array(256);
29
- for (let index = 0; index < 256; index++) {
30
- let value = index;
31
- for (let bit = 0; bit < 8; bit++) {
32
- value = value & 1 ? 0xedb88320 ^ value >>> 1 : value >>> 1;
33
- }
34
- table[index] = value >>> 0;
35
- }
36
- return table;
37
- })();
38
- function crc32(bytes) {
39
- let crc = 0xffffffff;
40
- for (let index = 0; index < bytes.length; index++) {
41
- crc = CRC_TABLE[(crc ^ bytes[index]) & 0xff] ^ crc >>> 8;
42
- }
43
- return (crc ^ 0xffffffff) >>> 0;
44
- }
45
29
 
46
30
  /** Adler-32 over the uncompressed data, which the zlib wrapper ends with. */
47
- function adler32(bytes) {
48
- let a = 1;
49
- let b = 0;
50
- for (let index = 0; index < bytes.length; index++) {
51
- a = (a + bytes[index]) % 65521;
52
- b = (b + a) % 65521;
53
- }
54
- return (b << 16 | a) >>> 0;
55
- }
31
+
56
32
  function chunk(type, payload) {
57
33
  const name = [...type].map(character => character.charCodeAt(0));
58
34
  const body = new Uint8Array(name.length + payload.length);
@@ -1 +1 @@
1
- {"version":3,"file":"writer.js","sources":["../../../../../../src/resource/formats/png/core/writer.js"],"sourcesContent":["/**\n * PNG encoding, from the normalized RGBA payload every image format here\n * decodes TO.\n *\n * The lossless counterpart of the JPEG writer beside it. Which one a caller\n * wants is not a matter of taste: JPEG is smaller on photographs and renders\n * and destroys flat colour and sharp edges, PNG is exact and much larger on a\n * gradient. Converting 128x128 pattern art to JPEG measurably made some of it\n * BIGGER, which is the case this exists for.\n *\n * ## Two entry points, because compression is asynchronous\n *\n * `CompressionStream` is the only deflate available to browser-safe code, and\n * it is async - so an async `writeAsync` is the compressing path, and the sync\n * `write` emits STORED deflate blocks: a valid PNG that every decoder reads,\n * at roughly the size of the raw pixels. That is the same split\n * `CjsCmfFormat` makes for the same reason, and the sync path exists so a\n * caller that cannot await still has an exit.\n *\n * The reader beside this uses `DecompressionStream`, so the pair agree about\n * where deflate comes from and neither adds a dependency.\n */\n\nconst SIGNATURE = [ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a ];\n\n/** CRC-32, built once. PNG tags every chunk with one and decoders check it. */\nconst CRC_TABLE = (() =>\n{\n const table = new Uint32Array(256);\n\n for (let index = 0; index < 256; index++)\n {\n let value = index;\n\n for (let bit = 0; bit < 8; bit++)\n {\n value = value & 1 ? 0xedb88320 ^ (value >>> 1) : value >>> 1;\n }\n\n table[index] = value >>> 0;\n }\n\n return table;\n})();\n\nfunction crc32(bytes)\n{\n let crc = 0xffffffff;\n\n for (let index = 0; index < bytes.length; index++)\n {\n crc = CRC_TABLE[(crc ^ bytes[index]) & 0xff] ^ (crc >>> 8);\n }\n\n return (crc ^ 0xffffffff) >>> 0;\n}\n\n/** Adler-32 over the uncompressed data, which the zlib wrapper ends with. */\nfunction adler32(bytes)\n{\n let a = 1;\n let b = 0;\n\n for (let index = 0; index < bytes.length; index++)\n {\n a = (a + bytes[index]) % 65521;\n b = (b + a) % 65521;\n }\n\n return ((b << 16) | a) >>> 0;\n}\n\nfunction chunk(type, payload)\n{\n const name = [ ...type ].map((character) => character.charCodeAt(0));\n const body = new Uint8Array(name.length + payload.length);\n\n body.set(name, 0);\n body.set(payload, name.length);\n\n const out = new Uint8Array(body.length + 8);\n const view = new DataView(out.buffer);\n\n view.setUint32(0, payload.length);\n out.set(body, 4);\n view.setUint32(out.length - 4, crc32(body));\n\n return out;\n}\n\n/**\n * Lays the payload out as PNG scanlines, each prefixed by a filter byte.\n *\n * Filter 0 (None) throughout. The filters exist to make the deflate that\n * follows more effective, and choosing between them per row is a heuristic\n * search that belongs with a compressor tuned for it; None costs one byte a\n * row and keeps this readable. A caller who needs the last twenty percent is\n * better served by a real image pipeline than by a heuristic hidden here.\n */\nfunction toScanlines(payload)\n{\n const { width, height, data } = payload;\n const stride = Number(payload.strideBytes) || width * 4;\n const flip = payload.origin === \"bottom-left\";\n const rowBytes = width * 4;\n const out = new Uint8Array((rowBytes + 1) * height);\n\n for (let row = 0; row < height; row++)\n {\n const source = (flip ? height - 1 - row : row) * stride;\n const target = row * (rowBytes + 1);\n\n out[target] = 0;\n out.set(data.subarray(source, source + rowBytes), target + 1);\n }\n\n return out;\n}\n\n/** Wraps deflate output in the two-byte zlib header and its adler trailer. */\nfunction toZlib(deflated, uncompressed)\n{\n const out = new Uint8Array(deflated.length + 6);\n const view = new DataView(out.buffer);\n\n out[0] = 0x78;\n out[1] = 0x01;\n out.set(deflated, 2);\n view.setUint32(out.length - 4, adler32(uncompressed));\n\n return out;\n}\n\n/**\n * Emits stored (uncompressed) deflate blocks.\n *\n * Every block carries its length and that length's complement, and the last is\n * flagged final. It compresses nothing, which is the point of the sync path:\n * it is correct without an await.\n */\nfunction storedDeflate(bytes)\n{\n const MAX = 0xffff;\n const blocks = Math.max(1, Math.ceil(bytes.length / MAX));\n const out = new Uint8Array(bytes.length + blocks * 5);\n let read = 0;\n let write = 0;\n\n while (read < bytes.length || blocks === 1 && read === 0)\n {\n const size = Math.min(MAX, bytes.length - read);\n const final = read + size >= bytes.length ? 1 : 0;\n\n out[write++] = final;\n out[write++] = size & 0xff;\n out[write++] = size >>> 8;\n out[write++] = ~size & 0xff;\n out[write++] = (~size >>> 8) & 0xff;\n out.set(bytes.subarray(read, read + size), write);\n write += size;\n read += size;\n\n if (final) break;\n }\n\n return out.subarray(0, write);\n}\n\nfunction assemble(payload, zlib)\n{\n const header = new Uint8Array(13);\n const view = new DataView(header.buffer);\n\n view.setUint32(0, payload.width);\n view.setUint32(4, payload.height);\n header[8] = 8; // bit depth\n header[9] = 6; // colour type: truecolour with alpha\n header[10] = 0; // deflate, the only compression PNG defines\n header[11] = 0; // adaptive filtering, the only filter method\n header[12] = 0; // no interlace\n\n const ihdr = chunk(\"IHDR\", header);\n const idat = chunk(\"IDAT\", zlib);\n const iend = chunk(\"IEND\", new Uint8Array(0));\n const out = new Uint8Array(SIGNATURE.length + ihdr.length + idat.length + iend.length);\n let offset = 0;\n\n out.set(SIGNATURE, offset); offset += SIGNATURE.length;\n out.set(ihdr, offset); offset += ihdr.length;\n out.set(idat, offset); offset += idat.length;\n out.set(iend, offset);\n\n return out;\n}\n\n/**\n * Checks the requested compression METHOD, which PNG allows exactly one of.\n *\n * Zero means deflate, and the specification defines nothing else. Accepting a\n * value and writing 0 regardless would be worse than refusing: the file would\n * be correct and the caller's belief about it would not, which is the kind of\n * disagreement that surfaces much later and somewhere else.\n */\nfunction normalizeCompression(value)\n{\n if (value === undefined || value === null) return 0;\n\n if (value !== 0)\n {\n throw new Error(\n `png: compression method ${JSON.stringify(value)} is not defined by the format; `\n + \"PNG defines method 0 (deflate) and no other\",\n );\n }\n\n return 0;\n}\n\nfunction validate(payload, options = {})\n{\n const width = Number(payload?.width) | 0;\n const height = Number(payload?.height) | 0;\n\n normalizeCompression(options.compression);\n\n if (!width || !height || !payload?.data)\n {\n throw new Error(\"png: encoding needs a payload with width, height and data\");\n }\n\n const stride = Number(payload.strideBytes) || width * 4;\n\n if (payload.data.length < stride * height)\n {\n throw new Error(\n `png: payload data is ${payload.data.length} bytes, short of ${stride * height}`,\n );\n }\n\n return { ...payload, width, height, strideBytes: stride };\n}\n\n/**\n * Encodes a normalized RGBA payload as PNG bytes, without compressing.\n *\n * @param {object} payload `{ width, height, data }`, honouring `strideBytes`\n * and `origin` when present.\n * @param {object} [options] `compression` names the PNG compression method,\n * which is 0 and can be nothing else.\n * @returns {Uint8Array} PNG bytes, roughly the size of the raw pixels.\n */\nexport function encodePng(payload, options = {})\n{\n const checked = validate(payload, options);\n const scanlines = toScanlines(checked);\n\n return assemble(checked, toZlib(storedDeflate(scanlines), scanlines));\n}\n\n/**\n * Encodes a normalized RGBA payload as compressed PNG bytes.\n *\n * @param {object} payload `{ width, height, data }`, honouring `strideBytes`\n * and `origin` when present.\n * @param {object} [options] `compression` names the PNG compression method,\n * which is 0 and can be nothing else.\n * @returns {Promise<Uint8Array>} PNG bytes.\n */\nexport async function encodePngAsync(payload, options = {})\n{\n const checked = validate(payload, options);\n const scanlines = toScanlines(checked);\n\n if (typeof CompressionStream !== \"function\")\n {\n // Not an error: the result is a correct PNG either way, and refusing\n // here would make the async path less capable than the sync one.\n return assemble(checked, toZlib(storedDeflate(scanlines), scanlines));\n }\n\n const compressed = new Uint8Array(await new Response(\n new Blob([ scanlines ]).stream().pipeThrough(new CompressionStream(\"deflate-raw\")),\n ).arrayBuffer());\n\n return assemble(checked, toZlib(compressed, scanlines));\n}\n"],"names":["SIGNATURE","CRC_TABLE","table","Uint32Array","index","value","bit","crc32","bytes","crc","length","adler32","a","b","chunk","type","payload","name","map","character","charCodeAt","body","Uint8Array","set","out","view","DataView","buffer","setUint32","toScanlines","width","height","data","stride","Number","strideBytes","flip","origin","rowBytes","row","source","target","subarray","toZlib","deflated","uncompressed","storedDeflate","MAX","blocks","Math","max","ceil","read","write","size","min","final","assemble","zlib","header","ihdr","idat","iend","offset","normalizeCompression","undefined","Error","JSON","stringify","validate","options","compression","encodePng","checked","scanlines","encodePngAsync","CompressionStream","compressed","Response","Blob","stream","pipeThrough","arrayBuffer"],"mappings":"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"}
1
+ {"version":3,"file":"writer.js","sources":["../../../../../../src/resource/formats/png/core/writer.js"],"sourcesContent":["import { adler32, crc32 } from \"#utils/checksum\";\n\n/**\n * PNG encoding, from the normalized RGBA payload every image format here\n * decodes TO.\n *\n * The lossless counterpart of the JPEG writer beside it. Which one a caller\n * wants is not a matter of taste: JPEG is smaller on photographs and renders\n * and destroys flat colour and sharp edges, PNG is exact and much larger on a\n * gradient. Converting 128x128 pattern art to JPEG measurably made some of it\n * BIGGER, which is the case this exists for.\n *\n * ## Two entry points, because compression is asynchronous\n *\n * `CompressionStream` is the only deflate available to browser-safe code, and\n * it is async - so an async `writeAsync` is the compressing path, and the sync\n * `write` emits STORED deflate blocks: a valid PNG that every decoder reads,\n * at roughly the size of the raw pixels. That is the same split\n * `CjsCmfFormat` makes for the same reason, and the sync path exists so a\n * caller that cannot await still has an exit.\n *\n * The reader beside this uses `DecompressionStream`, so the pair agree about\n * where deflate comes from and neither adds a dependency.\n */\n\nconst SIGNATURE = [ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a ];\n\n/** CRC-32, built once. PNG tags every chunk with one and decoders check it. */\n\n\n/** Adler-32 over the uncompressed data, which the zlib wrapper ends with. */\n\nfunction chunk(type, payload)\n{\n const name = [ ...type ].map((character) => character.charCodeAt(0));\n const body = new Uint8Array(name.length + payload.length);\n\n body.set(name, 0);\n body.set(payload, name.length);\n\n const out = new Uint8Array(body.length + 8);\n const view = new DataView(out.buffer);\n\n view.setUint32(0, payload.length);\n out.set(body, 4);\n view.setUint32(out.length - 4, crc32(body));\n\n return out;\n}\n\n/**\n * Lays the payload out as PNG scanlines, each prefixed by a filter byte.\n *\n * Filter 0 (None) throughout. The filters exist to make the deflate that\n * follows more effective, and choosing between them per row is a heuristic\n * search that belongs with a compressor tuned for it; None costs one byte a\n * row and keeps this readable. A caller who needs the last twenty percent is\n * better served by a real image pipeline than by a heuristic hidden here.\n */\nfunction toScanlines(payload)\n{\n const { width, height, data } = payload;\n const stride = Number(payload.strideBytes) || width * 4;\n const flip = payload.origin === \"bottom-left\";\n const rowBytes = width * 4;\n const out = new Uint8Array((rowBytes + 1) * height);\n\n for (let row = 0; row < height; row++)\n {\n const source = (flip ? height - 1 - row : row) * stride;\n const target = row * (rowBytes + 1);\n\n out[target] = 0;\n out.set(data.subarray(source, source + rowBytes), target + 1);\n }\n\n return out;\n}\n\n/** Wraps deflate output in the two-byte zlib header and its adler trailer. */\nfunction toZlib(deflated, uncompressed)\n{\n const out = new Uint8Array(deflated.length + 6);\n const view = new DataView(out.buffer);\n\n out[0] = 0x78;\n out[1] = 0x01;\n out.set(deflated, 2);\n view.setUint32(out.length - 4, adler32(uncompressed));\n\n return out;\n}\n\n/**\n * Emits stored (uncompressed) deflate blocks.\n *\n * Every block carries its length and that length's complement, and the last is\n * flagged final. It compresses nothing, which is the point of the sync path:\n * it is correct without an await.\n */\nfunction storedDeflate(bytes)\n{\n const MAX = 0xffff;\n const blocks = Math.max(1, Math.ceil(bytes.length / MAX));\n const out = new Uint8Array(bytes.length + blocks * 5);\n let read = 0;\n let write = 0;\n\n while (read < bytes.length || blocks === 1 && read === 0)\n {\n const size = Math.min(MAX, bytes.length - read);\n const final = read + size >= bytes.length ? 1 : 0;\n\n out[write++] = final;\n out[write++] = size & 0xff;\n out[write++] = size >>> 8;\n out[write++] = ~size & 0xff;\n out[write++] = (~size >>> 8) & 0xff;\n out.set(bytes.subarray(read, read + size), write);\n write += size;\n read += size;\n\n if (final) break;\n }\n\n return out.subarray(0, write);\n}\n\nfunction assemble(payload, zlib)\n{\n const header = new Uint8Array(13);\n const view = new DataView(header.buffer);\n\n view.setUint32(0, payload.width);\n view.setUint32(4, payload.height);\n header[8] = 8; // bit depth\n header[9] = 6; // colour type: truecolour with alpha\n header[10] = 0; // deflate, the only compression PNG defines\n header[11] = 0; // adaptive filtering, the only filter method\n header[12] = 0; // no interlace\n\n const ihdr = chunk(\"IHDR\", header);\n const idat = chunk(\"IDAT\", zlib);\n const iend = chunk(\"IEND\", new Uint8Array(0));\n const out = new Uint8Array(SIGNATURE.length + ihdr.length + idat.length + iend.length);\n let offset = 0;\n\n out.set(SIGNATURE, offset); offset += SIGNATURE.length;\n out.set(ihdr, offset); offset += ihdr.length;\n out.set(idat, offset); offset += idat.length;\n out.set(iend, offset);\n\n return out;\n}\n\n/**\n * Checks the requested compression METHOD, which PNG allows exactly one of.\n *\n * Zero means deflate, and the specification defines nothing else. Accepting a\n * value and writing 0 regardless would be worse than refusing: the file would\n * be correct and the caller's belief about it would not, which is the kind of\n * disagreement that surfaces much later and somewhere else.\n */\nfunction normalizeCompression(value)\n{\n if (value === undefined || value === null) return 0;\n\n if (value !== 0)\n {\n throw new Error(\n `png: compression method ${JSON.stringify(value)} is not defined by the format; `\n + \"PNG defines method 0 (deflate) and no other\",\n );\n }\n\n return 0;\n}\n\nfunction validate(payload, options = {})\n{\n const width = Number(payload?.width) | 0;\n const height = Number(payload?.height) | 0;\n\n normalizeCompression(options.compression);\n\n if (!width || !height || !payload?.data)\n {\n throw new Error(\"png: encoding needs a payload with width, height and data\");\n }\n\n const stride = Number(payload.strideBytes) || width * 4;\n\n if (payload.data.length < stride * height)\n {\n throw new Error(\n `png: payload data is ${payload.data.length} bytes, short of ${stride * height}`,\n );\n }\n\n return { ...payload, width, height, strideBytes: stride };\n}\n\n/**\n * Encodes a normalized RGBA payload as PNG bytes, without compressing.\n *\n * @param {object} payload `{ width, height, data }`, honouring `strideBytes`\n * and `origin` when present.\n * @param {object} [options] `compression` names the PNG compression method,\n * which is 0 and can be nothing else.\n * @returns {Uint8Array} PNG bytes, roughly the size of the raw pixels.\n */\nexport function encodePng(payload, options = {})\n{\n const checked = validate(payload, options);\n const scanlines = toScanlines(checked);\n\n return assemble(checked, toZlib(storedDeflate(scanlines), scanlines));\n}\n\n/**\n * Encodes a normalized RGBA payload as compressed PNG bytes.\n *\n * @param {object} payload `{ width, height, data }`, honouring `strideBytes`\n * and `origin` when present.\n * @param {object} [options] `compression` names the PNG compression method,\n * which is 0 and can be nothing else.\n * @returns {Promise<Uint8Array>} PNG bytes.\n */\nexport async function encodePngAsync(payload, options = {})\n{\n const checked = validate(payload, options);\n const scanlines = toScanlines(checked);\n\n if (typeof CompressionStream !== \"function\")\n {\n // Not an error: the result is a correct PNG either way, and refusing\n // here would make the async path less capable than the sync one.\n return assemble(checked, toZlib(storedDeflate(scanlines), scanlines));\n }\n\n const compressed = new Uint8Array(await new Response(\n new Blob([ scanlines ]).stream().pipeThrough(new CompressionStream(\"deflate-raw\")),\n ).arrayBuffer());\n\n return assemble(checked, toZlib(compressed, scanlines));\n}\n"],"names":["SIGNATURE","chunk","type","payload","name","map","character","charCodeAt","body","Uint8Array","length","set","out","view","DataView","buffer","setUint32","crc32","toScanlines","width","height","data","stride","Number","strideBytes","flip","origin","rowBytes","row","source","target","subarray","toZlib","deflated","uncompressed","adler32","storedDeflate","bytes","MAX","blocks","Math","max","ceil","read","write","size","min","final","assemble","zlib","header","ihdr","idat","iend","offset","normalizeCompression","value","undefined","Error","JSON","stringify","validate","options","compression","encodePng","checked","scanlines","encodePngAsync","CompressionStream","compressed","Response","Blob","stream","pipeThrough","arrayBuffer"],"mappings":"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"}