@carbonenginejs/runtime-resource 0.9.2 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (544) hide show
  1. package/NOTICE +3 -2
  2. package/README.md +47 -6
  3. package/dist/CjsMotherLode.js +88 -88
  4. package/dist/CjsMotherLode.js.map +1 -1
  5. package/dist/CjsResMan.js +717 -228
  6. package/dist/CjsResMan.js.map +1 -1
  7. package/dist/CjsResManFetchProvider.js +94 -0
  8. package/dist/CjsResManFetchProvider.js.map +1 -0
  9. package/dist/{CjsResManQueue.js → CjsResManWorkQueue.js} +112 -25
  10. package/dist/CjsResManWorkQueue.js.map +1 -0
  11. package/dist/format/CjsBlueReader.js +89 -0
  12. package/dist/format/CjsBlueReader.js.map +1 -1
  13. package/dist/format/CjsFormat.js +42 -16
  14. package/dist/format/CjsFormat.js.map +1 -1
  15. package/dist/format/CjsReader.js +4 -0
  16. package/dist/format/CjsReader.js.map +1 -1
  17. package/dist/format/CjsResourceProbe.js +2 -0
  18. package/dist/format/CjsResourceProbe.js.map +1 -1
  19. package/dist/format/effect/effectPermutationGraph.js +257 -0
  20. package/dist/format/effect/effectPermutationGraph.js.map +1 -0
  21. package/dist/format/effect/effectReflectionPackage.js +636 -0
  22. package/dist/format/effect/effectReflectionPackage.js.map +1 -0
  23. package/dist/format/effect/sha256.js +114 -0
  24. package/dist/format/effect/sha256.js.map +1 -0
  25. package/dist/format/payloadContract.js +20 -0
  26. package/dist/format/payloadContract.js.map +1 -1
  27. package/dist/formats/black/CjsBlackFormat.js +15 -1
  28. package/dist/formats/black/CjsBlackFormat.js.map +1 -1
  29. package/dist/formats/black/core/CjsBlackBinaryReader.js +103 -0
  30. package/dist/formats/black/core/CjsBlackBinaryReader.js.map +1 -1
  31. package/dist/formats/black/core/CjsBlackPropertyReaders.js +61 -0
  32. package/dist/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  33. package/dist/formats/black/core/CjsBlackReader.js +125 -0
  34. package/dist/formats/black/core/CjsBlackReader.js.map +1 -1
  35. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +103 -0
  36. package/dist/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  37. package/dist/formats/black/core/helpers.js +17 -0
  38. package/dist/formats/black/core/helpers.js.map +1 -1
  39. package/dist/formats/bnk/CjsBnkFormat.js +8 -0
  40. package/dist/formats/bnk/CjsBnkFormat.js.map +1 -1
  41. package/dist/formats/bnk/core/helpers.js +20 -0
  42. package/dist/formats/bnk/core/helpers.js.map +1 -1
  43. package/dist/formats/bnk/core/musicNodes.js +40 -3
  44. package/dist/formats/bnk/core/musicNodes.js.map +1 -1
  45. package/dist/formats/bnk/core/soundbanksInfo.js +2 -0
  46. package/dist/formats/bnk/core/soundbanksInfo.js.map +1 -1
  47. package/dist/formats/cmf/core/binary.js +71 -0
  48. package/dist/formats/cmf/core/binary.js.map +1 -1
  49. package/dist/formats/cmf/core/buffers.js +4 -0
  50. package/dist/formats/cmf/core/buffers.js.map +1 -1
  51. package/dist/formats/cmf/core/helpers.js +31 -0
  52. package/dist/formats/cmf/core/helpers.js.map +1 -1
  53. package/dist/formats/cmf/core/schema.js +10 -0
  54. package/dist/formats/cmf/core/schema.js.map +1 -1
  55. package/dist/formats/cmf/core/shared.js +9 -0
  56. package/dist/formats/cmf/core/shared.js.map +1 -1
  57. package/dist/formats/cmf/core/writer.js +54 -0
  58. package/dist/formats/cmf/core/writer.js.map +1 -1
  59. package/dist/formats/dds/core/bc6h.js +10 -0
  60. package/dist/formats/dds/core/bc6h.js.map +1 -1
  61. package/dist/formats/dds/core/bc7.js +16 -0
  62. package/dist/formats/dds/core/bc7.js.map +1 -1
  63. package/dist/formats/dds/core/helpers.js +47 -0
  64. package/dist/formats/dds/core/helpers.js.map +1 -1
  65. package/dist/formats/dxbc/CjsDxbcFormat.js +142 -0
  66. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -0
  67. package/dist/formats/dxbc/core/DxbcReader.js +266 -0
  68. package/dist/formats/dxbc/core/DxbcReader.js.map +1 -0
  69. package/dist/formats/dxbc/core/container.js +169 -0
  70. package/dist/formats/dxbc/core/container.js.map +1 -0
  71. package/dist/formats/dxbc/core/decoder.js +789 -0
  72. package/dist/formats/dxbc/core/decoder.js.map +1 -0
  73. package/dist/formats/dxbc/core/errors.js +19 -0
  74. package/dist/formats/dxbc/core/errors.js.map +1 -0
  75. package/dist/formats/dxbc/core/helpers.js +220 -0
  76. package/dist/formats/dxbc/core/helpers.js.map +1 -0
  77. package/dist/formats/dxbc/core/opcodes.js +45 -0
  78. package/dist/formats/dxbc/core/opcodes.js.map +1 -0
  79. package/dist/formats/dxbc/core/program.js +91 -0
  80. package/dist/formats/dxbc/core/program.js.map +1 -0
  81. package/dist/formats/dxbc/core/signature.js +172 -0
  82. package/dist/formats/dxbc/core/signature.js.map +1 -0
  83. package/dist/formats/dxbc/index.js +2 -0
  84. package/dist/formats/dxbc/index.js.map +1 -0
  85. package/dist/formats/fbx/core/helpers.js +21 -0
  86. package/dist/formats/fbx/core/helpers.js.map +1 -1
  87. package/dist/formats/flac/CjsFlacFormat.js +49 -0
  88. package/dist/formats/flac/CjsFlacFormat.js.map +1 -1
  89. package/dist/formats/flac/core/helpers.js +20 -0
  90. package/dist/formats/flac/core/helpers.js.map +1 -1
  91. package/dist/formats/gif/CjsGifFormat.js +49 -0
  92. package/dist/formats/gif/CjsGifFormat.js.map +1 -1
  93. package/dist/formats/gif/core/helpers.js +20 -0
  94. package/dist/formats/gif/core/helpers.js.map +1 -1
  95. package/dist/formats/gltf/core/helpers.js +15 -0
  96. package/dist/formats/gltf/core/helpers.js.map +1 -1
  97. package/dist/formats/gltf/core/parser.js +13 -0
  98. package/dist/formats/gltf/core/parser.js.map +1 -1
  99. package/dist/formats/gltf/core/targets.js +10 -0
  100. package/dist/formats/gltf/core/targets.js.map +1 -1
  101. package/dist/formats/gr2/core/bitknit2.js +2 -0
  102. package/dist/formats/gr2/core/bitknit2.js.map +1 -1
  103. package/dist/formats/gr2/core/helpers.js +20 -0
  104. package/dist/formats/gr2/core/helpers.js.map +1 -1
  105. package/dist/formats/gr2/core/targets.js +10 -0
  106. package/dist/formats/gr2/core/targets.js.map +1 -1
  107. package/dist/formats/hlsl/CjsHlslFormat.js +254 -0
  108. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -0
  109. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -0
  110. package/dist/formats/hlsl/core/HlslBinaryUtils.js.map +1 -0
  111. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -0
  112. package/dist/formats/hlsl/core/HlslEffectReadError.js.map +1 -0
  113. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -0
  114. package/dist/formats/hlsl/core/HlslEffectStateManager.js.map +1 -0
  115. package/dist/formats/hlsl/core/HlslReader.js +266 -0
  116. package/dist/formats/hlsl/core/HlslReader.js.map +1 -0
  117. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -0
  118. package/dist/formats/hlsl/core/HlslRenderStateSetup.js.map +1 -0
  119. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -0
  120. package/dist/formats/hlsl/core/HlslResourceSetDescription.js.map +1 -0
  121. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -0
  122. package/dist/formats/hlsl/core/HlslShaderBytecode.js.map +1 -0
  123. package/dist/formats/hlsl/core/analysis.js +51 -0
  124. package/dist/formats/hlsl/core/analysis.js.map +1 -0
  125. package/dist/formats/hlsl/core/helpers.js +270 -0
  126. package/dist/formats/hlsl/core/helpers.js.map +1 -0
  127. package/dist/formats/hlsl/core/json.js +284 -0
  128. package/dist/formats/hlsl/core/json.js.map +1 -0
  129. package/dist/formats/hlsl/core/metadata.js +327 -0
  130. package/dist/formats/hlsl/core/metadata.js.map +1 -0
  131. package/dist/formats/hlsl/core/portableReflection.js +848 -0
  132. package/dist/formats/hlsl/core/portableReflection.js.map +1 -0
  133. package/dist/formats/hlsl/core/render-states.js +280 -0
  134. package/dist/formats/hlsl/core/render-states.js.map +1 -0
  135. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -0
  136. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js.map +1 -0
  137. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +294 -0
  138. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js.map +1 -0
  139. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -0
  140. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js.map +1 -0
  141. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +416 -0
  142. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -0
  143. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -0
  144. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js.map +1 -0
  145. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +742 -0
  146. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js.map +1 -0
  147. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -0
  148. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js.map +1 -0
  149. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -0
  150. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js.map +1 -0
  151. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -0
  152. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js.map +1 -0
  153. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -0
  154. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -0
  155. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -0
  156. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js.map +1 -0
  157. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -0
  158. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js.map +1 -0
  159. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -0
  160. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js.map +1 -0
  161. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -0
  162. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js.map +1 -0
  163. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -0
  164. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js.map +1 -0
  165. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -0
  166. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js.map +1 -0
  167. package/dist/formats/hlsl/index.js +2 -0
  168. package/dist/formats/hlsl/index.js.map +1 -0
  169. package/dist/formats/hlsl/portable.js +2 -0
  170. package/dist/formats/hlsl/portable.js.map +1 -0
  171. package/dist/formats/index.js +4 -0
  172. package/dist/formats/index.js.map +1 -1
  173. package/dist/formats/jpeg/core/helpers.js +52 -0
  174. package/dist/formats/jpeg/core/helpers.js.map +1 -1
  175. package/dist/formats/jpeg/core/jpeg.js +93 -0
  176. package/dist/formats/jpeg/core/jpeg.js.map +1 -1
  177. package/dist/formats/mp3/core/helpers.js +37 -0
  178. package/dist/formats/mp3/core/helpers.js.map +1 -1
  179. package/dist/formats/mp4/core/helpers.js +35 -0
  180. package/dist/formats/mp4/core/helpers.js.map +1 -1
  181. package/dist/formats/ogg/CjsOggFormat.js +49 -0
  182. package/dist/formats/ogg/CjsOggFormat.js.map +1 -1
  183. package/dist/formats/ogg/core/helpers.js +23 -0
  184. package/dist/formats/ogg/core/helpers.js.map +1 -1
  185. package/dist/formats/ogg/core/vorbis.js +13 -0
  186. package/dist/formats/ogg/core/vorbis.js.map +1 -1
  187. package/dist/formats/png/core/helpers.js +52 -0
  188. package/dist/formats/png/core/helpers.js.map +1 -1
  189. package/dist/formats/red/CjsRedFormat.js +2 -0
  190. package/dist/formats/red/CjsRedFormat.js.map +1 -1
  191. package/dist/formats/red/core/CjsRedReader.js +52 -0
  192. package/dist/formats/red/core/CjsRedReader.js.map +1 -1
  193. package/dist/formats/red/core/helpers.js +19 -0
  194. package/dist/formats/red/core/helpers.js.map +1 -1
  195. package/dist/formats/stl/core/stl.js +8 -0
  196. package/dist/formats/stl/core/stl.js.map +1 -1
  197. package/dist/formats/stl/core/targets.js +10 -0
  198. package/dist/formats/stl/core/targets.js.map +1 -1
  199. package/dist/formats/tga/core/helpers.js +47 -0
  200. package/dist/formats/tga/core/helpers.js.map +1 -1
  201. package/dist/formats/wav/core/helpers.js +37 -0
  202. package/dist/formats/wav/core/helpers.js.map +1 -1
  203. package/dist/formats/webgl/CjsWebglFormat.js +221 -0
  204. package/dist/formats/webgl/CjsWebglFormat.js.map +1 -0
  205. package/dist/formats/webgl/core/cewg/CewgPackage.js +339 -0
  206. package/dist/formats/webgl/core/cewg/CewgPackage.js.map +1 -0
  207. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js +104 -0
  208. package/dist/formats/webgl/core/cewg/CewgPackageBuilder.js.map +1 -0
  209. package/dist/formats/webgl/core/cewg/binary.js +101 -0
  210. package/dist/formats/webgl/core/cewg/binary.js.map +1 -0
  211. package/dist/formats/webgl/core/cewgCompleteness.js +81 -0
  212. package/dist/formats/webgl/core/cewgCompleteness.js.map +1 -0
  213. package/dist/formats/webgl/core/effectPackage.js +789 -0
  214. package/dist/formats/webgl/core/effectPackage.js.map +1 -0
  215. package/dist/formats/webgl/core/effectPackageValidation.js +331 -0
  216. package/dist/formats/webgl/core/effectPackageValidation.js.map +1 -0
  217. package/dist/formats/webgl/core/errors.js +27 -0
  218. package/dist/formats/webgl/core/errors.js.map +1 -0
  219. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2678 -0
  220. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -0
  221. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -0
  222. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +1 -0
  223. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +428 -0
  224. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -0
  225. package/dist/formats/webgl/core/helpers.js +306 -0
  226. package/dist/formats/webgl/core/helpers.js.map +1 -0
  227. package/dist/formats/webgl/index.js +2 -0
  228. package/dist/formats/webgl/index.js.map +1 -0
  229. package/dist/formats/webgpu/CjsWebgpuFormat.js +376 -0
  230. package/dist/formats/webgpu/CjsWebgpuFormat.js.map +1 -0
  231. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js +415 -0
  232. package/dist/formats/webgpu/core/cewgpu/CewgpuPackage.js.map +1 -0
  233. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js +100 -0
  234. package/dist/formats/webgpu/core/cewgpu/CewgpuPackageBuilder.js.map +1 -0
  235. package/dist/formats/webgpu/core/cewgpu/binary.js +93 -0
  236. package/dist/formats/webgpu/core/cewgpu/binary.js.map +1 -0
  237. package/dist/formats/webgpu/core/cewgpu/tags.js +17 -0
  238. package/dist/formats/webgpu/core/cewgpu/tags.js.map +1 -0
  239. package/dist/formats/webgpu/core/effectAnalysis.js +82 -0
  240. package/dist/formats/webgpu/core/effectAnalysis.js.map +1 -0
  241. package/dist/formats/webgpu/core/effectBackendBodySet.js +305 -0
  242. package/dist/formats/webgpu/core/effectBackendBodySet.js.map +1 -0
  243. package/dist/formats/webgpu/core/effectPackageValidation.js +1078 -0
  244. package/dist/formats/webgpu/core/effectPackageValidation.js.map +1 -0
  245. package/dist/formats/webgpu/core/errors.js +20 -0
  246. package/dist/formats/webgpu/core/errors.js.map +1 -0
  247. package/dist/formats/webgpu/core/helpers.js +448 -0
  248. package/dist/formats/webgpu/core/helpers.js.map +1 -0
  249. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +223 -0
  250. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js.map +1 -0
  251. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -0
  252. package/dist/formats/webgpu/core/ir/buildControlFlow.js.map +1 -0
  253. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -0
  254. package/dist/formats/webgpu/core/ir/indexableTemps.js.map +1 -0
  255. package/dist/formats/webgpu/core/ir/inferValueTypes.js +454 -0
  256. package/dist/formats/webgpu/core/ir/inferValueTypes.js.map +1 -0
  257. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -0
  258. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -0
  259. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -0
  260. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js.map +1 -0
  261. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -0
  262. package/dist/formats/webgpu/core/ir/sourceLanes.js.map +1 -0
  263. package/dist/formats/webgpu/core/packageEffect.js +300 -0
  264. package/dist/formats/webgpu/core/packageEffect.js.map +1 -0
  265. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -0
  266. package/dist/formats/webgpu/core/packageEffectSelection.js.map +1 -0
  267. package/dist/formats/webgpu/core/packageMetadata.js +8 -0
  268. package/dist/formats/webgpu/core/packageMetadata.js.map +1 -0
  269. package/dist/formats/webgpu/core/schema.js +4 -0
  270. package/dist/formats/webgpu/core/schema.js.map +1 -0
  271. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +275 -0
  272. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js.map +1 -0
  273. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +182 -0
  274. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js.map +1 -0
  275. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +324 -0
  276. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -0
  277. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -0
  278. package/dist/formats/webgpu/core/wgsl/emitWgsl.js.map +1 -0
  279. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -0
  280. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js.map +1 -0
  281. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -0
  282. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -0
  283. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +754 -0
  284. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js.map +1 -0
  285. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -0
  286. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -0
  287. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -0
  288. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js.map +1 -0
  289. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -0
  290. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js.map +1 -0
  291. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -0
  292. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js.map +1 -0
  293. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -0
  294. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js.map +1 -0
  295. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -0
  296. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js.map +1 -0
  297. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -0
  298. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js.map +1 -0
  299. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -0
  300. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js.map +1 -0
  301. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -0
  302. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js.map +1 -0
  303. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -0
  304. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js.map +1 -0
  305. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -0
  306. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js.map +1 -0
  307. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -0
  308. package/dist/formats/webgpu/core/wgsl/precisionControls.js.map +1 -0
  309. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +758 -0
  310. package/dist/formats/webgpu/core/wgsl/selectionPlans.js.map +1 -0
  311. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -0
  312. package/dist/formats/webgpu/core/wgsl/uniformity.js.map +1 -0
  313. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -0
  314. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js.map +1 -0
  315. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -0
  316. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js.map +1 -0
  317. package/dist/formats/webgpu/index.js +2 -0
  318. package/dist/formats/webgpu/index.js.map +1 -0
  319. package/dist/formats/webm/core/helpers.js +35 -0
  320. package/dist/formats/webm/core/helpers.js.map +1 -1
  321. package/dist/formats/webp/CjsWebpFormat.js +49 -0
  322. package/dist/formats/webp/CjsWebpFormat.js.map +1 -1
  323. package/dist/formats/webp/core/helpers.js +23 -0
  324. package/dist/formats/webp/core/helpers.js.map +1 -1
  325. package/dist/formats/wem/CjsWemFormat.js +8 -0
  326. package/dist/formats/wem/CjsWemFormat.js.map +1 -1
  327. package/dist/formats/wem/core/bitStream.js +2 -0
  328. package/dist/formats/wem/core/bitStream.js.map +1 -1
  329. package/dist/formats/wem/core/helpers.js +20 -0
  330. package/dist/formats/wem/core/helpers.js.map +1 -1
  331. package/dist/formats/yaml/CjsYamlFormat.js +45 -0
  332. package/dist/formats/yaml/CjsYamlFormat.js.map +1 -1
  333. package/dist/formats/yaml/core/CjsYamlReader.js +91 -0
  334. package/dist/formats/yaml/core/CjsYamlReader.js.map +1 -1
  335. package/dist/formats/yaml/core/helpers.js +10 -0
  336. package/dist/formats/yaml/core/helpers.js.map +1 -1
  337. package/dist/index.js +56 -43
  338. package/dist/index.js.map +1 -1
  339. package/dist/{CjsResource.js → resource/CjsResource.js} +232 -17
  340. package/dist/resource/CjsResource.js.map +1 -0
  341. package/dist/{resources → resource}/Tr2LightProfileRes.js +4 -3
  342. package/dist/resource/Tr2LightProfileRes.js.map +1 -0
  343. package/dist/{resources → resource/audio}/AudioGeometryResData.js +1 -1
  344. package/dist/resource/audio/AudioGeometryResData.js.map +1 -0
  345. package/dist/resource/audio/CjsAudioBufferRes.js +86 -0
  346. package/dist/resource/audio/CjsAudioBufferRes.js.map +1 -0
  347. package/dist/resource/audio/CjsAudioRes.js +213 -0
  348. package/dist/resource/audio/CjsAudioRes.js.map +1 -0
  349. package/dist/resource/audio/index.js +4 -0
  350. package/dist/resource/audio/index.js.map +1 -0
  351. package/dist/{resources → resource/geometry}/MeshDecalData.js +1 -1
  352. package/dist/resource/geometry/MeshDecalData.js.map +1 -0
  353. package/dist/{resources → resource/geometry}/MeshDecalLodData.js +1 -1
  354. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -0
  355. package/dist/resource/geometry/TriGeometryRes.js +656 -0
  356. package/dist/resource/geometry/TriGeometryRes.js.map +1 -0
  357. package/dist/{resources → resource/geometry}/TriGeometryResAreaData.js +1 -1
  358. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -0
  359. package/dist/{resources → resource/geometry}/TriGeometryResJointData.js +1 -1
  360. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -0
  361. package/dist/{resources → resource/geometry}/TriGeometryResLodData.js +1 -1
  362. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -0
  363. package/dist/{resources → resource/geometry}/TriGeometryResMeshData.js +1 -1
  364. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -0
  365. package/dist/{resources → resource/geometry}/TriGeometryResSkeletonData.js +1 -1
  366. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -0
  367. package/dist/{resources → resource/geometry}/TriJointBinding.js +1 -1
  368. package/dist/resource/geometry/TriJointBinding.js.map +1 -0
  369. package/dist/{resources → resource/geometry}/TriMorphTargetGeometryConstants.js +1 -1
  370. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -0
  371. package/dist/{resources → resource/geometry}/TriRtGeometryConstants.js +1 -1
  372. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -0
  373. package/dist/{resources → resource/geometry/granny}/GStateBindingCallbackData.js +1 -1
  374. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -0
  375. package/dist/{resources → resource/geometry/granny}/Tr2GrannyIntersectionResult.js +1 -1
  376. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -0
  377. package/dist/{resources → resource/geometry/granny}/Tr2GrannyStateRes.js +6 -5
  378. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js.map +1 -0
  379. package/dist/{resources → resource/geometry/granny}/TriGrannyRes.js +6 -5
  380. package/dist/resource/geometry/granny/TriGrannyRes.js.map +1 -0
  381. package/dist/{resources → resource/geometry/granny}/enums.js +1 -9
  382. package/dist/resource/geometry/granny/enums.js.map +1 -0
  383. package/dist/resource/geometry/granny/index.js +6 -0
  384. package/dist/resource/geometry/granny/index.js.map +1 -0
  385. package/dist/resource/geometry/index.js +17 -0
  386. package/dist/resource/geometry/index.js.map +1 -0
  387. package/dist/resource/index.js +52 -0
  388. package/dist/resource/index.js.map +1 -0
  389. package/dist/resource/resourceBoundary.js +64 -0
  390. package/dist/resource/resourceBoundary.js.map +1 -0
  391. package/dist/resource/shader/Tr2EffectRes.js +429 -0
  392. package/dist/resource/shader/Tr2EffectRes.js.map +1 -0
  393. package/dist/resource/shader/Tr2MaterialArea.js +34 -0
  394. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -0
  395. package/dist/resource/shader/Tr2MaterialMesh.js +30 -0
  396. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -0
  397. package/dist/resource/shader/Tr2MaterialRes.js +35 -0
  398. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -0
  399. package/dist/resource/shader/Tr2Shader.js +256 -0
  400. package/dist/resource/shader/Tr2Shader.js.map +1 -0
  401. package/dist/resource/shader/Tr2ShaderPermutation.js +47 -0
  402. package/dist/resource/shader/Tr2ShaderPermutation.js.map +1 -0
  403. package/dist/resource/shader/index.js +17 -0
  404. package/dist/resource/shader/index.js.map +1 -0
  405. package/dist/resource/shader/portable.js +33 -0
  406. package/dist/resource/shader/portable.js.map +1 -0
  407. package/dist/resource/shader/reflection/Tr2EffectConstant.js +135 -0
  408. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -0
  409. package/dist/resource/shader/reflection/Tr2EffectDefine.js +28 -0
  410. package/dist/resource/shader/reflection/Tr2EffectDefine.js.map +1 -0
  411. package/dist/resource/shader/reflection/Tr2EffectDescription.js +107 -0
  412. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -0
  413. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +145 -0
  414. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -0
  415. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +103 -0
  416. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -0
  417. package/dist/resource/shader/reflection/Tr2EffectResource.js +84 -0
  418. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -0
  419. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +239 -0
  420. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -0
  421. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +66 -0
  422. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -0
  423. package/dist/resource/shader/reflection/Tr2Pass.js +109 -0
  424. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -0
  425. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +75 -0
  426. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -0
  427. package/dist/{texture → resource/texture}/CjsTextureArrayRes.js +83 -6
  428. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -0
  429. package/dist/{texture/CjsTextureParameterProxy.js → resource/texture/CjsTextureArrayResParameterProxy.js} +56 -10
  430. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js.map +1 -0
  431. package/dist/{resources → resource/texture}/Tr2ImageRes.js +6 -4
  432. package/dist/resource/texture/Tr2ImageRes.js.map +1 -0
  433. package/dist/{resources → resource/texture}/Tr2TextureLodManager.js +3 -1
  434. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -0
  435. package/dist/{resources → resource/texture}/Tr2TextureLodUpdateRequest.js +1 -1
  436. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -0
  437. package/dist/{resources → resource/texture}/Tr2TexturePackChannel.js +1 -1
  438. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -0
  439. package/dist/{resources → resource/texture}/Tr2TexturePipeline.js +6 -4
  440. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -0
  441. package/dist/{resources → resource/texture}/Tr2TexturePipelineParams.js +1 -1
  442. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -0
  443. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepCompress.js +1 -1
  444. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -0
  445. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepGenerateMips.js +1 -1
  446. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -0
  447. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLimitSize.js +1 -1
  448. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -0
  449. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepLoad.js +1 -1
  450. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -0
  451. package/dist/{resources → resource/texture}/Tr2TexturePipelineStepPack.js +1 -1
  452. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -0
  453. package/dist/{resources → resource/texture}/TriTextureRes.js +42 -26
  454. package/dist/resource/texture/TriTextureRes.js.map +1 -0
  455. package/dist/resource/texture/index.js +15 -0
  456. package/dist/resource/texture/index.js.map +1 -0
  457. package/dist/{resources → resource/texture}/texturePipelineBehavior.js +59 -59
  458. package/dist/resource/texture/texturePipelineBehavior.js.map +1 -0
  459. package/dist/worker/CjsResManMainThreadLoader.js +87 -0
  460. package/dist/worker/CjsResManMainThreadLoader.js.map +1 -0
  461. package/dist/worker/CjsResManWorker.js +217 -0
  462. package/dist/worker/CjsResManWorker.js.map +1 -0
  463. package/dist/worker/CjsResManWorkerLoader.js +434 -0
  464. package/dist/worker/CjsResManWorkerLoader.js.map +1 -0
  465. package/dist/worker/protocol.js +12 -0
  466. package/dist/worker/protocol.js.map +1 -0
  467. package/docs/README.md +16 -3
  468. package/docs/architecture.md +39 -16
  469. package/docs/concepts/resource-lifecycle.md +2 -1
  470. package/docs/formats/README.md +8 -0
  471. package/docs/formats/provenance.md +11 -3
  472. package/docs/reference/classes/README.md +6 -4
  473. package/docs/reference/classes/audio.md +30 -0
  474. package/docs/reference/classes/core.md +31 -11
  475. package/docs/reference/classes/formats.md +440 -0
  476. package/docs/reference/classes/resources.md +151 -41
  477. package/docs/reference/classes/texture.md +7 -7
  478. package/docs/reference/motherlode-cache.md +17 -0
  479. package/docs/reference/queues.md +9 -1
  480. package/docs/reference/workers.md +135 -0
  481. package/docs/roadmap.md +27 -1
  482. package/format-notices/dxbc/LICENSE +21 -0
  483. package/format-notices/dxbc/NOTICE +20 -0
  484. package/format-notices/hlsl/LICENSE +21 -0
  485. package/format-notices/hlsl/NOTICE +25 -0
  486. package/format-notices/webgl/LICENSE +21 -0
  487. package/format-notices/webgl/NOTICE +35 -0
  488. package/format-notices/webgpu/LICENSE +21 -0
  489. package/format-notices/webgpu/NOTICE +31 -0
  490. package/package.json +13 -1
  491. package/dist/CjsResManQueue.js.map +0 -1
  492. package/dist/CjsResource.js.map +0 -1
  493. package/dist/CjsResourceSource.js +0 -68
  494. package/dist/CjsResourceSource.js.map +0 -1
  495. package/dist/resourcePath.js +0 -18
  496. package/dist/resourcePath.js.map +0 -1
  497. package/dist/resourceStates.js +0 -9
  498. package/dist/resourceStates.js.map +0 -1
  499. package/dist/resources/AudioGeometryResData.js.map +0 -1
  500. package/dist/resources/GStateBindingCallbackData.js.map +0 -1
  501. package/dist/resources/MeshDecalData.js.map +0 -1
  502. package/dist/resources/MeshDecalLodData.js.map +0 -1
  503. package/dist/resources/Tr2EffectRes.js +0 -71
  504. package/dist/resources/Tr2EffectRes.js.map +0 -1
  505. package/dist/resources/Tr2GrannyIntersectionResult.js.map +0 -1
  506. package/dist/resources/Tr2GrannyStateRes.js.map +0 -1
  507. package/dist/resources/Tr2ImageRes.js.map +0 -1
  508. package/dist/resources/Tr2LightProfileRes.js.map +0 -1
  509. package/dist/resources/Tr2MaterialArea.js +0 -34
  510. package/dist/resources/Tr2MaterialArea.js.map +0 -1
  511. package/dist/resources/Tr2MaterialMesh.js +0 -31
  512. package/dist/resources/Tr2MaterialMesh.js.map +0 -1
  513. package/dist/resources/Tr2MaterialRes.js +0 -34
  514. package/dist/resources/Tr2MaterialRes.js.map +0 -1
  515. package/dist/resources/Tr2ShaderPermutation.js +0 -43
  516. package/dist/resources/Tr2ShaderPermutation.js.map +0 -1
  517. package/dist/resources/Tr2TextureLodManager.js.map +0 -1
  518. package/dist/resources/Tr2TextureLodUpdateRequest.js.map +0 -1
  519. package/dist/resources/Tr2TexturePackChannel.js.map +0 -1
  520. package/dist/resources/Tr2TexturePipeline.js.map +0 -1
  521. package/dist/resources/Tr2TexturePipelineParams.js.map +0 -1
  522. package/dist/resources/Tr2TexturePipelineStepCompress.js.map +0 -1
  523. package/dist/resources/Tr2TexturePipelineStepGenerateMips.js.map +0 -1
  524. package/dist/resources/Tr2TexturePipelineStepLimitSize.js.map +0 -1
  525. package/dist/resources/Tr2TexturePipelineStepLoad.js.map +0 -1
  526. package/dist/resources/Tr2TexturePipelineStepPack.js.map +0 -1
  527. package/dist/resources/TriGeometryRes.js +0 -239
  528. package/dist/resources/TriGeometryRes.js.map +0 -1
  529. package/dist/resources/TriGeometryResAreaData.js.map +0 -1
  530. package/dist/resources/TriGeometryResJointData.js.map +0 -1
  531. package/dist/resources/TriGeometryResLodData.js.map +0 -1
  532. package/dist/resources/TriGeometryResMeshData.js.map +0 -1
  533. package/dist/resources/TriGeometryResSkeletonData.js.map +0 -1
  534. package/dist/resources/TriGrannyRes.js.map +0 -1
  535. package/dist/resources/TriJointBinding.js.map +0 -1
  536. package/dist/resources/TriMorphTargetGeometryConstants.js.map +0 -1
  537. package/dist/resources/TriRtGeometryConstants.js.map +0 -1
  538. package/dist/resources/TriTextureRes.js.map +0 -1
  539. package/dist/resources/enums.js.map +0 -1
  540. package/dist/resources/resourceBoundary.js +0 -47
  541. package/dist/resources/resourceBoundary.js.map +0 -1
  542. package/dist/resources/texturePipelineBehavior.js.map +0 -1
  543. package/dist/texture/CjsTextureArrayRes.js.map +0 -1
  544. package/dist/texture/CjsTextureParameterProxy.js.map +0 -1
