@carbonenginejs/runtime-resource 0.13.0 → 0.14.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 (453) hide show
  1. package/LICENSE +21 -21
  2. package/NOTICE +32 -32
  3. package/README.md +129 -129
  4. package/dist/CjsMotherLode.js +1271 -1271
  5. package/dist/CjsResMan.js +3858 -3858
  6. package/dist/CjsResManFetchProvider.js +94 -94
  7. package/dist/CjsResManWorkQueue.js +301 -301
  8. package/dist/_virtual/_rollupPluginBabelHelpers.js +150 -150
  9. package/dist/format/CjsBlueReader.js +358 -358
  10. package/dist/format/CjsByteReader.js +310 -310
  11. package/dist/format/CjsByteWriter.js +242 -242
  12. package/dist/format/CjsFormat.js +223 -223
  13. package/dist/format/CjsFormatError.js +41 -41
  14. package/dist/format/CjsReader.js +22 -22
  15. package/dist/format/CjsResourceProbe.js +279 -279
  16. package/dist/format/CjsStringTable.js +268 -268
  17. package/dist/format/carbonEffect/CjsCarbonEffectReader.js +265 -265
  18. package/dist/format/carbonEffect/CjsCarbonEffectWriter.js +373 -373
  19. package/dist/format/carbonEffect/buildCarbonEffectContainer.js +182 -182
  20. package/dist/format/carbonEffect/carbonEffectBackendBlock.js +321 -321
  21. package/dist/format/carbonEffect/carbonEffectRecords.js +1147 -1147
  22. package/dist/format/carbonEffect/carbonEffectResourceTransform.js +197 -197
  23. package/dist/format/compareUtf8.js +36 -36
  24. package/dist/format/effect/effectBodyInventory.js +146 -146
  25. package/dist/format/effect/effectPermutationGraph.js +257 -257
  26. package/dist/format/effect/sha256.js +114 -114
  27. package/dist/format/index.js +11 -11
  28. package/dist/format/payloadContract.js +193 -193
  29. package/dist/formats/black/CjsBlackFormat.js +310 -310
  30. package/dist/formats/black/core/CjsBlackBinaryReader.js +260 -260
  31. package/dist/formats/black/core/CjsBlackPropertyReaders.js +448 -448
  32. package/dist/formats/black/core/CjsBlackReader.js +764 -764
  33. package/dist/formats/black/core/CjsBlackSchemaRegistry.js +540 -540
  34. package/dist/formats/black/core/black-schema-v1-2026-07-23.json.js +4 -4
  35. package/dist/formats/black/core/blackConstants.js +7 -7
  36. package/dist/formats/black/core/blackDefinitions.js +10 -10
  37. package/dist/formats/black/core/blackEnums.js +6 -6
  38. package/dist/formats/black/core/blackSchema.js +3 -3
  39. package/dist/formats/black/core/blackVersion.js +22 -22
  40. package/dist/formats/black/core/helpers.js +199 -199
  41. package/dist/formats/black/core/schema.js +4 -4
  42. package/dist/formats/black/index.js +2 -2
  43. package/dist/formats/bnk/CjsBnkFormat.js +175 -175
  44. package/dist/formats/bnk/core/busNodes.js +252 -252
  45. package/dist/formats/bnk/core/effectNodes.js +147 -147
  46. package/dist/formats/bnk/core/eventAction.js +416 -416
  47. package/dist/formats/bnk/core/globalSettings.js +215 -215
  48. package/dist/formats/bnk/core/graph.js +137 -137
  49. package/dist/formats/bnk/core/helpers.js +512 -512
  50. package/dist/formats/bnk/core/musicNodes.js +540 -540
  51. package/dist/formats/bnk/core/nodeBase.js +553 -553
  52. package/dist/formats/bnk/core/sfxNodes.js +632 -632
  53. package/dist/formats/bnk/core/soundbanksInfo.js +209 -209
  54. package/dist/formats/bnk/index.js +2 -2
  55. package/dist/formats/cmf/CjsCmfFormat.js +497 -497
  56. package/dist/formats/cmf/core/binary.js +194 -194
  57. package/dist/formats/cmf/core/buffers.js +237 -237
  58. package/dist/formats/cmf/core/constants.js +47 -47
  59. package/dist/formats/cmf/core/gr2Anim.js +453 -453
  60. package/dist/formats/cmf/core/helpers.js +318 -318
  61. package/dist/formats/cmf/core/pack.js +276 -276
  62. package/dist/formats/cmf/core/schema.js +374 -374
  63. package/dist/formats/cmf/core/shared.js +277 -277
  64. package/dist/formats/cmf/core/writer.js +571 -571
  65. package/dist/formats/cmf/index.js +2 -2
  66. package/dist/formats/dds/CjsDdsFormat.js +200 -200
  67. package/dist/formats/dds/core/bc6h.js +298 -298
  68. package/dist/formats/dds/core/bc7.js +272 -272
  69. package/dist/formats/dds/core/helpers.js +901 -862
  70. package/dist/formats/dds/core/helpers.js.map +1 -1
  71. package/dist/formats/dds/index.js +2 -2
  72. package/dist/formats/dxbc/CjsDxbcFormat.js +187 -142
  73. package/dist/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  74. package/dist/formats/dxbc/core/DxbcReader.js +266 -266
  75. package/dist/formats/dxbc/core/container.js +169 -169
  76. package/dist/formats/dxbc/core/decoder.js +789 -789
  77. package/dist/formats/dxbc/core/disassemble.js +240 -0
  78. package/dist/formats/dxbc/core/disassemble.js.map +1 -0
  79. package/dist/formats/dxbc/core/errors.js +19 -19
  80. package/dist/formats/dxbc/core/helpers.js +220 -220
  81. package/dist/formats/dxbc/core/opcodes.js +45 -45
  82. package/dist/formats/dxbc/core/program.js +91 -91
  83. package/dist/formats/dxbc/core/signature.js +172 -172
  84. package/dist/formats/dxbc/index.js +2 -2
  85. package/dist/formats/fbx/CjsFbxFormat.js +266 -266
  86. package/dist/formats/fbx/core/helpers.js +3932 -3932
  87. package/dist/formats/fbx/index.js +2 -2
  88. package/dist/formats/flac/CjsFlacFormat.js +142 -142
  89. package/dist/formats/flac/core/helpers.js +315 -315
  90. package/dist/formats/flac/index.js +2 -2
  91. package/dist/formats/gif/CjsGifFormat.js +141 -141
  92. package/dist/formats/gif/core/helpers.js +380 -380
  93. package/dist/formats/gif/index.js +2 -2
  94. package/dist/formats/gltf/CjsGltfFormat.js +252 -290
  95. package/dist/formats/gltf/CjsGltfFormat.js.map +1 -1
  96. package/dist/formats/gltf/core/helpers.js +287 -307
  97. package/dist/formats/gltf/core/helpers.js.map +1 -1
  98. package/dist/formats/gltf/core/json.js +79 -79
  99. package/dist/formats/gltf/core/parser.js +679 -679
  100. package/dist/formats/gltf/core/targets.js +173 -173
  101. package/dist/formats/gltf/index.js +2 -2
  102. package/dist/formats/gr2/CjsGr2Format.js +289 -289
  103. package/dist/formats/gr2/core/bitknit2.js +282 -282
  104. package/dist/formats/gr2/core/curves.js +1047 -1047
  105. package/dist/formats/gr2/core/gsf.js +72 -72
  106. package/dist/formats/gr2/core/helpers.js +352 -352
  107. package/dist/formats/gr2/core/json.js +622 -622
  108. package/dist/formats/gr2/core/oodle1.js +388 -388
  109. package/dist/formats/gr2/core/tangents.js +48 -48
  110. package/dist/formats/gr2/core/targets.js +361 -361
  111. package/dist/formats/gr2/index.js +2 -2
  112. package/dist/formats/hlsl/CjsHlslFormat.js +233 -254
  113. package/dist/formats/hlsl/CjsHlslFormat.js.map +1 -1
  114. package/dist/formats/hlsl/core/HlslBinaryUtils.js +15 -15
  115. package/dist/formats/hlsl/core/HlslEffectReadError.js +19 -19
  116. package/dist/formats/hlsl/core/HlslEffectStateManager.js +130 -130
  117. package/dist/formats/hlsl/core/HlslRenderStateSetup.js +37 -37
  118. package/dist/formats/hlsl/core/HlslResourceSetDescription.js +94 -94
  119. package/dist/formats/hlsl/core/HlslShaderBytecode.js +44 -44
  120. package/dist/formats/hlsl/core/analysis.js +51 -51
  121. package/dist/formats/hlsl/core/carbonDescriptionToRuntime.js +850 -850
  122. package/dist/formats/hlsl/core/detailMapFamily.js +128 -128
  123. package/dist/formats/hlsl/core/helpers.js +270 -270
  124. package/dist/formats/hlsl/core/json.js +284 -284
  125. package/dist/formats/hlsl/core/localLightFamily.js +133 -133
  126. package/dist/formats/hlsl/core/metadata.js +327 -327
  127. package/dist/formats/hlsl/core/render-states.js +280 -280
  128. package/dist/formats/hlsl/core/tr2/HlslRenderContextEnum.js +43 -43
  129. package/dist/formats/hlsl/core/tr2/resources/HlslEffectRes.js +320 -320
  130. package/dist/formats/hlsl/core/tr2/resources/HlslShaderPermutation.js +33 -33
  131. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js +423 -416
  132. package/dist/formats/hlsl/core/tr2/shader/HlslEffectBindingManifest.js.map +1 -1
  133. package/dist/formats/hlsl/core/tr2/shader/HlslEffectConstant.js +40 -40
  134. package/dist/formats/hlsl/core/tr2/shader/HlslEffectDescription.js +62 -62
  135. package/dist/formats/hlsl/core/tr2/shader/HlslEffectLibrary.js +52 -52
  136. package/dist/formats/hlsl/core/tr2/shader/HlslEffectParameterAnnotation.js +38 -38
  137. package/dist/formats/hlsl/core/tr2/shader/HlslEffectResource.js +50 -50
  138. package/dist/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +86 -86
  139. package/dist/formats/hlsl/core/tr2/shader/HlslEffectTechnique.js +31 -31
  140. package/dist/formats/hlsl/core/tr2/shader/HlslPass.js +42 -42
  141. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerDescription.js +55 -55
  142. package/dist/formats/hlsl/core/tr2/shader/HlslSamplerSetup.js +29 -29
  143. package/dist/formats/hlsl/core/tr2/shader/HlslShader.js +220 -220
  144. package/dist/formats/hlsl/core/tr2/shader/HlslShaderOption.js +30 -30
  145. package/dist/formats/hlsl/index.js +3 -3
  146. package/dist/formats/index.js +33 -33
  147. package/dist/formats/jpeg/CjsJpegFormat.js +212 -212
  148. package/dist/formats/jpeg/core/helpers.js +402 -402
  149. package/dist/formats/jpeg/core/jpeg.js +480 -480
  150. package/dist/formats/jpeg/index.js +2 -2
  151. package/dist/formats/mp3/CjsMp3Format.js +197 -197
  152. package/dist/formats/mp3/core/helpers.js +375 -375
  153. package/dist/formats/mp3/index.js +2 -2
  154. package/dist/formats/mp4/CjsMp4Format.js +197 -197
  155. package/dist/formats/mp4/core/helpers.js +484 -484
  156. package/dist/formats/mp4/index.js +2 -2
  157. package/dist/formats/obj/CjsObjFormat.js +232 -253
  158. package/dist/formats/obj/CjsObjFormat.js.map +1 -1
  159. package/dist/formats/obj/core/helpers.js +553 -573
  160. package/dist/formats/obj/core/helpers.js.map +1 -1
  161. package/dist/formats/obj/core/json.js +64 -64
  162. package/dist/formats/obj/core/parser.js +321 -321
  163. package/dist/formats/obj/index.js +2 -2
  164. package/dist/formats/ogg/CjsOggFormat.js +143 -143
  165. package/dist/formats/ogg/core/helpers.js +410 -410
  166. package/dist/formats/ogg/core/imdct.js +178 -178
  167. package/dist/formats/ogg/core/vorbis.js +1017 -1017
  168. package/dist/formats/ogg/index.js +2 -2
  169. package/dist/formats/pickle/CjsPickleFormat.js +214 -214
  170. package/dist/formats/pickle/core/CjsPickleProtocol0Reader.js +551 -551
  171. package/dist/formats/pickle/index.js +2 -2
  172. package/dist/formats/png/CjsPngFormat.js +201 -201
  173. package/dist/formats/png/core/helpers.js +635 -635
  174. package/dist/formats/png/index.js +2 -2
  175. package/dist/formats/red/CjsRedFormat.js +263 -263
  176. package/dist/formats/red/core/CjsRedReader.js +246 -246
  177. package/dist/formats/red/core/blackDefinitions.js +3 -3
  178. package/dist/formats/red/core/helpers.js +158 -158
  179. package/dist/formats/red/core/redGraph.js +71 -71
  180. package/dist/formats/red/core/schema.js +4 -4
  181. package/dist/formats/red/index.js +2 -2
  182. package/dist/formats/stl/CjsStlFormat.js +320 -365
  183. package/dist/formats/stl/CjsStlFormat.js.map +1 -1
  184. package/dist/formats/stl/core/helpers.js +241 -261
  185. package/dist/formats/stl/core/helpers.js.map +1 -1
  186. package/dist/formats/stl/core/json.js +51 -51
  187. package/dist/formats/stl/core/stl.js +642 -642
  188. package/dist/formats/stl/core/targets.js +173 -173
  189. package/dist/formats/stl/index.js +2 -2
  190. package/dist/formats/tga/CjsTgaFormat.js +197 -197
  191. package/dist/formats/tga/core/helpers.js +493 -493
  192. package/dist/formats/tga/index.js +2 -2
  193. package/dist/formats/wav/CjsWavFormat.js +198 -198
  194. package/dist/formats/wav/core/helpers.js +365 -365
  195. package/dist/formats/wav/index.js +2 -2
  196. package/dist/formats/webgl/CjsWebglFormat.js +199 -199
  197. package/dist/formats/webgl/core/buildGlslEffectContainer.js +70 -70
  198. package/dist/formats/webgl/core/effectPackage.js +900 -900
  199. package/dist/formats/webgl/core/errors.js +27 -27
  200. package/dist/formats/webgl/core/glsl/DxbcGlslEmitter.js +2820 -2820
  201. package/dist/formats/webgl/core/glsl/DxbcGlslHelpers.js +89 -89
  202. package/dist/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +486 -486
  203. package/dist/formats/webgl/core/glsl/packedLightFixups.js +98 -98
  204. package/dist/formats/webgl/core/glslBackendBlock.js +552 -552
  205. package/dist/formats/webgl/core/glslBackendBodySet.js +243 -243
  206. package/dist/formats/webgl/core/glslEffectCompleteness.js +85 -85
  207. package/dist/formats/webgl/core/glslEffectCompleteness.js.map +1 -1
  208. package/dist/formats/webgl/core/helpers.js +167 -167
  209. package/dist/formats/webgl/core/inspectGlslEffectContainer.js +122 -122
  210. package/dist/formats/webgl/core/readGlslEffectContainer.js +202 -256
  211. package/dist/formats/webgl/core/readGlslEffectContainer.js.map +1 -1
  212. package/dist/formats/webgl/index.js +2 -2
  213. package/dist/formats/webgpu/CjsWebgpuFormat.js +357 -357
  214. package/dist/formats/webgpu/core/buildCarbonEffectContainer.js +89 -89
  215. package/dist/formats/webgpu/core/carbonWebgpu/CarbonWebgpuContainer.js +354 -354
  216. package/dist/formats/webgpu/core/carbonWebgpu/containerViews.js +355 -355
  217. package/dist/formats/webgpu/core/carbonWebgpu/validateContainer.js +90 -90
  218. package/dist/formats/webgpu/core/effectAnalysis.js +82 -82
  219. package/dist/formats/webgpu/core/effectBackendBodySet.js +306 -306
  220. package/dist/formats/webgpu/core/errors.js +20 -20
  221. package/dist/formats/webgpu/core/helpers.js +443 -443
  222. package/dist/formats/webgpu/core/ir/analyzeRegisterValues.js +212 -212
  223. package/dist/formats/webgpu/core/ir/buildControlFlow.js +220 -220
  224. package/dist/formats/webgpu/core/ir/indexableTemps.js +137 -137
  225. package/dist/formats/webgpu/core/ir/inferValueTypes.js +449 -449
  226. package/dist/formats/webgpu/core/ir/lowerDxbcToIr.js +494 -494
  227. package/dist/formats/webgpu/core/ir/resolveRegisterFlow.js +177 -177
  228. package/dist/formats/webgpu/core/ir/sourceLanes.js +61 -61
  229. package/dist/formats/webgpu/core/packageEffect.js +381 -381
  230. package/dist/formats/webgpu/core/packageEffectSelection.js +164 -164
  231. package/dist/formats/webgpu/core/packageMetadata.js +17 -17
  232. package/dist/formats/webgpu/core/schema.js +4 -4
  233. package/dist/formats/webgpu/core/wgsl/buildResourceTransformPlan.js +263 -263
  234. package/dist/formats/webgpu/core/wgsl/buildWgslBindingPlan.js +172 -172
  235. package/dist/formats/webgpu/core/wgsl/buildWgslSet.js +325 -325
  236. package/dist/formats/webgpu/core/wgsl/emitWgsl.js +356 -356
  237. package/dist/formats/webgpu/core/wgsl/hoistEscapingValues.js +77 -77
  238. package/dist/formats/webgpu/core/wgsl/lowerBindingLayout.js +451 -451
  239. package/dist/formats/webgpu/core/wgsl/lowerComputeProgram.js +735 -735
  240. package/dist/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +457 -457
  241. package/dist/formats/webgpu/core/wgsl/lowerFragmentProgram.js +1572 -1572
  242. package/dist/formats/webgpu/core/wgsl/lowerMergeHistogramsComputeProgram.js +659 -659
  243. package/dist/formats/webgpu/core/wgsl/lowerParticleClearComputePrograms.js +734 -734
  244. package/dist/formats/webgpu/core/wgsl/lowerParticleEmitComputeProgram.js +583 -583
  245. package/dist/formats/webgpu/core/wgsl/lowerSkinVerticesComputeProgram.js +621 -621
  246. package/dist/formats/webgpu/core/wgsl/lowerSortComputeProgram.js +824 -824
  247. package/dist/formats/webgpu/core/wgsl/lowerSortInnerComputeProgram.js +697 -697
  248. package/dist/formats/webgpu/core/wgsl/lowerSortStepComputeProgram.js +559 -559
  249. package/dist/formats/webgpu/core/wgsl/lowerVertexProgram.js +1328 -1328
  250. package/dist/formats/webgpu/core/wgsl/particleEmitSemanticDigest.js +110 -110
  251. package/dist/formats/webgpu/core/wgsl/precisionControls.js +55 -55
  252. package/dist/formats/webgpu/core/wgsl/selectionPlans.js +717 -717
  253. package/dist/formats/webgpu/core/wgsl/uniformity.js +78 -78
  254. package/dist/formats/webgpu/core/wgsl/validateExactComputeIr.js +196 -196
  255. package/dist/formats/webgpu/core/wgsl/validateHandleOperand.js +37 -37
  256. package/dist/formats/webgpu/index.js +2 -2
  257. package/dist/formats/webm/CjsWebmFormat.js +197 -197
  258. package/dist/formats/webm/core/helpers.js +572 -572
  259. package/dist/formats/webm/index.js +2 -2
  260. package/dist/formats/webp/CjsWebpFormat.js +140 -140
  261. package/dist/formats/webp/core/helpers.js +237 -237
  262. package/dist/formats/webp/index.js +2 -2
  263. package/dist/formats/wem/CjsWemFormat.js +250 -250
  264. package/dist/formats/wem/core/bitStream.js +261 -261
  265. package/dist/formats/wem/core/codebookLibrary.js +164 -164
  266. package/dist/formats/wem/core/helpers.js +437 -437
  267. package/dist/formats/wem/core/packedCodebooksAotuv603.js +30 -30
  268. package/dist/formats/wem/core/ptadpcm.js +77 -77
  269. package/dist/formats/wem/core/resolve.js +121 -121
  270. package/dist/formats/wem/core/wemToOgg.js +485 -485
  271. package/dist/formats/wem/index.js +2 -2
  272. package/dist/formats/yaml/CjsYamlFormat.js +134 -134
  273. package/dist/formats/yaml/core/CjsYamlReader.js +400 -400
  274. package/dist/formats/yaml/core/helpers.js +196 -196
  275. package/dist/formats/yaml/index.js +2 -2
  276. package/dist/index.js +64 -64
  277. package/dist/resource/CjsLoadingObject.js +19 -19
  278. package/dist/resource/CjsResource.js +801 -801
  279. package/dist/resource/ResourceHandlerMode.js +14 -14
  280. package/dist/resource/Tr2LightProfileRes.js +32 -32
  281. package/dist/resource/audio/AudioGeometryResData.js +47 -47
  282. package/dist/resource/audio/CjsAudioBufferRes.js +86 -86
  283. package/dist/resource/audio/CjsAudioRes.js +213 -213
  284. package/dist/resource/audio/index.js +4 -4
  285. package/dist/resource/geometry/MeshDecalData.js +37 -37
  286. package/dist/resource/geometry/MeshDecalLodData.js +34 -34
  287. package/dist/resource/geometry/TriGeometryRes.js +675 -675
  288. package/dist/resource/geometry/TriGeometryResAreaData.js +59 -59
  289. package/dist/resource/geometry/TriGeometryResJointData.js +38 -38
  290. package/dist/resource/geometry/TriGeometryResLodData.js +88 -88
  291. package/dist/resource/geometry/TriGeometryResMeshData.js +63 -63
  292. package/dist/resource/geometry/TriGeometryResSkeletonData.js +34 -34
  293. package/dist/resource/geometry/TriJointBinding.js +38 -38
  294. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +46 -46
  295. package/dist/resource/geometry/TriRtGeometryConstants.js +88 -88
  296. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +31 -31
  297. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +60 -60
  298. package/dist/resource/geometry/granny/Tr2GrannyStateRes.js +36 -36
  299. package/dist/resource/geometry/granny/TriGrannyRes.js +35 -35
  300. package/dist/resource/geometry/granny/enums.js +10 -10
  301. package/dist/resource/geometry/granny/index.js +6 -6
  302. package/dist/resource/geometry/index.js +17 -17
  303. package/dist/resource/index.js +54 -54
  304. package/dist/resource/resourceBoundary.js +64 -64
  305. package/dist/resource/shader/Tr2EffectRes.js +336 -336
  306. package/dist/resource/shader/Tr2MaterialArea.js +31 -31
  307. package/dist/resource/shader/Tr2MaterialMesh.js +27 -27
  308. package/dist/resource/shader/Tr2MaterialRes.js +31 -31
  309. package/dist/resource/shader/Tr2Shader.js +283 -283
  310. package/dist/resource/shader/Tr2ShaderPermutation.js +43 -43
  311. package/dist/resource/shader/index.js +17 -17
  312. package/dist/resource/shader/reflection/Tr2EffectConstant.js +143 -143
  313. package/dist/resource/shader/reflection/Tr2EffectDefine.js +30 -30
  314. package/dist/resource/shader/reflection/Tr2EffectDescription.js +114 -114
  315. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +168 -168
  316. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +125 -125
  317. package/dist/resource/shader/reflection/Tr2EffectResource.js +120 -120
  318. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +372 -372
  319. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +78 -78
  320. package/dist/resource/shader/reflection/Tr2Pass.js +168 -168
  321. package/dist/resource/shader/reflection/carbonRecordFields.js +159 -159
  322. package/dist/resource/shader/reflection/shaderStage.js +22 -22
  323. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +135 -135
  324. package/dist/resource/texture/CjsTextureArrayRes.js +472 -472
  325. package/dist/resource/texture/CjsTextureArrayResParameterProxy.js +179 -179
  326. package/dist/resource/texture/Tr2ImageRes.js +120 -120
  327. package/dist/resource/texture/Tr2TextureLodManager.js +82 -82
  328. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +37 -37
  329. package/dist/resource/texture/Tr2TexturePackChannel.js +37 -37
  330. package/dist/resource/texture/Tr2TexturePipeline.js +54 -54
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js +34 -34
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +40 -40
  333. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +22 -22
  334. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +34 -34
  335. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +31 -31
  336. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +43 -43
  337. package/dist/resource/texture/TriTextureRes.js +359 -359
  338. package/dist/resource/texture/index.js +15 -15
  339. package/dist/resource/texture/texturePipelineBehavior.js +308 -308
  340. package/dist/worker/CjsResManMainThreadLoader.js +89 -89
  341. package/dist/worker/CjsResManWorker.js +218 -218
  342. package/dist/worker/CjsResManWorkerLoader.js +437 -437
  343. package/dist/worker/protocol.js +12 -12
  344. package/docs/README.md +98 -98
  345. package/docs/architecture.md +118 -118
  346. package/docs/concepts/resource-lifecycle.md +226 -226
  347. package/docs/concepts/shader-resource-model.md +111 -111
  348. package/docs/concepts/writing-an-engine-adapter.md +115 -115
  349. package/docs/formats/README.md +138 -138
  350. package/docs/formats/carbon-effect-container.md +553 -553
  351. package/docs/formats/dxbc/README.md +68 -68
  352. package/docs/formats/dxbc/architecture.md +80 -80
  353. package/docs/formats/dxbc/reference/api.md +105 -77
  354. package/docs/formats/dxbc/reference/classes/README.md +9 -9
  355. package/docs/formats/dxbc/reference/decoded-output.md +122 -122
  356. package/docs/formats/gr2.md +160 -160
  357. package/docs/formats/hlsl/README.md +54 -54
  358. package/docs/formats/hlsl/architecture.md +66 -65
  359. package/docs/formats/hlsl/guides/hydrating-json-output.md +60 -60
  360. package/docs/formats/hlsl/guides/reading-effects.md +68 -64
  361. package/docs/formats/hlsl/reference/advanced-analysis.md +61 -61
  362. package/docs/formats/hlsl/reference/api.md +91 -92
  363. package/docs/formats/hlsl/reference/classes/README.md +11 -11
  364. package/docs/formats/hlsl/reference/json-graph.md +97 -97
  365. package/docs/formats/pickle.md +82 -82
  366. package/docs/formats/provenance.md +196 -196
  367. package/docs/formats/stl.md +37 -37
  368. package/docs/formats/webgl/README.md +115 -115
  369. package/docs/formats/webgl/architecture.md +69 -69
  370. package/docs/formats/webgl/carbon-constant-layouts.md +326 -326
  371. package/docs/formats/webgl/decl-io.md +1234 -1234
  372. package/docs/formats/webgl/memory-structured.md +890 -890
  373. package/docs/formats/webgl/reference/classes/README.md +9 -9
  374. package/docs/formats/webgl/texture-sample.md +964 -964
  375. package/docs/formats/webgpu/README.md +84 -84
  376. package/docs/formats/webgpu/architecture.md +95 -95
  377. package/docs/formats/webgpu/formats/carbon-webgpu.md +215 -215
  378. package/docs/formats/webgpu/guides/effect-packaging.md +189 -189
  379. package/docs/formats/webgpu/reference/api.md +196 -196
  380. package/docs/formats/webgpu/reference/classes/README.md +9 -9
  381. package/docs/formats/webgpu/reference/wgsl-compatibility.md +1546 -1546
  382. package/docs/formats/wwise.md +146 -146
  383. package/docs/reference/classes/README.md +35 -35
  384. package/docs/reference/classes/audio.md +30 -30
  385. package/docs/reference/classes/core.md +216 -216
  386. package/docs/reference/classes/dropped.md +46 -46
  387. package/docs/reference/classes/formats.md +944 -944
  388. package/docs/reference/classes/resources.md +456 -456
  389. package/docs/reference/classes/texture.md +26 -26
  390. package/docs/reference/events.md +117 -117
  391. package/docs/reference/motherlode-cache.md +275 -275
  392. package/docs/reference/queues.md +194 -194
  393. package/docs/reference/reload.md +107 -107
  394. package/docs/reference/texture-arrays.md +113 -113
  395. package/docs/reference/texture-pipeline.md +53 -53
  396. package/docs/reference/workers.md +142 -142
  397. package/docs/roadmap.md +150 -150
  398. package/format-notices/black/LICENSE +21 -21
  399. package/format-notices/black/NOTICE +47 -47
  400. package/format-notices/bnk/LICENSE +21 -21
  401. package/format-notices/bnk/NOTICE +21 -21
  402. package/format-notices/cmf/LICENSE +21 -21
  403. package/format-notices/cmf/NOTICE +36 -36
  404. package/format-notices/dds/LICENSE +21 -21
  405. package/format-notices/dds/NOTICE +14 -14
  406. package/format-notices/dxbc/LICENSE +21 -21
  407. package/format-notices/dxbc/NOTICE +20 -20
  408. package/format-notices/fbx/LICENSE +21 -21
  409. package/format-notices/fbx/NOTICE +14 -14
  410. package/format-notices/flac/LICENSE +21 -21
  411. package/format-notices/flac/NOTICE +14 -14
  412. package/format-notices/gif/LICENSE +21 -21
  413. package/format-notices/gif/NOTICE +14 -14
  414. package/format-notices/gltf/LICENSE +21 -21
  415. package/format-notices/gltf/NOTICE +27 -27
  416. package/format-notices/gr2/LICENSE +21 -21
  417. package/format-notices/gr2/NOTICE +60 -60
  418. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +93 -93
  419. package/format-notices/hlsl/LICENSE +21 -21
  420. package/format-notices/hlsl/NOTICE +25 -25
  421. package/format-notices/jpeg/LICENSE +21 -21
  422. package/format-notices/jpeg/NOTICE +14 -14
  423. package/format-notices/mp3/LICENSE +21 -21
  424. package/format-notices/mp3/NOTICE +14 -14
  425. package/format-notices/mp4/LICENSE +21 -21
  426. package/format-notices/mp4/NOTICE +14 -14
  427. package/format-notices/obj/LICENSE +21 -21
  428. package/format-notices/obj/NOTICE +26 -26
  429. package/format-notices/ogg/LICENSE +21 -21
  430. package/format-notices/ogg/NOTICE +28 -28
  431. package/format-notices/png/LICENSE +21 -21
  432. package/format-notices/png/NOTICE +14 -14
  433. package/format-notices/red/LICENSE +21 -21
  434. package/format-notices/red/NOTICE +31 -31
  435. package/format-notices/stl/LICENSE +21 -21
  436. package/format-notices/stl/NOTICE +21 -21
  437. package/format-notices/tga/LICENSE +21 -21
  438. package/format-notices/tga/NOTICE +14 -14
  439. package/format-notices/wav/LICENSE +21 -21
  440. package/format-notices/wav/NOTICE +14 -14
  441. package/format-notices/webgl/LICENSE +21 -21
  442. package/format-notices/webgl/NOTICE +35 -35
  443. package/format-notices/webgpu/LICENSE +21 -21
  444. package/format-notices/webgpu/NOTICE +31 -31
  445. package/format-notices/webm/LICENSE +21 -21
  446. package/format-notices/webm/NOTICE +14 -14
  447. package/format-notices/webp/LICENSE +21 -21
  448. package/format-notices/webp/NOTICE +14 -14
  449. package/format-notices/wem/LICENSE +57 -57
  450. package/format-notices/wem/NOTICE +33 -33
  451. package/format-notices/yaml/LICENSE +21 -21
  452. package/format-notices/yaml/NOTICE +44 -44
  453. package/package.json +63 -63
