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

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 (929) 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/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CjsCmfFormat.js","sources":["../../../../../src/resource/formats/cmf/CjsCmfFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\r\n/**\r\n * Exposed CarbonEngineJS-facing CMF format class.\r\n *\r\n * CMF is expected to become the common CarbonEngineJS geometry container, so\r\n * this public wrapper keeps parsing details under core/ and exposes CMF-native\r\n * data by default.\r\n */\r\n\r\nimport { packGraphBuffers } from \"./core/pack.js\";\nimport { buildCmfFromShared } from \"./core/shared.js\";\r\nimport { writeCmf, writeCmfAsync } from \"./core/writer.js\";\r\nimport {\r\n CLASS_KEYS,\r\n DEFAULT_VALUES,\r\n OUTPUT_CMF,\r\n OUTPUT_CMF_JSON,\r\n OUTPUT_GR2,\r\n OUTPUT_JSON,\r\n OUTPUT_NATIVE,\r\n OUTPUT_RAW,\r\n OUTPUT_SHARED,\r\n inspectRawCmfResult,\r\n loadNativeWithValues,\r\n loadSharedWithValues,\r\n normalizeValues,\r\n readRawInput,\r\n readRawInputAsync,\r\n readWithValues,\r\n readWithValuesAsync,\r\n toJsonValue,\r\n validateClass,\r\n validateClassKey\r\n} from \"./core/helpers.js\";\r\n\r\n/**\r\n * CarbonEngineJS-facing CMF reader.\r\n *\r\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\r\n * can load CMF files, load CMF-native JSON, construct CMF-native data from\r\n * shared geometry, emit shared geometry when requested, or hydrate\r\n * caller-supplied CarbonEngineJS-style classes.\r\n */\r\nexport class CjsCmfFormat extends CjsFormat\r\n{\r\n #emit = DEFAULT_VALUES.emit;\r\n #validateCrc = DEFAULT_VALUES.validateCrc;\r\n #decodeBuffers = DEFAULT_VALUES.decodeBuffers;\r\n #classes = {};\r\n\r\n /**\r\n * Create a reusable format profile.\r\n *\r\n * @param {object} [options] Default format/build values.\r\n */\r\n constructor(options = {})\r\n {\r\n super();\r\n this.SetValues(options);\r\n }\r\n\r\n /**\r\n * Set format values for this reusable profile.\r\n *\r\n * @param {object} [options] Values to merge into the profile.\r\n * @returns {CjsCmfFormat} This format profile.\r\n */\r\n SetValues(options = {})\r\n {\r\n const values = normalizeValues(this.GetValues(), options);\r\n\r\n this.#emit = values.emit;\r\n this.#validateCrc = values.validateCrc;\r\n this.#decodeBuffers = values.decodeBuffers;\r\n this.#classes = values.classes;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Get this profile's current values, optionally with per-call overrides.\r\n *\r\n * @param {object} [options] Optional values to merge into a copy.\r\n * @returns {object} A copy of the effective values.\r\n */\r\n GetValues(options = {})\r\n {\r\n return normalizeValues({\r\n emit: this.#emit,\r\n validateCrc: this.#validateCrc,\r\n decodeBuffers: this.#decodeBuffers,\r\n classes: this.#classes\r\n }, options);\r\n }\r\n\r\n /**\r\n * Set multiple CMF JSON node constructors for this profile.\r\n *\r\n * @param {object} [classes] Map of node class keys to constructors.\r\n * @returns {CjsCmfFormat} This format profile.\r\n */\r\n SetClasses(classes = {})\r\n {\r\n return this.SetValues({ classes });\r\n }\r\n\r\n /**\r\n * Set a CMF JSON node constructor for this profile.\r\n *\r\n * @param {string} type Node class key.\r\n * @param {Function|null|undefined} Class Constructor to use, or nullish to delete.\r\n * @returns {CjsCmfFormat} This format profile.\r\n */\r\n SetClass(type, Class)\r\n {\r\n validateClassKey(type);\r\n if (Class === null || Class === undefined)\r\n {\r\n delete this.#classes[type];\r\n return this;\r\n }\r\n\r\n validateClass(type, Class);\r\n this.#classes = { ...this.#classes, [type]: Class };\r\n return this;\r\n }\r\n\r\n /**\r\n * Get a configured CMF JSON node constructor.\r\n *\r\n * @param {string} type Node class key.\r\n * @returns {Function|undefined}\r\n */\r\n GetClass(type)\r\n {\r\n validateClassKey(type);\r\n return this.#classes[type];\r\n }\r\n\r\n /**\r\n * Whether this reader has a constructor for a CMF JSON node key.\r\n *\r\n * @param {string} type Node class key.\r\n * @returns {boolean}\r\n */\r\n HasClass(type)\r\n {\r\n return !!this.GetClass(type);\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer and return CMF-native JSON by default, shared\r\n * geometry when `emit` is \"shared\", or raw parsed data when `emit` is\r\n * \"raw\".\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n Read(input, options = {})\r\n {\r\n return readWithValues(this, input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Load CMF-native JSON. Shared geometry uses LoadShared.\r\n *\r\n * @param {object} input CMF-native JSON root.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n Load(input, options = {})\r\n {\r\n return loadNativeWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Build CMF-native JSON from shared CarbonEngineJS geometry.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n LoadShared(input, options = {})\r\n {\r\n return loadSharedWithValues(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer and emit the shared deinterleaved mesh graph.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n ReadShared(input, options = {})\r\n {\r\n return this.Read(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer with async meshoptimizer initialization support.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>}\r\n */\r\n async ReadAsync(input, options = {})\r\n {\r\n return readWithValuesAsync(this, input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer asynchronously and emit the shared deinterleaved mesh graph.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>}\r\n */\r\n async ReadSharedAsync(input, options = {})\r\n {\r\n return this.ReadAsync(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer into the raw parsed CMF graph.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n ReadRaw(input, options = {})\r\n {\r\n return readRawInput(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Parse a .cmf buffer into the raw parsed CMF graph with async\r\n * meshoptimizer initialization support.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {Promise<object>}\r\n */\r\n async ReadRawAsync(input, options = {})\r\n {\r\n return readRawInputAsync(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Return a stable, lightweight summary for a CMF buffer or raw result.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Per-call values.\r\n * @returns {object}\r\n */\r\n Inspect(input, options = {})\r\n {\r\n return inspectRawCmfResult(input, this.GetValues(options));\r\n }\r\n\r\n /**\r\n * Convert format output to plain JSON-compatible data.\r\n *\r\n * @param {object} value Format output to convert.\r\n * @returns {any} Plain JSON-compatible data.\r\n */\r\n ToJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * Serialize a CMF-native graph to binary .cmf bytes without compression.\r\n *\r\n * Use WriteAsync for meshoptimizer-compressed GPU sections. The graph\r\n * shape matches Read output: meshes/skeletons/animations plus optional\r\n * metadata and a `buffers` list supplying uncompressed bytes per\r\n * BufferView index.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n Write(graph, options = {})\r\n {\r\n return writeCmf(graph, options);\r\n }\r\n\r\n /**\r\n * Serialize a CMF-native graph to binary .cmf bytes with meshoptimizer\r\n * compression enabled by default.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n async WriteAsync(graph, options = {})\r\n {\r\n return writeCmfAsync(graph, options);\r\n }\r\n\r\n /**\r\n * Serialize shared CarbonEngineJS geometry (e.g. from the GR2/OBJ/glTF\r\n * readers) straight to binary .cmf bytes without compression.\r\n *\r\n * Channels are interleaved into GPU buffers per the generated\r\n * declaration. Skeletons/animations must already be CMF-native shaped.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n WriteShared(input, options = {})\r\n {\r\n return CjsCmfFormat.writeShared(input, options);\r\n }\r\n\r\n /**\r\n * Serialize shared CarbonEngineJS geometry to compressed .cmf bytes.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n async WriteSharedAsync(input, options = {})\r\n {\r\n return CjsCmfFormat.writeSharedAsync(input, options);\r\n }\r\n\r\n /**\r\n * Static one-shot read. Static methods use camelCase by convention.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static read(input, options = {})\r\n {\r\n return readWithValues(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot CMF-native JSON load.\r\n *\r\n * @param {object} input CMF-native JSON root.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static load(input, options = {})\r\n {\r\n return loadNativeWithValues(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot shared geometry to CMF-native JSON construction.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static loadShared(input, options = {})\r\n {\r\n return loadSharedWithValues(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot read to shared geometry.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static readShared(input, options = {})\r\n {\r\n return CjsCmfFormat.read(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Static one-shot async read.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {Promise<object>}\r\n */\r\n static async readAsync(input, options = {})\r\n {\r\n return readWithValuesAsync(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot async read to shared geometry.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {Promise<object>}\r\n */\r\n static async readSharedAsync(input, options = {})\r\n {\r\n return CjsCmfFormat.readAsync(input, { ...options, emit: OUTPUT_SHARED });\r\n }\r\n\r\n /**\r\n * Static one-shot raw read.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static readRaw(input, options = {})\r\n {\r\n return readRawInput(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot async raw read.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {Promise<object>}\r\n */\r\n static async readRawAsync(input, options = {})\r\n {\r\n return readRawInputAsync(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static one-shot inspection.\r\n *\r\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\r\n * @param {object} [options] Reader values.\r\n * @returns {object}\r\n */\r\n static inspect(input, options = {})\r\n {\r\n return inspectRawCmfResult(input, normalizeValues(DEFAULT_VALUES, options));\r\n }\r\n\r\n /**\r\n * Static JSON-compatible conversion.\r\n *\r\n * @param {object} value Format output to convert.\r\n * @returns {any} Plain JSON-compatible data.\r\n */\r\n static toJSON(value)\r\n {\r\n return toJsonValue(value);\r\n }\r\n\r\n /**\r\n * Static one-shot binary write without compression.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n static write(graph, options = {})\r\n {\r\n return writeCmf(graph, options);\r\n }\r\n\r\n /**\r\n * Static one-shot binary write with meshoptimizer compression enabled by\r\n * default.\r\n *\r\n * @param {object} graph CMF-native graph.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n static async writeAsync(graph, options = {})\r\n {\r\n return writeCmfAsync(graph, options);\r\n }\r\n\r\n /**\r\n * Static one-shot shared-geometry write without compression.\r\n *\r\n * Equivalent to `loadShared` + buffer packing + `write`; this is the\r\n * GR2/OBJ/glTF → CMF conversion entry point.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`).\r\n * @returns {Uint8Array} Complete .cmf file bytes.\r\n */\r\n static writeShared(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmf({ ...packed.graph, buffers: packed.buffers }, options);\n }\r\n\r\n /**\r\n * Static one-shot shared-geometry write with meshoptimizer compression\r\n * enabled by default.\r\n *\r\n * @param {object} input Shared geometry root or mesh.\r\n * @param {object} [options] Writer options (`compress`, default true).\r\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\r\n */\r\n static async writeSharedAsync(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmfAsync({ ...packed.graph, buffers: packed.buffers }, options);\n }\r\n\r\n /**\r\n * Emit targets for this format (canonical frozen enum).\r\n */\r\n static Output = Object.freeze({\r\n JSON: OUTPUT_JSON,\r\n CMF: OUTPUT_CMF,\r\n CMF_JSON: OUTPUT_CMF_JSON,\r\n GR2: OUTPUT_GR2,\r\n NATIVE: OUTPUT_NATIVE,\r\n RAW: OUTPUT_RAW,\r\n SHARED: OUTPUT_SHARED\r\n });\r\n static CLASS_KEYS = CLASS_KEYS;\r\n static id = \"cmf\";\r\n static mediaTypes = Object.freeze([ \"geometry\" ]);\r\n static outputs = CjsFormat.defineOutputs({\r\n cmf: { default: true, decoded: true },\r\n gr2: { decoded: true },\r\n shared: { decoded: true },\r\n json: { role: \"debug\", payloadType: \"cmf\", decoded: true },\r\n cmfJson: { role: \"debug\", payloadType: \"cmf\", decoded: true },\r\n raw: { role: \"debug\", decoded: true }\r\n });\r\n static extensions = Object.freeze([ \".cmf\" ]);\r\n}\r\n\r\nexport default CjsCmfFormat;\r\n"],"names":["CjsCmfFormat","CjsFormat","DEFAULT_VALUES","emit","validateCrc","decodeBuffers","constructor","options","SetValues","values","normalizeValues","GetValues","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Load","loadNativeWithValues","LoadShared","loadSharedWithValues","ReadShared","OUTPUT_SHARED","ReadAsync","readWithValuesAsync","ReadSharedAsync","ReadRaw","readRawInput","ReadRawAsync","readRawInputAsync","Inspect","inspectRawCmfResult","ToJSON","value","toJsonValue","Write","graph","writeCmf","WriteAsync","writeCmfAsync","WriteShared","writeShared","WriteSharedAsync","writeSharedAsync","read","load","loadShared","readShared","readAsync","readSharedAsync","readRaw","readRawAsync","inspect","toJSON","write","writeAsync","packed","packGraphBuffers","buildCmfFromShared","buffers","Output","Object","freeze","JSON","OUTPUT_JSON","CMF","OUTPUT_CMF","CMF_JSON","OUTPUT_CMF_JSON","GR2","OUTPUT_GR2","NATIVE","OUTPUT_NATIVE","RAW","OUTPUT_RAW","SHARED","CLASS_KEYS","id","mediaTypes","outputs","defineOutputs","cmf","default","decoded","gr2","shared","json","role","payloadType","cmfJson","raw","extensions"],"mappings":"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"}
1
+ {"version":3,"file":"CjsCmfFormat.js","sources":["../../../../../src/resource/formats/cmf/CjsCmfFormat.js"],"sourcesContent":["import { CjsFormat } from \"../../format/CjsFormat.js\";\n/**\n * Exposed CarbonEngineJS-facing CMF format class.\n *\n * CMF is expected to become the common CarbonEngineJS geometry container, so\n * this public wrapper keeps parsing details under core/ and exposes CMF-native\n * data by default.\n */\n\nimport { packGraphBuffers } from \"./core/pack.js\";\nimport { buildCmfFromShared } from \"./core/shared.js\";\nimport { writeCmf, writeCmfAsync } from \"./core/writer.js\";\nimport {\n CLASS_KEYS,\n DEFAULT_VALUES,\n OUTPUT_CMF,\n OUTPUT_CMF_JSON,\n OUTPUT_GR2,\n OUTPUT_JSON,\n OUTPUT_NATIVE,\n OUTPUT_RAW,\n OUTPUT_SHARED,\n inspectRawCmfResult,\n loadNativeWithValues,\n loadSharedWithValues,\n normalizeValues,\n readRawInput,\n readRawInputAsync,\n readWithValues,\n readWithValuesAsync,\n toJsonValue,\n validateClass,\n validateClassKey\n} from \"./core/helpers.js\";\n\n/**\n * CarbonEngineJS-facing CMF reader.\n *\n * The Cjs prefix marks this as a JavaScript format/construction boundary. It\n * can load CMF files, load CMF-native JSON, construct CMF-native data from\n * shared geometry, emit shared geometry when requested, or hydrate\n * caller-supplied CarbonEngineJS-style classes.\n */\nexport class CjsCmfFormat extends CjsFormat\n{\n #emit = DEFAULT_VALUES.emit;\n #validateCrc = DEFAULT_VALUES.validateCrc;\n #decodeBuffers = DEFAULT_VALUES.decodeBuffers;\n #classes = {};\n\n /**\n * Create a reusable format profile.\n *\n * @param {object} [options] Default format/build values.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Set format values for this reusable profile.\n *\n * @param {object} [options] Values to merge into the profile.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetValues(options = {})\n {\n const values = normalizeValues(this.GetValues(), options);\n\n this.#emit = values.emit;\n this.#validateCrc = values.validateCrc;\n this.#decodeBuffers = values.decodeBuffers;\n this.#classes = values.classes;\n\n return this;\n }\n\n /**\n * Get this profile's current values, optionally with per-call overrides.\n *\n * @param {object} [options] Optional values to merge into a copy.\n * @returns {object} A copy of the effective values.\n */\n GetValues(options = {})\n {\n return normalizeValues({\n emit: this.#emit,\n validateCrc: this.#validateCrc,\n decodeBuffers: this.#decodeBuffers,\n classes: this.#classes\n }, options);\n }\n\n /**\n * Set multiple CMF JSON node constructors for this profile.\n *\n * @param {object} [classes] Map of node class keys to constructors.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetClasses(classes = {})\n {\n return this.SetValues({ classes });\n }\n\n /**\n * Set a CMF JSON node constructor for this profile.\n *\n * @param {string} type Node class key.\n * @param {Function|null|undefined} Class Constructor to use, or nullish to delete.\n * @returns {CjsCmfFormat} This format profile.\n */\n SetClass(type, Class)\n {\n validateClassKey(type);\n if (Class === null || Class === undefined)\n {\n delete this.#classes[type];\n return this;\n }\n\n validateClass(type, Class);\n this.#classes = { ...this.#classes, [type]: Class };\n return this;\n }\n\n /**\n * Get a configured CMF JSON node constructor.\n *\n * @param {string} type Node class key.\n * @returns {Function|undefined}\n */\n GetClass(type)\n {\n validateClassKey(type);\n return this.#classes[type];\n }\n\n /**\n * Whether this reader has a constructor for a CMF JSON node key.\n *\n * @param {string} type Node class key.\n * @returns {boolean}\n */\n HasClass(type)\n {\n return !!this.GetClass(type);\n }\n\n /**\n * Parse a .cmf buffer and return CMF-native JSON by default, shared\n * geometry when `emit` is \"shared\", or raw parsed data when `emit` is\n * \"raw\".\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Read(input, options = {})\n {\n return readWithValues(this, input, this.GetValues(options));\n }\n\n /**\n * Load CMF-native JSON. Shared geometry uses LoadShared.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Load(input, options = {})\n {\n return loadNativeWithValues(input, this.GetValues(options));\n }\n\n /**\n * Build CMF-native JSON from shared CarbonEngineJS geometry.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n LoadShared(input, options = {})\n {\n return loadSharedWithValues(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadShared(input, options = {})\n {\n return this.Read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer with async meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadAsync(input, options = {})\n {\n return readWithValuesAsync(this, input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer asynchronously and emit the shared deinterleaved mesh graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadSharedAsync(input, options = {})\n {\n return this.ReadAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n ReadRaw(input, options = {})\n {\n return readRawInput(input, this.GetValues(options));\n }\n\n /**\n * Parse a .cmf buffer into the raw parsed CMF graph with async\n * meshoptimizer initialization support.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>}\n */\n async ReadRawAsync(input, options = {})\n {\n return readRawInputAsync(input, this.GetValues(options));\n }\n\n /**\n * Return a stable, lightweight summary for a CMF buffer or raw result.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Per-call values.\n * @returns {object}\n */\n Inspect(input, options = {})\n {\n return inspectRawCmfResult(input, this.GetValues(options));\n }\n\n /**\n * Convert format output to plain JSON-compatible data.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes without compression.\n *\n * Use WriteAsync for meshoptimizer-compressed GPU sections. The graph\n * shape matches Read output: meshes/skeletons/animations plus optional\n * metadata and a `buffers` list supplying uncompressed bytes per\n * BufferView index.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n Write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Serialize a CMF-native graph to binary .cmf bytes with meshoptimizer\n * compression enabled by default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry (e.g. from the GR2/OBJ/glTF\n * readers) straight to binary .cmf bytes without compression.\n *\n * Channels are interleaved into GPU buffers per the generated\n * declaration. Skeletons/animations must already be CMF-native shaped.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n WriteShared(input, options = {})\n {\n return CjsCmfFormat.writeShared(input, options);\n }\n\n /**\n * Serialize shared CarbonEngineJS geometry to compressed .cmf bytes.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n async WriteSharedAsync(input, options = {})\n {\n return CjsCmfFormat.writeSharedAsync(input, options);\n }\n\n /**\n * Static one-shot read. Static methods use camelCase by convention.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static read(input, options = {})\n {\n return readWithValues(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot CMF-native JSON load.\n *\n * @param {object} input CMF-native JSON root.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static load(input, options = {})\n {\n return loadNativeWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot shared geometry to CMF-native JSON construction.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static loadShared(input, options = {})\n {\n return loadSharedWithValues(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readShared(input, options = {})\n {\n return CjsCmfFormat.read(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot async read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readAsync(input, options = {})\n {\n return readWithValuesAsync(CjsCmfFormat, input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async read to shared geometry.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readSharedAsync(input, options = {})\n {\n return CjsCmfFormat.readAsync(input, { ...options, emit: OUTPUT_SHARED });\n }\n\n /**\n * Static one-shot raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static readRaw(input, options = {})\n {\n return readRawInput(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot async raw read.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {Promise<object>}\n */\n static async readRawAsync(input, options = {})\n {\n return readRawInputAsync(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static one-shot inspection.\n *\n * @param {Uint8Array|Buffer|ArrayBuffer|object} input Raw .cmf bytes or an existing raw read result.\n * @param {object} [options] Reader values.\n * @returns {object}\n */\n static inspect(input, options = {})\n {\n return inspectRawCmfResult(input, normalizeValues(DEFAULT_VALUES, options));\n }\n\n /**\n * Static JSON-compatible conversion.\n *\n * @param {object} value Format output to convert.\n * @returns {any} Plain JSON-compatible data.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Static one-shot binary write without compression.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static write(graph, options = {})\n {\n return writeCmf(graph, options);\n }\n\n /**\n * Static one-shot binary write with meshoptimizer compression enabled by\n * default.\n *\n * @param {object} graph CMF-native graph.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeAsync(graph, options = {})\n {\n return writeCmfAsync(graph, options);\n }\n\n /**\n * Static one-shot shared-geometry write without compression.\n *\n * Equivalent to `loadShared` + buffer packing + `write`; this is the\n * GR2/OBJ/glTF → CMF conversion entry point.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`).\n * @returns {Uint8Array} Complete .cmf file bytes.\n */\n static writeShared(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmf({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Static one-shot shared-geometry write with meshoptimizer compression\n * enabled by default.\n *\n * @param {object} input Shared geometry root or mesh.\n * @param {object} [options] Writer options (`compress`, default true).\n * @returns {Promise<Uint8Array>} Complete .cmf file bytes.\n */\n static async writeSharedAsync(input, options = {})\n {\n const packed = packGraphBuffers(buildCmfFromShared(input, options));\n return writeCmfAsync({ ...packed.graph, buffers: packed.buffers }, options);\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n JSON: OUTPUT_JSON,\n CMF: OUTPUT_CMF,\n CMF_JSON: OUTPUT_CMF_JSON,\n GR2: OUTPUT_GR2,\n NATIVE: OUTPUT_NATIVE,\n RAW: OUTPUT_RAW,\n SHARED: OUTPUT_SHARED\n });\n static CLASS_KEYS = CLASS_KEYS;\n static id = \"cmf\";\n static mediaTypes = Object.freeze([ \"geometry\" ]);\n // The writer's own graph is the default: `write` takes a CMF-native graph,\n // while `writeShared` converts a shared geometry root through it first.\n // Both are lossless - CMF is the container this package writes for keeps.\n static inputs = CjsFormat.defineInputs({\n cmf: { default: true, payloadType: \"geometry\", options: [ \"compress\" ] },\n shared: { payloadType: \"geometry\", options: [ \"compress\" ] }\n });\n\n static outputs = CjsFormat.defineOutputs({\n cmf: { default: true, decoded: true },\n gr2: { decoded: true },\n shared: { decoded: true },\n json: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n cmfJson: { role: \"debug\", payloadType: \"cmf\", decoded: true },\n raw: { role: \"debug\", decoded: true }\n });\n static extensions = Object.freeze([ \".cmf\" ]);\n}\n\nexport default CjsCmfFormat;\n"],"names":["CjsCmfFormat","CjsFormat","DEFAULT_VALUES","emit","validateCrc","decodeBuffers","constructor","options","SetValues","values","normalizeValues","GetValues","classes","SetClasses","SetClass","type","Class","validateClassKey","undefined","validateClass","GetClass","HasClass","Read","input","readWithValues","Load","loadNativeWithValues","LoadShared","loadSharedWithValues","ReadShared","OUTPUT_SHARED","ReadAsync","readWithValuesAsync","ReadSharedAsync","ReadRaw","readRawInput","ReadRawAsync","readRawInputAsync","Inspect","inspectRawCmfResult","ToJSON","value","toJsonValue","Write","graph","writeCmf","WriteAsync","writeCmfAsync","WriteShared","writeShared","WriteSharedAsync","writeSharedAsync","read","load","loadShared","readShared","readAsync","readSharedAsync","readRaw","readRawAsync","inspect","toJSON","write","writeAsync","packed","packGraphBuffers","buildCmfFromShared","buffers","Output","Object","freeze","JSON","OUTPUT_JSON","CMF","OUTPUT_CMF","CMF_JSON","OUTPUT_CMF_JSON","GR2","OUTPUT_GR2","NATIVE","OUTPUT_NATIVE","RAW","OUTPUT_RAW","SHARED","CLASS_KEYS","id","mediaTypes","inputs","defineInputs","cmf","default","payloadType","shared","outputs","defineOutputs","decoded","gr2","json","role","cmfJson","raw","extensions"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { crc32 as crc32$1 } from '#utils/checksum';
2
+
1
3
  const textDecoder = new TextDecoder();
2
4
 
3
5
  /** Returns a byte view over the supplied binary input for the CMF binary reader. */
@@ -14,9 +16,9 @@ function asUint8Array(input) {
14
16
  throw new TypeError("CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view");
15
17
  }
16
18
 
17
- /**
18
- * Bounds-checked little-endian offset reader over CMF file bytes, including
19
- * 64-bit integer reads guarded against unsafe values.
19
+ /**
20
+ * Bounds-checked little-endian offset reader over CMF file bytes, including
21
+ * 64-bit integer reads guarded against unsafe values.
20
22
  */
21
23
  class BinaryReader {
22
24
  /** Creates a BinaryReader over caller-provided CMF bytes and reader options. */
@@ -25,9 +27,9 @@ class BinaryReader {
25
27
  this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);
26
28
  }
27
29
 
28
- /**
29
- * Validates the supplied value against CMF binary reader constraints and
30
- * throws on failure.
30
+ /**
31
+ * Validates the supplied value against CMF binary reader constraints and
32
+ * throws on failure.
31
33
  */
32
34
  require(offset, size, label = "read") {
33
35
  if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) || offset < 0 || size < 0 || offset > this.bytes.byteLength - size) {
@@ -35,54 +37,54 @@ class BinaryReader {
35
37
  }
36
38
  }
37
39
 
38
- /**
39
- * Reads an unsigned 8-bit integer at the requested offset for the CMF binary
40
- * reader.
40
+ /**
41
+ * Reads an unsigned 8-bit integer at the requested offset for the CMF binary
42
+ * reader.
41
43
  */
42
44
  u8(offset) {
43
45
  this.require(offset, 1);
44
46
  return this.view.getUint8(offset);
45
47
  }
46
48
 
47
- /**
48
- * Reads an unsigned 16-bit little-endian integer at the requested offset for
49
- * the CMF binary reader.
49
+ /**
50
+ * Reads an unsigned 16-bit little-endian integer at the requested offset for
51
+ * the CMF binary reader.
50
52
  */
51
53
  u16(offset) {
52
54
  this.require(offset, 2);
53
55
  return this.view.getUint16(offset, true);
54
56
  }
55
57
 
56
- /**
57
- * Reads an unsigned 32-bit little-endian integer at the requested offset for
58
- * the CMF binary reader.
58
+ /**
59
+ * Reads an unsigned 32-bit little-endian integer at the requested offset for
60
+ * the CMF binary reader.
59
61
  */
60
62
  u32(offset) {
61
63
  this.require(offset, 4);
62
64
  return this.view.getUint32(offset, true);
63
65
  }
64
66
 
65
- /**
66
- * Reads a signed 32-bit little-endian integer at the requested offset for
67
- * the CMF binary reader.
67
+ /**
68
+ * Reads a signed 32-bit little-endian integer at the requested offset for
69
+ * the CMF binary reader.
68
70
  */
69
71
  i32(offset) {
70
72
  this.require(offset, 4);
71
73
  return this.view.getInt32(offset, true);
72
74
  }
73
75
 
74
- /**
75
- * Reads a 32-bit little-endian float at the requested offset for the CMF
76
- * binary reader.
76
+ /**
77
+ * Reads a 32-bit little-endian float at the requested offset for the CMF
78
+ * binary reader.
77
79
  */
78
80
  f32(offset) {
79
81
  this.require(offset, 4);
80
82
  return this.view.getFloat32(offset, true);
81
83
  }
82
84
 
83
- /**
84
- * Reads a safe unsigned 64-bit little-endian integer at the requested offset
85
- * for the CMF binary reader.
85
+ /**
86
+ * Reads a safe unsigned 64-bit little-endian integer at the requested offset
87
+ * for the CMF binary reader.
86
88
  */
87
89
  u64(offset) {
88
90
  this.require(offset, 8);
@@ -93,9 +95,9 @@ class BinaryReader {
93
95
  return Number(value);
94
96
  }
95
97
 
96
- /**
97
- * Reads a safe signed 64-bit little-endian integer at the requested offset
98
- * for the CMF binary reader.
98
+ /**
99
+ * Reads a safe signed 64-bit little-endian integer at the requested offset
100
+ * for the CMF binary reader.
99
101
  */
100
102
  i64(offset) {
101
103
  this.require(offset, 8);
@@ -106,9 +108,9 @@ class BinaryReader {
106
108
  return Number(value);
107
109
  }
108
110
 
109
- /**
110
- * Returns a bounds-checked byte slice at the requested offset for the CMF
111
- * binary reader.
111
+ /**
112
+ * Returns a bounds-checked byte slice at the requested offset for the CMF
113
+ * binary reader.
112
114
  */
113
115
  bytesAt(offset, size) {
114
116
  this.require(offset, size, "byte slice");
@@ -124,9 +126,9 @@ class BinaryReader {
124
126
  }
125
127
  }
126
128
 
127
- /**
128
- * Returns the symbolic enum name or an unknown-value label for the CMF binary
129
- * reader.
129
+ /**
130
+ * Returns the symbolic enum name or an unknown-value label for the CMF binary
131
+ * reader.
130
132
  */
131
133
  function enumName(names, value) {
132
134
  return names[value] ?? `Unknown(${value})`;
@@ -137,9 +139,9 @@ function readVector3(reader, offset) {
137
139
  return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8)];
138
140
  }
139
141
 
140
- /**
141
- * Reads a four-component quaternion from the CMF input for the CMF binary
142
- * reader.
142
+ /**
143
+ * Reads a four-component quaternion from the CMF input for the CMF binary
144
+ * reader.
143
145
  */
144
146
  function readQuaternion(reader, offset) {
145
147
  return [reader.f32(offset), reader.f32(offset + 4), reader.f32(offset + 8), reader.f32(offset + 12)];
@@ -162,32 +164,24 @@ function readBounds(reader, offset) {
162
164
  };
163
165
  }
164
166
 
165
- /**
166
- * Computes a CRC-32 checksum over the requested byte range for the CMF binary
167
- * reader.
167
+ /**
168
+ * Computes a CRC-32 checksum over the requested byte range for the CMF binary
169
+ * reader.
170
+ */
171
+ /**
172
+ * CMF's container checksum.
173
+ *
174
+ * Re-exported under CMF's own name because the CMF byte layout is what makes it
175
+ * meaningful here, and a test imports this spelling. The algorithm is the shared
176
+ * standard CRC-32.
177
+ *
178
+ * @param {Uint8Array} bytes Source bytes.
179
+ * @param {number} [start] First byte offset, inclusive.
180
+ * @param {number} [end] Last byte offset, exclusive.
181
+ * @returns {number} Unsigned 32-bit checksum.
168
182
  */
169
183
  function crc32(bytes, start = 0, end = bytes.byteLength) {
170
- let crc = 0xffffffff;
171
- const table = crc32Table();
172
- for (let i = start; i < end; i++) {
173
- crc = crc >>> 8 ^ table[(crc ^ bytes[i]) & 0xff];
174
- }
175
- return (crc ^ 0xffffffff) >>> 0;
176
- }
177
- let cachedCrc32Table = null;
178
- function crc32Table() {
179
- if (cachedCrc32Table) {
180
- return cachedCrc32Table;
181
- }
182
- cachedCrc32Table = new Uint32Array(256);
183
- for (let i = 0; i < 256; i++) {
184
- let c = i;
185
- for (let k = 0; k < 8; k++) {
186
- c = c & 1 ? 0xedb88320 ^ c >>> 1 : c >>> 1;
187
- }
188
- cachedCrc32Table[i] = c >>> 0;
189
- }
190
- return cachedCrc32Table;
184
+ return crc32$1(bytes, start, end);
191
185
  }
192
186
 
193
187
  export { BinaryReader, asUint8Array, crc32, enumName, readBounds, readMatrix, readQuaternion, readVector3 };
@@ -1 +1 @@
1
- {"version":3,"file":"binary.js","sources":["../../../../../../src/resource/formats/cmf/core/binary.js"],"sourcesContent":["const textDecoder = new TextDecoder();\r\n\r\n/** Returns a byte view over the supplied binary input for the CMF binary reader. */\r\nexport function asUint8Array(input)\r\n{\r\n if (input instanceof Uint8Array)\r\n {\r\n return input;\r\n }\r\n\r\n if (input instanceof ArrayBuffer)\r\n {\r\n return new Uint8Array(input);\r\n }\r\n\r\n if (ArrayBuffer.isView(input))\r\n {\r\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\r\n }\r\n\r\n throw new TypeError(\"CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view\");\r\n}\r\n\r\n/**\r\n * Bounds-checked little-endian offset reader over CMF file bytes, including\r\n * 64-bit integer reads guarded against unsafe values.\r\n */\r\nexport class BinaryReader\r\n{\r\n /** Creates a BinaryReader over caller-provided CMF bytes and reader options. */\r\n constructor(bytes)\r\n {\r\n this.bytes = asUint8Array(bytes);\r\n this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);\r\n }\r\n\r\n /**\r\n * Validates the supplied value against CMF binary reader constraints and\r\n * throws on failure.\r\n */\r\n require(offset, size, label = \"read\")\n {\n if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) ||\n offset < 0 || size < 0 || offset > this.bytes.byteLength - size)\n {\n throw new RangeError(`CMF ${label} is outside file bounds`);\n }\n }\r\n\r\n /**\r\n * Reads an unsigned 8-bit integer at the requested offset for the CMF binary\r\n * reader.\r\n */\r\n u8(offset)\r\n {\r\n this.require(offset, 1);\r\n return this.view.getUint8(offset);\r\n }\r\n\r\n /**\r\n * Reads an unsigned 16-bit little-endian integer at the requested offset for\r\n * the CMF binary reader.\r\n */\r\n u16(offset)\r\n {\r\n this.require(offset, 2);\r\n return this.view.getUint16(offset, true);\r\n }\r\n\r\n /**\r\n * Reads an unsigned 32-bit little-endian integer at the requested offset for\r\n * the CMF binary reader.\r\n */\r\n u32(offset)\r\n {\r\n this.require(offset, 4);\r\n return this.view.getUint32(offset, true);\r\n }\r\n\r\n /**\r\n * Reads a signed 32-bit little-endian integer at the requested offset for\r\n * the CMF binary reader.\r\n */\r\n i32(offset)\r\n {\r\n this.require(offset, 4);\r\n return this.view.getInt32(offset, true);\r\n }\r\n\r\n /**\r\n * Reads a 32-bit little-endian float at the requested offset for the CMF\r\n * binary reader.\r\n */\r\n f32(offset)\r\n {\r\n this.require(offset, 4);\r\n return this.view.getFloat32(offset, true);\r\n }\r\n\r\n /**\r\n * Reads a safe unsigned 64-bit little-endian integer at the requested offset\r\n * for the CMF binary reader.\r\n */\r\n u64(offset)\r\n {\r\n this.require(offset, 8);\r\n const value = this.view.getBigUint64(offset, true);\r\n if (value > BigInt(Number.MAX_SAFE_INTEGER))\r\n {\r\n throw new RangeError(\"CMF integer is larger than Number.MAX_SAFE_INTEGER\");\r\n }\r\n return Number(value);\r\n }\r\n\r\n /**\r\n * Reads a safe signed 64-bit little-endian integer at the requested offset\r\n * for the CMF binary reader.\r\n */\r\n i64(offset)\r\n {\r\n this.require(offset, 8);\r\n const value = this.view.getBigInt64(offset, true);\r\n if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER))\r\n {\r\n throw new RangeError(\"CMF integer is outside the safe JavaScript number range\");\r\n }\r\n return Number(value);\r\n }\r\n\r\n /**\r\n * Returns a bounds-checked byte slice at the requested offset for the CMF\r\n * binary reader.\r\n */\r\n bytesAt(offset, size)\r\n {\r\n this.require(offset, size, \"byte slice\");\r\n return this.bytes.subarray(offset, offset + size);\r\n }\r\n\r\n /** Decodes a UTF-8 string at the requested offset for the CMF binary reader. */\r\n string(offset, byteSize)\r\n {\r\n if (byteSize === 0)\r\n {\r\n return \"\";\r\n }\r\n\r\n return textDecoder.decode(this.bytesAt(offset, byteSize));\r\n }\r\n}\r\n\r\n/**\r\n * Returns the symbolic enum name or an unknown-value label for the CMF binary\r\n * reader.\r\n */\r\nexport function enumName(names, value)\r\n{\r\n return names[value] ?? `Unknown(${value})`;\r\n}\r\n\r\n/** Reads a three-component vector from the CMF input for the CMF binary reader. */\r\nexport function readVector3(reader, offset)\r\n{\r\n return [\r\n reader.f32(offset),\r\n reader.f32(offset + 4),\r\n reader.f32(offset + 8)\r\n ];\r\n}\r\n\r\n/**\r\n * Reads a four-component quaternion from the CMF input for the CMF binary\r\n * reader.\r\n */\r\nexport function readQuaternion(reader, offset)\r\n{\r\n return [\r\n reader.f32(offset),\r\n reader.f32(offset + 4),\r\n reader.f32(offset + 8),\r\n reader.f32(offset + 12)\r\n ];\r\n}\r\n\r\n/** Reads a 4-by-4 matrix from the CMF input for the CMF binary reader. */\r\nexport function readMatrix(reader, offset)\r\n{\r\n const values = [];\r\n for (let i = 0; i < 16; i++)\r\n {\r\n values.push(reader.f32(offset + i * 4));\r\n }\r\n return values;\r\n}\r\n\r\n/** Reads minimum and maximum bounds from the CMF input for the CMF binary reader. */\r\nexport function readBounds(reader, offset)\r\n{\r\n return {\r\n min: readVector3(reader, offset),\r\n max: readVector3(reader, offset + 12)\r\n };\r\n}\r\n\r\n/**\r\n * Computes a CRC-32 checksum over the requested byte range for the CMF binary\r\n * reader.\r\n */\r\nexport function crc32(bytes, start = 0, end = bytes.byteLength)\r\n{\r\n let crc = 0xffffffff;\r\n const table = crc32Table();\r\n for (let i = start; i < end; i++)\r\n {\r\n crc = (crc >>> 8) ^ table[(crc ^ bytes[i]) & 0xff];\r\n }\r\n return (crc ^ 0xffffffff) >>> 0;\r\n}\r\n\r\nlet cachedCrc32Table = null;\r\n\r\nfunction crc32Table()\r\n{\r\n if (cachedCrc32Table)\r\n {\r\n return cachedCrc32Table;\r\n }\r\n\r\n cachedCrc32Table = new Uint32Array(256);\r\n for (let i = 0; i < 256; i++)\r\n {\r\n let c = i;\r\n for (let k = 0; k < 8; k++)\r\n {\r\n c = (c & 1) ? (0xedb88320 ^ (c >>> 1)) : (c >>> 1);\r\n }\r\n cachedCrc32Table[i] = c >>> 0;\r\n }\r\n return cachedCrc32Table;\r\n}\r\n"],"names":["textDecoder","TextDecoder","asUint8Array","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError","BinaryReader","constructor","bytes","view","DataView","require","offset","size","label","Number","isSafeInteger","RangeError","u8","getUint8","u16","getUint16","u32","getUint32","i32","getInt32","f32","getFloat32","u64","value","getBigUint64","BigInt","MAX_SAFE_INTEGER","i64","getBigInt64","MIN_SAFE_INTEGER","bytesAt","subarray","string","byteSize","decode","enumName","names","readVector3","reader","readQuaternion","readMatrix","values","i","push","readBounds","min","max","crc32","start","end","crc","table","crc32Table","cachedCrc32Table","Uint32Array","c","k"],"mappings":"AAAA,MAAMA,WAAW,GAAG,IAAIC,WAAW,EAAE;;AAErC;AACO,SAASC,YAAYA,CAACC,KAAK,EAClC;EACI,IAAIA,KAAK,YAAYC,UAAU,EAC/B;AACI,IAAA,OAAOD,KAAK;AAChB,EAAA;EAEA,IAAIA,KAAK,YAAYE,WAAW,EAChC;AACI,IAAA,OAAO,IAAID,UAAU,CAACD,KAAK,CAAC;AAChC,EAAA;AAEA,EAAA,IAAIE,WAAW,CAACC,MAAM,CAACH,KAAK,CAAC,EAC7B;AACI,IAAA,OAAO,IAAIC,UAAU,CAACD,KAAK,CAACI,MAAM,EAAEJ,KAAK,CAACK,UAAU,EAAEL,KAAK,CAACM,UAAU,CAAC;AAC3E,EAAA;AAEA,EAAA,MAAM,IAAIC,SAAS,CAAC,0EAA0E,CAAC;AACnG;;AAEA;AACA;AACA;AACA;AACO,MAAMC,YAAY,CACzB;AACI;EACAC,WAAWA,CAACC,KAAK,EACjB;AACI,IAAA,IAAI,CAACA,KAAK,GAAGX,YAAY,CAACW,KAAK,CAAC;IAChC,IAAI,CAACC,IAAI,GAAG,IAAIC,QAAQ,CAAC,IAAI,CAACF,KAAK,CAACN,MAAM,EAAE,IAAI,CAACM,KAAK,CAACL,UAAU,EAAE,IAAI,CAACK,KAAK,CAACJ,UAAU,CAAC;AAC7F,EAAA;;AAEA;AACJ;AACA;AACA;EACIO,OAAOA,CAACC,MAAM,EAAEC,IAAI,EAAEC,KAAK,GAAG,MAAM,EACpC;AACI,IAAA,IAAI,CAACC,MAAM,CAACC,aAAa,CAACJ,MAAM,CAAC,IAAI,CAACG,MAAM,CAACC,aAAa,CAACH,IAAI,CAAC,IAC5DD,MAAM,GAAG,CAAC,IAAIC,IAAI,GAAG,CAAC,IAAID,MAAM,GAAG,IAAI,CAACJ,KAAK,CAACJ,UAAU,GAAGS,IAAI,EACnE;AACI,MAAA,MAAM,IAAII,UAAU,CAAC,CAAA,IAAA,EAAOH,KAAK,yBAAyB,CAAC;AAC/D,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACA;EACII,EAAEA,CAACN,MAAM,EACT;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;AACvB,IAAA,OAAO,IAAI,CAACH,IAAI,CAACU,QAAQ,CAACP,MAAM,CAAC;AACrC,EAAA;;AAEA;AACJ;AACA;AACA;EACIQ,GAAGA,CAACR,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACY,SAAS,CAACT,MAAM,EAAE,IAAI,CAAC;AAC5C,EAAA;;AAEA;AACJ;AACA;AACA;EACIU,GAAGA,CAACV,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACc,SAAS,CAACX,MAAM,EAAE,IAAI,CAAC;AAC5C,EAAA;;AAEA;AACJ;AACA;AACA;EACIY,GAAGA,CAACZ,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACgB,QAAQ,CAACb,MAAM,EAAE,IAAI,CAAC;AAC3C,EAAA;;AAEA;AACJ;AACA;AACA;EACIc,GAAGA,CAACd,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,OAAO,IAAI,CAACH,IAAI,CAACkB,UAAU,CAACf,MAAM,EAAE,IAAI,CAAC;AAC7C,EAAA;;AAEA;AACJ;AACA;AACA;EACIgB,GAAGA,CAAChB,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,MAAMiB,KAAK,GAAG,IAAI,CAACpB,IAAI,CAACqB,YAAY,CAAClB,MAAM,EAAE,IAAI,CAAC;IAClD,IAAIiB,KAAK,GAAGE,MAAM,CAAChB,MAAM,CAACiB,gBAAgB,CAAC,EAC3C;AACI,MAAA,MAAM,IAAIf,UAAU,CAAC,oDAAoD,CAAC;AAC9E,IAAA;IACA,OAAOF,MAAM,CAACc,KAAK,CAAC;AACxB,EAAA;;AAEA;AACJ;AACA;AACA;EACII,GAAGA,CAACrB,MAAM,EACV;AACI,IAAA,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IACvB,MAAMiB,KAAK,GAAG,IAAI,CAACpB,IAAI,CAACyB,WAAW,CAACtB,MAAM,EAAE,IAAI,CAAC;AACjD,IAAA,IAAIiB,KAAK,GAAGE,MAAM,CAAChB,MAAM,CAACiB,gBAAgB,CAAC,IAAIH,KAAK,GAAGE,MAAM,CAAChB,MAAM,CAACoB,gBAAgB,CAAC,EACtF;AACI,MAAA,MAAM,IAAIlB,UAAU,CAAC,yDAAyD,CAAC;AACnF,IAAA;IACA,OAAOF,MAAM,CAACc,KAAK,CAAC;AACxB,EAAA;;AAEA;AACJ;AACA;AACA;AACIO,EAAAA,OAAOA,CAACxB,MAAM,EAAEC,IAAI,EACpB;IACI,IAAI,CAACF,OAAO,CAACC,MAAM,EAAEC,IAAI,EAAE,YAAY,CAAC;IACxC,OAAO,IAAI,CAACL,KAAK,CAAC6B,QAAQ,CAACzB,MAAM,EAAEA,MAAM,GAAGC,IAAI,CAAC;AACrD,EAAA;;AAEA;AACAyB,EAAAA,MAAMA,CAAC1B,MAAM,EAAE2B,QAAQ,EACvB;IACI,IAAIA,QAAQ,KAAK,CAAC,EAClB;AACI,MAAA,OAAO,EAAE;AACb,IAAA;AAEA,IAAA,OAAO5C,WAAW,CAAC6C,MAAM,CAAC,IAAI,CAACJ,OAAO,CAACxB,MAAM,EAAE2B,QAAQ,CAAC,CAAC;AAC7D,EAAA;AACJ;;AAEA;AACA;AACA;AACA;AACO,SAASE,QAAQA,CAACC,KAAK,EAAEb,KAAK,EACrC;AACI,EAAA,OAAOa,KAAK,CAACb,KAAK,CAAC,IAAI,CAAA,QAAA,EAAWA,KAAK,CAAA,CAAA,CAAG;AAC9C;;AAEA;AACO,SAASc,WAAWA,CAACC,MAAM,EAAEhC,MAAM,EAC1C;EACI,OAAO,CACHgC,MAAM,CAAClB,GAAG,CAACd,MAAM,CAAC,EAClBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,EACtBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,CACzB;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASiC,cAAcA,CAACD,MAAM,EAAEhC,MAAM,EAC7C;AACI,EAAA,OAAO,CACHgC,MAAM,CAAClB,GAAG,CAACd,MAAM,CAAC,EAClBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,EACtBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,CAAC,CAAC,EACtBgC,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAG,EAAE,CAAC,CAC1B;AACL;;AAEA;AACO,SAASkC,UAAUA,CAACF,MAAM,EAAEhC,MAAM,EACzC;EACI,MAAMmC,MAAM,GAAG,EAAE;EACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,EAAEA,CAAC,EAAE,EAC3B;AACID,IAAAA,MAAM,CAACE,IAAI,CAACL,MAAM,CAAClB,GAAG,CAACd,MAAM,GAAGoC,CAAC,GAAG,CAAC,CAAC,CAAC;AAC3C,EAAA;AACA,EAAA,OAAOD,MAAM;AACjB;;AAEA;AACO,SAASG,UAAUA,CAACN,MAAM,EAAEhC,MAAM,EACzC;EACI,OAAO;AACHuC,IAAAA,GAAG,EAAER,WAAW,CAACC,MAAM,EAAEhC,MAAM,CAAC;AAChCwC,IAAAA,GAAG,EAAET,WAAW,CAACC,MAAM,EAAEhC,MAAM,GAAG,EAAE;GACvC;AACL;;AAEA;AACA;AACA;AACA;AACO,SAASyC,KAAKA,CAAC7C,KAAK,EAAE8C,KAAK,GAAG,CAAC,EAAEC,GAAG,GAAG/C,KAAK,CAACJ,UAAU,EAC9D;EACI,IAAIoD,GAAG,GAAG,UAAU;AACpB,EAAA,MAAMC,KAAK,GAAGC,UAAU,EAAE;EAC1B,KAAK,IAAIV,CAAC,GAAGM,KAAK,EAAEN,CAAC,GAAGO,GAAG,EAAEP,CAAC,EAAE,EAChC;AACIQ,IAAAA,GAAG,GAAIA,GAAG,KAAK,CAAC,GAAIC,KAAK,CAAC,CAACD,GAAG,GAAGhD,KAAK,CAACwC,CAAC,CAAC,IAAI,IAAI,CAAC;AACtD,EAAA;AACA,EAAA,OAAO,CAACQ,GAAG,GAAG,UAAU,MAAM,CAAC;AACnC;AAEA,IAAIG,gBAAgB,GAAG,IAAI;AAE3B,SAASD,UAAUA,GACnB;AACI,EAAA,IAAIC,gBAAgB,EACpB;AACI,IAAA,OAAOA,gBAAgB;AAC3B,EAAA;AAEAA,EAAAA,gBAAgB,GAAG,IAAIC,WAAW,CAAC,GAAG,CAAC;EACvC,KAAK,IAAIZ,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,GAAG,EAAEA,CAAC,EAAE,EAC5B;IACI,IAAIa,CAAC,GAAGb,CAAC;IACT,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAC1B;AACID,MAAAA,CAAC,GAAIA,CAAC,GAAG,CAAC,GAAK,UAAU,GAAIA,CAAC,KAAK,CAAE,GAAKA,CAAC,KAAK,CAAE;AACtD,IAAA;AACAF,IAAAA,gBAAgB,CAACX,CAAC,CAAC,GAAGa,CAAC,KAAK,CAAC;AACjC,EAAA;AACA,EAAA,OAAOF,gBAAgB;AAC3B;;;;"}
1
+ {"version":3,"file":"binary.js","sources":["../../../../../../src/resource/formats/cmf/core/binary.js"],"sourcesContent":["import { crc32 as sharedCrc32 } from \"#utils/checksum\";\n\nconst textDecoder = new TextDecoder();\n\n/** Returns a byte view over the supplied binary input for the CMF binary reader. */\nexport function asUint8Array(input)\n{\n if (input instanceof Uint8Array)\n {\n return input;\n }\n\n if (input instanceof ArrayBuffer)\n {\n return new Uint8Array(input);\n }\n\n if (ArrayBuffer.isView(input))\n {\n return new Uint8Array(input.buffer, input.byteOffset, input.byteLength);\n }\n\n throw new TypeError(\"CMF input must be a Uint8Array, Buffer, ArrayBuffer, or typed-array view\");\n}\n\n/**\n * Bounds-checked little-endian offset reader over CMF file bytes, including\n * 64-bit integer reads guarded against unsafe values.\n */\nexport class BinaryReader\n{\n /** Creates a BinaryReader over caller-provided CMF bytes and reader options. */\n constructor(bytes)\n {\n this.bytes = asUint8Array(bytes);\n this.view = new DataView(this.bytes.buffer, this.bytes.byteOffset, this.bytes.byteLength);\n }\n\n /**\n * Validates the supplied value against CMF binary reader constraints and\n * throws on failure.\n */\n require(offset, size, label = \"read\")\n {\n if (!Number.isSafeInteger(offset) || !Number.isSafeInteger(size) ||\n offset < 0 || size < 0 || offset > this.bytes.byteLength - size)\n {\n throw new RangeError(`CMF ${label} is outside file bounds`);\n }\n }\n\n /**\n * Reads an unsigned 8-bit integer at the requested offset for the CMF binary\n * reader.\n */\n u8(offset)\n {\n this.require(offset, 1);\n return this.view.getUint8(offset);\n }\n\n /**\n * Reads an unsigned 16-bit little-endian integer at the requested offset for\n * the CMF binary reader.\n */\n u16(offset)\n {\n this.require(offset, 2);\n return this.view.getUint16(offset, true);\n }\n\n /**\n * Reads an unsigned 32-bit little-endian integer at the requested offset for\n * the CMF binary reader.\n */\n u32(offset)\n {\n this.require(offset, 4);\n return this.view.getUint32(offset, true);\n }\n\n /**\n * Reads a signed 32-bit little-endian integer at the requested offset for\n * the CMF binary reader.\n */\n i32(offset)\n {\n this.require(offset, 4);\n return this.view.getInt32(offset, true);\n }\n\n /**\n * Reads a 32-bit little-endian float at the requested offset for the CMF\n * binary reader.\n */\n f32(offset)\n {\n this.require(offset, 4);\n return this.view.getFloat32(offset, true);\n }\n\n /**\n * Reads a safe unsigned 64-bit little-endian integer at the requested offset\n * for the CMF binary reader.\n */\n u64(offset)\n {\n this.require(offset, 8);\n const value = this.view.getBigUint64(offset, true);\n if (value > BigInt(Number.MAX_SAFE_INTEGER))\n {\n throw new RangeError(\"CMF integer is larger than Number.MAX_SAFE_INTEGER\");\n }\n return Number(value);\n }\n\n /**\n * Reads a safe signed 64-bit little-endian integer at the requested offset\n * for the CMF binary reader.\n */\n i64(offset)\n {\n this.require(offset, 8);\n const value = this.view.getBigInt64(offset, true);\n if (value > BigInt(Number.MAX_SAFE_INTEGER) || value < BigInt(Number.MIN_SAFE_INTEGER))\n {\n throw new RangeError(\"CMF integer is outside the safe JavaScript number range\");\n }\n return Number(value);\n }\n\n /**\n * Returns a bounds-checked byte slice at the requested offset for the CMF\n * binary reader.\n */\n bytesAt(offset, size)\n {\n this.require(offset, size, \"byte slice\");\n return this.bytes.subarray(offset, offset + size);\n }\n\n /** Decodes a UTF-8 string at the requested offset for the CMF binary reader. */\n string(offset, byteSize)\n {\n if (byteSize === 0)\n {\n return \"\";\n }\n\n return textDecoder.decode(this.bytesAt(offset, byteSize));\n }\n}\n\n/**\n * Returns the symbolic enum name or an unknown-value label for the CMF binary\n * reader.\n */\nexport function enumName(names, value)\n{\n return names[value] ?? `Unknown(${value})`;\n}\n\n/** Reads a three-component vector from the CMF input for the CMF binary reader. */\nexport function readVector3(reader, offset)\n{\n return [\n reader.f32(offset),\n reader.f32(offset + 4),\n reader.f32(offset + 8)\n ];\n}\n\n/**\n * Reads a four-component quaternion from the CMF input for the CMF binary\n * reader.\n */\nexport function readQuaternion(reader, offset)\n{\n return [\n reader.f32(offset),\n reader.f32(offset + 4),\n reader.f32(offset + 8),\n reader.f32(offset + 12)\n ];\n}\n\n/** Reads a 4-by-4 matrix from the CMF input for the CMF binary reader. */\nexport function readMatrix(reader, offset)\n{\n const values = [];\n for (let i = 0; i < 16; i++)\n {\n values.push(reader.f32(offset + i * 4));\n }\n return values;\n}\n\n/** Reads minimum and maximum bounds from the CMF input for the CMF binary reader. */\nexport function readBounds(reader, offset)\n{\n return {\n min: readVector3(reader, offset),\n max: readVector3(reader, offset + 12)\n };\n}\n\n/**\n * Computes a CRC-32 checksum over the requested byte range for the CMF binary\n * reader.\n */\n/**\n * CMF's container checksum.\n *\n * Re-exported under CMF's own name because the CMF byte layout is what makes it\n * meaningful here, and a test imports this spelling. The algorithm is the shared\n * standard CRC-32.\n *\n * @param {Uint8Array} bytes Source bytes.\n * @param {number} [start] First byte offset, inclusive.\n * @param {number} [end] Last byte offset, exclusive.\n * @returns {number} Unsigned 32-bit checksum.\n */\nexport function crc32(bytes, start = 0, end = bytes.byteLength)\n{\n return sharedCrc32(bytes, start, end);\n}\n\n\n"],"names":["textDecoder","TextDecoder","asUint8Array","input","Uint8Array","ArrayBuffer","isView","buffer","byteOffset","byteLength","TypeError","BinaryReader","constructor","bytes","view","DataView","require","offset","size","label","Number","isSafeInteger","RangeError","u8","getUint8","u16","getUint16","u32","getUint32","i32","getInt32","f32","getFloat32","u64","value","getBigUint64","BigInt","MAX_SAFE_INTEGER","i64","getBigInt64","MIN_SAFE_INTEGER","bytesAt","subarray","string","byteSize","decode","enumName","names","readVector3","reader","readQuaternion","readMatrix","values","i","push","readBounds","min","max","crc32","start","end","sharedCrc32"],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { asUint8Array } from '#utils/bytes';
2
2
  import { CjsFormat } from '../../format/CjsFormat.js';
3
- import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, toJsonValue, probeSupportWithValues, isDDS, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_TEXTURE, OUTPUT_IMAGE } from './core/helpers.js';
3
+ import { DEFAULT_VALUES, normalizeValues, readWithValues, inspectWithValues, probeSupportWithValues, OUTPUT_JSON, OUTPUT_RAW, OUTPUT_RGBA, OUTPUT_TEXTURE, OUTPUT_IMAGE } from './core/helpers.js';
4
+ import { toJsonWithByteSummary } from '../../format/jsonPolicies.js';
5
+ import { isDDS } from '../../format/imageSignatures.js';
4
6
 
5
7
  const FORMAT_NAME = "CjsDdsFormat";
6
8
 
@@ -90,7 +92,7 @@ class CjsDdsFormat extends CjsFormat {
90
92
  * @returns {any} JSON-compatible value.
91
93
  */
92
94
  ToJSON(value) {
93
- return toJsonValue(value);
95
+ return toJsonWithByteSummary(value);
94
96
  }
95
97
 
96
98
  /**
@@ -153,7 +155,7 @@ class CjsDdsFormat extends CjsFormat {
153
155
  * @returns {any} JSON-compatible value.
154
156
  */
155
157
  static toJSON(value) {
156
- return toJsonValue(value);
158
+ return toJsonWithByteSummary(value);
157
159
  }
158
160
 
159
161
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"CjsDdsFormat.js","sources":["../../../../../src/resource/formats/dds/CjsDdsFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n OUTPUT_TEXTURE,\n inspectWithValues,\n isDDS,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsDdsFormat\";\n\n/**\n * DDS texture format profile that inspects header metadata, probes output\n * support, and reads DDS bytes into raw, GPU-free texture, image, or\n * software-decoded RGBA and float payloads (BC1-BC5, BC7, and BC6H\n * included).\n */\nexport class CjsDdsFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable DDS format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsDdsFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"dds\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"dds\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read DDS bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"dds\");\n }\n\n /**\n * Read DDS bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect DDS bytes without decoding texture data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} DDS header metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"dds\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot asynchronous DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsDdsFormat.read(input, options);\n }\n\n /**\n * One-shot DDS inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} DDS header metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot DDS support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a DDS file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate DDS bytes.\n * @returns {boolean} True when the DDS header is present and sized correctly.\n */\n static isDDS(input)\n {\n try\n {\n return isDDS(asUint8Array(input, \"Image input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n IMAGE: OUTPUT_IMAGE,\n TEXTURE: OUTPUT_TEXTURE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_DDS_JSON = \"ddsJson\";\n static id = \"dds\";\n static mediaTypes = Object.freeze([ \"texture\", \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n texture: { probes: [ \"texture\", \"compressed\" ] },\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n ddsJson: { role: \"debug\", probes: [ \"ddsJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".dds\" ]);\n}\n\nexport default CjsDdsFormat;\n"],"names":["FORMAT_NAME","CjsDdsFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isDDS","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","TEXTURE","OUTPUT_TEXTURE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_DDS_JSON","id","mediaTypes","outputs","defineOutputs","texture","probes","image","decoded","rgba","ddsJson","role","raw","default","passthrough","extensions"],"mappings":";;;;AAiBA,MAAMA,WAAW,GAAG,cAAc;;AAElC;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,YAAY,SAASC,SAAS,CAC3C;EACI,OAAO,GAAGC,cAAc;;AAExB;AACJ;AACA;AACA;AACA;AACIC,EAAAA,WAAWA,CAACC,OAAO,GAAG,EAAE,EACxB;AACI,IAAA,KAAK,EAAE;AACP,IAAA,IAAI,CAACC,SAAS,CAACD,OAAO,CAAC;AAC3B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACIC,EAAAA,SAASA,CAACD,OAAO,GAAG,EAAE,EACtB;IACI,IAAI,CAAC,OAAO,GAAGE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC;AAC3F,IAAA,OAAO,IAAI;AACf,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACIS,EAAAA,SAASA,CAACJ,OAAO,GAAG,EAAE,EACtB;AACI,IAAA,OAAOE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE;AAAEC,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;KAAS,EAAEL,WAAW,CAAC;AACvF,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACIU,EAAAA,IAAIA,CAACC,KAAK,EAAEN,OAAO,GAAG,EAAE,EACxB;AACI,IAAA,OAAOO,cAAc,CAACD,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,EAAE,KAAK,CAAC;AAChE,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,MAAMQ,SAASA,CAACF,KAAK,EAAEN,OAAO,GAAG,EAAE,EACnC;AACI,IAAA,OAAO,IAAI,CAACK,IAAI,CAACC,KAAK,EAAEN,OAAO,CAAC;AACpC,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;AACIS,EAAAA,OAAOA,CAACH,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC3B;AACI,IAAA,OAAOU,iBAAiB,CAACJ,KAAK,EAAE,IAAI,CAACF,SAAS,CAACJ,OAAO,CAAC,EAAE,KAAK,CAAC;AACnE,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACIW,MAAMA,CAACC,KAAK,EACZ;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOE,IAAIA,CAACR,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC/B;AACI,IAAA,OAAOO,cAAc,CAACD,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;AAAQ,KAAC,EAAEL,WAAW,CAAC,EAAE,KAAK,CAAC;AACvH,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,aAAaoB,SAASA,CAACT,KAAK,EAAEN,OAAO,GAAG,EAAE,EAC1C;AACI,IAAA,OAAOJ,YAAY,CAACkB,IAAI,CAACR,KAAK,EAAEN,OAAO,CAAC;AAC5C,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOgB,OAAOA,CAACV,KAAK,EAAEN,OAAO,GAAG,EAAE,EAClC;AACI,IAAA,OAAOU,iBAAiB,CAACJ,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;AAAQ,KAAC,EAAEL,WAAW,CAAC,EAAE,KAAK,CAAC;AAC1H,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;AACA;EACI,OAAOsB,YAAYA,CAACX,KAAK,EAAEN,OAAO,GAAG,EAAE,EACvC;AACI,IAAA,OAAOkB,sBAAsB,CAACZ,KAAK,EAAEJ,eAAe,CAACJ,cAAc,EAAE;AAAEK,MAAAA,SAAS,EAAE,KAAK;MAAE,GAAGH;AAAQ,KAAC,EAAEL,WAAW,CAAC,EAAE,KAAK,CAAC;AAC/H,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOwB,MAAMA,CAACP,KAAK,EACnB;IACI,OAAOC,WAAW,CAACD,KAAK,CAAC;AAC7B,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOQ,KAAKA,CAACd,KAAK,EAClB;IACI,IACA;MACI,OAAOc,KAAK,CAACC,YAAY,CAACf,KAAK,EAAE,aAAa,CAAC,CAAC;AACpD,IAAA,CAAC,CACD,MACA;AACI,MAAA,OAAO,KAAK;AAChB,IAAA;AACJ,EAAA;;AAEA;AACJ;AACA;AACI,EAAA,OAAOgB,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC;AAC1BC,IAAAA,KAAK,EAAEC,YAAY;AACnBC,IAAAA,OAAO,EAAEC,cAAc;AACvBC,IAAAA,IAAI,EAAEC,WAAW;AACjBC,IAAAA,GAAG,EAAEC,UAAU;AACfC,IAAAA,IAAI,EAAEC;AACV,GAAC,CAAC;EACF,OAAOC,eAAe,GAAG,SAAS;EAClC,OAAOC,EAAE,GAAG,KAAK;EACjB,OAAOC,UAAU,GAAGd,MAAM,CAACC,MAAM,CAAC,CAAE,SAAS,EAAE,OAAO,CAAE,CAAC;AACzD,EAAA,OAAOc,OAAO,GAAGzC,SAAS,CAAC0C,aAAa,CAAC;AACrCC,IAAAA,OAAO,EAAE;AAAEC,MAAAA,MAAM,EAAE,CAAE,SAAS,EAAE,YAAY;KAAI;AAChDC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE,IAAI;AAAEF,MAAAA,MAAM,EAAE,CAAE,OAAO,EAAE,MAAM;KAAI;AACrDG,IAAAA,IAAI,EAAE;AAAED,MAAAA,OAAO,EAAE;KAAM;AACvBE,IAAAA,OAAO,EAAE;AAAEC,MAAAA,IAAI,EAAE,OAAO;AAAEL,MAAAA,MAAM,EAAE,CAAE,SAAS,EAAE,KAAK;KAAI;AACxDM,IAAAA,GAAG,EAAE;AAAED,MAAAA,IAAI,EAAE,OAAO;AAAEE,MAAAA,OAAO,EAAE,IAAI;AAAEC,MAAAA,WAAW,EAAE;AAAK;AAC3D,GAAC,CAAC;EACF,OAAOC,UAAU,GAAG3B,MAAM,CAACC,MAAM,CAAC,CAAE,MAAM,CAAE,CAAC;AACjD;;;;"}
1
+ {"version":3,"file":"CjsDdsFormat.js","sources":["../../../../../src/resource/formats/dds/CjsDdsFormat.js"],"sourcesContent":["import { asUint8Array } from \"#utils/bytes\";\nimport { CjsFormat } from \"../../format/CjsFormat.js\";\nimport {\n DEFAULT_VALUES,\n OUTPUT_IMAGE,\n OUTPUT_JSON,\n OUTPUT_RAW,\n OUTPUT_RGBA,\n OUTPUT_TEXTURE,\n inspectWithValues,\n isDDS,\n probeSupportWithValues,\n normalizeValues,\n readWithValues,\n toJsonValue\n} from \"./core/helpers.js\";\n\nconst FORMAT_NAME = \"CjsDdsFormat\";\n\n/**\n * DDS texture format profile that inspects header metadata, probes output\n * support, and reads DDS bytes into raw, GPU-free texture, image, or\n * software-decoded RGBA and float payloads (BC1-BC5, BC7, and BC6H\n * included).\n */\nexport class CjsDdsFormat extends CjsFormat\n{\n #values = DEFAULT_VALUES;\n\n /**\n * Create a reusable DDS format profile.\n *\n * @param {object} [options] Default read/inspect options.\n */\n constructor(options = {})\n {\n super();\n this.SetValues(options);\n }\n\n /**\n * Merge options into this profile.\n *\n * @param {object} [options] Values to merge.\n * @returns {CjsDdsFormat} This format profile.\n */\n SetValues(options = {})\n {\n this.#values = normalizeValues(this.#values, { inputType: \"dds\", ...options }, FORMAT_NAME);\n return this;\n }\n\n /**\n * Get normalized profile values with optional per-call overrides.\n *\n * @param {object} [options] Per-call values.\n * @returns {object} Normalized read values.\n */\n GetValues(options = {})\n {\n return normalizeValues(this.#values, { inputType: \"dds\", ...options }, FORMAT_NAME);\n }\n\n /**\n * Read DDS bytes with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n Read(input, options = {})\n {\n return readWithValues(input, this.GetValues(options), \"dds\");\n }\n\n /**\n * Read DDS bytes asynchronously with this profile.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n async ReadAsync(input, options = {})\n {\n return this.Read(input, options);\n }\n\n /**\n * Inspect DDS bytes without decoding texture data.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Per-call values.\n * @returns {object} DDS header metadata.\n */\n Inspect(input, options = {})\n {\n return inspectWithValues(input, this.GetValues(options), \"dds\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n ToJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * One-shot DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {object} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static read(input, options = {})\n {\n return readWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot asynchronous DDS read.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Read options.\n * @returns {Promise<object>} GPU-free raw/debug/texture payload for the selected emit target.\n */\n static async readAsync(input, options = {})\n {\n return CjsDdsFormat.read(input, options);\n }\n\n /**\n * One-shot DDS inspection.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Inspect options.\n * @returns {object} DDS header metadata.\n */\n static inspect(input, options = {})\n {\n return inspectWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * One-shot DDS support probe.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input DDS bytes.\n * @param {object} [options] Probe options.\n * @returns {object} Support/probe report.\n */\n static probeSupport(input, options = {})\n {\n return probeSupportWithValues(input, normalizeValues(DEFAULT_VALUES, { inputType: \"dds\", ...options }, FORMAT_NAME), \"dds\");\n }\n\n /**\n * Convert format output into JSON-compatible debug data.\n *\n * @param {any} value Format output.\n * @returns {any} JSON-compatible value.\n */\n static toJSON(value)\n {\n return toJsonValue(value);\n }\n\n /**\n * Test whether bytes look like a DDS file.\n *\n * @param {Uint8Array|ArrayBuffer|DataView} input Candidate DDS bytes.\n * @returns {boolean} True when the DDS header is present and sized correctly.\n */\n static isDDS(input)\n {\n try\n {\n return isDDS(asUint8Array(input, \"Image input\"));\n }\n catch\n {\n return false;\n }\n }\n\n /**\n * Emit targets for this format (canonical frozen enum).\n */\n static Output = Object.freeze({\n IMAGE: OUTPUT_IMAGE,\n TEXTURE: OUTPUT_TEXTURE,\n RGBA: OUTPUT_RGBA,\n RAW: OUTPUT_RAW,\n JSON: OUTPUT_JSON\n });\n static OUTPUT_DDS_JSON = \"ddsJson\";\n static id = \"dds\";\n static mediaTypes = Object.freeze([ \"texture\", \"image\" ]);\n static outputs = CjsFormat.defineOutputs({\n texture: { probes: [ \"texture\", \"compressed\" ] },\n image: { decoded: true, probes: [ \"image\", \"rgba\" ] },\n rgba: { decoded: true },\n ddsJson: { role: \"debug\", probes: [ \"ddsJson\", \"raw\" ] },\n raw: { role: \"debug\", default: true, passthrough: true }\n });\n static extensions = Object.freeze([ \".dds\" ]);\n}\n\nexport default CjsDdsFormat;\n"],"names":["FORMAT_NAME","CjsDdsFormat","CjsFormat","DEFAULT_VALUES","constructor","options","SetValues","normalizeValues","inputType","GetValues","Read","input","readWithValues","ReadAsync","Inspect","inspectWithValues","ToJSON","value","toJsonValue","read","readAsync","inspect","probeSupport","probeSupportWithValues","toJSON","isDDS","asUint8Array","Output","Object","freeze","IMAGE","OUTPUT_IMAGE","TEXTURE","OUTPUT_TEXTURE","RGBA","OUTPUT_RGBA","RAW","OUTPUT_RAW","JSON","OUTPUT_JSON","OUTPUT_DDS_JSON","id","mediaTypes","outputs","defineOutputs","texture","probes","image","decoded","rgba","ddsJson","role","raw","default","passthrough","extensions"],"mappings":"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"}
@@ -1,6 +1,12 @@
1
+ import { readBitsAt, readBitAt } from '../../../format/CjsBitReader.js';
2
+
1
3
  // BC6H is a little-endian 128-bit block format. MODE_LAYOUTS describes the
2
4
  // fixed endpoint bit assignments from the Khronos Data Format Specification,
3
5
  // section 20.2. The decoder and its numeric pipeline are CarbonEngineJS code.
6
+ //
7
+ // The bit reads are the shared LSB-first primitives. A block codec addresses
8
+ // bits by absolute index inside the block rather than walking a stream, so it
9
+ // uses the stateless pair and allocates no cursor per block.
4
10
 
5
11
  const MODE_LAYOUTS = Object.freeze(["M0 M1 GY4 BY4 BZ4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 GY5 GZ4 GZ5 RW0 RW1 RW2 RW3 RW4 RW5 RW6 BZ0 BZ1 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 BY5 BZ2 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BZ3 BZ5 BZ4 RX0 RX1 RX2 RX3 RX4 RX5 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GX5 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BX5 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 RY5 RZ0 RZ1 RZ2 RZ3 RZ4 RZ5 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RW10 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GW10 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BW10 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RW10 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GW10 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BW10 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 BZ0 BZ2 RZ0 RZ1 RZ2 RZ3 GY4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RW10 BY4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GW10 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BW10 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 BZ1 BZ2 RZ0 RZ1 RZ2 RZ3 BZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BZ4 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 GZ4 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 BZ2 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BZ3 BZ4 RX0 RX1 RX2 RX3 RX4 RX5 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 RY5 RZ0 RZ1 RZ2 RZ3 RZ4 RZ5 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 BZ0 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GY5 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 GZ5 BZ4 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GX5 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BZ1 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 BZ1 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 BY5 GY4 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BZ5 BZ4 RX0 RX1 RX2 RX3 RX4 GZ4 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 BZ0 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BX5 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 BZ2 RZ0 RZ1 RZ2 RZ3 RZ4 BZ3 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 GZ4 BZ0 BZ1 BY4 GW0 GW1 GW2 GW3 GW4 GW5 GY5 BY5 BZ2 GY4 BW0 BW1 BW2 BW3 BW4 BW5 GZ5 BZ3 BZ5 BZ4 RX0 RX1 RX2 RX3 RX4 RX5 GY0 GY1 GY2 GY3 GX0 GX1 GX2 GX3 GX4 GX5 GZ0 GZ1 GZ2 GZ3 BX0 BX1 BX2 BX3 BX4 BX5 BY0 BY1 BY2 BY3 RY0 RY1 RY2 RY3 RY4 RY5 RZ0 RZ1 RZ2 RZ3 RZ4 RZ5 D0 D1 D2 D3 D4", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RX5 RX6 RX7 RX8 RX9 GX0 GX1 GX2 GX3 GX4 GX5 GX6 GX7 GX8 GX9 BX0 BX1 BX2 BX3 BX4 BX5 BX6 BX7 BX8 BX9 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RX5 RX6 RX7 RX8 RW10 GX0 GX1 GX2 GX3 GX4 GX5 GX6 GX7 GX8 GW10 BX0 BX1 BX2 BX3 BX4 BX5 BX6 BX7 BX8 BW10 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RX4 RX5 RX6 RX7 RW11 RW10 GX0 GX1 GX2 GX3 GX4 GX5 GX6 GX7 GW11 GW10 BX0 BX1 BX2 BX3 BX4 BX5 BX6 BX7 BW11 BW10 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0", "M0 M1 M2 M3 M4 RW0 RW1 RW2 RW3 RW4 RW5 RW6 RW7 RW8 RW9 GW0 GW1 GW2 GW3 GW4 GW5 GW6 GW7 GW8 GW9 BW0 BW1 BW2 BW3 BW4 BW5 BW6 BW7 BW8 BW9 RX0 RX1 RX2 RX3 RW15 RW14 RW13 RW12 RW11 RW10 GX0 GX1 GX2 GX3 GW15 GW14 GW13 GW12 GW11 GW10 BX0 BX1 BX2 BX3 BW15 BW14 BW13 BW12 BW11 BW10 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0 NA0"]);
6
12
  const MODES = Object.freeze([{
@@ -138,9 +144,9 @@ const WEIGHTS_4 = new Uint8Array([0, 4, 9, 13, 17, 21, 26, 30, 34, 38, 43, 47, 5
138
144
  const PARTITIONS_2 = new Uint16Array([0xcccc, 0x8888, 0xeeee, 0xecc8, 0xc880, 0xfeec, 0xfec8, 0xec80, 0xc800, 0xffec, 0xfe80, 0xe800, 0xffe8, 0xff00, 0xfff0, 0xf000, 0xf710, 0x008e, 0x7100, 0x08ce, 0x008c, 0x7310, 0x3100, 0x8cce, 0x088c, 0x3110, 0x6666, 0x366c, 0x17e8, 0x0ff0, 0x718e, 0x399c]);
139
145
  const ANCHOR_2 = new Uint8Array([15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 2, 8, 2, 2, 8, 8, 15, 2, 8, 2, 2, 8, 8, 2, 2]);
140
146
 
141
- /**
142
- * Decodes BC6H texture blocks into a normalized floating-point image for the DDS
143
- * format reader.
147
+ /**
148
+ * Decodes BC6H texture blocks into a normalized floating-point image for the DDS
149
+ * format reader.
144
150
  */
145
151
  function decodeBc6h(source, width, height, rowPitch = Math.ceil(width / 4) * 16, signed = false) {
146
152
  const rgba = new Float32Array(width * height * 4);
@@ -156,14 +162,14 @@ function decodeBc6h(source, width, height, rowPitch = Math.ceil(width / 4) * 16,
156
162
  return rgba;
157
163
  }
158
164
 
159
- /**
160
- * Decodes one BC6H texture block into destination pixels for the DDS format
161
- * reader.
165
+ /**
166
+ * Decodes one BC6H texture block into destination pixels for the DDS format
167
+ * reader.
162
168
  */
163
169
  function decodeBc6hBlock(block, signed = false) {
164
170
  if (block.byteLength < 16) throw new RangeError("BC6H block must contain 16 bytes");
165
- const lowMode = readBits(block, 0, 2);
166
- const modeCode = lowMode < 2 ? lowMode : readBits(block, 0, 5);
171
+ const lowMode = readBitsAt(block, 0, 2);
172
+ const modeCode = lowMode < 2 ? lowMode : readBitsAt(block, 0, 5);
167
173
  const modeIndex = MODE_BY_CODE[modeCode];
168
174
  if (modeIndex < 0) return opaqueBlackBlock();
169
175
  const mode = MODES[modeIndex];
@@ -174,7 +180,7 @@ function decodeBc6hBlock(block, signed = false) {
174
180
  }, () => [0, 0, 0]);
175
181
  let shape = 0;
176
182
  for (let sourceBit = 0; sourceBit < headerBits; sourceBit++) {
177
- if (!readBit(block, sourceBit)) continue;
183
+ if (!readBitAt(block, sourceBit)) continue;
178
184
  const target = descriptor[sourceBit];
179
185
  if (!target) continue;
180
186
  if (target.shape) {
@@ -192,7 +198,7 @@ function decodeBc6hBlock(block, signed = false) {
192
198
  for (let pixel = 0; pixel < 16; pixel++) {
193
199
  const isAnchor = pixel === 0 || pixel === anchor;
194
200
  const indexBits = mode.indexBits - (isAnchor ? 1 : 0);
195
- const colorIndex = readBits(block, sourceBit, indexBits);
201
+ const colorIndex = readBitsAt(block, sourceBit, indexBits);
196
202
  sourceBit += indexBits;
197
203
  const subset = mode.subsets === 2 ? partition >>> pixel & 1 : 0;
198
204
  const endpoint0 = endpoints[subset * 2];
@@ -256,14 +262,6 @@ function finishHalf(component, signed) {
256
262
  function signExtend(value, bits) {
257
263
  return value << 32 - bits >> 32 - bits;
258
264
  }
259
- function readBit(source, bit) {
260
- return source[bit >>> 3] >>> (bit & 7) & 1;
261
- }
262
- function readBits(source, start, count) {
263
- let value = 0;
264
- for (let bit = 0; bit < count; bit++) value |= readBit(source, start + bit) << bit;
265
- return value;
266
- }
267
265
  function halfToFloat(value) {
268
266
  const sign = value & 0x8000 ? -1 : 1;
269
267
  const exponent = value >>> 10 & 0x1f;