@@ -0,0 +1,172 @@
1
+ import { DxbcReader } from './DxbcReader.js';
2
+ import { DxbcReadError } from './errors.js';
3
+
4
+ const SIGNATURE_TABLE_HEADER_SIZE = 8;
5
+ const semanticNameDecoder = new TextDecoder("latin1");
6
+
7
+ /**
8
+ * Per-fourCC signature element layouts.
9
+ *
10
+ * `ISGN`/`OSGN`/`PCSG` use the 24-byte Shader Model 4 layout. `OSG5` prefixes
11
+ * a stream index. `ISG1`/`OSG1`/`PSG1` prefix a stream index and append a
12
+ * minimum-precision field.
13
+ */
14
+ const SIGNATURE_ELEMENT_LAYOUTS = Object.freeze({
15
+ ISGN: {
16
+ stride: 24,
17
+ hasStream: false,
18
+ hasMinPrecision: false
19
+ },
20
+ OSGN: {
21
+ stride: 24,
22
+ hasStream: false,
23
+ hasMinPrecision: false
24
+ },
25
+ PCSG: {
26
+ stride: 24,
27
+ hasStream: false,
28
+ hasMinPrecision: false
29
+ },
30
+ OSG5: {
31
+ stride: 28,
32
+ hasStream: true,
33
+ hasMinPrecision: false
34
+ },
35
+ ISG1: {
36
+ stride: 32,
37
+ hasStream: true,
38
+ hasMinPrecision: true
39
+ },
40
+ OSG1: {
41
+ stride: 32,
42
+ hasStream: true,
43
+ hasMinPrecision: true
44
+ },
45
+ PSG1: {
46
+ stride: 32,
47
+ hasStream: true,
48
+ hasMinPrecision: true
49
+ }
50
+ });
51
+
52
+ /**
53
+ * Register component type names indexed by DXBC signature component-type ids.
54
+ */
55
+ const DxbcComponentTypeNames = Object.freeze(["unknown", "uint32", "int32", "float32"]);
56
+
57
+ /**
58
+ * DXBC input/output signature chunk reader for `ISGN`-family chunks.
59
+ */
60
+ class DxbcSignatureChunk {
61
+ /**
62
+ * Creates an empty signature chunk; call a read entry point to populate its parameter records.
63
+ */
64
+ constructor() {
65
+ this.fourCC = "";
66
+ this.elements = [];
67
+ this.source = "memory";
68
+ }
69
+
70
+ /**
71
+ * Reads a signature chunk payload into semantic/register element records.
72
+ *
73
+ * @param {{fourCC:string,bytes:Uint8Array}} chunk Chunk record from `DxbcContainer`.
74
+ * @param {object} [options] Read options.
75
+ * @param {string} [options.source] Source name used in error details.
76
+ * @returns {DxbcSignatureChunk} This signature.
77
+ */
78
+ Read(chunk, options = {}) {
79
+ this.fourCC = chunk.fourCC;
80
+ this.source = options.source || "memory";
81
+ const layout = SIGNATURE_ELEMENT_LAYOUTS[this.fourCC];
82
+ if (!layout) {
83
+ throw new DxbcReadError("Unsupported DXBC signature chunk", {
84
+ source: this.source,
85
+ fourCC: this.fourCC
86
+ });
87
+ }
88
+ const bytes = chunk.bytes;
89
+ const reader = new DxbcReader(bytes, {
90
+ source: this.source
91
+ });
92
+ const elementCount = reader.readUint32();
93
+ const elementOffset = reader.readUint32() || SIGNATURE_TABLE_HEADER_SIZE;
94
+ if (elementOffset + elementCount * layout.stride > bytes.length) {
95
+ throw new DxbcReadError("DXBC signature elements lie outside the chunk", {
96
+ source: this.source,
97
+ fourCC: this.fourCC,
98
+ elementCount,
99
+ elementOffset,
100
+ chunkSize: bytes.length
101
+ });
102
+ }
103
+ this.elements = [];
104
+ reader.offset = elementOffset;
105
+ for (let index = 0; index < elementCount; index += 1) {
106
+ const stream = layout.hasStream ? reader.readUint32() : 0;
107
+ const semanticNameOffset = reader.readUint32();
108
+ const semanticIndex = reader.readUint32();
109
+ const systemValueType = reader.readUint32();
110
+ const componentType = reader.readUint32();
111
+ const registerIndex = reader.readUint32();
112
+ const mask = reader.readUint8();
113
+ const readWriteMask = reader.readUint8();
114
+ reader.Skip(2);
115
+ const minPrecision = layout.hasMinPrecision ? reader.readUint32() : 0;
116
+ this.elements.push({
117
+ semanticName: this._readSemanticName(bytes, semanticNameOffset, index),
118
+ semanticIndex,
119
+ systemValueType,
120
+ componentType,
121
+ componentTypeName: DxbcComponentTypeNames[componentType] || "unknown",
122
+ registerIndex,
123
+ mask,
124
+ readWriteMask,
125
+ stream,
126
+ minPrecision
127
+ });
128
+ }
129
+ return this;
130
+ }
131
+
132
+ /**
133
+ * Finds a signature element by semantic name and index.
134
+ *
135
+ * @param {string} semanticName Case-insensitive semantic name such as `"TEXCOORD"`.
136
+ * @param {number} [semanticIndex] Semantic index, defaulting to 0.
137
+ * @returns {object|null} Element record or null.
138
+ */
139
+ findElement(semanticName, semanticIndex = 0) {
140
+ const wanted = String(semanticName).toUpperCase();
141
+ return this.elements.find(element => element.semanticName.toUpperCase() === wanted && element.semanticIndex === semanticIndex) || null;
142
+ }
143
+
144
+ /**
145
+ * Resolves a null-terminated semantic name inside the chunk payload.
146
+ *
147
+ * @param {Uint8Array} bytes Chunk payload.
148
+ * @param {number} offset Name offset relative to the chunk payload start.
149
+ * @param {number} index Element index used in error details.
150
+ * @returns {string} Decoded semantic name.
151
+ * @private
152
+ */
153
+ _readSemanticName(bytes, offset, index) {
154
+ if (offset >= bytes.length) {
155
+ throw new DxbcReadError("DXBC signature semantic name lies outside the chunk", {
156
+ source: this.source,
157
+ fourCC: this.fourCC,
158
+ elementIndex: index,
159
+ offset,
160
+ chunkSize: bytes.length
161
+ });
162
+ }
163
+ let end = offset;
164
+ while (end < bytes.length && bytes[end] !== 0) {
165
+ end += 1;
166
+ }
167
+ return semanticNameDecoder.decode(bytes.subarray(offset, end));
168
+ }
169
+ }
170
+
171
+ export { DxbcComponentTypeNames, DxbcSignatureChunk };
172
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sources":["../../../../../src/formats/dxbc/core/signature.js"],"sourcesContent":["import { DxbcReader } from \"./DxbcReader.js\";\nimport { DxbcReadError } from \"./errors.js\";\n\nconst SIGNATURE_TABLE_HEADER_SIZE = 8;\n\nconst semanticNameDecoder = new TextDecoder(\"latin1\");\n\n/**\n * Per-fourCC signature element layouts.\n *\n * `ISGN`/`OSGN`/`PCSG` use the 24-byte Shader Model 4 layout. `OSG5` prefixes\n * a stream index. `ISG1`/`OSG1`/`PSG1` prefix a stream index and append a\n * minimum-precision field.\n */\nconst SIGNATURE_ELEMENT_LAYOUTS = Object.freeze({\n ISGN: { stride: 24, hasStream: false, hasMinPrecision: false },\n OSGN: { stride: 24, hasStream: false, hasMinPrecision: false },\n PCSG: { stride: 24, hasStream: false, hasMinPrecision: false },\n OSG5: { stride: 28, hasStream: true, hasMinPrecision: false },\n ISG1: { stride: 32, hasStream: true, hasMinPrecision: true },\n OSG1: { stride: 32, hasStream: true, hasMinPrecision: true },\n PSG1: { stride: 32, hasStream: true, hasMinPrecision: true }\n});\n\n/**\n * Register component type names indexed by DXBC signature component-type ids.\n */\nexport const DxbcComponentTypeNames = Object.freeze([ \"unknown\", \"uint32\", \"int32\", \"float32\" ]);\n\n/**\n * DXBC input/output signature chunk reader for `ISGN`-family chunks.\n */\nexport class DxbcSignatureChunk\n{\n /**\n * Creates an empty signature chunk; call a read entry point to populate its parameter records.\n */\n constructor()\n {\n this.fourCC = \"\";\n this.elements = [];\n this.source = \"memory\";\n }\n\n /**\n * Reads a signature chunk payload into semantic/register element records.\n *\n * @param {{fourCC:string,bytes:Uint8Array}} chunk Chunk record from `DxbcContainer`.\n * @param {object} [options] Read options.\n * @param {string} [options.source] Source name used in error details.\n * @returns {DxbcSignatureChunk} This signature.\n */\n Read(chunk, options = {})\n {\n this.fourCC = chunk.fourCC;\n this.source = options.source || \"memory\";\n const layout = SIGNATURE_ELEMENT_LAYOUTS[this.fourCC];\n if (!layout)\n {\n throw new DxbcReadError(\"Unsupported DXBC signature chunk\", {\n source: this.source,\n fourCC: this.fourCC\n });\n }\n\n const bytes = chunk.bytes;\n const reader = new DxbcReader(bytes, { source: this.source });\n const elementCount = reader.readUint32();\n const elementOffset = reader.readUint32() || SIGNATURE_TABLE_HEADER_SIZE;\n if (elementOffset + elementCount * layout.stride > bytes.length)\n {\n throw new DxbcReadError(\"DXBC signature elements lie outside the chunk\", {\n source: this.source,\n fourCC: this.fourCC,\n elementCount,\n elementOffset,\n chunkSize: bytes.length\n });\n }\n\n this.elements = [];\n reader.offset = elementOffset;\n for (let index = 0; index < elementCount; index += 1)\n {\n const stream = layout.hasStream ? reader.readUint32() : 0;\n const semanticNameOffset = reader.readUint32();\n const semanticIndex = reader.readUint32();\n const systemValueType = reader.readUint32();\n const componentType = reader.readUint32();\n const registerIndex = reader.readUint32();\n const mask = reader.readUint8();\n const readWriteMask = reader.readUint8();\n reader.Skip(2);\n const minPrecision = layout.hasMinPrecision ? reader.readUint32() : 0;\n\n this.elements.push({\n semanticName: this._readSemanticName(bytes, semanticNameOffset, index),\n semanticIndex,\n systemValueType,\n componentType,\n componentTypeName: DxbcComponentTypeNames[componentType] || \"unknown\",\n registerIndex,\n mask,\n readWriteMask,\n stream,\n minPrecision\n });\n }\n return this;\n }\n\n /**\n * Finds a signature element by semantic name and index.\n *\n * @param {string} semanticName Case-insensitive semantic name such as `\"TEXCOORD\"`.\n * @param {number} [semanticIndex] Semantic index, defaulting to 0.\n * @returns {object|null} Element record or null.\n */\n findElement(semanticName, semanticIndex = 0)\n {\n const wanted = String(semanticName).toUpperCase();\n return this.elements.find(\n (element) => element.semanticName.toUpperCase() === wanted && element.semanticIndex === semanticIndex\n ) || null;\n }\n\n /**\n * Resolves a null-terminated semantic name inside the chunk payload.\n *\n * @param {Uint8Array} bytes Chunk payload.\n * @param {number} offset Name offset relative to the chunk payload start.\n * @param {number} index Element index used in error details.\n * @returns {string} Decoded semantic name.\n * @private\n */\n _readSemanticName(bytes, offset, index)\n {\n if (offset >= bytes.length)\n {\n throw new DxbcReadError(\"DXBC signature semantic name lies outside the chunk\", {\n source: this.source,\n fourCC: this.fourCC,\n elementIndex: index,\n offset,\n chunkSize: bytes.length\n });\n }\n let end = offset;\n while (end < bytes.length && bytes[end] !== 0)\n {\n end += 1;\n }\n return semanticNameDecoder.decode(bytes.subarray(offset, end));\n }\n}\n"],"names":["SIGNATURE_TABLE_HEADER_SIZE","semanticNameDecoder","TextDecoder","SIGNATURE_ELEMENT_LAYOUTS","Object","freeze","ISGN","stride","hasStream","hasMinPrecision","OSGN","PCSG","OSG5","ISG1","OSG1","PSG1","DxbcComponentTypeNames","DxbcSignatureChunk","constructor","fourCC","elements","source","Read","chunk","options","layout","DxbcReadError","bytes","reader","DxbcReader","elementCount","readUint32","elementOffset","length","chunkSize","offset","index","stream","semanticNameOffset","semanticIndex","systemValueType","componentType","registerIndex","mask","readUint8","readWriteMask","Skip","minPrecision","push","semanticName","_readSemanticName","componentTypeName","findElement","wanted","String","toUpperCase","find","element","elementIndex","end","decode","subarray"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { CjsDxbcFormat, CjsDxbcFormat as default } from './CjsDxbcFormat.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1032,12 +1032,18 @@ function adler32(bytes) {
1032
1032
  * property arrays.
1033
1033
  */
1034
1034
  class DeflateBitReader {
1035
+ /**
1036
+ * Creates a DeflateBitReader over caller-provided FBX bytes and reader
1037
+ * options.
1038
+ */
1035
1039
  constructor(bytes) {
1036
1040
  this.bytes = bytes;
1037
1041
  this.byteOffset = 0;
1038
1042
  this.bitBuffer = 0;
1039
1043
  this.bitCount = 0;
1040
1044
  }
1045
+
1046
+ /** Reads bits from the current FBX binary reader. */
1041
1047
  readBits(count) {
1042
1048
  let value = 0,
1043
1049
  shift = 0,
@@ -1059,16 +1065,25 @@ class DeflateBitReader {
1059
1065
  }
1060
1066
  return value;
1061
1067
  }
1068
+
1069
+ /**
1070
+ * Moves the compressed-bit cursor to the next byte boundary for the FBX
1071
+ * binary reader.
1072
+ */
1062
1073
  alignByte() {
1063
1074
  this.bitBuffer = 0;
1064
1075
  this.bitCount = 0;
1065
1076
  }
1077
+
1078
+ /** Reads aligned byte from the current FBX binary reader. */
1066
1079
  readAlignedByte() {
1067
1080
  if (this.byteOffset >= this.bytes.byteLength) {
1068
1081
  throw new Error("fbx: compressed array stored block is truncated");
1069
1082
  }
1070
1083
  return this.bytes[this.byteOffset++];
1071
1084
  }
1085
+
1086
+ /** Reads aligned U16 LE from the current FBX binary reader. */
1072
1087
  readAlignedU16LE() {
1073
1088
  const low = this.readAlignedByte(),
1074
1089
  high = this.readAlignedByte();
@@ -1081,6 +1096,7 @@ class DeflateBitReader {
1081
1096
  * inflating compressed FBX property arrays.
1082
1097
  */
1083
1098
  class DeflateHuffmanTable {
1099
+ /** Creates a DeflateHuffmanTable with caller-provided initial state. */
1084
1100
  constructor(lengths) {
1085
1101
  this.tables = [];
1086
1102
  this.maxBits = 0;
@@ -1113,6 +1129,11 @@ class DeflateHuffmanTable {
1113
1129
  this.tables[length][reversed] = symbol;
1114
1130
  }
1115
1131
  }
1132
+
1133
+ /**
1134
+ * Decodes one symbol through the canonical Deflate Huffman table for the FBX
1135
+ * decoder.
1136
+ */
1116
1137
  decode(reader) {
1117
1138
  let code = 0;
1118
1139
  for (let length = 1; length <= this.maxBits; length++) {