package/docs/roadmap.md CHANGED
@@ -1,150 +1,150 @@
1
- # Roadmap
2
-
3
- Status: Evolving
4
- Scope: `@carbonenginejs/runtime-resource`
5
- Audience: Integrators and maintainers
6
- Summary: Records approved future direction, open design questions, and the current shader-format boundary needed to interpret that direction.
7
-
8
- Unless a section is explicitly marked **Current**, everything below is future
9
- work. Current behavior is documented in the
10
- [reference pages](reference/motherlode-cache.md); where this page and a
11
- reference page disagree, the reference page describes the shipped package.
12
-
13
- ## Runtime manager follow-up
14
-
15
- The ResMan/MotherLode contract is complete for its current consumers. Future
16
- work should be driven by measured application needs rather than another
17
- resource preparation abstraction:
18
-
19
- - main-queue priority and starvation policy;
20
- - cancellation/abort propagation for work that has already started;
21
- - `WaitUrgent()` after real priority and bounded fairness;
22
- - queue-time and reader/format-time telemetry;
23
- - application-level default retention policy selection;
24
- - automatic resource/payload byte estimation and separate CPU/adapter
25
- budgets;
26
- - additional browser-source response types and configurable worker-pool
27
- concurrency.
28
-
29
- ## Browser shader formats
30
-
31
- **Current:** HLSL, DXBC, WebGL, and WebGPU are consolidated into
32
- runtime-resource and exposed as independently importable
33
- `@carbonenginejs/runtime-resource/formats/<name>` entry points. HLSL and DXBC
34
- remain directly usable; WebGL and WebGPU compose them to read DX11/DX12 effect
35
- inputs and translate them.
36
-
37
- **Planned:** Browser delivery and fallback policy still needs a stable
38
- application-facing contract.
39
-
40
- Browser-targeted production modules must not import or require Node-only
41
- shader libraries. A format package may use local Node libraries as development
42
- or test dependencies for fixtures, comparison, and conformance checks, but
43
- those libraries must not ship and must not be runtime dependencies.
44
-
45
- ccpwgl currently preserves an authored `.fx` path while `Tw2Device` maps it to
46
- a backend-specific remote namespace such as `effect.gles2` or `effect.webgl2`
47
- and appends the selected shader-model extension. The resource/format
48
- contract must retain both use cases:
49
-
50
- - resolve and load a pretranslated backend artifact from a remote resource
51
- provider or tools-core cache; and
52
- - fall back to the authored effect input and translate it in the browser.
53
-
54
- The authored effect path should remain the stable identity. Backend profile,
55
- shader model, translated cache path, and translation capabilities are
56
- resolution facts rather than changes a caller must make to its source path.
57
-
58
- ## Format buffer ownership and destination reuse
59
-
60
- **Current:** The CMF, DDS, FBX, GIF, glTF, JPEG, MP3, MP4, Ogg, PNG, STL,
61
- TGA, WAV, WebM, and WebP byte normalizers preserve an existing `Uint8Array`.
62
- `ArrayBuffer` and other byte-addressable views are exposed through a
63
- `Uint8Array` view over the same backing storage rather than copied merely for
64
- input normalization. Decode operations that produce new pixel, sample,
65
- geometry, or decompression payloads currently allocate those result arrays
66
- internally. Resource payload references are shared read-only by default;
67
- [MotherLode retention](reference/motherlode-cache.md) defines the cases where
68
- a consumer must make an explicit copy.
69
-
70
- **Planned:** Known-size decode and transform operations should gain
71
- format-specific optional destination-array seams. Omitting the destination
72
- must preserve the convenient allocating call. Supplying a valid destination
73
- must fill and return that exact object. Each seam must:
74
-
75
- - require the correct typed-array kind and sufficient capacity before writing;
76
- - support non-zero-offset input and destination views;
77
- - leave input unchanged unless the operation explicitly documents an
78
- in-place transform;
79
- - produce the same bytes and typed-array kind as the allocating form; and
80
- - behave deterministically when one destination is reused across sequential
81
- calls.
82
-
83
- The first candidates are CMF decompression, FBX inflate and packed-array
84
- helpers, DDS block and uncompressed decoders, PNG row/RGBA decode, JPEG
85
- component and final RGBA output, TGA RGBA decode, GIF compositing canvas, WAV
86
- PCM decode, and glTF data-URI decode. Decoder workspaces such as JPEG
87
- coefficient blocks, cached lookup tables, CRC tables, and small fixed scratch
88
- arrays remain implementation-owned rather than becoming public output
89
- arguments.
90
-
91
- Some copies remain necessary: mutation of otherwise shared data,
92
- `ArrayBuffer` transfer/detachment, compacting a small retained range out of a
93
- large backing buffer, immutable frame history, and platform APIs that expose
94
- no destination seam. Those copies should stay explicit at the owning call
95
- site. This direction does not introduce a generic deep-copy operation for
96
- payload objects or typed-array bundles.
97
-
98
- ## Scoped lock token
99
-
100
- **Planned:** add `AcquireLock()` as an async-safe wrapper around the current
101
- `Lock()`/`Unlock()` contract. Existing `KeepAlive()` and
102
- `KeepPayloadAlive()` behavior remains current package API; this roadmap does
103
- not propose removing it.
104
-
105
- Raw `Lock()` / `Unlock()` is easy to mis-pair across asynchronous success,
106
- failure, cancellation, and disposal. Prefer a JS-only acquired-lock API:
107
-
108
- ```js
109
- const hold = resource.AcquireLock();
110
- try {
111
- const payload = await resource.Ready();
112
- await consume(payload);
113
- } finally {
114
- hold.Release();
115
- }
116
- ```
117
-
118
- The acquired token should add exactly one lock, capture the canonical key and
119
- ownership generation that received it, and release that exact lock at most
120
- once. `Release()` must be idempotent. If the original record has been
121
- deleted, replaced, purged, or rebound, releasing the stale token must not
122
- decrement a new owner's lock. Acquisition and release must never fetch,
123
- reconstruct, prepare, or release payload data themselves.
124
-
125
- The token is an async-safety replacement for exposing the existing raw lock
126
- count, not a new retention policy. For example, runtime-audio can hold
127
- source/PCM payload through decode and release the token once it owns the
128
- resulting WebAudio `AudioBuffer`; keeping the resource locked for the full
129
- playback or decoded-cache lifetime would unnecessarily retain both
130
- representations. Runtime-lifetime and group retention remain caller policy
131
- built from explicit tokens, not an implicit default on every loaded resource.
132
-
133
- ## Open design questions
134
-
135
- - Should `Unload()` drop only adapter payloads by default, or CPU payloads
136
- too?
137
- - Should there be explicit `UnloadAdapterResources()`, `UnloadPayload()`, and
138
- `Purge()` phases?
139
- - Which format/resource-specific estimators should supply separate identity,
140
- CPU-payload, and adapter byte weights without double-counting shared
141
- buffers?
142
- - Should manually attached/dynamic resources default to locked, like ccpwgl's
143
- manual shader resources use `doNotPurge`?
144
- - Should a resource-level `Purge()` complement the existing automatic and
145
- MotherLode-level eviction operations?
146
-
147
- ## Related documentation
148
-
149
- - [MotherLode identity, cache, and retention](reference/motherlode-cache.md)
150
- - [Candidate-first atomic reload](reference/reload.md)
1
+ # Roadmap
2
+
3
+ Status: Evolving
4
+ Scope: `@carbonenginejs/runtime-resource`
5
+ Audience: Integrators and maintainers
6
+ Summary: Records approved future direction, open design questions, and the current shader-format boundary needed to interpret that direction.
7
+
8
+ Unless a section is explicitly marked **Current**, everything below is future
9
+ work. Current behavior is documented in the
10
+ [reference pages](reference/motherlode-cache.md); where this page and a
11
+ reference page disagree, the reference page describes the shipped package.
12
+
13
+ ## Runtime manager follow-up
14
+
15
+ The ResMan/MotherLode contract is complete for its current consumers. Future
16
+ work should be driven by measured application needs rather than another
17
+ resource preparation abstraction:
18
+
19
+ - main-queue priority and starvation policy;
20
+ - cancellation/abort propagation for work that has already started;
21
+ - `WaitUrgent()` after real priority and bounded fairness;
22
+ - queue-time and reader/format-time telemetry;
23
+ - application-level default retention policy selection;
24
+ - automatic resource/payload byte estimation and separate CPU/adapter
25
+ budgets;
26
+ - additional browser-source response types and configurable worker-pool
27
+ concurrency.
28
+
29
+ ## Browser shader formats
30
+
31
+ **Current:** HLSL, DXBC, WebGL, and WebGPU are consolidated into
32
+ runtime-resource and exposed as independently importable
33
+ `@carbonenginejs/runtime-resource/formats/<name>` entry points. HLSL and DXBC
34
+ remain directly usable; WebGL and WebGPU compose them to read DX11/DX12 effect
35
+ inputs and translate them.
36
+
37
+ **Planned:** Browser delivery and fallback policy still needs a stable
38
+ application-facing contract.
39
+
40
+ Browser-targeted production modules must not import or require Node-only
41
+ shader libraries. A format package may use local Node libraries as development
42
+ or test dependencies for fixtures, comparison, and conformance checks, but
43
+ those libraries must not ship and must not be runtime dependencies.
44
+
45
+ ccpwgl currently preserves an authored `.fx` path while `Tw2Device` maps it to
46
+ a backend-specific remote namespace such as `effect.gles2` or `effect.webgl2`
47
+ and appends the selected shader-model extension. The resource/format
48
+ contract must retain both use cases:
49
+
50
+ - resolve and load a pretranslated backend artifact from a remote resource
51
+ provider or tools-core cache; and
52
+ - fall back to the authored effect input and translate it in the browser.
53
+
54
+ The authored effect path should remain the stable identity. Backend profile,
55
+ shader model, translated cache path, and translation capabilities are
56
+ resolution facts rather than changes a caller must make to its source path.
57
+
58
+ ## Format buffer ownership and destination reuse
59
+
60
+ **Current:** The CMF, DDS, FBX, GIF, glTF, JPEG, MP3, MP4, Ogg, PNG, STL,
61
+ TGA, WAV, WebM, and WebP byte normalizers preserve an existing `Uint8Array`.
62
+ `ArrayBuffer` and other byte-addressable views are exposed through a
63
+ `Uint8Array` view over the same backing storage rather than copied merely for
64
+ input normalization. Decode operations that produce new pixel, sample,
65
+ geometry, or decompression payloads currently allocate those result arrays
66
+ internally. Resource payload references are shared read-only by default;
67
+ [MotherLode retention](reference/motherlode-cache.md) defines the cases where
68
+ a consumer must make an explicit copy.
69
+
70
+ **Planned:** Known-size decode and transform operations should gain
71
+ format-specific optional destination-array seams. Omitting the destination
72
+ must preserve the convenient allocating call. Supplying a valid destination
73
+ must fill and return that exact object. Each seam must:
74
+
75
+ - require the correct typed-array kind and sufficient capacity before writing;
76
+ - support non-zero-offset input and destination views;
77
+ - leave input unchanged unless the operation explicitly documents an
78
+ in-place transform;
79
+ - produce the same bytes and typed-array kind as the allocating form; and
80
+ - behave deterministically when one destination is reused across sequential
81
+ calls.
82
+
83
+ The first candidates are CMF decompression, FBX inflate and packed-array
84
+ helpers, DDS block and uncompressed decoders, PNG row/RGBA decode, JPEG
85
+ component and final RGBA output, TGA RGBA decode, GIF compositing canvas, WAV
86
+ PCM decode, and glTF data-URI decode. Decoder workspaces such as JPEG
87
+ coefficient blocks, cached lookup tables, CRC tables, and small fixed scratch
88
+ arrays remain implementation-owned rather than becoming public output
89
+ arguments.
90
+
91
+ Some copies remain necessary: mutation of otherwise shared data,
92
+ `ArrayBuffer` transfer/detachment, compacting a small retained range out of a
93
+ large backing buffer, immutable frame history, and platform APIs that expose
94
+ no destination seam. Those copies should stay explicit at the owning call
95
+ site. This direction does not introduce a generic deep-copy operation for
96
+ payload objects or typed-array bundles.
97
+
98
+ ## Scoped lock token
99
+
100
+ **Planned:** add `AcquireLock()` as an async-safe wrapper around the current
101
+ `Lock()`/`Unlock()` contract. Existing `KeepAlive()` and
102
+ `KeepPayloadAlive()` behavior remains current package API; this roadmap does
103
+ not propose removing it.
104
+
105
+ Raw `Lock()` / `Unlock()` is easy to mis-pair across asynchronous success,
106
+ failure, cancellation, and disposal. Prefer a JS-only acquired-lock API:
107
+
108
+ ```js
109
+ const hold = resource.AcquireLock();
110
+ try {
111
+ const payload = await resource.Ready();
112
+ await consume(payload);
113
+ } finally {
114
+ hold.Release();
115
+ }
116
+ ```
117
+
118
+ The acquired token should add exactly one lock, capture the canonical key and
119
+ ownership generation that received it, and release that exact lock at most
120
+ once. `Release()` must be idempotent. If the original record has been
121
+ deleted, replaced, purged, or rebound, releasing the stale token must not
122
+ decrement a new owner's lock. Acquisition and release must never fetch,
123
+ reconstruct, prepare, or release payload data themselves.
124
+
125
+ The token is an async-safety replacement for exposing the existing raw lock
126
+ count, not a new retention policy. For example, runtime-audio can hold
127
+ source/PCM payload through decode and release the token once it owns the
128
+ resulting WebAudio `AudioBuffer`; keeping the resource locked for the full
129
+ playback or decoded-cache lifetime would unnecessarily retain both
130
+ representations. Runtime-lifetime and group retention remain caller policy
131
+ built from explicit tokens, not an implicit default on every loaded resource.
132
+
133
+ ## Open design questions
134
+
135
+ - Should `Unload()` drop only adapter payloads by default, or CPU payloads
136
+ too?
137
+ - Should there be explicit `UnloadAdapterResources()`, `UnloadPayload()`, and
138
+ `Purge()` phases?
139
+ - Which format/resource-specific estimators should supply separate identity,
140
+ CPU-payload, and adapter byte weights without double-counting shared
141
+ buffers?
142
+ - Should manually attached/dynamic resources default to locked, like ccpwgl's
143
+ manual shader resources use `doNotPurge`?
144
+ - Should a resource-level `Purge()` complement the existing automatic and
145
+ MotherLode-level eviction operations?
146
+
147
+ ## Related documentation
148
+
149
+ - [MotherLode identity, cache, and retention](reference/motherlode-cache.md)
150
+ - [Candidate-first atomic reload](reference/reload.md)
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,47 +1,47 @@
1
- format-black
2
-
3
- Copyright (c) CarbonEngineJS contributors.
4
- CarbonEngine source material, formats, class names, and schema semantics remain
5
- copyright their original CarbonEngine authors.
6
- Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
- and EVE-related data remain copyright their original holders.
8
-
9
- This package is a CarbonEngineJS-facing reader for `.black` files. It
10
- contains original project code unless third-party material is explicitly listed
11
- below.
12
- CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
- interoperability, provenance, and future migration context only. This package is
14
- not affiliated with or endorsed by CCP Games.
15
-
16
- Third-party reference material
17
- ------------------------------
18
-
19
- black-reader-js
20
- Repository: https://github.com/rawrafox/black-reader-js
21
- Author: rawrafox
22
- Package author: aurora
23
- License: MIT
24
- Local license notice: Copyright (c) 2023 @rawrafox and @cppctamber
25
-
26
- CarbonEngineJS uses black-reader-js as reference material for `.black` format
27
- behavior. The format-black package is implemented against CarbonEngineJS
28
- runtime-utils/canonical schema definitions and emits CarbonEngineJS public
29
- Black payload data.
30
-
31
- Provenance and legal requirements
32
- ---------------------------------
33
-
34
- This scaffold currently contains CarbonEngineJS original project code plus the
35
- third-party reference attribution listed above. It does not include copied
36
- CarbonEngine source code or third-party parser code.
37
-
38
- If future work copies, ports, translates, or derives from CarbonEngine, ccpwgl,
39
- Fenris Creations (CCP Games) / EVE assets or tools, or any third-party library,
40
- update this NOTICE before committing that work with:
41
-
42
- - upstream copyright holders;
43
- - upstream project/repository, file path, and revision when known;
44
- - upstream license name, license text or required notice location, and any
45
- redistribution obligations;
46
- - whether the material was copied/ported/adapted, or used only as a behavioral
47
- reference with no copied expression.
1
+ format-black
2
+
3
+ Copyright (c) CarbonEngineJS contributors.
4
+ CarbonEngine source material, formats, class names, and schema semantics remain
5
+ copyright their original CarbonEngine authors.
6
+ Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
+ and EVE-related data remain copyright their original holders.
8
+
9
+ This package is a CarbonEngineJS-facing reader for `.black` files. It
10
+ contains original project code unless third-party material is explicitly listed
11
+ below.
12
+ CarbonEngine and Fenris Creations (CCP Games) are mentioned for
13
+ interoperability, provenance, and future migration context only. This package is
14
+ not affiliated with or endorsed by CCP Games.
15
+
16
+ Third-party reference material
17
+ ------------------------------
18
+
19
+ black-reader-js
20
+ Repository: https://github.com/rawrafox/black-reader-js
21
+ Author: rawrafox
22
+ Package author: aurora
23
+ License: MIT
24
+ Local license notice: Copyright (c) 2023 @rawrafox and @cppctamber
25
+
26
+ CarbonEngineJS uses black-reader-js as reference material for `.black` format
27
+ behavior. The format-black package is implemented against CarbonEngineJS
28
+ runtime-utils/canonical schema definitions and emits CarbonEngineJS public
29
+ Black payload data.
30
+
31
+ Provenance and legal requirements
32
+ ---------------------------------
33
+
34
+ This scaffold currently contains CarbonEngineJS original project code plus the
35
+ third-party reference attribution listed above. It does not include copied
36
+ CarbonEngine source code or third-party parser code.
37
+
38
+ If future work copies, ports, translates, or derives from CarbonEngine, ccpwgl,
39
+ Fenris Creations (CCP Games) / EVE assets or tools, or any third-party library,
40
+ update this NOTICE before committing that work with:
41
+
42
+ - upstream copyright holders;
43
+ - upstream project/repository, file path, and revision when known;
44
+ - upstream license name, license text or required notice location, and any
45
+ redistribution obligations;
46
+ - whether the material was copied/ported/adapted, or used only as a behavioral
47
+ reference with no copied expression.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,21 +1,21 @@
1
- formats/bnk
2
-
3
- Copyright (c) CarbonEngineJS contributors.
4
- CarbonEngine source material, formats, class names, and schema semantics remain
5
- copyright their original CarbonEngine authors.
6
- Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
- and EVE-related data remain copyright their original holders.
8
- Wwise and the Wwise soundbank format are property of Audiokinetic Inc.
9
-
10
- This reader is original CarbonEngineJS code authored directly in
11
- runtime-resource; no legacy package was copied. The soundbank chunk layout,
12
- HIRC object field layouts, the event-graph resolution exposed as
13
- `eventMediaFromBanks`, and the typed version-150 authored-SFX node tails
14
- exposed as `sfxNodesFromBanks` were implemented from publicly documented
15
- community knowledge of the format (ww2ogg, vgmstream, wwiser documentation)
16
- and independently verified by hexdump against EVE Online soundbanks (bank
17
- generator version 150); no code was copied from those projects and no
18
- Audiokinetic SDK material was used.
19
- Audiokinetic, CarbonEngine, and Fenris Creations (CCP Games) are mentioned for
20
- interoperability, provenance, and future migration context only. This package
21
- is not affiliated with or endorsed by Audiokinetic Inc. or CCP Games.
1
+ formats/bnk
2
+
3
+ Copyright (c) CarbonEngineJS contributors.
4
+ CarbonEngine source material, formats, class names, and schema semantics remain
5
+ copyright their original CarbonEngine authors.
6
+ Fenris Creations (CCP Games) source material, tools, assets, shader behavior,
7
+ and EVE-related data remain copyright their original holders.
8
+ Wwise and the Wwise soundbank format are property of Audiokinetic Inc.
9
+
10
+ This reader is original CarbonEngineJS code authored directly in
11
+ runtime-resource; no legacy package was copied. The soundbank chunk layout,
12
+ HIRC object field layouts, the event-graph resolution exposed as
13
+ `eventMediaFromBanks`, and the typed version-150 authored-SFX node tails
14
+ exposed as `sfxNodesFromBanks` were implemented from publicly documented
15
+ community knowledge of the format (ww2ogg, vgmstream, wwiser documentation)
16
+ and independently verified by hexdump against EVE Online soundbanks (bank
17
+ generator version 150); no code was copied from those projects and no
18
+ Audiokinetic SDK material was used.
19
+ Audiokinetic, CarbonEngine, and Fenris Creations (CCP Games) are mentioned for
20
+ interoperability, provenance, and future migration context only. This package
21
+ is not affiliated with or endorsed by Audiokinetic Inc. or CCP Games.
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2026 CarbonEngineJS contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 CarbonEngineJS contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,36 +1,36 @@
1
- carbonenginejs/format-cmf
2
- =========================
3
-
4
- A pure-JavaScript reader for Carbon Mesh Format (.cmf) geometry containers.
5
-
6
- CarbonEngineJS-facing code is copyright CarbonEngineJS contributors.
7
- CarbonEngine source material, formats, class names, and schema semantics remain
8
- copyright their original CarbonEngine authors. Fenris Creations (CCP Games)
9
- source material, tools, assets, shader behavior, and EVE-related data remain
10
- copyright their original holders.
11
-
12
- CarbonEngine and Fenris Creations (CCP Games) are mentioned for interoperability
13
- and provenance context. This package is not affiliated with or endorsed by CCP
14
- Games.
15
-
16
- Format reference
17
- ----------------
18
-
19
- The CMF v1 structure names, enum names, layout, and validation behavior were
20
- implemented from the local CarbonEngine mesh headers and sources:
21
-
22
- - mesh/include/cmf/cmf.h
23
- - mesh/include/cmf/v1.h
24
- - mesh/include/cmf/span.h
25
- - mesh/include/cmf/writer.h
26
- - mesh/src/cmf/writer.cpp
27
- - mesh/src/cmf/utils.cpp
28
-
29
- No CarbonEngine implementation code is copied into this package.
30
-
31
- Third-party dependencies
32
- ------------------------
33
-
34
- meshoptimizer JavaScript package
35
- Used for decoding CMF GPU-buffer sections compressed with meshoptimizer
36
- vertex/index codecs. Copyright Arseny Kapoulkine, MIT License.
1
+ carbonenginejs/format-cmf
2
+ =========================
3
+
4
+ A pure-JavaScript reader for Carbon Mesh Format (.cmf) geometry containers.
5
+
6
+ CarbonEngineJS-facing code is copyright CarbonEngineJS contributors.
7
+ CarbonEngine source material, formats, class names, and schema semantics remain
8
+ copyright their original CarbonEngine authors. Fenris Creations (CCP Games)
9
+ source material, tools, assets, shader behavior, and EVE-related data remain
10
+ copyright their original holders.
11
+
12
+ CarbonEngine and Fenris Creations (CCP Games) are mentioned for interoperability
13
+ and provenance context. This package is not affiliated with or endorsed by CCP
14
+ Games.
15
+
16
+ Format reference
17
+ ----------------
18
+
19
+ The CMF v1 structure names, enum names, layout, and validation behavior were
20
+ implemented from the local CarbonEngine mesh headers and sources:
21
+
22
+ - mesh/include/cmf/cmf.h
23
+ - mesh/include/cmf/v1.h
24
+ - mesh/include/cmf/span.h
25
+ - mesh/include/cmf/writer.h
26
+ - mesh/src/cmf/writer.cpp
27
+ - mesh/src/cmf/utils.cpp
28
+
29
+ No CarbonEngine implementation code is copied into this package.
30
+
31
+ Third-party dependencies
32
+ ------------------------
33
+
34
+ meshoptimizer JavaScript package
35
+ Used for decoding CMF GPU-buffer sections compressed with meshoptimizer
36
+ vertex/index codecs. Copyright Arseny Kapoulkine, MIT License.