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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1,6 +1,7 @@
1
+ import { assertCarbonRecord } from '../../format/carbonRecordGuard.js';
1
2
  import { CjsSchema, impl, type } from '#schema';
2
3
  import { CjsModel } from '#model';
3
- import { isPlainObject } from '#utils/is';
4
+ import '#utils/is';
4
5
  import { copyBytes } from '#utils/bytes';
5
6
  import { Tr2EffectStageInput } from './Tr2EffectStageInput.js';
6
7
  import { recordText, recordBytes, toRecordText, toRecordBlob } from './carbonRecordFields.js';
@@ -48,12 +49,12 @@ class Tr2EffectLibrary extends CjsModel {
48
49
  /** Portable export records retained before backend library registration. */
49
50
  exports = [];
50
51
 
51
- /**
52
- * Construct one canonical library from JS/JSON model values.
53
- *
54
- * @param {object} values Canonical model values.
55
- * @param {object} options CjsModel import options.
56
- * @returns {Tr2EffectLibrary} Hydrated library.
52
+ /**
53
+ * Construct one canonical library from JS/JSON model values.
54
+ *
55
+ * @param {object} values Canonical model values.
56
+ * @param {object} options CjsModel import options.
57
+ * @returns {Tr2EffectLibrary} Hydrated library.
57
58
  */
58
59
  static from(values = {}, options = {}) {
59
60
  let normalized = values;
@@ -74,19 +75,17 @@ class Tr2EffectLibrary extends CjsModel {
74
75
  return library;
75
76
  }
76
77
 
77
- /**
78
- * Build one raytracing library from its Carbon v15 description record.
79
- *
80
- * A library carries two `StageData` blocks of its own — a global and a local
81
- * input — which are the same block a stage carries, minus the stage wrapper.
82
- *
83
- * @param {object} record Carbon library record.
84
- * @returns {Tr2EffectLibrary} Reflected library.
78
+ /**
79
+ * Build one raytracing library from its Carbon v15 description record.
80
+ *
81
+ * A library carries two `StageData` blocks of its own — a global and a local
82
+ * input — which are the same block a stage carries, minus the stage wrapper.
83
+ *
84
+ * @param {object} record Carbon library record.
85
+ * @returns {Tr2EffectLibrary} Reflected library.
85
86
  */
86
87
  static fromCarbonBinary(record) {
87
- if (!isPlainObject(record)) {
88
- throw new TypeError("Carbon effect library record must be an object");
89
- }
88
+ assertCarbonRecord(record, "library");
90
89
  const library = new this();
91
90
  library.payloadSize = record.payloadSize;
92
91
  library.hitGroupName = recordText(record.hitGroupName);
@@ -115,13 +114,13 @@ class Tr2EffectLibrary extends CjsModel {
115
114
  return library;
116
115
  }
117
116
 
118
- /**
119
- * Emit this library as a Carbon v15 record.
120
- *
121
- * `exports` is authoritative; the named entry-point fields are a view onto it
122
- * and are not written separately.
123
- *
124
- * @returns {object} Carbon library record.
117
+ /**
118
+ * Emit this library as a Carbon v15 record.
119
+ *
120
+ * `exports` is authoritative; the named entry-point fields are a view onto it
121
+ * and are not written separately.
122
+ *
123
+ * @returns {object} Carbon library record.
125
124
  */
126
125
  toCarbonBinary() {
127
126
  const program = this.sourceProgram ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2EffectLibrary.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectLibrary.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\r\nimport { CjsSchema, impl, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport {\r\n isPlainObject\r\n} from \"#utils/is\";\r\nimport { copyBytes } from \"#utils/bytes\";\r\nimport { Tr2EffectStageInput } from \"./Tr2EffectStageInput.js\";\r\nimport {\r\n recordBytes,\r\n recordText,\r\n toRecordBlob,\r\n toRecordText\r\n} from \"./carbonRecordFields.js\";\r\n\r\n/** Reflected shader-library metadata. */\r\nexport class Tr2EffectLibrary extends CjsModel\r\n{\r\n\r\n /** payloadSize (uint32_t) */\r\n payloadSize = 0;\r\n\r\n /** libraryHandle (uint32_t) */\r\n libraryHandle = 0;\r\n\r\n /** rayGenName (BlueSharedStringW) */\r\n rayGenName = \"\";\r\n\r\n /** missName (BlueSharedStringW) */\r\n missName = \"\";\r\n\r\n /** closestHitName (BlueSharedStringW) */\r\n closestHitName = \"\";\r\n\r\n /** anyHitName (BlueSharedStringW) */\r\n anyHitName = \"\";\r\n\r\n /** intersectionName (BlueSharedStringW) */\r\n intersectionName = \"\";\r\n\r\n /** hitGroupName (BlueSharedStringW) */\r\n hitGroupName = \"\";\r\n\r\n /** globalInput (Tr2EffectStageInput) */\r\n globalInput = null;\r\n\r\n /** localInput (Tr2EffectStageInput) */\r\n localInput = null;\r\n\r\n /** globalResourceSetDesc (Tr2ResourceSetDescriptionAL) */\r\n globalResourceSetDesc = null;\r\n\r\n /** Exact source library program metadata and owned bytes. */\r\n sourceProgram = null;\r\n\r\n /** Portable export records retained before backend library registration. */\r\n exports = [];\r\n\r\n /**\r\n * Construct one canonical library from JS/JSON model values.\r\n *\r\n * @param {object} values Canonical model values.\r\n * @param {object} options CjsModel import options.\r\n * @returns {Tr2EffectLibrary} Hydrated library.\r\n */\r\n static from(values = {}, options = {})\r\n {\r\n let normalized = values;\r\n const inputs = new Map();\r\n for (const field of [ \"globalInput\", \"localInput\" ])\r\n {\r\n if (values?.[field]\r\n && !(values[field] instanceof Tr2EffectStageInput))\r\n {\r\n normalized = normalized === values ? { ...values } : normalized;\r\n normalized[field] = Tr2EffectStageInput.from(\r\n values[field],\r\n options\r\n );\r\n inputs.set(field, normalized[field]);\r\n }\r\n }\r\n const library = super.from(normalized, options);\r\n for (const [ field, value ] of inputs)\r\n {\r\n library[field] = value;\r\n }\r\n return library;\r\n }\r\n\r\n /**\r\n * Build one raytracing library from its Carbon v15 description record.\r\n *\r\n * A library carries two `StageData` blocks of its own — a global and a local\r\n * input — which are the same block a stage carries, minus the stage wrapper.\r\n *\r\n * @param {object} record Carbon library record.\r\n * @returns {Tr2EffectLibrary} Reflected library.\r\n */\r\n static fromCarbonBinary(record)\r\n {\r\n if (!isPlainObject(record))\r\n {\r\n throw new TypeError(\"Carbon effect library record must be an object\");\r\n }\r\n\r\n const library = new this();\r\n library.payloadSize = record.payloadSize;\r\n library.hitGroupName = recordText(record.hitGroupName);\r\n library.exports = record.exports.map(entry => ({\r\n type: entry.type,\r\n name: recordText(entry.name)\r\n }));\r\n // The export type is the only thing that names an entry point; the record\r\n // stores a flat list and the named fields are a view onto it.\r\n for (const entry of library.exports)\r\n {\r\n if (entry.type === 0) library.rayGenName = entry.name;\r\n if (entry.type === 1) library.missName = entry.name;\r\n if (entry.type === 2) library.closestHitName = entry.name;\r\n if (entry.type === 3) library.anyHitName = entry.name;\r\n if (entry.type === 4) library.intersectionName = entry.name;\r\n }\r\n library.sourceProgram = {\r\n kind: \"library\",\r\n bytes: copyBytes(recordBytes(record.shaderData)),\r\n shaderSize: record.shaderData.size,\r\n // See Tr2EffectStageInput: only a zero-size blob's word is portable.\r\n unsetOffset: record.shaderData.size === 0\r\n ? record.shaderData.offset\r\n : 0xffffffff\r\n };\r\n library.globalInput = Tr2EffectStageInput.fromCarbonBinaryInput(\r\n record.globalInputs\r\n );\r\n library.localInput = Tr2EffectStageInput.fromCarbonBinaryInput(\r\n record.localInputs\r\n );\r\n return library;\r\n }\r\n\r\n\r\n /**\r\n * Emit this library as a Carbon v15 record.\r\n *\r\n * `exports` is authoritative; the named entry-point fields are a view onto it\r\n * and are not written separately.\r\n *\r\n * @returns {object} Carbon library record.\r\n */\r\n toCarbonBinary()\r\n {\r\n const program = this.sourceProgram ?? {};\r\n return {\r\n payloadSize: this.payloadSize >>> 0,\r\n shaderData: toRecordBlob(\r\n program.bytes,\r\n program.shaderSize,\r\n program.unsetOffset\r\n ),\r\n exports: this.exports.map(entry => ({\r\n type: entry.type,\r\n name: toRecordText(entry.name)\r\n })),\r\n hitGroupName: toRecordText(this.hitGroupName),\r\n globalInputs: this.globalInput.toCarbonBinaryInput(),\r\n localInputs: this.localInput.toCarbonBinaryInput()\r\n };\r\n }\r\n}\r\n\r\n// Declared imperatively rather than with decorators, so this module stays\r\n// plain ESM that loads from source without a transform. The decorator\r\n// expressions are reused verbatim, so the registered metadata is identical.\r\n// Statics belong in `methods`: decorateMethod targets the prototype and\r\n// would register a static as an instance field.\r\nCjsSchema.define(Tr2EffectLibrary, {\r\n className: \"Tr2EffectLibrary\",\r\n family: \"shader\",\r\n fields: {\r\n payloadSize: type.uint32,\r\n libraryHandle: type.uint32,\r\n rayGenName: type.string,\r\n missName: type.string,\r\n closestHitName: type.string,\r\n anyHitName: type.string,\r\n intersectionName: type.string,\r\n hitGroupName: type.string,\r\n globalInput: type.rawStruct(\"Tr2EffectStageInput\"),\r\n localInput: type.rawStruct(\"Tr2EffectStageInput\"),\r\n globalResourceSetDesc: type.rawStruct(\"Tr2ResourceSetDescriptionAL\"),\r\n sourceProgram: [ impl.adapted, impl.reason(\"Carbon registers the library with the renderer while reading; the device-free graph retains the source program for later engine realization.\"), type.rawStruct(\"CjsEffectSourceProgram\") ],\r\n exports: [ impl.adapted, impl.reason(\"Carbon resolves these exports into a renderer library handle; the device-free graph keeps the declarative export list.\"), type.rawStruct(\"CjsEffectLibraryExports\") ]\r\n }\r\n});\r\n"],"names":["Tr2EffectLibrary","CjsModel","payloadSize","libraryHandle","rayGenName","missName","closestHitName","anyHitName","intersectionName","hitGroupName","globalInput","localInput","globalResourceSetDesc","sourceProgram","exports","from","values","options","normalized","inputs","Map","field","Tr2EffectStageInput","set","library","value","fromCarbonBinary","record","isPlainObject","TypeError","recordText","map","entry","type","name","kind","bytes","copyBytes","recordBytes","shaderData","shaderSize","size","unsetOffset","offset","fromCarbonBinaryInput","globalInputs","localInputs","toCarbonBinary","program","toRecordBlob","toRecordText","toCarbonBinaryInput","CjsSchema","define","className","family","fields","uint32","string","rawStruct","impl","adapted","reason"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2EffectLibrary.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectLibrary.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { assertCarbonRecord } from \"../../format/carbonRecordGuard.js\";\nimport { CjsSchema, impl, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport {\n} from \"#utils/is\";\nimport { copyBytes } from \"#utils/bytes\";\nimport { Tr2EffectStageInput } from \"./Tr2EffectStageInput.js\";\nimport {\n recordBytes,\n recordText,\n toRecordBlob,\n toRecordText\n} from \"./carbonRecordFields.js\";\n\n/** Reflected shader-library metadata. */\nexport class Tr2EffectLibrary extends CjsModel\n{\n\n /** payloadSize (uint32_t) */\n payloadSize = 0;\n\n /** libraryHandle (uint32_t) */\n libraryHandle = 0;\n\n /** rayGenName (BlueSharedStringW) */\n rayGenName = \"\";\n\n /** missName (BlueSharedStringW) */\n missName = \"\";\n\n /** closestHitName (BlueSharedStringW) */\n closestHitName = \"\";\n\n /** anyHitName (BlueSharedStringW) */\n anyHitName = \"\";\n\n /** intersectionName (BlueSharedStringW) */\n intersectionName = \"\";\n\n /** hitGroupName (BlueSharedStringW) */\n hitGroupName = \"\";\n\n /** globalInput (Tr2EffectStageInput) */\n globalInput = null;\n\n /** localInput (Tr2EffectStageInput) */\n localInput = null;\n\n /** globalResourceSetDesc (Tr2ResourceSetDescriptionAL) */\n globalResourceSetDesc = null;\n\n /** Exact source library program metadata and owned bytes. */\n sourceProgram = null;\n\n /** Portable export records retained before backend library registration. */\n exports = [];\n\n /**\n * Construct one canonical library from JS/JSON model values.\n *\n * @param {object} values Canonical model values.\n * @param {object} options CjsModel import options.\n * @returns {Tr2EffectLibrary} Hydrated library.\n */\n static from(values = {}, options = {})\n {\n let normalized = values;\n const inputs = new Map();\n for (const field of [ \"globalInput\", \"localInput\" ])\n {\n if (values?.[field]\n && !(values[field] instanceof Tr2EffectStageInput))\n {\n normalized = normalized === values ? { ...values } : normalized;\n normalized[field] = Tr2EffectStageInput.from(\n values[field],\n options\n );\n inputs.set(field, normalized[field]);\n }\n }\n const library = super.from(normalized, options);\n for (const [ field, value ] of inputs)\n {\n library[field] = value;\n }\n return library;\n }\n\n /**\n * Build one raytracing library from its Carbon v15 description record.\n *\n * A library carries two `StageData` blocks of its own — a global and a local\n * input — which are the same block a stage carries, minus the stage wrapper.\n *\n * @param {object} record Carbon library record.\n * @returns {Tr2EffectLibrary} Reflected library.\n */\n static fromCarbonBinary(record)\n {\n assertCarbonRecord(record, \"library\");\n\n const library = new this();\n library.payloadSize = record.payloadSize;\n library.hitGroupName = recordText(record.hitGroupName);\n library.exports = record.exports.map(entry => ({\n type: entry.type,\n name: recordText(entry.name)\n }));\n // The export type is the only thing that names an entry point; the record\n // stores a flat list and the named fields are a view onto it.\n for (const entry of library.exports)\n {\n if (entry.type === 0) library.rayGenName = entry.name;\n if (entry.type === 1) library.missName = entry.name;\n if (entry.type === 2) library.closestHitName = entry.name;\n if (entry.type === 3) library.anyHitName = entry.name;\n if (entry.type === 4) library.intersectionName = entry.name;\n }\n library.sourceProgram = {\n kind: \"library\",\n bytes: copyBytes(recordBytes(record.shaderData)),\n shaderSize: record.shaderData.size,\n // See Tr2EffectStageInput: only a zero-size blob's word is portable.\n unsetOffset: record.shaderData.size === 0\n ? record.shaderData.offset\n : 0xffffffff\n };\n library.globalInput = Tr2EffectStageInput.fromCarbonBinaryInput(\n record.globalInputs\n );\n library.localInput = Tr2EffectStageInput.fromCarbonBinaryInput(\n record.localInputs\n );\n return library;\n }\n\n\n /**\n * Emit this library as a Carbon v15 record.\n *\n * `exports` is authoritative; the named entry-point fields are a view onto it\n * and are not written separately.\n *\n * @returns {object} Carbon library record.\n */\n toCarbonBinary()\n {\n const program = this.sourceProgram ?? {};\n return {\n payloadSize: this.payloadSize >>> 0,\n shaderData: toRecordBlob(\n program.bytes,\n program.shaderSize,\n program.unsetOffset\n ),\n exports: this.exports.map(entry => ({\n type: entry.type,\n name: toRecordText(entry.name)\n })),\n hitGroupName: toRecordText(this.hitGroupName),\n globalInputs: this.globalInput.toCarbonBinaryInput(),\n localInputs: this.localInput.toCarbonBinaryInput()\n };\n }\n}\n\n// Declared imperatively rather than with decorators, so this module stays\n// plain ESM that loads from source without a transform. The decorator\n// expressions are reused verbatim, so the registered metadata is identical.\n// Statics belong in `methods`: decorateMethod targets the prototype and\n// would register a static as an instance field.\nCjsSchema.define(Tr2EffectLibrary, {\n className: \"Tr2EffectLibrary\",\n family: \"shader\",\n fields: {\n payloadSize: type.uint32,\n libraryHandle: type.uint32,\n rayGenName: type.string,\n missName: type.string,\n closestHitName: type.string,\n anyHitName: type.string,\n intersectionName: type.string,\n hitGroupName: type.string,\n globalInput: type.rawStruct(\"Tr2EffectStageInput\"),\n localInput: type.rawStruct(\"Tr2EffectStageInput\"),\n globalResourceSetDesc: type.rawStruct(\"Tr2ResourceSetDescriptionAL\"),\n sourceProgram: [ impl.adapted, impl.reason(\"Carbon registers the library with the renderer while reading; the device-free graph retains the source program for later engine realization.\"), type.rawStruct(\"CjsEffectSourceProgram\") ],\n exports: [ impl.adapted, impl.reason(\"Carbon resolves these exports into a renderer library handle; the device-free graph keeps the declarative export list.\"), type.rawStruct(\"CjsEffectLibraryExports\") ]\n }\n});\n"],"names":["Tr2EffectLibrary","CjsModel","payloadSize","libraryHandle","rayGenName","missName","closestHitName","anyHitName","intersectionName","hitGroupName","globalInput","localInput","globalResourceSetDesc","sourceProgram","exports","from","values","options","normalized","inputs","Map","field","Tr2EffectStageInput","set","library","value","fromCarbonBinary","record","assertCarbonRecord","recordText","map","entry","type","name","kind","bytes","copyBytes","recordBytes","shaderData","shaderSize","size","unsetOffset","offset","fromCarbonBinaryInput","globalInputs","localInputs","toCarbonBinary","program","toRecordBlob","toRecordText","toCarbonBinaryInput","CjsSchema","define","className","family","fields","uint32","string","rawStruct","impl","adapted","reason"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { assertCarbonRecord } from '../../format/carbonRecordGuard.js';
1
2
  import { CjsSchema, type, impl } from '#schema';
2
3
  import { CjsModel } from '#model';
3
4
  import { dwordToFloat } from '#math/num';
4
- import { isPlainObject } from '#utils/is';
5
+ import '#utils/is';
5
6
  import { recordText, recordRawValue, toRecordText, toRecordRawValue } from './carbonRecordFields.js';
6
7
 
7
8
  // Source: trinity/trinity/Shader/Tr2EffectDescription.h
@@ -29,22 +30,20 @@ class Tr2EffectParameterAnnotation extends CjsModel {
29
30
  /** stringValue (const char*) */
30
31
  stringValue = "";
31
32
 
32
- /**
33
- * Build one typed annotation from its Carbon v15 description record.
34
- *
35
- * The type byte decides which member is meaningful, and every non-string type
36
- * arrives as four untyped bytes rather than a number — Carbon writes the value
37
- * through one member of a `{float,int32_t}` union and reads it back through
38
- * another, so the bit pattern is the only faithful carrier. `rawValue` keeps
39
- * those bits and the typed accessor is derived from them, never the reverse.
40
- *
41
- * @param {object} record Carbon annotation record.
42
- * @returns {Tr2EffectParameterAnnotation} Reflected annotation.
33
+ /**
34
+ * Build one typed annotation from its Carbon v15 description record.
35
+ *
36
+ * The type byte decides which member is meaningful, and every non-string type
37
+ * arrives as four untyped bytes rather than a number — Carbon writes the value
38
+ * through one member of a `{float,int32_t}` union and reads it back through
39
+ * another, so the bit pattern is the only faithful carrier. `rawValue` keeps
40
+ * those bits and the typed accessor is derived from them, never the reverse.
41
+ *
42
+ * @param {object} record Carbon annotation record.
43
+ * @returns {Tr2EffectParameterAnnotation} Reflected annotation.
43
44
  */
44
45
  static fromCarbonBinary(record) {
45
- if (!isPlainObject(record)) {
46
- throw new TypeError("Carbon effect annotation record must be an object");
47
- }
46
+ assertCarbonRecord(record, "annotation");
48
47
  const annotation = new this();
49
48
  annotation.name = recordText(record.name);
50
49
  annotation.type = record.type;
@@ -70,13 +69,13 @@ class Tr2EffectParameterAnnotation extends CjsModel {
70
69
  return annotation;
71
70
  }
72
71
 
73
- /**
74
- * Emit this annotation as a Carbon v15 record.
75
- *
76
- * The type byte decides which branch the writer takes, and every non-string
77
- * type travels as the raw bits rather than the typed member.
78
- *
79
- * @returns {object} Carbon annotation record.
72
+ /**
73
+ * Emit this annotation as a Carbon v15 record.
74
+ *
75
+ * The type byte decides which branch the writer takes, and every non-string
76
+ * type travels as the raw bits rather than the typed member.
77
+ *
78
+ * @returns {object} Carbon annotation record.
80
79
  */
81
80
  toCarbonBinary() {
82
81
  if (this.type === Tr2EffectParameterAnnotation.Type.STRING) {
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2EffectParameterAnnotation.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectParameterAnnotation.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\r\nimport { CjsSchema, impl, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { dwordToFloat } from \"#math/num\";\r\nimport {\r\n isPlainObject\r\n} from \"#utils/is\";\r\nimport { recordRawValue, recordText, toRecordRawValue, toRecordText } from \"./carbonRecordFields.js\";\r\n\r\n/** Typed annotation attached to a reflected effect parameter. */\r\nexport class Tr2EffectParameterAnnotation extends CjsModel\r\n{\r\n\r\n /** name (const char*) */\r\n name = \"\";\r\n\r\n /** type (Type - enum Type) */\r\n type = 0;\r\n\r\n /** boolValue (bool) */\r\n boolValue = false;\r\n\r\n /** Exact serialized BOOL, INT, or FLOAT payload bits. */\r\n rawValue = 0;\r\n\r\n /** intValue (int) */\r\n intValue = 0;\r\n\r\n /** floatValue (float) */\r\n floatValue = 0;\r\n\r\n /** stringValue (const char*) */\r\n stringValue = \"\";\r\n\r\n /**\r\n * Build one typed annotation from its Carbon v15 description record.\r\n *\r\n * The type byte decides which member is meaningful, and every non-string type\r\n * arrives as four untyped bytes rather than a number — Carbon writes the value\r\n * through one member of a `{float,int32_t}` union and reads it back through\r\n * another, so the bit pattern is the only faithful carrier. `rawValue` keeps\r\n * those bits and the typed accessor is derived from them, never the reverse.\r\n *\r\n * @param {object} record Carbon annotation record.\r\n * @returns {Tr2EffectParameterAnnotation} Reflected annotation.\r\n */\r\n static fromCarbonBinary(record)\r\n {\r\n if (!isPlainObject(record))\r\n {\r\n throw new TypeError(\"Carbon effect annotation record must be an object\");\r\n }\r\n\r\n const annotation = new this();\r\n annotation.name = recordText(record.name);\r\n annotation.type = record.type;\r\n\r\n switch (annotation.type)\r\n {\r\n case this.Type.BOOL:\r\n annotation.rawValue = recordRawValue(record.rawValue);\r\n annotation.boolValue = annotation.rawValue !== 0;\r\n break;\r\n\r\n case this.Type.INT:\r\n annotation.rawValue = recordRawValue(record.rawValue);\r\n annotation.intValue = annotation.rawValue | 0;\r\n break;\r\n\r\n case this.Type.FLOAT:\r\n annotation.rawValue = recordRawValue(record.rawValue);\r\n annotation.floatValue = dwordToFloat(annotation.rawValue);\r\n break;\r\n\r\n case this.Type.STRING:\r\n annotation.stringValue = recordText(record.stringValue);\r\n break;\r\n\r\n default:\r\n throw new Error(\r\n `Carbon effect annotation type ${annotation.type} is unsupported`\r\n );\r\n }\r\n\r\n return annotation;\r\n }\r\n\r\n /**\r\n * Emit this annotation as a Carbon v15 record.\r\n *\r\n * The type byte decides which branch the writer takes, and every non-string\r\n * type travels as the raw bits rather than the typed member.\r\n *\r\n * @returns {object} Carbon annotation record.\r\n */\r\n toCarbonBinary()\r\n {\r\n if (this.type === Tr2EffectParameterAnnotation.Type.STRING)\r\n {\r\n return {\r\n name: toRecordText(this.name),\r\n type: this.type,\r\n stringValue: toRecordText(this.stringValue),\r\n rawValue: null\r\n };\r\n }\r\n return {\r\n name: toRecordText(this.name),\r\n type: this.type,\r\n stringValue: null,\r\n rawValue: toRecordRawValue(this.rawValue)\r\n };\r\n }\r\n\r\n static Type = Object.freeze({\r\n BOOL: 0,\r\n INT: 1,\r\n FLOAT: 2,\r\n STRING: 3\r\n });\r\n\r\n}\r\n\r\n// Declared imperatively rather than with decorators, so this module stays\r\n// plain ESM that loads from source without a transform. The decorator\r\n// expressions are reused verbatim, so the registered metadata is identical.\r\n// Statics belong in `methods`: decorateMethod targets the prototype and\r\n// would register a static as an instance field.\r\nCjsSchema.define(Tr2EffectParameterAnnotation, {\r\n className: \"Tr2EffectParameterAnnotation\",\r\n family: \"shader\",\r\n fields: {\r\n name: type.string,\r\n type: [ type.int32, type.enum(\"Type\") ],\r\n boolValue: type.boolean,\r\n rawValue: [ impl.adapted, impl.reason(\"Carbon reads numeric annotations into typed values; the portable source contract retains the exact uint32 payload so NaN, negative zero, and integer bit patterns round-trip losslessly.\"), type.uint32 ],\r\n intValue: type.int32,\r\n floatValue: type.float32,\r\n stringValue: type.string\r\n }\r\n});\r\n"],"names":["Tr2EffectParameterAnnotation","CjsModel","name","type","boolValue","rawValue","intValue","floatValue","stringValue","fromCarbonBinary","record","isPlainObject","TypeError","annotation","recordText","Type","BOOL","recordRawValue","INT","FLOAT","dwordToFloat","STRING","Error","toCarbonBinary","toRecordText","toRecordRawValue","Object","freeze","CjsSchema","define","className","family","fields","string","int32","enum","boolean","impl","adapted","reason","uint32","float32"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2EffectParameterAnnotation.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectParameterAnnotation.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { assertCarbonRecord } from \"../../format/carbonRecordGuard.js\";\nimport { CjsSchema, impl, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { dwordToFloat } from \"#math/num\";\nimport {\n} from \"#utils/is\";\nimport { recordRawValue, recordText, toRecordRawValue, toRecordText } from \"./carbonRecordFields.js\";\n\n/** Typed annotation attached to a reflected effect parameter. */\nexport class Tr2EffectParameterAnnotation extends CjsModel\n{\n\n /** name (const char*) */\n name = \"\";\n\n /** type (Type - enum Type) */\n type = 0;\n\n /** boolValue (bool) */\n boolValue = false;\n\n /** Exact serialized BOOL, INT, or FLOAT payload bits. */\n rawValue = 0;\n\n /** intValue (int) */\n intValue = 0;\n\n /** floatValue (float) */\n floatValue = 0;\n\n /** stringValue (const char*) */\n stringValue = \"\";\n\n /**\n * Build one typed annotation from its Carbon v15 description record.\n *\n * The type byte decides which member is meaningful, and every non-string type\n * arrives as four untyped bytes rather than a number — Carbon writes the value\n * through one member of a `{float,int32_t}` union and reads it back through\n * another, so the bit pattern is the only faithful carrier. `rawValue` keeps\n * those bits and the typed accessor is derived from them, never the reverse.\n *\n * @param {object} record Carbon annotation record.\n * @returns {Tr2EffectParameterAnnotation} Reflected annotation.\n */\n static fromCarbonBinary(record)\n {\n assertCarbonRecord(record, \"annotation\");\n\n const annotation = new this();\n annotation.name = recordText(record.name);\n annotation.type = record.type;\n\n switch (annotation.type)\n {\n case this.Type.BOOL:\n annotation.rawValue = recordRawValue(record.rawValue);\n annotation.boolValue = annotation.rawValue !== 0;\n break;\n\n case this.Type.INT:\n annotation.rawValue = recordRawValue(record.rawValue);\n annotation.intValue = annotation.rawValue | 0;\n break;\n\n case this.Type.FLOAT:\n annotation.rawValue = recordRawValue(record.rawValue);\n annotation.floatValue = dwordToFloat(annotation.rawValue);\n break;\n\n case this.Type.STRING:\n annotation.stringValue = recordText(record.stringValue);\n break;\n\n default:\n throw new Error(\n `Carbon effect annotation type ${annotation.type} is unsupported`\n );\n }\n\n return annotation;\n }\n\n /**\n * Emit this annotation as a Carbon v15 record.\n *\n * The type byte decides which branch the writer takes, and every non-string\n * type travels as the raw bits rather than the typed member.\n *\n * @returns {object} Carbon annotation record.\n */\n toCarbonBinary()\n {\n if (this.type === Tr2EffectParameterAnnotation.Type.STRING)\n {\n return {\n name: toRecordText(this.name),\n type: this.type,\n stringValue: toRecordText(this.stringValue),\n rawValue: null\n };\n }\n return {\n name: toRecordText(this.name),\n type: this.type,\n stringValue: null,\n rawValue: toRecordRawValue(this.rawValue)\n };\n }\n\n static Type = Object.freeze({\n BOOL: 0,\n INT: 1,\n FLOAT: 2,\n STRING: 3\n });\n\n}\n\n// Declared imperatively rather than with decorators, so this module stays\n// plain ESM that loads from source without a transform. The decorator\n// expressions are reused verbatim, so the registered metadata is identical.\n// Statics belong in `methods`: decorateMethod targets the prototype and\n// would register a static as an instance field.\nCjsSchema.define(Tr2EffectParameterAnnotation, {\n className: \"Tr2EffectParameterAnnotation\",\n family: \"shader\",\n fields: {\n name: type.string,\n type: [ type.int32, type.enum(\"Type\") ],\n boolValue: type.boolean,\n rawValue: [ impl.adapted, impl.reason(\"Carbon reads numeric annotations into typed values; the portable source contract retains the exact uint32 payload so NaN, negative zero, and integer bit patterns round-trip losslessly.\"), type.uint32 ],\n intValue: type.int32,\n floatValue: type.float32,\n stringValue: type.string\n }\n});\n"],"names":["Tr2EffectParameterAnnotation","CjsModel","name","type","boolValue","rawValue","intValue","floatValue","stringValue","fromCarbonBinary","record","assertCarbonRecord","annotation","recordText","Type","BOOL","recordRawValue","INT","FLOAT","dwordToFloat","STRING","Error","toCarbonBinary","toRecordText","toRecordRawValue","Object","freeze","CjsSchema","define","className","family","fields","string","int32","enum","boolean","impl","adapted","reason","uint32","float32"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
+ import { assertCarbonRecord } from '../../format/carbonRecordGuard.js';
1
2
  import { CjsSchema, type } from '#schema';
2
3
  import { CjsModel } from '#model';
3
- import { isPlainObject } from '#utils/is';
4
+ import '#utils/is';
4
5
  import { recordText, toRecordText } from './carbonRecordFields.js';
5
6
 
6
7
  // Source: trinity/trinity/Shader/Tr2EffectDescription.h
@@ -22,23 +23,21 @@ class Tr2EffectResource extends CjsModel {
22
23
  /** arrayElements (uint32_t) */
23
24
  arrayElements = 0;
24
25
 
25
- /**
26
- * Build one SRV or UAV from its Carbon v15 description record.
27
- *
28
- * Both a texture record and a UAV record land here, and they are not the same
29
- * shape: a UAV record carries no `isSRGB` at all. Carbon's reader hardcodes
30
- * `isSRGB = false` for UAVs rather than reading a byte, and `Uav::Save` omits
31
- * it, so the field being absent is correct rather than missing — reading
32
- * `undefined` through `!!` reproduces Carbon exactly. The array size is spelled
33
- * `count` in the record and `arrayElements` on the class.
34
- *
35
- * @param {object} record Carbon texture or UAV record.
36
- * @returns {Tr2EffectResource} Reflected resource.
26
+ /**
27
+ * Build one SRV or UAV from its Carbon v15 description record.
28
+ *
29
+ * Both a texture record and a UAV record land here, and they are not the same
30
+ * shape: a UAV record carries no `isSRGB` at all. Carbon's reader hardcodes
31
+ * `isSRGB = false` for UAVs rather than reading a byte, and `Uav::Save` omits
32
+ * it, so the field being absent is correct rather than missing — reading
33
+ * `undefined` through `!!` reproduces Carbon exactly. The array size is spelled
34
+ * `count` in the record and `arrayElements` on the class.
35
+ *
36
+ * @param {object} record Carbon texture or UAV record.
37
+ * @returns {Tr2EffectResource} Reflected resource.
37
38
  */
38
39
  static fromCarbonBinary(record) {
39
- if (!isPlainObject(record)) {
40
- throw new TypeError("Carbon effect resource record must be an object");
41
- }
40
+ assertCarbonRecord(record, "resource");
42
41
  const resource = new this();
43
42
  resource.name = recordText(record.name);
44
43
  resource.type = record.type;
@@ -48,16 +47,16 @@ class Tr2EffectResource extends CjsModel {
48
47
  return resource;
49
48
  }
50
49
 
51
- /**
52
- * Emit this resource as a Carbon v15 texture or UAV record.
53
- *
54
- * A UAV record is one byte shorter: it carries no `isSRGB`, because Carbon's
55
- * reader hardcodes it false and `Uav::Save` omits it. Emitting the field
56
- * anyway would desynchronise every following field in the stage.
57
- *
58
- * @param {number} registerIndex Register this resource is bound at.
59
- * @param {boolean} [uav] Whether to emit the UAV shape.
60
- * @returns {object} Carbon texture or UAV record.
50
+ /**
51
+ * Emit this resource as a Carbon v15 texture or UAV record.
52
+ *
53
+ * A UAV record is one byte shorter: it carries no `isSRGB`, because Carbon's
54
+ * reader hardcodes it false and `Uav::Save` omits it. Emitting the field
55
+ * anyway would desynchronise every following field in the stage.
56
+ *
57
+ * @param {number} registerIndex Register this resource is bound at.
58
+ * @param {boolean} [uav] Whether to emit the UAV shape.
59
+ * @returns {object} Carbon texture or UAV record.
61
60
  */
62
61
  toCarbonBinary(registerIndex, uav = false) {
63
62
  const record = {
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2EffectResource.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectResource.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\r\nimport { CjsSchema, impl, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport {\r\n isPlainObject\r\n} from \"#utils/is\";\r\nimport { recordText, toRecordText } from \"./carbonRecordFields.js\";\r\n\r\n/** Reflected SRV or UAV resource metadata. */\r\nexport class Tr2EffectResource extends CjsModel\r\n{\r\n\r\n /** isSRGB (bool) */\r\n isSRGB = false;\r\n\r\n /** isAutoregister (bool) */\r\n isAutoregister = false;\r\n\r\n /** name (const char*) */\r\n name = \"\";\r\n\r\n /** type (Type - enum Type) */\r\n type = 0;\r\n\r\n /** arrayElements (uint32_t) */\r\n arrayElements = 0;\r\n\r\n /**\r\n * Build one SRV or UAV from its Carbon v15 description record.\r\n *\r\n * Both a texture record and a UAV record land here, and they are not the same\r\n * shape: a UAV record carries no `isSRGB` at all. Carbon's reader hardcodes\r\n * `isSRGB = false` for UAVs rather than reading a byte, and `Uav::Save` omits\r\n * it, so the field being absent is correct rather than missing — reading\r\n * `undefined` through `!!` reproduces Carbon exactly. The array size is spelled\r\n * `count` in the record and `arrayElements` on the class.\r\n *\r\n * @param {object} record Carbon texture or UAV record.\r\n * @returns {Tr2EffectResource} Reflected resource.\r\n */\r\n static fromCarbonBinary(record)\r\n {\r\n if (!isPlainObject(record))\r\n {\r\n throw new TypeError(\"Carbon effect resource record must be an object\");\r\n }\r\n\r\n const resource = new this();\r\n resource.name = recordText(record.name);\r\n resource.type = record.type;\r\n resource.arrayElements = record.count;\r\n resource.isSRGB = !!record.isSRGB;\r\n resource.isAutoregister = !!record.isAutoregister;\r\n return resource;\r\n }\r\n\r\n /**\r\n * Emit this resource as a Carbon v15 texture or UAV record.\r\n *\r\n * A UAV record is one byte shorter: it carries no `isSRGB`, because Carbon's\r\n * reader hardcodes it false and `Uav::Save` omits it. Emitting the field\r\n * anyway would desynchronise every following field in the stage.\r\n *\r\n * @param {number} registerIndex Register this resource is bound at.\r\n * @param {boolean} [uav] Whether to emit the UAV shape.\r\n * @returns {object} Carbon texture or UAV record.\r\n */\r\n toCarbonBinary(registerIndex, uav = false)\r\n {\r\n const record = {\r\n registerIndex,\r\n name: toRecordText(this.name),\r\n type: this.type,\r\n count: this.arrayElements,\r\n isAutoregister: this.isAutoregister ? 1 : 0\r\n };\r\n if (uav)\r\n {\r\n return record;\r\n }\r\n return {\r\n registerIndex,\r\n name: record.name,\r\n type: record.type,\r\n count: record.count,\r\n isSRGB: this.isSRGB ? 1 : 0,\r\n isAutoregister: record.isAutoregister\r\n };\r\n }\r\n\r\n static BINDLESS_SAMPLER = 100;\r\n\r\n static Type = Object.freeze({\r\n TEXTURE_1D: 1,\r\n TEXTURE_2D: 2,\r\n TEXTURE_3D: 3,\r\n TEXTURE_CUBE: 4,\r\n TEXTURE_TYPELESS: 5,\r\n BUFFER: 6,\r\n STRUCTURED_BUFFER: 7,\r\n TBUFFER: 8,\r\n BYTEADDRESS_BUFFER: 9,\r\n UAV_RWTYPED: 10,\r\n UAV_RWSTRUCTURED: 11,\r\n UAV_RWBYTEADDRESS: 12,\r\n UAV_APPEND_STRUCTURED: 13,\r\n UAV_CONSUME_STRUCTURED: 14,\r\n UAV_RWSTRUCTURED_WITH_COUNTER: 15\r\n });\r\n\r\n}\r\n\r\n// Declared imperatively rather than with decorators, so this module stays\r\n// plain ESM that loads from source without a transform. The decorator\r\n// expressions are reused verbatim, so the registered metadata is identical.\r\n// Statics belong in `methods`: decorateMethod targets the prototype and\r\n// would register a static as an instance field.\r\nCjsSchema.define(Tr2EffectResource, {\r\n className: \"Tr2EffectResource\",\r\n family: \"shader\",\r\n fields: {\r\n isSRGB: type.boolean,\r\n isAutoregister: type.boolean,\r\n name: type.string,\r\n type: [ type.int32, type.enum(\"Type\") ],\r\n arrayElements: type.uint32\r\n }\r\n});\r\n"],"names":["Tr2EffectResource","CjsModel","isSRGB","isAutoregister","name","type","arrayElements","fromCarbonBinary","record","isPlainObject","TypeError","resource","recordText","count","toCarbonBinary","registerIndex","uav","toRecordText","BINDLESS_SAMPLER","Type","Object","freeze","TEXTURE_1D","TEXTURE_2D","TEXTURE_3D","TEXTURE_CUBE","TEXTURE_TYPELESS","BUFFER","STRUCTURED_BUFFER","TBUFFER","BYTEADDRESS_BUFFER","UAV_RWTYPED","UAV_RWSTRUCTURED","UAV_RWBYTEADDRESS","UAV_APPEND_STRUCTURED","UAV_CONSUME_STRUCTURED","UAV_RWSTRUCTURED_WITH_COUNTER","CjsSchema","define","className","family","fields","boolean","string","int32","enum","uint32"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2EffectResource.js","sources":["../../../../../src/resource/shader/reflection/Tr2EffectResource.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2EffectDescription.h\nimport { assertCarbonRecord } from \"../../format/carbonRecordGuard.js\";\nimport { CjsSchema, impl, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport {\n} from \"#utils/is\";\nimport { recordText, toRecordText } from \"./carbonRecordFields.js\";\n\n/** Reflected SRV or UAV resource metadata. */\nexport class Tr2EffectResource extends CjsModel\n{\n\n /** isSRGB (bool) */\n isSRGB = false;\n\n /** isAutoregister (bool) */\n isAutoregister = false;\n\n /** name (const char*) */\n name = \"\";\n\n /** type (Type - enum Type) */\n type = 0;\n\n /** arrayElements (uint32_t) */\n arrayElements = 0;\n\n /**\n * Build one SRV or UAV from its Carbon v15 description record.\n *\n * Both a texture record and a UAV record land here, and they are not the same\n * shape: a UAV record carries no `isSRGB` at all. Carbon's reader hardcodes\n * `isSRGB = false` for UAVs rather than reading a byte, and `Uav::Save` omits\n * it, so the field being absent is correct rather than missing — reading\n * `undefined` through `!!` reproduces Carbon exactly. The array size is spelled\n * `count` in the record and `arrayElements` on the class.\n *\n * @param {object} record Carbon texture or UAV record.\n * @returns {Tr2EffectResource} Reflected resource.\n */\n static fromCarbonBinary(record)\n {\n assertCarbonRecord(record, \"resource\");\n\n const resource = new this();\n resource.name = recordText(record.name);\n resource.type = record.type;\n resource.arrayElements = record.count;\n resource.isSRGB = !!record.isSRGB;\n resource.isAutoregister = !!record.isAutoregister;\n return resource;\n }\n\n /**\n * Emit this resource as a Carbon v15 texture or UAV record.\n *\n * A UAV record is one byte shorter: it carries no `isSRGB`, because Carbon's\n * reader hardcodes it false and `Uav::Save` omits it. Emitting the field\n * anyway would desynchronise every following field in the stage.\n *\n * @param {number} registerIndex Register this resource is bound at.\n * @param {boolean} [uav] Whether to emit the UAV shape.\n * @returns {object} Carbon texture or UAV record.\n */\n toCarbonBinary(registerIndex, uav = false)\n {\n const record = {\n registerIndex,\n name: toRecordText(this.name),\n type: this.type,\n count: this.arrayElements,\n isAutoregister: this.isAutoregister ? 1 : 0\n };\n if (uav)\n {\n return record;\n }\n return {\n registerIndex,\n name: record.name,\n type: record.type,\n count: record.count,\n isSRGB: this.isSRGB ? 1 : 0,\n isAutoregister: record.isAutoregister\n };\n }\n\n static BINDLESS_SAMPLER = 100;\n\n static Type = Object.freeze({\n TEXTURE_1D: 1,\n TEXTURE_2D: 2,\n TEXTURE_3D: 3,\n TEXTURE_CUBE: 4,\n TEXTURE_TYPELESS: 5,\n BUFFER: 6,\n STRUCTURED_BUFFER: 7,\n TBUFFER: 8,\n BYTEADDRESS_BUFFER: 9,\n UAV_RWTYPED: 10,\n UAV_RWSTRUCTURED: 11,\n UAV_RWBYTEADDRESS: 12,\n UAV_APPEND_STRUCTURED: 13,\n UAV_CONSUME_STRUCTURED: 14,\n UAV_RWSTRUCTURED_WITH_COUNTER: 15\n });\n\n}\n\n// Declared imperatively rather than with decorators, so this module stays\n// plain ESM that loads from source without a transform. The decorator\n// expressions are reused verbatim, so the registered metadata is identical.\n// Statics belong in `methods`: decorateMethod targets the prototype and\n// would register a static as an instance field.\nCjsSchema.define(Tr2EffectResource, {\n className: \"Tr2EffectResource\",\n family: \"shader\",\n fields: {\n isSRGB: type.boolean,\n isAutoregister: type.boolean,\n name: type.string,\n type: [ type.int32, type.enum(\"Type\") ],\n arrayElements: type.uint32\n }\n});\n"],"names":["Tr2EffectResource","CjsModel","isSRGB","isAutoregister","name","type","arrayElements","fromCarbonBinary","record","assertCarbonRecord","resource","recordText","count","toCarbonBinary","registerIndex","uav","toRecordText","BINDLESS_SAMPLER","Type","Object","freeze","TEXTURE_1D","TEXTURE_2D","TEXTURE_3D","TEXTURE_CUBE","TEXTURE_TYPELESS","BUFFER","STRUCTURED_BUFFER","TBUFFER","BYTEADDRESS_BUFFER","UAV_RWTYPED","UAV_RWSTRUCTURED","UAV_RWBYTEADDRESS","UAV_APPEND_STRUCTURED","UAV_CONSUME_STRUCTURED","UAV_RWSTRUCTURED_WITH_COUNTER","CjsSchema","define","className","family","fields","boolean","string","int32","enum","uint32"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
+ import { assertCarbonRecord } from '../../format/carbonRecordGuard.js';
1
2
  import { CjsSchema, impl, type } from '#schema';
2
3
  import { CjsModel } from '#model';
3
4
  import { copyBytes } from '#utils/bytes';
4
- import { isPlainObject, isUint32 } from '#utils/is';
5
+ import { isUint32 } from '#utils/is';
5
6
  import { Tr2SamplerSetup } from '../sampler/Tr2SamplerSetup.js';
6
7
  import { Tr2EffectConstant } from './Tr2EffectConstant.js';
7
8
  import { Tr2EffectParameterAnnotation } from './Tr2EffectParameterAnnotation.js';
@@ -13,11 +14,11 @@ import { requireShaderStageType } from './shaderStage.js';
13
14
  // Source: trinity/trinity/Shader/Tr2EffectDescription.h
14
15
  // Source: trinity/trinity/Shader/Tr2EffectDescription.cpp
15
16
 
16
- /**
17
- * The offset word a zero-size blob carries, or the null sentinel.
18
- *
19
- * @param {{size:number,offset:number}} ref Blob reference.
20
- * @returns {number} Offset word worth retaining.
17
+ /**
18
+ * The offset word a zero-size blob carries, or the null sentinel.
19
+ *
20
+ * @param {{size:number,offset:number}} ref Blob reference.
21
+ * @returns {number} Offset word worth retaining.
21
22
  */
22
23
  function unsetOffsetOf(ref) {
23
24
  return ref.size === 0 ? ref.offset : 0xffffffff;
@@ -89,11 +90,11 @@ class Tr2EffectStageInput extends CjsModel {
89
90
  // across ten call sites, and this would replicate the same way once a second
90
91
  // engine exists.
91
92
 
92
- /**
93
- * The byte size a constant buffer must have to hold every declared constant.
94
- *
95
- * Always at least `constantValueSize`, because the authored defaults occupy
96
- * the start of the same buffer.
93
+ /**
94
+ * The byte size a constant buffer must have to hold every declared constant.
95
+ *
96
+ * Always at least `constantValueSize`, because the authored defaults occupy
97
+ * the start of the same buffer.
97
98
  */
98
99
  GetConstantBufferSize() {
99
100
  let size = 0;
@@ -103,12 +104,12 @@ class Tr2EffectStageInput extends CjsModel {
103
104
  return Math.max(size, this.constantValueSize);
104
105
  }
105
106
 
106
- /**
107
- * Construct one canonical stage input from JS/JSON model values.
108
- *
109
- * @param {object} values Canonical model values.
110
- * @param {object} options CjsModel import options.
111
- * @returns {Tr2EffectStageInput} Hydrated stage input.
107
+ /**
108
+ * Construct one canonical stage input from JS/JSON model values.
109
+ *
110
+ * @param {object} values Canonical model values.
111
+ * @param {object} options CjsModel import options.
112
+ * @returns {Tr2EffectStageInput} Hydrated stage input.
112
113
  */
113
114
  static from(values = {}, options = {}) {
114
115
  let normalized = values;
@@ -129,16 +130,14 @@ class Tr2EffectStageInput extends CjsModel {
129
130
  return stage;
130
131
  }
131
132
 
132
- /**
133
- * Hydrate one canonical stage input from a decoded Carbon binary record.
134
- *
135
- * @param {object} record Decoded Carbon stage record.
136
- * @returns {Tr2EffectStageInput} Hydrated canonical stage input.
133
+ /**
134
+ * Hydrate one canonical stage input from a decoded Carbon binary record.
135
+ *
136
+ * @param {object} record Decoded Carbon stage record.
137
+ * @returns {Tr2EffectStageInput} Hydrated canonical stage input.
137
138
  */
138
139
  static fromCarbonBinary(record) {
139
- if (!isPlainObject(record)) {
140
- throw new TypeError("Carbon effect stage record must be an object");
141
- }
140
+ assertCarbonRecord(record, "stage");
142
141
  const input = this.fromCarbonBinaryInput(record, record.type);
143
142
  input.signature.pipelineInputCount = record.pipelineInputs.length;
144
143
  input.signature.pipelineInputs = record.pipelineInputs.map(entry => ({
@@ -166,27 +165,25 @@ class Tr2EffectStageInput extends CjsModel {
166
165
  return input;
167
166
  }
168
167
 
169
- /**
170
- * Build one stage input from a Carbon v15 `StageData` block.
171
- *
172
- * A raytracing library's global and local inputs are the same block without a
173
- * stage wrapper — no stage type, no pipeline inputs, no thread group, no
174
- * program of their own — so this is the half both callers share and
175
- * `fromCarbonBinary` is the stage-only remainder layered on top.
176
- *
177
- * Carbon writes textures, samplers and UAVs in ascending register order because
178
- * they are `std::map`s, and they are re-keyed by register here rather than by
179
- * position, so the map is authoritative and the record's order is not load
180
- * bearing.
181
- *
182
- * @param {object} record Carbon stage-data record.
183
- * @param {number} [stageType] Stage index, or -1 for a library input.
184
- * @returns {Tr2EffectStageInput} Reflected stage input.
168
+ /**
169
+ * Build one stage input from a Carbon v15 `StageData` block.
170
+ *
171
+ * A raytracing library's global and local inputs are the same block without a
172
+ * stage wrapper — no stage type, no pipeline inputs, no thread group, no
173
+ * program of their own — so this is the half both callers share and
174
+ * `fromCarbonBinary` is the stage-only remainder layered on top.
175
+ *
176
+ * Carbon writes textures, samplers and UAVs in ascending register order because
177
+ * they are `std::map`s, and they are re-keyed by register here rather than by
178
+ * position, so the map is authoritative and the record's order is not load
179
+ * bearing.
180
+ *
181
+ * @param {object} record Carbon stage-data record.
182
+ * @param {number} [stageType] Stage index, or -1 for a library input.
183
+ * @returns {Tr2EffectStageInput} Reflected stage input.
185
184
  */
186
185
  static fromCarbonBinaryInput(record, stageType = -1) {
187
- if (!isPlainObject(record)) {
188
- throw new TypeError("Carbon effect stage-data record must be an object");
189
- }
186
+ assertCarbonRecord(record, "stage-data");
190
187
  const constantValues = copyBytes(recordBytes(record.defaultValues));
191
188
  const input = new this();
192
189
  input.stageType = stageType;
@@ -261,10 +258,10 @@ class Tr2EffectStageInput extends CjsModel {
261
258
  return input;
262
259
  }
263
260
 
264
- /**
265
- * Emit this stage as a Carbon v15 stage record.
266
- *
267
- * @returns {object} Carbon stage record.
261
+ /**
262
+ * Emit this stage as a Carbon v15 stage record.
263
+ *
264
+ * @returns {object} Carbon stage record.
268
265
  */
269
266
  toCarbonBinary() {
270
267
  const signature = this.signature ?? {};
@@ -285,17 +282,17 @@ class Tr2EffectStageInput extends CjsModel {
285
282
  };
286
283
  }
287
284
 
288
- /**
289
- * Emit this input as a Carbon v15 `StageData` block.
290
- *
291
- * Carbon holds textures, samplers, UAVs and render states in `std::map`s and
292
- * writes them in key order, and it sorts annotation names by `strcmp` before
293
- * writing. Our maps are keyed but not ordered, so every collection is sorted
294
- * explicitly here rather than trusting insertion order — the reader is
295
- * indifferent, but the bytes are not, and a container that disagrees with
296
- * Carbon's ordering is not the file Carbon would have written.
297
- *
298
- * @returns {object} Carbon stage-data record.
285
+ /**
286
+ * Emit this input as a Carbon v15 `StageData` block.
287
+ *
288
+ * Carbon holds textures, samplers, UAVs and render states in `std::map`s and
289
+ * writes them in key order, and it sorts annotation names by `strcmp` before
290
+ * writing. Our maps are keyed but not ordered, so every collection is sorted
291
+ * explicitly here rather than trusting insertion order — the reader is
292
+ * indifferent, but the bytes are not, and a container that disagrees with
293
+ * Carbon's ordering is not the file Carbon would have written.
294
+ *
295
+ * @returns {object} Carbon stage-data record.
299
296
  */
300
297
  toCarbonBinaryInput() {
301
298
  const byRegister = (left, right) => left.registerIndex - right.registerIndex;
@@ -361,11 +358,11 @@ class Tr2EffectStageInput extends CjsModel {
361
358
  return result;
362
359
  }
363
360
 
364
- /**
365
- * Create one explicit absent stage slot.
366
- *
367
- * @param {number} stageType Stage index.
368
- * @returns {Tr2EffectStageInput} Empty stage input.
361
+ /**
362
+ * Create one explicit absent stage slot.
363
+ *
364
+ * @param {number} stageType Stage index.
365
+ * @returns {Tr2EffectStageInput} Empty stage input.
369
366
  */
370
367
  static createEmpty(stageType) {
371
368
  const stage = new this();
@@ -373,14 +370,14 @@ class Tr2EffectStageInput extends CjsModel {
373
370
  return stage;
374
371
  }
375
372
 
376
- /**
377
- * Normalize one register-indexed collection into its canonical typed map.
378
- *
379
- * @param {Map|object} values Register-indexed source values.
380
- * @param {Function} Constructor Entry constructor exposing `from`.
381
- * @param {object} options Hydration options passed to entry construction.
382
- * @param {string} field Diagnostic field name.
383
- * @returns {Map<number, *>} Canonical register map.
373
+ /**
374
+ * Normalize one register-indexed collection into its canonical typed map.
375
+ *
376
+ * @param {Map|object} values Register-indexed source values.
377
+ * @param {Function} Constructor Entry constructor exposing `from`.
378
+ * @param {object} options Hydration options passed to entry construction.
379
+ * @param {string} field Diagnostic field name.
380
+ * @returns {Map<number, *>} Canonical register map.
384
381
  */
385
382
  static readCanonicalRegisterMap(values, Constructor, options, field) {
386
383
  const entries = values instanceof Map ? values : Object.entries(values ?? {});