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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -13,7 +13,7 @@ reference-only.
13
13
 
14
14
  ---
15
15
 
16
- ## Oodle1 / Oodle0 decompressor - `src/core/oodle1.js`
16
+ ## Oodle1 / Oodle0 decompressor - `src/resource/formats/gr2/core/oodle1.js`
17
17
 
18
18
  **Boost Software License 1.0.** Ported from the Granny `gr2_decompress` implementation
19
19
  shipped in [Arbos/nwn2mdk](https://github.com/Arbos/nwn2mdk) (the decompressor is
@@ -49,7 +49,7 @@ DEALINGS IN THE SOFTWARE.
49
49
 
50
50
  ---
51
51
 
52
- ## BitKnit / BitKnit2 decompressor - `src/core/bitknit2.js`
52
+ ## BitKnit / BitKnit2 decompressor - `src/resource/formats/gr2/core/bitknit2.js`
53
53
 
54
54
  **Original CarbonEngineJS code (MIT).** On 2026-07-24 the previous
55
55
  EUPL-derived port (transcribed from
@@ -57,7 +57,7 @@ EUPL-derived port (transcribed from
57
57
  `GrannyBitKnitCompression.cs`, EUPL-1.2) was replaced by a clean-room
58
58
  implementation produced through a documented two-party process: one party
59
59
  analyzed the format and published a facts-only decoding specification
60
- (`docs/formats/bitknit2.md`); a second, isolated party implemented the
60
+ (`docs/resource/formats/bitknit2.md`); a second, isolated party implemented the
61
61
  decoder solely from that specification with no access to Knit, pybg3, ooz,
62
62
  or any other BitKnit implementation. The result was validated byte-exact
63
63
  against 539 BitKnit2 streams extracted from the EVE `.gr2` corpus (section
@@ -68,13 +68,13 @@ format facts only.
68
68
 
69
69
  ---
70
70
 
71
- ## Granny animation-curve decompression - `src/core/curves.js`
71
+ ## Granny animation-curve decompression - `src/resource/formats/gr2/core/curves.js`
72
72
 
73
73
  Authored by **cppctamber** as part of ccpwgl2 (`src/core/reader/granny/curves`), the
74
74
  same author/owner as this library; included here under this project's MIT
75
75
  license.
76
76
 
77
- ## Tangent-frame shader math - `src/core/tangents.js`
77
+ ## Tangent-frame shader math - `src/global/math/tangent.js`
78
78
 
79
79
  The packed tangent-frame decode/encode math is derived from Fenris Creations
80
80
  (formerly CCP / CCP Games) EVE/Carbon shader behavior for packed tangent frames.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbonenginejs/runtime",
3
- "version": "0.1.0-alpha.0",
3
+ "version": "0.1.0-alpha.1",
4
4
  "private": false,
5
5
  "description": "Browser-safe CarbonEngineJS runtime: resource and format readers, the Trinity/EVE object graph, SOF, audio, character, and the WebGPU renderer.",
6
6
  "type": "module",
@@ -27,6 +27,7 @@
27
27
  "./math/pool": "./dist/global/math/pool.js",
28
28
  "./math/utils": "./dist/global/math/utils.js",
29
29
  "./math/noise": "./dist/global/math/noise.js",
30
+ "./math/random": "./dist/global/math/random.js",
30
31
  "./math/curve": "./dist/global/math/curve.js",
31
32
  "./math/vertex": "./dist/global/math/vertex.js",
32
33
  "./math/mesh": "./dist/global/math/mesh.js",
@@ -55,6 +56,7 @@
55
56
  "./consts/d3d": "./dist/global/consts/d3d/index.js",
56
57
  "./consts/webgpu": "./dist/global/consts/webgpu/index.js",
57
58
  "./contracts": "./dist/global/contracts/index.js",
59
+ "./blue": "./dist/global/blue/index.js",
58
60
  "./schema": "./dist/global/schema/index.js",
59
61
  "./schema/types": "./dist/global/schema/types/index.js",
60
62
  "./schema/hydration": "./dist/global/schema/hydration.js",
@@ -191,6 +193,7 @@
191
193
  "#consts/webgpu": "./dist/global/consts/webgpu/index.js",
192
194
  "#consts/*": "./dist/global/consts/*.js",
193
195
  "#contracts": "./dist/global/contracts/index.js",
196
+ "#blue": "./dist/global/blue/index.js",
194
197
  "#contracts/*": "./dist/global/contracts/*.js",
195
198
  "#schema": "./dist/global/schema/index.js",
196
199
  "#schema/types": "./dist/global/schema/types/index.js",
@@ -1,173 +0,0 @@
1
- import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { carbon, impl, type } from '#schema';
3
- import { CjsModel } from '#model';
4
-
5
- let _initProto, _initClass;
6
- function Now() {
7
- return globalThis.performance?.now() ?? Date.now();
8
- }
9
-
10
- /** Provides the base value contract for one queued Carbon audio action. */
11
- class AudActionRecord {
12
- /** Carbon's Python bridge returns a tuple; JavaScript uses the equivalent array. */
13
- ToPyObject() {
14
- return [];
15
- }
16
- }
17
-
18
- /** Records one event post with time, emitter, playing, event, and name identities. */
19
- class AudActionRecordPostEvent extends AudActionRecord {
20
- /** Creates one event-post record. */
21
- constructor(time = 0, emitterID = 0, playID = 0, eventID = 0, name = "") {
22
- super();
23
- this.time = time;
24
- this.emitterID = emitterID;
25
- this.playID = playID;
26
- this.eventID = eventID;
27
- this.name = String(name);
28
- }
29
-
30
- /** Returns Carbon's Python-bridge tuple as a JavaScript array. */
31
- ToPyObject() {
32
- return ["AudActionRecordPostEvent", this.time, this.emitterID, this.playID, this.eventID, this.name];
33
- }
34
- }
35
-
36
- /** Records one stop or break action applied to a playing identity. */
37
- class AudActionRecordExecuteActionOnPlayingID extends AudActionRecord {
38
- /** Creates one playing-id action record. */
39
- constructor(time = 0, emitterID = 0, playID = 0, action = "") {
40
- super();
41
- this.time = time;
42
- this.emitterID = emitterID;
43
- this.playID = playID;
44
- this.action = String(action);
45
- }
46
-
47
- /** Returns Carbon's Python-bridge tuple as a JavaScript array. */
48
- ToPyObject() {
49
- return ["AudActionRecordExecuteActionOnPlayingID", this.time, this.emitterID, this.playID, this.action];
50
- }
51
- }
52
-
53
- /** Records one emitter-local switch group and state change. */
54
- class AudActionRecordSetSwitch extends AudActionRecord {
55
- /** Creates one emitter-local switch record. */
56
- constructor(time = 0, emitterID = 0, group = "", state = "") {
57
- super();
58
- this.time = time;
59
- this.emitterID = emitterID;
60
- this.group = String(group);
61
- this.state = String(state);
62
- }
63
-
64
- /** Returns Carbon's Python-bridge tuple as a JavaScript array. */
65
- ToPyObject() {
66
- return ["AudActionRecordSetSwitch", this.time, this.emitterID, this.group, this.state];
67
- }
68
- }
69
-
70
- /** Records one global audio state-group change. */
71
- class AudActionRecordSetState extends AudActionRecord {
72
- /** Creates one global state record. */
73
- constructor(time = 0, group = "", state = "") {
74
- super();
75
- this.time = time;
76
- this.group = String(group);
77
- this.state = String(state);
78
- }
79
-
80
- /** Returns Carbon's Python-bridge tuple as a JavaScript array. */
81
- ToPyObject() {
82
- return ["AudActionRecordSetState", this.time, this.group, this.state];
83
- }
84
- }
85
-
86
- /** Records one global or emitter-local real-time parameter change. */
87
- class AudActionRecordSetRTPC extends AudActionRecord {
88
- /** Creates one global or emitter-local RTPC record. */
89
- constructor(time = 0, emitterID = 0, name = "", value = 0, playID = 0) {
90
- super();
91
- this.time = time;
92
- this.emitterID = emitterID;
93
- this.name = String(name);
94
- this.value = Number(value);
95
- this.playID = playID;
96
- }
97
-
98
- /** Returns Carbon's Python-bridge tuple as a JavaScript array. */
99
- ToPyObject() {
100
- return ["AudActionRecordSetRTPC", this.time, this.emitterID, this.name, this.value, this.playID];
101
- }
102
- }
103
-
104
- /**
105
- * Queues Carbon-shaped audio action records and flushes them to a registered
106
- * JavaScript callback during manager processing.
107
- */
108
- let _AudActionLogCB;
109
- class AudActionLogCB extends CjsModel {
110
- static {
111
- ({
112
- e: [_initProto],
113
- c: [_AudActionLogCB, _initClass]
114
- } = _applyDecs2311(this, [type.define({
115
- className: "AudActionLogCB",
116
- family: "audio"
117
- })], [[[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("BlueScriptCallback is represented by a JavaScript function or an object exposing CallVoid(record).")], 18, "RegisterCallback"], [[carbon, carbon.method, impl, impl.implemented], 18, "LogPostEvent"], [[carbon, carbon.method, impl, impl.implemented], 18, "LogExecuteActionOnPlayingID"], [[carbon, carbon.method, impl, impl.implemented], 18, "LogSetSwitch"], [[carbon, carbon.method, impl, impl.implemented], 18, "LogSetState"], [[carbon, carbon.method, impl, impl.implemented], 18, "LogSetRTPC"], [[carbon, carbon.method, impl, impl.implemented], 18, "Flush"]], 0, void 0, CjsModel));
118
- }
119
- #callback = (_initProto(this), null);
120
- #queue = [];
121
-
122
- /** Carbon method RegisterCallback. Null unregisters without discarding queued records. */
123
- RegisterCallback(callback) {
124
- if (callback !== null && callback !== undefined && typeof callback !== "function" && typeof callback?.CallVoid !== "function") {
125
- throw new TypeError("AudActionLogCB.RegisterCallback requires a function, CallVoid object, or null.");
126
- }
127
- this.#callback = callback ?? null;
128
- }
129
-
130
- /** Carbon IAudActionLog method LogPostEvent. */
131
- LogPostEvent(emitterID, playID, eventID, name) {
132
- this.#queue.push(new AudActionRecordPostEvent(Now(), emitterID, playID, eventID, name));
133
- }
134
-
135
- /** Carbon IAudActionLog method LogExecuteActionOnPlayingID. */
136
- LogExecuteActionOnPlayingID(emitterID, playID, action) {
137
- this.#queue.push(new AudActionRecordExecuteActionOnPlayingID(Now(), emitterID, playID, action));
138
- }
139
-
140
- /** Carbon IAudActionLog method LogSetSwitch. */
141
- LogSetSwitch(emitterID, group, state) {
142
- this.#queue.push(new AudActionRecordSetSwitch(Now(), emitterID, group, state));
143
- }
144
-
145
- /** Carbon IAudActionLog method LogSetState. */
146
- LogSetState(group, state) {
147
- this.#queue.push(new AudActionRecordSetState(Now(), group, state));
148
- }
149
-
150
- /** Carbon IAudActionLog method LogSetRTPC. */
151
- LogSetRTPC(emitterID, name, value, playID = 0) {
152
- this.#queue.push(new AudActionRecordSetRTPC(Now(), emitterID, name, value, playID));
153
- }
154
-
155
- /** Carbon method Flush. Records remain queued until a callback exists. */
156
- Flush() {
157
- while (this.#callback && this.#queue.length) {
158
- const record = this.#queue[0].ToPyObject();
159
- if (typeof this.#callback === "function") {
160
- this.#callback(record);
161
- } else {
162
- this.#callback.CallVoid(record);
163
- }
164
- this.#queue.shift();
165
- }
166
- }
167
- static {
168
- _initClass();
169
- }
170
- }
171
-
172
- export { _AudActionLogCB as AudActionLogCB, AudActionRecord, AudActionRecordExecuteActionOnPlayingID, AudActionRecordPostEvent, AudActionRecordSetRTPC, AudActionRecordSetState, AudActionRecordSetSwitch };
173
- //# sourceMappingURL=AudActionLog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AudActionLog.js","sources":["../../../../../src/audio/trinity/audio/AudActionLog.js"],"sourcesContent":["// Source: audio/src/AudActionLog.h + AudActionLog.cpp\r\n// Hand-owned behavior port. Verify against audio/AudActionLogCB.json and the\r\n// AudActionRecord*.json schema documents.\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\n\r\nfunction Now()\r\n{\r\n return globalThis.performance?.now() ?? Date.now();\r\n}\r\n\r\n/** Provides the base value contract for one queued Carbon audio action. */\r\nexport class AudActionRecord\r\n{\r\n\r\n /** Carbon's Python bridge returns a tuple; JavaScript uses the equivalent array. */\r\n ToPyObject()\r\n {\r\n return [];\r\n }\r\n\r\n}\r\n\r\n/** Records one event post with time, emitter, playing, event, and name identities. */\r\nexport class AudActionRecordPostEvent extends AudActionRecord\r\n{\r\n\r\n /** Creates one event-post record. */\r\n constructor(time = 0, emitterID = 0, playID = 0, eventID = 0, name = \"\")\r\n {\r\n super();\r\n this.time = time;\r\n this.emitterID = emitterID;\r\n this.playID = playID;\r\n this.eventID = eventID;\r\n this.name = String(name);\r\n }\r\n\r\n /** Returns Carbon's Python-bridge tuple as a JavaScript array. */\r\n ToPyObject()\r\n {\r\n return [ \"AudActionRecordPostEvent\", this.time, this.emitterID, this.playID, this.eventID, this.name ];\r\n }\r\n\r\n}\r\n\r\n/** Records one stop or break action applied to a playing identity. */\r\nexport class AudActionRecordExecuteActionOnPlayingID extends AudActionRecord\r\n{\r\n\r\n /** Creates one playing-id action record. */\r\n constructor(time = 0, emitterID = 0, playID = 0, action = \"\")\r\n {\r\n super();\r\n this.time = time;\r\n this.emitterID = emitterID;\r\n this.playID = playID;\r\n this.action = String(action);\r\n }\r\n\r\n /** Returns Carbon's Python-bridge tuple as a JavaScript array. */\r\n ToPyObject()\r\n {\r\n return [ \"AudActionRecordExecuteActionOnPlayingID\", this.time, this.emitterID, this.playID, this.action ];\r\n }\r\n\r\n}\r\n\r\n/** Records one emitter-local switch group and state change. */\r\nexport class AudActionRecordSetSwitch extends AudActionRecord\r\n{\r\n\r\n /** Creates one emitter-local switch record. */\r\n constructor(time = 0, emitterID = 0, group = \"\", state = \"\")\r\n {\r\n super();\r\n this.time = time;\r\n this.emitterID = emitterID;\r\n this.group = String(group);\r\n this.state = String(state);\r\n }\r\n\r\n /** Returns Carbon's Python-bridge tuple as a JavaScript array. */\r\n ToPyObject()\r\n {\r\n return [ \"AudActionRecordSetSwitch\", this.time, this.emitterID, this.group, this.state ];\r\n }\r\n\r\n}\r\n\r\n/** Records one global audio state-group change. */\r\nexport class AudActionRecordSetState extends AudActionRecord\r\n{\r\n\r\n /** Creates one global state record. */\r\n constructor(time = 0, group = \"\", state = \"\")\r\n {\r\n super();\r\n this.time = time;\r\n this.group = String(group);\r\n this.state = String(state);\r\n }\r\n\r\n /** Returns Carbon's Python-bridge tuple as a JavaScript array. */\r\n ToPyObject()\r\n {\r\n return [ \"AudActionRecordSetState\", this.time, this.group, this.state ];\r\n }\r\n\r\n}\r\n\r\n/** Records one global or emitter-local real-time parameter change. */\r\nexport class AudActionRecordSetRTPC extends AudActionRecord\r\n{\r\n\r\n /** Creates one global or emitter-local RTPC record. */\r\n constructor(time = 0, emitterID = 0, name = \"\", value = 0, playID = 0)\r\n {\r\n super();\r\n this.time = time;\r\n this.emitterID = emitterID;\r\n this.name = String(name);\r\n this.value = Number(value);\r\n this.playID = playID;\r\n }\r\n\r\n /** Returns Carbon's Python-bridge tuple as a JavaScript array. */\r\n ToPyObject()\r\n {\r\n return [ \"AudActionRecordSetRTPC\", this.time, this.emitterID, this.name, this.value, this.playID ];\r\n }\r\n\r\n}\r\n\r\n/**\r\n * Queues Carbon-shaped audio action records and flushes them to a registered\r\n * JavaScript callback during manager processing.\r\n */\r\n@type.define({ className: \"AudActionLogCB\", family: \"audio\" })\r\nexport class AudActionLogCB extends CjsModel\r\n{\r\n\r\n #callback = null;\r\n\r\n #queue = [];\r\n\r\n /** Carbon method RegisterCallback. Null unregisters without discarding queued records. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"BlueScriptCallback is represented by a JavaScript function or an object exposing CallVoid(record).\")\r\n RegisterCallback(callback)\r\n {\r\n if (callback !== null && callback !== undefined\r\n && typeof callback !== \"function\" && typeof callback?.CallVoid !== \"function\")\r\n {\r\n throw new TypeError(\"AudActionLogCB.RegisterCallback requires a function, CallVoid object, or null.\");\r\n }\r\n this.#callback = callback ?? null;\r\n }\r\n\r\n /** Carbon IAudActionLog method LogPostEvent. */\r\n @carbon.method\r\n @impl.implemented\r\n LogPostEvent(emitterID, playID, eventID, name)\r\n {\r\n this.#queue.push(new AudActionRecordPostEvent(Now(), emitterID, playID, eventID, name));\r\n }\r\n\r\n /** Carbon IAudActionLog method LogExecuteActionOnPlayingID. */\r\n @carbon.method\r\n @impl.implemented\r\n LogExecuteActionOnPlayingID(emitterID, playID, action)\r\n {\r\n this.#queue.push(new AudActionRecordExecuteActionOnPlayingID(Now(), emitterID, playID, action));\r\n }\r\n\r\n /** Carbon IAudActionLog method LogSetSwitch. */\r\n @carbon.method\r\n @impl.implemented\r\n LogSetSwitch(emitterID, group, state)\r\n {\r\n this.#queue.push(new AudActionRecordSetSwitch(Now(), emitterID, group, state));\r\n }\r\n\r\n /** Carbon IAudActionLog method LogSetState. */\r\n @carbon.method\r\n @impl.implemented\r\n LogSetState(group, state)\r\n {\r\n this.#queue.push(new AudActionRecordSetState(Now(), group, state));\r\n }\r\n\r\n /** Carbon IAudActionLog method LogSetRTPC. */\r\n @carbon.method\r\n @impl.implemented\r\n LogSetRTPC(emitterID, name, value, playID = 0)\r\n {\r\n this.#queue.push(new AudActionRecordSetRTPC(Now(), emitterID, name, value, playID));\r\n }\r\n\r\n /** Carbon method Flush. Records remain queued until a callback exists. */\r\n @carbon.method\r\n @impl.implemented\r\n Flush()\r\n {\r\n while (this.#callback && this.#queue.length)\r\n {\r\n const record = this.#queue[0].ToPyObject();\r\n if (typeof this.#callback === \"function\")\r\n {\r\n this.#callback(record);\r\n }\r\n else\r\n {\r\n this.#callback.CallVoid(record);\r\n }\r\n this.#queue.shift();\r\n }\r\n }\r\n\r\n}\r\n"],"names":["Now","globalThis","performance","now","Date","AudActionRecord","ToPyObject","AudActionRecordPostEvent","constructor","time","emitterID","playID","eventID","name","String","AudActionRecordExecuteActionOnPlayingID","action","AudActionRecordSetSwitch","group","state","AudActionRecordSetState","AudActionRecordSetRTPC","value","Number","_AudActionLogCB","AudActionLogCB","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","adapted","reason","implemented","RegisterCallback","callback","undefined","CallVoid","TypeError","LogPostEvent","push","LogExecuteActionOnPlayingID","LogSetSwitch","LogSetState","LogSetRTPC","Flush","length","record","shift"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"AudObstructionOcclusion.js","sources":["../../../../../src/audio/trinity/audio/AudObstructionOcclusion.js"],"sourcesContent":["// Source: audio/src/AudObstructionOcclusion.h + AudObstructionOcclusion.cpp\r\n// Headless behavior port. The host supplies blockage; this class performs no\r\n// ray casting and leaves the audible obstruction/occlusion law to the backend.\r\n\r\nimport { LISTENER_GAME_OBJ_ID } from \"./SoundPrioritization.js\";\r\n\r\nconst DEFAULT_FADE_RATE = 1;\r\n\r\nfunction NowSeconds()\r\n{\r\n return (globalThis.performance?.now() ?? Date.now()) / 1000;\r\n}\r\n\r\nfunction ClampUnit(value)\r\n{\r\n return Math.max(0, Math.min(1, Number(value)));\r\n}\r\n\r\n/** One obstruction or occlusion value fading towards an authored target. */\r\nclass FadingValue\r\n{\r\n currentValue = 0;\r\n\r\n targetValue = 0;\r\n\r\n /** Clamps and stores the next fade target. */\r\n SetTarget(target)\r\n {\r\n this.targetValue = ClampUnit(target);\r\n }\r\n\r\n /** Advances linearly by one clock delta and reports a live-value change. */\r\n Advance(deltaSeconds, fadeRate)\r\n {\r\n if (this.currentValue === this.targetValue)\r\n {\r\n return false;\r\n }\r\n if (fadeRate <= 0)\r\n {\r\n this.currentValue = this.targetValue;\r\n return true;\r\n }\r\n\r\n const previous = this.currentValue;\r\n const step = fadeRate * deltaSeconds;\r\n\r\n if (previous > this.targetValue)\r\n {\r\n this.currentValue = Math.max(this.targetValue, previous - step);\r\n }\r\n else\r\n {\r\n this.currentValue = Math.min(this.targetValue, previous + step);\r\n }\r\n return this.currentValue !== previous;\r\n }\r\n\r\n /** Applies the target immediately for a newly tracked emitter. */\r\n SnapToTarget()\r\n {\r\n this.currentValue = this.targetValue;\r\n }\r\n}\r\n\r\n/** Obstruction/occlusion fade state retained for one registered emitter. */\r\nclass EmitterState\r\n{\r\n obstruction = new FadingValue();\r\n\r\n occlusion = new FadingValue();\r\n\r\n needsSend = true;\r\n}\r\n\r\n/**\r\n * Owns Carbon's caller-supplied line-of-sight state and backend delivery.\r\n *\r\n * This collaborator is intentionally not exported from the package. Hosts use\r\n * the Carbon-facing AudManager methods; injected backends may implement\r\n * SetObjectObstructionAndOcclusion to realize the values.\r\n */\r\nexport class AudObstructionOcclusion\r\n{\r\n #audioManager;\r\n\r\n #emitters = new Map();\r\n\r\n #fadeRate = DEFAULT_FADE_RATE;\r\n\r\n #hasUpdated = false;\r\n\r\n #lastUpdateTime = 0;\r\n\r\n #enabled = true;\r\n\r\n #now;\r\n\r\n /** Creates Carbon's obstruction/occlusion collaborator for one manager. */\r\n constructor(audioManager, now = NowSeconds)\r\n {\r\n this.#audioManager = audioManager;\r\n this.#now = now;\r\n }\r\n\r\n /** Advances every fade and sends changed awake-emitter values. */\r\n Update(backend)\r\n {\r\n if (!this.#audioManager\r\n || this.#audioManager.GetState?.() !== \"enabled\")\r\n {\r\n return;\r\n }\r\n\r\n const now = Number(this.#now());\r\n const deltaSeconds = this.#hasUpdated && Number.isFinite(now)\r\n ? Math.max(0, now - this.#lastUpdateTime)\r\n : 0;\r\n\r\n this.#lastUpdateTime = Number.isFinite(now) ? now : NowSeconds();\r\n this.#hasUpdated = true;\r\n\r\n for (const [ emitterID, state ] of this.#emitters)\r\n {\r\n let culled = false;\r\n const exists = this.#audioManager.WithCallbackGameObject?.(\r\n emitterID,\r\n emitter =>\r\n {\r\n culled = emitter.IsCulled?.() === true;\r\n },\r\n ) === true;\r\n\r\n if (!exists)\r\n {\r\n this.#emitters.delete(emitterID);\r\n continue;\r\n }\r\n\r\n const obstructionChanged = state.obstruction.Advance(\r\n deltaSeconds,\r\n this.#fadeRate,\r\n );\r\n const occlusionChanged = state.occlusion.Advance(\r\n deltaSeconds,\r\n this.#fadeRate,\r\n );\r\n\r\n if (culled)\r\n {\r\n state.needsSend = true;\r\n continue;\r\n }\r\n if (obstructionChanged || occlusionChanged || state.needsSend)\r\n {\r\n state.needsSend = !this.#SendToBackend(\r\n backend,\r\n emitterID,\r\n state,\r\n );\r\n }\r\n }\r\n }\r\n\r\n /** Sets the obstruction and occlusion targets for a registered emitter. */\r\n SetObstructionOcclusion(emitterID, obstruction, occlusion)\r\n {\r\n if (!this.#enabled\r\n || !this.#audioManager\r\n || this.#audioManager.GetState?.() !== \"enabled\"\r\n || emitterID === LISTENER_GAME_OBJ_ID\r\n || this.#audioManager.WithCallbackGameObject?.(\r\n emitterID,\r\n () => {},\r\n ) !== true)\r\n {\r\n return false;\r\n }\r\n\r\n let state = this.#emitters.get(emitterID);\r\n const isNewEmitter = !state;\r\n\r\n if (!state)\r\n {\r\n state = new EmitterState();\r\n this.#emitters.set(emitterID, state);\r\n }\r\n state.obstruction.SetTarget(obstruction);\r\n state.occlusion.SetTarget(occlusion);\r\n\r\n if (isNewEmitter)\r\n {\r\n state.obstruction.SnapToTarget();\r\n state.occlusion.SnapToTarget();\r\n }\r\n return true;\r\n }\r\n\r\n /** Maps caller-supplied blockage to Carbon's acoustics-aware targets. */\r\n SetEmitterLineOfSightBlockage(emitterID, blockage)\r\n {\r\n const acousticsEnabled = this.#audioManager\r\n ?.GetSpatialAudioGeometryEnabled?.() === true;\r\n\r\n return this.SetObstructionOcclusion(\r\n emitterID,\r\n 0,\r\n acousticsEnabled ? 0 : blockage,\r\n );\r\n }\r\n\r\n /** Returns the live, mid-fade occlusion value for one emitter. */\r\n GetEmitterOcclusion(emitterID)\r\n {\r\n return this.#emitters.get(emitterID)?.occlusion.currentValue ?? 0;\r\n }\r\n\r\n /** Drops one emitter immediately when its game object is unregistered. */\r\n RemoveEmitter(emitterID)\r\n {\r\n this.#emitters.delete(emitterID);\r\n }\r\n\r\n /** Forgets every emitter and resets the fade clock. */\r\n Reset()\r\n {\r\n this.#emitters.clear();\r\n this.#hasUpdated = false;\r\n this.#lastUpdateTime = 0;\r\n }\r\n\r\n /** Fades every tracked emitter back to clear. */\r\n ClearAll()\r\n {\r\n for (const state of this.#emitters.values())\r\n {\r\n state.obstruction.SetTarget(0);\r\n state.occlusion.SetTarget(0);\r\n }\r\n }\r\n\r\n /** Returns whether new caller-supplied targets are accepted. */\r\n IsEnabled()\r\n {\r\n return this.#enabled;\r\n }\r\n\r\n /** Enables target input or fades every existing target to clear. */\r\n SetEnabled(value)\r\n {\r\n const enabled = Boolean(value);\r\n\r\n if (this.#enabled === enabled)\r\n {\r\n return;\r\n }\r\n this.#enabled = enabled;\r\n if (!enabled)\r\n {\r\n this.ClearAll();\r\n }\r\n }\r\n\r\n /** Returns the linear fade speed in value units per second. */\r\n GetFadeRate()\r\n {\r\n return this.#fadeRate;\r\n }\r\n\r\n /** Stores Carbon's nonnegative linear fade speed. */\r\n SetFadeRate(value)\r\n {\r\n this.#fadeRate = Math.max(0, Number(value));\r\n }\r\n\r\n /** Delivers one live value through the optional Wwise-shaped backend seam. */\r\n #SendToBackend(backend, emitterID, state)\r\n {\r\n if (typeof backend?.SetObjectObstructionAndOcclusion !== \"function\")\r\n {\r\n return false;\r\n }\r\n // Runtime-audio backend setters conventionally accept a void return and\r\n // reserve explicit false for rejection. A rejection retains needsSend so\r\n // the next Process retries, matching Carbon's failed AKRESULT behavior.\r\n return backend.SetObjectObstructionAndOcclusion(\r\n emitterID,\r\n LISTENER_GAME_OBJ_ID,\r\n state.obstruction.currentValue,\r\n state.occlusion.currentValue,\r\n ) !== false;\r\n }\r\n}\r\n"],"names":["DEFAULT_FADE_RATE","NowSeconds","globalThis","performance","now","Date","ClampUnit","value","Math","max","min","Number","FadingValue","currentValue","targetValue","SetTarget","target","Advance","deltaSeconds","fadeRate","previous","step","SnapToTarget","EmitterState","obstruction","occlusion","needsSend","AudObstructionOcclusion","Map","constructor","audioManager","Update","backend","GetState","isFinite","emitterID","state","culled","exists","WithCallbackGameObject","emitter","IsCulled","delete","obstructionChanged","occlusionChanged","SetObstructionOcclusion","LISTENER_GAME_OBJ_ID","get","isNewEmitter","set","SetEmitterLineOfSightBlockage","blockage","acousticsEnabled","GetSpatialAudioGeometryEnabled","GetEmitterOcclusion","RemoveEmitter","Reset","clear","ClearAll","values","IsEnabled","SetEnabled","enabled","Boolean","GetFadeRate","SetFadeRate","#SendToBackend","SetObjectObstructionAndOcclusion"],"mappings":"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"}
@@ -1,94 +0,0 @@
1
- import { impl } from '../schema/index.js';
2
- import { CjsSchema } from '../schema/CjsSchema.js';
3
-
4
- /**
5
- * Dependency-free callback identity for Carbon-style script invocation.
6
- *
7
- * External JavaScript functions and callback-shaped host objects are adapted
8
- * once through {@link CjsScriptCallback.from}; runtime hot paths then call the
9
- * required methods directly.
10
- */
11
- class CjsScriptCallback {
12
- /**
13
- * Adapts one external callback value to the nominal runtime contract.
14
- *
15
- * @param {CjsScriptCallback|Function|object|null|undefined} value - Callback boundary value.
16
- * @returns {CjsScriptCallback|null} A nominal callback or null.
17
- */
18
- static from(value) {
19
- if (value === null || value === undefined) return null;
20
- if (value instanceof CjsScriptCallback) return value;
21
- if (typeof value === "function") return new CjsFunctionScriptCallback(value);
22
- if (typeof value !== "object" || typeof value.Call !== "function" || typeof value.CallVoid !== "function") {
23
- throw new TypeError("A script callback must be a function, CjsScriptCallback, or object with Call and CallVoid methods.");
24
- }
25
- return new CjsExternalScriptCallback(value);
26
- }
27
-
28
- /**
29
- * Invokes a callback whose return value is significant.
30
- *
31
- * @param {...*} _args - Callback arguments.
32
- * @returns {*} Callback result.
33
- */
34
- Call(..._args) {
35
- throw new Error("CjsScriptCallback.Call must be overridden by a concrete script callback.");
36
- }
37
-
38
- /**
39
- * Invokes a notification callback and discards its result.
40
- *
41
- * @param {...*} _args - Callback arguments.
42
- * @returns {void}
43
- */
44
- CallVoid(..._args) {
45
- throw new Error("CjsScriptCallback.CallVoid must be overridden by a concrete script callback.");
46
- }
47
- }
48
-
49
- /** Adapts one ordinary JavaScript function to the nominal callback contract. */
50
- class CjsFunctionScriptCallback extends CjsScriptCallback {
51
- #callback;
52
-
53
- /** Stores one validated JavaScript function. */
54
- constructor(callback) {
55
- super();
56
- this.#callback = callback;
57
- }
58
-
59
- /** Invokes the function and returns its result. */
60
- Call(...args) {
61
- return this.#callback(...args);
62
- }
63
-
64
- /** Invokes the function and discards its result. */
65
- CallVoid(...args) {
66
- this.#callback(...args);
67
- }
68
- }
69
-
70
- /** Adapts one externally supplied callback object after boundary validation. */
71
- class CjsExternalScriptCallback extends CjsScriptCallback {
72
- #callback;
73
-
74
- /** Stores one validated external callback object. */
75
- constructor(callback) {
76
- super();
77
- this.#callback = callback;
78
- }
79
-
80
- /** Directly invokes the external return-bearing method. */
81
- Call(...args) {
82
- return this.#callback.Call(...args);
83
- }
84
-
85
- /** Directly invokes the external notification method. */
86
- CallVoid(...args) {
87
- this.#callback.CallVoid(...args);
88
- }
89
- }
90
- CjsSchema.decorateMethod(CjsScriptCallback, "Call", impl.abstract);
91
- CjsSchema.decorateMethod(CjsScriptCallback, "CallVoid", impl.abstract);
92
-
93
- export { CjsScriptCallback };
94
- //# sourceMappingURL=CjsScriptCallback.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CjsScriptCallback.js","sources":["../../../../src/global/contracts/CjsScriptCallback.js"],"sourcesContent":["import { CjsSchema, impl } from \"../schema/index.js\";\n\n/**\n * Dependency-free callback identity for Carbon-style script invocation.\n *\n * External JavaScript functions and callback-shaped host objects are adapted\n * once through {@link CjsScriptCallback.from}; runtime hot paths then call the\n * required methods directly.\n */\nexport class CjsScriptCallback\n{\n\n /**\n * Adapts one external callback value to the nominal runtime contract.\n *\n * @param {CjsScriptCallback|Function|object|null|undefined} value - Callback boundary value.\n * @returns {CjsScriptCallback|null} A nominal callback or null.\n */\n static from(value)\n {\n if (value === null || value === undefined) return null;\n if (value instanceof CjsScriptCallback) return value;\n if (typeof value === \"function\") return new CjsFunctionScriptCallback(value);\n if (typeof value !== \"object\" || typeof value.Call !== \"function\" || typeof value.CallVoid !== \"function\")\n {\n throw new TypeError(\"A script callback must be a function, CjsScriptCallback, or object with Call and CallVoid methods.\");\n }\n return new CjsExternalScriptCallback(value);\n }\n\n /**\n * Invokes a callback whose return value is significant.\n *\n * @param {...*} _args - Callback arguments.\n * @returns {*} Callback result.\n */\n Call(..._args)\n {\n throw new Error(\n \"CjsScriptCallback.Call must be overridden by a concrete script callback.\"\n );\n }\n\n /**\n * Invokes a notification callback and discards its result.\n *\n * @param {...*} _args - Callback arguments.\n * @returns {void}\n */\n CallVoid(..._args)\n {\n throw new Error(\n \"CjsScriptCallback.CallVoid must be overridden by a concrete script callback.\"\n );\n }\n\n}\n\n/** Adapts one ordinary JavaScript function to the nominal callback contract. */\nclass CjsFunctionScriptCallback extends CjsScriptCallback\n{\n\n #callback;\n\n /** Stores one validated JavaScript function. */\n constructor(callback)\n {\n super();\n this.#callback = callback;\n }\n\n /** Invokes the function and returns its result. */\n Call(...args)\n {\n return this.#callback(...args);\n }\n\n /** Invokes the function and discards its result. */\n CallVoid(...args)\n {\n this.#callback(...args);\n }\n\n}\n\n/** Adapts one externally supplied callback object after boundary validation. */\nclass CjsExternalScriptCallback extends CjsScriptCallback\n{\n\n #callback;\n\n /** Stores one validated external callback object. */\n constructor(callback)\n {\n super();\n this.#callback = callback;\n }\n\n /** Directly invokes the external return-bearing method. */\n Call(...args)\n {\n return this.#callback.Call(...args);\n }\n\n /** Directly invokes the external notification method. */\n CallVoid(...args)\n {\n this.#callback.CallVoid(...args);\n }\n\n}\n\nCjsSchema.decorateMethod(CjsScriptCallback, \"Call\", impl.abstract);\nCjsSchema.decorateMethod(CjsScriptCallback, \"CallVoid\", impl.abstract);\n"],"names":["CjsScriptCallback","from","value","undefined","CjsFunctionScriptCallback","Call","CallVoid","TypeError","CjsExternalScriptCallback","_args","Error","constructor","callback","args","CjsSchema","decorateMethod","impl","abstract"],"mappings":";;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAiB,CAC9B;AAEI;AACJ;AACA;AACA;AACA;AACA;EACI,OAAOC,IAAIA,CAACC,KAAK,EACjB;IACI,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EAAE,OAAO,IAAI;AACtD,IAAA,IAAID,KAAK,YAAYF,iBAAiB,EAAE,OAAOE,KAAK;IACpD,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE,OAAO,IAAIE,yBAAyB,CAACF,KAAK,CAAC;AAC5E,IAAA,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,CAACG,IAAI,KAAK,UAAU,IAAI,OAAOH,KAAK,CAACI,QAAQ,KAAK,UAAU,EACzG;AACI,MAAA,MAAM,IAAIC,SAAS,CAAC,oGAAoG,CAAC;AAC7H,IAAA;AACA,IAAA,OAAO,IAAIC,yBAAyB,CAACN,KAAK,CAAC;AAC/C,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACIG,IAAIA,CAAC,GAAGI,KAAK,EACb;AACI,IAAA,MAAM,IAAIC,KAAK,CACX,0EACJ,CAAC;AACL,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACA;EACIJ,QAAQA,CAAC,GAAGG,KAAK,EACjB;AACI,IAAA,MAAM,IAAIC,KAAK,CACX,8EACJ,CAAC;AACL,EAAA;AAEJ;;AAEA;AACA,MAAMN,yBAAyB,SAASJ,iBAAiB,CACzD;AAEI,EAAA,SAAS;;AAET;EACAW,WAAWA,CAACC,QAAQ,EACpB;AACI,IAAA,KAAK,EAAE;AACP,IAAA,IAAI,CAAC,SAAS,GAAGA,QAAQ;AAC7B,EAAA;;AAEA;EACAP,IAAIA,CAAC,GAAGQ,IAAI,EACZ;AACI,IAAA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAGA,IAAI,CAAC;AAClC,EAAA;;AAEA;EACAP,QAAQA,CAAC,GAAGO,IAAI,EAChB;AACI,IAAA,IAAI,CAAC,SAAS,CAAC,GAAGA,IAAI,CAAC;AAC3B,EAAA;AAEJ;;AAEA;AACA,MAAML,yBAAyB,SAASR,iBAAiB,CACzD;AAEI,EAAA,SAAS;;AAET;EACAW,WAAWA,CAACC,QAAQ,EACpB;AACI,IAAA,KAAK,EAAE;AACP,IAAA,IAAI,CAAC,SAAS,GAAGA,QAAQ;AAC7B,EAAA;;AAEA;EACAP,IAAIA,CAAC,GAAGQ,IAAI,EACZ;IACI,OAAO,IAAI,CAAC,SAAS,CAACR,IAAI,CAAC,GAAGQ,IAAI,CAAC;AACvC,EAAA;;AAEA;EACAP,QAAQA,CAAC,GAAGO,IAAI,EAChB;IACI,IAAI,CAAC,SAAS,CAACP,QAAQ,CAAC,GAAGO,IAAI,CAAC;AACpC,EAAA;AAEJ;AAEAC,SAAS,CAACC,cAAc,CAACf,iBAAiB,EAAE,MAAM,EAAEgB,IAAI,CAACC,QAAQ,CAAC;AAClEH,SAAS,CAACC,cAAc,CAACf,iBAAiB,EAAE,UAAU,EAAEgB,IAAI,CAACC,QAAQ,CAAC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ITr2Controller.js","sources":["../../../../src/trinity/controllers/ITr2Controller.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/ITr2Controller.h\n//\n// The contract a controller answers to, and the reason 235 call sites in this\n// runtime were written as `controller?.Update?.()`.\n//\n// WHAT WAS WRONG. Our schema already names this interface - EveStretch3 and its\n// neighbours declare `@type.list(\"ITr2Controller\") controllers = []` - but no\n// class implemented it, so nothing guaranteed that a thing in one of those\n// lists could be told to Update, Start or Stop. Every caller hedged instead,\n// and a hedge cannot tell \"this controller does not care about Update\" from\n// \"this object is not a controller at all\". Carbon never has that ambiguity,\n// because the base answers the first case and the type system answers the\n// second.\n//\n// THE KEY DETAIL, AND WHY THE HEDGES CAN SIMPLY GO. Only `IsLinked` is pure\n// virtual. `Link`, `Unlink`, `Start`, `Stop`, `Update`, `SetVariable` and\n// `HandleEvent` all have EMPTY BODIES in Carbon's header. The optional chain\n// was emulating exactly that - a call that harmlessly does nothing when the\n// controller has no opinion - one call site at a time. Inheriting the empty\n// body gives the same behaviour in one place, and turns a genuinely absent\n// method back into the error it should be.\n//\n// TWO INTERFACES, ONE HEADER, as Carbon has them. A plain controller answers\n// the eight verbs below; `ITr2ActionController` adds what a controller driving\n// controller ACTIONS must also provide, all of it pure virtual there and\n// abstract here.\n//\n// `IRoot`, Carbon's base for both, is not ported: it is Blue's reference-counted\n// object root, which a garbage-collected runtime has no use for.\n\nimport { CjsSchema, impl } from \"#schema\";\nimport { UnlinkReason } from \"./enums.js\";\n\n\nconst ITR2_CONTROLLER = Symbol.for(\"carbonenginejs.contract.ITr2Controller\");\nconst ITR2_ACTION_CONTROLLER = Symbol.for(\"carbonenginejs.contract.ITr2ActionController\");\n\n\n/** Contract for an object that controls another between Start and Stop. */\nexport class ITr2Controller\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_CONTROLLER] === true;\n }\n\n /**\n * Attaches this controller to its owner.\n *\n * The owner guarantees Link runs before any other method on the controller,\n * which is why the rest may assume an owner without checking for one.\n *\n * @param {object} _owner The object being controlled.\n */\n Link(_owner)\n {\n }\n\n /**\n * Detaches this controller, dropping every reference to the owner.\n *\n * @param {number} [_reason] An `UnlinkReason`; DELETING means the owner is going away.\n */\n Unlink(_reason = UnlinkReason.UNLINKING)\n {\n }\n\n /**\n * Whether this controller is attached to an owner.\n *\n * THE ONE METHOD CARBON MAKES PURE VIRTUAL. There is no sensible default:\n * answering false would let an owner silently skip a linked controller, and\n * answering true would let it drive an unlinked one.\n *\n * @returns {boolean} Whether Link has run without a matching Unlink.\n */\n IsLinked()\n {\n throw new Error(\"ITr2Controller.IsLinked must be implemented by a controller.\");\n }\n\n /** Begins controlling the owner. */\n Start()\n {\n }\n\n /** Stops controlling the owner. */\n Stop()\n {\n }\n\n /**\n * Runs one frame's control, between Start and Stop.\n *\n * @param {number} _normalizedUpdateFrequency Carbon's normalised frame delta.\n */\n Update(_normalizedUpdateFrequency)\n {\n }\n\n /**\n * Sets one named controller variable.\n *\n * @param {string} _name The variable's name.\n * @param {number} _value Its new value.\n */\n SetVariable(_name, _value)\n {\n }\n\n /**\n * Handles one instantaneous named event.\n *\n * @param {string} _eventName The event's name.\n */\n HandleEvent(_eventName)\n {\n }\n}\n\n\n/** Contract for a controller that also drives controller actions. */\nexport class ITr2ActionController extends ITr2Controller\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_ACTION_CONTROLLER] === true;\n }\n\n /**\n * The object this controller was linked to.\n *\n * @returns {object} The owner.\n */\n GetOwner()\n {\n throw new Error(\"ITr2ActionController.GetOwner must be implemented by an action controller.\");\n }\n\n /**\n * Delivers a named callback to the controller.\n *\n * @param {string} _callbackName The callback's name.\n */\n Callback(_callbackName)\n {\n throw new Error(\"ITr2ActionController.Callback must be implemented by an action controller.\");\n }\n\n /**\n * Registers an object to be updated whenever this controller updates.\n *\n * @param {object} _updateable The object to update.\n */\n RegisterUpdateable(_updateable)\n {\n throw new Error(\"ITr2ActionController.RegisterUpdateable must be implemented by an action controller.\");\n }\n\n /**\n * Stops updating a previously registered object.\n *\n * @param {object} _updateable The object to stop updating.\n */\n UnRegisterUpdateable(_updateable)\n {\n throw new Error(\"ITr2ActionController.UnRegisterUpdateable must be implemented by an action controller.\");\n }\n\n /**\n * The named root objects a dynamic binding path may start from.\n *\n * @returns {Array} Name and root pairs.\n */\n GetBindingPathRoots()\n {\n throw new Error(\"ITr2ActionController.GetBindingPathRoots must be implemented by an action controller.\");\n }\n\n /**\n * One float variable by name.\n *\n * Carbon returns an optional, so a missing name is ABSENT rather than zero -\n * a distinction an expression needs, since zero is a legitimate value.\n *\n * @param {string} _name The variable's name.\n * @returns {number|null} Its value, or null when there is no such variable.\n */\n GetFloatVariableByName(_name)\n {\n throw new Error(\"ITr2ActionController.GetFloatVariableByName must be implemented by an action controller.\");\n }\n\n /**\n * Adds the functions and variables this controller offers to expressions.\n *\n * @param {Array} _out Term info collected from every contributor.\n */\n GetExpressionTermInfo(_out)\n {\n throw new Error(\"ITr2ActionController.GetExpressionTermInfo must be implemented by an action controller.\");\n }\n\n /**\n * The layout of this controller's variable buffer.\n *\n * @returns {Array} The variable view.\n */\n GetVariableView()\n {\n throw new Error(\"ITr2ActionController.GetVariableView must be implemented by an action controller.\");\n }\n\n /**\n * The buffer the variable view describes.\n *\n * @returns {object} The variable buffer.\n */\n GetVariableBuffer()\n {\n throw new Error(\"ITr2ActionController.GetVariableBuffer must be implemented by an action controller.\");\n }\n\n /**\n * Grows the scratch arena expressions evaluate into.\n *\n * @param {number} _size Bytes required.\n */\n EnsureTempArenaSize(_size)\n {\n throw new Error(\"ITr2ActionController.EnsureTempArenaSize must be implemented by an action controller.\");\n }\n\n /**\n * The scratch arena expressions evaluate into.\n *\n * @returns {object} The arena.\n */\n GetTempArena()\n {\n throw new Error(\"ITr2ActionController.GetTempArena must be implemented by an action controller.\");\n }\n}\n\n\nconst CONTROLLER_NOOPS = [ \"Link\", \"Unlink\", \"Start\", \"Stop\", \"Update\", \"SetVariable\", \"HandleEvent\" ];\nconst ACTION_ABSTRACTS = [\n \"GetOwner\", \"Callback\", \"RegisterUpdateable\", \"UnRegisterUpdateable\", \"GetBindingPathRoots\",\n \"GetFloatVariableByName\", \"GetExpressionTermInfo\", \"GetVariableView\", \"GetVariableBuffer\",\n \"EnsureTempArenaSize\", \"GetTempArena\"\n];\n\n/**\n * Marks a class as carrying a contract, and records each method's provenance.\n *\n * Shared by every ported Carbon interface in this folder - `ITr2Controller`,\n * `ITr2ControllerAction`, `ITr2StateMachineStateFinalizer` - so the brand and\n * the noop/abstract bookkeeping are written once.\n *\n * @param {Function} target The contract or adopted class.\n * @param {symbol} symbol The contract's brand symbol.\n * @param {string[]} noops Methods Carbon gives an empty body.\n * @param {string[]} abstracts Methods Carbon makes pure virtual.\n */\nexport function Brand(target, symbol, noops, abstracts)\n{\n Object.defineProperty(target.prototype, symbol, { value: true });\n\n for (const name of noops) CjsSchema.decorateMethod(target, name, impl.noop);\n for (const name of abstracts) CjsSchema.decorateMethod(target, name, impl.abstract);\n}\n\nBrand(ITr2Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, [ \"IsLinked\" ]);\nBrand(ITr2ActionController, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);\nObject.defineProperty(ITr2ActionController.prototype, ITR2_CONTROLLER, { value: true });\nCjsSchema.define(ITr2Controller, { className: \"ITr2Controller\" });\nCjsSchema.define(ITr2ActionController, { className: \"ITr2ActionController\" });\n\n\n/**\n * Adds the ITr2Controller contract without replacing an existing model base.\n *\n * A controller class already extends something - CjsModel, EveThrottleable -\n * so the contract arrives as a mixin rather than as a root. The subclass\n * overrides what it cares about and inherits Carbon's empty body for the rest,\n * which is the whole point: the caller no longer has to ask.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withITr2Controller(Base)\n{\n const Controller = Adopt(Base, ITr2Controller, [ ...CONTROLLER_NOOPS, \"IsLinked\" ]);\n\n Brand(Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, [ \"IsLinked\" ]);\n\n return Controller;\n}\n\n\n/**\n * Adds the ITr2ActionController contract, and ITr2Controller with it.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying both contracts.\n */\nexport function withITr2ActionController(Base)\n{\n const Controller = Adopt(\n Adopt(Base, ITr2Controller, [ ...CONTROLLER_NOOPS, \"IsLinked\" ]),\n ITr2ActionController,\n ACTION_ABSTRACTS\n );\n\n Brand(Controller, ITR2_CONTROLLER, CONTROLLER_NOOPS, [ \"IsLinked\" ]);\n Brand(Controller, ITR2_ACTION_CONTROLLER, [], ACTION_ABSTRACTS);\n\n return Controller;\n}\n\n\n/**\n * Subclasses `Base`, filling in only the contract methods it does not already\n * have.\n *\n * A CLASS THAT IMPLEMENTS A METHOD KEEPS ITS OWN. That is the whole point of\n * the empty bodies: the contract supplies a default where the implementor has\n * no opinion, and stays out of the way where it does.\n *\n * @param {Function} Base The class to extend.\n * @param {Function} Contract The contract whose methods fill the gaps.\n * @param {string[]} names The contract's method names.\n * @returns {Function} The subclass.\n */\nexport function Adopt(Base, Contract, names)\n{\n const Adopted = class extends Base\n {\n };\n\n for (const name of names)\n {\n if (name in Adopted.prototype) continue;\n\n Object.defineProperty(Adopted.prototype, name, {\n value: Contract.prototype[name],\n writable: true,\n configurable: true\n });\n }\n\n return Adopted;\n}\n"],"names":["ITR2_CONTROLLER","Symbol","for","ITR2_ACTION_CONTROLLER","ITr2Controller","hasInstance","value","undefined","Link","_owner","Unlink","_reason","UnlinkReason","UNLINKING","IsLinked","Error","Start","Stop","Update","_normalizedUpdateFrequency","SetVariable","_name","_value","HandleEvent","_eventName","ITr2ActionController","GetOwner","Callback","_callbackName","RegisterUpdateable","_updateable","UnRegisterUpdateable","GetBindingPathRoots","GetFloatVariableByName","GetExpressionTermInfo","_out","GetVariableView","GetVariableBuffer","EnsureTempArenaSize","_size","GetTempArena","CONTROLLER_NOOPS","ACTION_ABSTRACTS","Brand","target","symbol","noops","abstracts","Object","defineProperty","prototype","name","CjsSchema","decorateMethod","impl","noop","abstract","define","className","withITr2Controller","Base","Controller","Adopt","withITr2ActionController","Contract","names","Adopted","writable","configurable"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,wCAAwC,CAAC;AAC5E,MAAMC,sBAAsB,GAAGF,MAAM,CAACC,GAAG,CAAC,8CAA8C,CAAC;;AAGzF;AACO,MAAME,cAAc,CAC3B;AACE,EAAA,QAAQH,MAAM,CAACI,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACN,eAAe,CAAC,KAAK,IAAI;AACjF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEQ,IAAIA,CAACC,MAAM,EACX,CACA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,MAAMA,CAACC,OAAO,GAAGC,YAAY,CAACC,SAAS,EACvC,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,QAAQA,GACR;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,8DAA8D,CAAC;AACjF,EAAA;;AAEA;EACAC,KAAKA,GACL,CACA;;AAEA;EACAC,IAAIA,GACJ,CACA;;AAEA;AACF;AACA;AACA;AACA;EACEC,MAAMA,CAACC,0BAA0B,EACjC,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,CAACC,KAAK,EAAEC,MAAM,EACzB,CACA;;AAEA;AACF;AACA;AACA;AACA;EACEC,WAAWA,CAACC,UAAU,EACtB,CACA;AACF;;AAGA;AACO,MAAMC,oBAAoB,SAASrB,cAAc,CACxD;AACE,EAAA,QAAQH,MAAM,CAACI,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACH,sBAAsB,CAAC,KAAK,IAAI;AACxF,EAAA;;AAEA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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2GpuResourcePool.js","sources":["../../../../src/trinity/core/Tr2GpuResourcePool.js"],"sourcesContent":["// Source: trinity/trinity/Tr2GpuResourcePool.h\n// Source: trinity/trinity/Tr2GpuResourcePool.cpp\n//\n// Where a render pass gets a scratch texture or buffer, and how one is kept\n// alive only as long as something holds it.\n//\n// THIS IS THE CLASS FOUR INVENTED ONES WERE STANDING IN FOR. Carbon's\n// `Tr2ShadowMap::PrepareShadowRendering( gpuResourcePool, renderContext )` and\n// the whole `EveSpaceScene` volumetrics family take a pool and do their own\n// work. Ours had the methods but bounced them to an engine-supplied executor,\n// because there was no pool to hand them. So an interface was invented per\n// subsystem rather than porting the one class they all needed.\n//\n// TWO LIFETIMES, and the distinction is the whole design. A TEMP resource is\n// recycled as soon as nothing holds it and it has not been touched for a few\n// frames; a PERSISTENT one is initialized once and kept. Asking for a temp\n// texture with the same shape twice in a frame therefore gets the same texture\n// only if the first handle has been released - which is what makes a pass able\n// to say \"give me a working surface\" without owning one.\n//\n// THE HANDLE IS THE LIFETIME. Carbon's `GpuResourceHandle` counts locks on copy\n// and release, and a record with a live lock is never recycled. JavaScript has\n// no destructor, so `Release()` is explicit here - see the note on the class.\n//\n// NESTING IS CARBON'S: a pool may have an OUTER pool, and a lookup that misses\n// walks outward. That is how a scene-local pool shares the global one's\n// resources without owning them.\n\nimport { Tr2BitmapDimensions, Tr2BufferALStub, Tr2TextureALStub } from \"../../trinityal/index.js\";\n\n\nfunction fail(message)\n{\n const error = new Error(`Tr2GpuResourcePool: ${message}`);\n error.code = \"CJS_GPU_POOL_INVALID\";\n throw error;\n}\n\n\n/**\n * A width and height, with Carbon's scaling and comparison.\n */\nexport class TextureSize2D\n{\n /** Width in pixels. */\n width = 0;\n\n /** Height in pixels. */\n height = 0;\n\n /**\n * @param {number|object} [widthOrDimensions] A width, or a `Tr2BitmapDimensions`.\n * @param {number} [height] The height, when a width was given.\n */\n constructor(widthOrDimensions = 0, height = 0)\n {\n if (widthOrDimensions && typeof widthOrDimensions === \"object\")\n {\n this.width = widthOrDimensions.GetWidth();\n this.height = widthOrDimensions.GetHeight();\n\n return;\n }\n\n this.width = widthOrDimensions;\n this.height = height;\n }\n\n /**\n * Whether two sizes match.\n *\n * @param {TextureSize2D} other The size to compare with.\n * @returns {boolean} True when they match.\n */\n Equals(other)\n {\n return !!other && this.width === other.width && this.height === other.height;\n }\n\n /**\n * This size scaled, never below one pixel in either direction.\n *\n * Carbon clamps to one (`h:TextureSize2D::operator*`), because a half-size\n * chain reaches zero before it reaches one and a zero-sized target is not a\n * target.\n *\n * @param {number} scale The factor.\n * @returns {TextureSize2D} The scaled size.\n */\n Scaled(scale)\n {\n return new TextureSize2D(\n Math.max(1, Math.trunc(this.width * scale)),\n Math.max(1, Math.trunc(this.height * scale))\n );\n }\n}\n\n\n/**\n * A borrowed pool resource.\n *\n * CARBON RELEASES ON DESTRUCTION AND JAVASCRIPT CANNOT. Its handle decrements a\n * lock count in its destructor, so a resource returns to the pool when the last\n * holder goes out of scope. There is no such moment here, so `Release` is\n * explicit and a handle that is never released pins its resource forever -\n * which is a leak, not a crash, and therefore worth being loud about. The pool\n * reports held resources so a caller can assert.\n *\n * THE VERB IS `Free`, AND THE POOL OWNS IT. Settled 2026-09-05 with\n * `cjs-carbon-verbs`, after two wrong turns worth recording:\n *\n * - `Destroy` is wrong. It means GONE NOW - the pure virtual on\n * `Tr2BaseDeviceResourceAL` (`trinityal/Tr2DeviceResourceAL.h:30`), used on\n * 35 Carbon classes. A pooled resource is not destroyed; it goes back and is\n * handed out again. `ClearUnusedResources` below is where `Destroy` is\n * right, and where it is used.\n * - `Release` is not engine vocabulary. Bare `Release` appears ONLY in\n * Carbon's mesh viewer and video player, as Vulkan idiom. Trinity uses only\n * the qualified forms - `ReleaseLater`, `ReleaseDeviceResources`.\n *\n * `Free` is shared engine vocabulary on six Carbon classes - `FreeList`,\n * `Tr2VirtualAllocator`, `Tr2SuballocatedBuffer` and three descriptor-heap\n * allocators - and EVERY ONE IS AN ALLOCATOR OR POOL. The direction is theirs\n * too: `Tr2VirtualAllocator::Free( allocation )` and\n * `Tr2SuballocatedBuffer::Free( allocation& )` put the verb on the allocator,\n * not on the thing lent. So `pool.Free(handle)`, not `handle.Release()`.\n *\n * Carbon's handle has no named method at all - the work is in\n * `~GpuResourceHandle`. That absence is C++ not needing a name, and reading it\n * as a prohibition is how this briefly became a coined `ReleaseToPool`.\n */\nexport class GpuResourceHandle\n{\n #record = null;\n\n /**\n * @param {object} [record] The pool record this handle locks.\n */\n constructor(record = null)\n {\n this.#record = record;\n\n if (record) record.lockCount += 1;\n }\n\n /**\n * The resource itself.\n *\n * @returns {object|null} The resource, or null once released.\n */\n Get()\n {\n return this.#record?.resource ?? null;\n }\n\n /** @returns {boolean} Whether this handle still holds a resource. */\n IsValid()\n {\n return this.#record !== null;\n }\n\n /** @returns {string} The resource's debug name. */\n GetName()\n {\n return this.#record?.name ?? \"\";\n }\n\n /**\n * Drops this handle's claim. Called by `Tr2GpuResourcePool.Free`.\n *\n * Freeing twice is a caller error rather than a silent no-op: it means the\n * lock count no longer describes who is holding what.\n *\n * @returns {boolean} Whether a claim was dropped.\n */\n Detach()\n {\n if (!this.#record) fail(\"a handle freed twice\");\n\n this.#record.lockCount -= 1;\n this.#record = null;\n\n return true;\n }\n}\n\n\n/**\n * Pooled scratch textures and buffers.\n */\nexport class Tr2GpuResourcePool\n{\n /** m_outer - the pool a miss falls through to. */\n #outer = null;\n\n #tempTextures = [];\n\n #persistentTextures = [];\n\n #tempBuffers = [];\n\n #persistentBuffers = [];\n\n /** m_debugMode */\n #debugMode = false;\n\n /** The frame a lookup counts as \"now\". */\n #frame = 0;\n\n /**\n * The backend resources are created against.\n *\n * Carbon's pool is a `Tr2DeviceResource` and reaches its device that way.\n * This runtime has no process-wide device, so the context is handed in - the\n * same arrangement `Tr2EffectStateManager` uses.\n */\n #renderContext = null;\n\n /**\n * @param {Tr2GpuResourcePool} [outer] A pool to fall through to on a miss.\n */\n constructor(outer = null)\n {\n this.#outer = outer;\n }\n\n /**\n * Binds the backend resources are created against.\n *\n * @param {object} renderContext A render-context abstraction layer.\n * @returns {Tr2GpuResourcePool} This pool, for chaining.\n */\n SetRenderContext(renderContext)\n {\n this.#renderContext = renderContext;\n\n return this;\n }\n\n /**\n * Advances the pool's idea of the current frame.\n *\n * @param {number} frame The frame number.\n */\n SetFrame(frame)\n {\n this.#frame = frame;\n }\n\n /**\n * Borrows a scratch texture, creating one only if no free match exists.\n *\n * A FREE MATCH IS ONE NOBODY HOLDS. A record with a live lock is never handed\n * out again, which is what lets two passes ask for \"a 512 square\" and get\n * different surfaces when both are in flight, and the same one when they are\n * not.\n *\n * @param {string} name A debug name.\n * @param {object} description `{ width, height, format, gpuUsage }`.\n * @returns {GpuResourceHandle} The borrowed texture.\n */\n GetTempTexture(name, description)\n {\n return this.#Borrow(this.#tempTextures, name, description, () => this.#CreateTexture(description));\n }\n\n /**\n * Borrows a persistent texture, initializing it the first time only.\n *\n * @param {string} name A debug name.\n * @param {object} description `{ width, height, format, gpuUsage }`.\n * @param {Function} [initialize] Called once, with the new texture.\n * @returns {GpuResourceHandle} The texture.\n */\n GetPersistentTexture(name, description, initialize = null)\n {\n const existing = this.#Find(this.#persistentTextures, name, description, false);\n\n if (existing) return new GpuResourceHandle(existing);\n\n const texture = this.#CreateTexture(description);\n\n if (initialize) initialize(texture);\n\n return new GpuResourceHandle(this.#Add(this.#persistentTextures, name, description, texture));\n }\n\n /**\n * Borrows a scratch buffer.\n *\n * @param {string} name A debug name.\n * @param {object} description A `Tr2BufferDescriptionAL`.\n * @returns {GpuResourceHandle} The borrowed buffer.\n */\n GetTempBuffer(name, description)\n {\n return this.#Borrow(this.#tempBuffers, name, description, () => this.#CreateBuffer(description));\n }\n\n /**\n * Borrows a persistent buffer, initializing it the first time only.\n *\n * @param {string} name A debug name.\n * @param {object} description A `Tr2BufferDescriptionAL`.\n * @param {Function} [initialize] Called once, with the new buffer.\n * @returns {GpuResourceHandle} The buffer.\n */\n GetPersistentBuffer(name, description, initialize = null)\n {\n const existing = this.#Find(this.#persistentBuffers, name, description, false);\n\n if (existing) return new GpuResourceHandle(existing);\n\n const buffer = this.#CreateBuffer(description);\n\n if (initialize) initialize(buffer);\n\n return new GpuResourceHandle(this.#Add(this.#persistentBuffers, name, description, buffer));\n }\n\n /**\n * Returns a borrowed resource, as Carbon's allocators do.\n *\n * @param {GpuResourceHandle} handle The handle to give back.\n * @returns {boolean} Whether a claim was dropped.\n */\n Free(handle)\n {\n if (!handle) fail(\"Free needs a handle\");\n\n return handle.Detach();\n }\n\n /**\n * Drops temp resources nobody holds and nobody has touched recently.\n *\n * @param {number} [frameThreshold] How many frames of disuse to allow.\n * @returns {number} How many resources were dropped.\n */\n ClearUnusedResources(frameThreshold = 3)\n {\n let dropped = 0;\n\n for (const list of [ this.#tempTextures, this.#tempBuffers ])\n {\n for (let index = list.length - 1; index >= 0; index -= 1)\n {\n const record = list[index];\n\n if (record.lockCount > 0) continue;\n if (this.#frame - record.lastAccessFrame < frameThreshold) continue;\n\n record.resource.Destroy();\n list.splice(index, 1);\n dropped += 1;\n }\n }\n\n return dropped;\n }\n\n /** @param {boolean} enable Whether to keep debug detail. */\n SetDebugMode(enable)\n {\n this.#debugMode = !!enable;\n }\n\n /** @returns {boolean} Whether debug mode is on. */\n GetDebugMode()\n {\n return this.#debugMode;\n }\n\n /**\n * Every temp texture the pool holds, for a caller that must assert.\n *\n * @returns {object[]} The textures.\n */\n DebugGetAllTempTextures()\n {\n return this.#tempTextures.map(record => record.resource);\n }\n\n /**\n * How many resources are currently held by a handle.\n *\n * Not Carbon's - JavaScript has no destructor to release on, so a caller\n * needs a way to prove it released what it borrowed.\n *\n * @returns {number} The count.\n */\n GetHeldCount()\n {\n return [ this.#tempTextures, this.#persistentTextures, this.#tempBuffers, this.#persistentBuffers ]\n .reduce((total, list) => total + list.filter(record => record.lockCount > 0).length, 0);\n }\n\n /** Splits the pool's flat description into the AL's two arguments. */\n #CreateTexture(description)\n {\n if (!this.#renderContext) fail(\"a pool creates against a render context; none is bound\");\n\n const texture = new Tr2TextureALStub();\n const { gpuUsage, cpuUsage, msaa, initialData, ...dimensions } = description;\n\n texture.Create(\n new Tr2BitmapDimensions(dimensions),\n { gpuUsage, cpuUsage, msaa, initialData },\n this.#renderContext\n );\n\n return texture;\n }\n\n #CreateBuffer(description)\n {\n if (!this.#renderContext) fail(\"a pool creates against a render context; none is bound\");\n\n const buffer = new Tr2BufferALStub();\n\n // THREE arguments. The context went into `initialData` here, leaving\n // `renderContext` undefined, so the first line of Create that touched it\n // threw a TypeError - which is why neither buffer accessor had ever run.\n // The texture path two methods up passes all three correctly.\n buffer.Create(description, null, this.#renderContext);\n\n return buffer;\n }\n\n #Borrow(list, name, description, create)\n {\n const free = this.#Find(list, name, description, true);\n\n if (free) return new GpuResourceHandle(free);\n\n if (this.#outer) return this.#outer.#Borrow(list === this.#tempTextures\n ? this.#outer.#tempTextures\n : this.#outer.#tempBuffers, name, description, create);\n\n return new GpuResourceHandle(this.#Add(list, name, description, create()));\n }\n\n #Find(list, name, description, freeOnly)\n {\n const match = list.find(record =>\n record.name === name\n && SameDescription(record.description, description)\n && (!freeOnly || record.lockCount === 0));\n\n if (match) match.lastAccessFrame = this.#frame;\n\n return match ?? null;\n }\n\n #Add(list, name, description, resource)\n {\n const record = { resource, name, description, lockCount: 0, lastAccessFrame: this.#frame };\n\n list.push(record);\n\n return record;\n }\n}\n\n\nfunction SameDescription(left, right)\n{\n if (left === right) return true;\n if (!left || !right) return false;\n\n const keys = new Set([ ...Object.keys(left), ...Object.keys(right) ]);\n\n for (const key of keys)\n {\n if (left[key] !== right[key]) return false;\n }\n\n return true;\n}\n\n\nlet globalPool = null;\n\n/**\n * Carbon's `GetGlobalGpuResourcePool`.\n *\n * @returns {Tr2GpuResourcePool} The process-wide pool.\n */\nexport function GetGlobalGpuResourcePool()\n{\n globalPool ??= new Tr2GpuResourcePool();\n\n return globalPool;\n}\n"],"names":["fail","message","error","Error","code","TextureSize2D","width","height","constructor","widthOrDimensions","GetWidth","GetHeight","Equals","other","Scaled","scale","Math","max","trunc","GpuResourceHandle","record","lockCount","Get","resource","IsValid","GetName","name","Detach","Tr2GpuResourcePool","outer","SetRenderContext","renderContext","SetFrame","frame","GetTempTexture","description","GetPersistentTexture","initialize","existing","texture","GetTempBuffer","GetPersistentBuffer","buffer","Free","handle","ClearUnusedResources","frameThreshold","dropped","list","index","length","lastAccessFrame","Destroy","splice","SetDebugMode","enable","GetDebugMode","DebugGetAllTempTextures","map","GetHeldCount","reduce","total","filter","#CreateTexture","Tr2TextureALStub","gpuUsage","cpuUsage","msaa","initialData","dimensions","Create","Tr2BitmapDimensions","#CreateBuffer","Tr2BufferALStub","#Borrow","create","free","#Find","freeOnly","match","find","SameDescription","#Add","push","left","right","keys","Set","Object","key","globalPool","GetGlobalGpuResourcePool"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2QuadRenderer.js","sources":["../../../../src/trinity/core/Tr2QuadRenderer.js"],"sourcesContent":["// Source: trinity/trinity/Tr2QuadRenderer.h\n// trinity/trinity/Tr2QuadRenderer.cpp\r\n// Hand-maintained from Carbon source, promoted out of generated intake.\r\n// CPU half implemented 2026-07-23 (batch-plan P5 scene-global quad collector).\r\n// The generator had flattened the internal EffectRecord/PerThreadData members\r\n// onto the class; corrected to Carbon's nested shape. GPU realization (quad\r\n// vertex/index buffers, ring instance buffer upload, vertex-declaration\r\n// handles) is engine-owned and reads the merged CPU state emitted here.\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { Tr2RenderBatch } from \"./batch/Tr2RenderBatch.js\";\r\nimport { TriBatchType } from \"#consts/graphics\";\r\n\r\n/** One registered quad effect (Carbon Tr2QuadRenderer::EffectRecord). */\r\nexport class Tr2QuadRendererEffectRecord\r\n{\r\n\r\n effect = null;\r\n\r\n batchType = 0;\r\n\r\n /** Size of one instance vertex in BYTES. */\r\n instanceSize = 0;\r\n\r\n /** Number of quads to render per instance. */\r\n quadCount = 0;\r\n\r\n /** Vertex definition (engine resolves the declaration handle from it). */\r\n definition = null;\r\n\r\n /** Byte offset of this record's instances in the merged buffer. */\r\n bufferOffset = 0;\r\n\r\n /** Number of instances merged this frame. */\r\n count = 0;\r\n\r\n /** Per-frame accumulation (Carbon's per-thread TLS collapses to one list). */\r\n pending = [];\r\n\r\n /** Bytes accumulated in pending. */\r\n addedSize = 0;\r\n\r\n}\r\n\r\n/** Collects quads from every registered effect into one merged instance buffer and emits them as batches. */\r\n@type.define({ className: \"Tr2QuadRenderer\", family: \"trinityCore\" })\r\nexport class Tr2QuadRenderer extends CjsModel\r\n{\r\n\r\n /** m_vertexBufferOffset (uint32_t) - ring offset; engine stamps the real one. */\r\n @type.uint32\r\n vertexBufferOffset = 0;\r\n\r\n /** m_lastInstanceDataSize (uint32_t) */\r\n @type.uint32\r\n lastInstanceDataSize = 0;\r\n\r\n /** m_bufferAlignment (uint32_t) - lcm of registered instance sizes. */\r\n @type.uint32\r\n bufferAlignment = 4;\r\n\r\n /** m_bufferSize - bytes accumulated this frame across all records. */\r\n @type.uint32\r\n bufferSize = 0;\r\n\r\n /** m_effects - EffectKey -> Tr2QuadRendererEffectRecord. */\r\n #effects = new Map();\r\n\r\n /** The merged terminal CPU instance bytes for the frame. */\r\n #mergedData = null;\r\n\r\n /** Largest quadCount among records with instances (RecreateQuadBuffers input). */\r\n #maxQuadCount = 0;\r\n\r\n /**\r\n * Registers a quad effect once per key (Carbon Tr2QuadRenderer.cpp:30-53).\r\n * instanceSize is in bytes; the buffer alignment grows to the lcm of all\r\n * registered instance sizes.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterEffect(key, batchType, instanceSize, quadCount, definition, effect)\r\n {\r\n if (this.#effects.has(key))\r\n {\r\n return;\r\n }\r\n const record = new Tr2QuadRendererEffectRecord();\r\n record.effect = effect ?? null;\r\n record.batchType = batchType;\r\n record.instanceSize = instanceSize >>> 0;\r\n record.quadCount = quadCount >>> 0;\r\n record.definition = definition ?? null;\r\n this.#effects.set(key, record);\r\n this.bufferAlignment = Tr2QuadRenderer.#Lcm(this.bufferAlignment, record.instanceSize || 1);\r\n }\r\n\r\n /**\r\n * Drops a registered effect and the quads accumulated for it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UnregisterEffect(key)\r\n {\r\n this.#effects.delete(key);\r\n }\r\n\r\n /**\r\n * Accumulates instance data for a registered effect (Carbon cpp:60-79).\r\n * Accepts terminal byte views or legacy float32-compatible number arrays\r\n * covering count * instanceSize bytes; unknown keys are ignored like Carbon.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Single-threaded JS collapses the per-thread TLS buffers to one pending list while preserving Carbon's raw memcpy byte boundary.\")\r\n AddQuads(effectKey, sprites, count = 1)\r\n {\r\n const record = this.#effects.get(effectKey);\r\n if (!record)\r\n {\r\n return;\r\n }\r\n\r\n const size = count * record.instanceSize;\r\n if (!size)\r\n {\r\n return;\r\n }\r\n\r\n const bytes = Tr2QuadRenderer.#CopyInstanceBytes(sprites, size);\r\n record.pending.push(bytes);\r\n record.addedSize += size;\r\n this.bufferSize += size;\r\n }\r\n\r\n /**\r\n * Concatenates every record's pending instances into one aligned CPU\r\n * buffer, stamping per-record bufferOffset/count (Carbon cpp:81-115).\r\n * Returns the largest quadCount among live records.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n MergeBuffers()\r\n {\r\n let padded = this.bufferSize;\r\n for (const record of this.#effects.values())\r\n {\r\n padded += record.instanceSize;\r\n }\r\n const merged = new Uint8Array(padded);\r\n let offset = 0;\r\n let quadCount = 0;\r\n for (const record of this.#effects.values())\r\n {\r\n offset = Tr2QuadRenderer.#Align(offset, record.instanceSize || 1);\r\n record.bufferOffset = offset;\r\n for (const chunk of record.pending)\r\n {\r\n merged.set(chunk, offset);\r\n offset += chunk.byteLength;\r\n }\r\n record.pending.length = 0;\r\n record.addedSize = 0;\r\n record.count = record.instanceSize ? (offset - record.bufferOffset) / record.instanceSize : 0;\r\n if (record.count)\r\n {\r\n quadCount = Math.max(quadCount, record.quadCount);\r\n }\r\n }\r\n this.#mergedData = merged;\r\n this.#maxQuadCount = quadCount;\r\n return quadCount;\r\n }\r\n\r\n /**\r\n * Frame-start CPU work (Carbon cpp:160-166): merge the accumulated\r\n * instances. Buffer upload and quad-buffer creation are engine-owned;\r\n * the engine reads GetMergedData()/GetMaxQuadCount() and stamps\r\n * vertexBufferOffset with the ring allocation.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"UpdateInstanceBuffer/RecreateQuadBuffers/PrepareResources are GPU realization; the merged CPU state is exposed for the engine.\")\r\n BeginRendering(_renderContext = null)\r\n {\r\n const quadCount = this.MergeBuffers();\r\n this.lastInstanceDataSize = this.bufferSize;\r\n return quadCount;\r\n }\r\n\r\n /** Frame-end reset (Carbon cpp:55-58). */\r\n @carbon.method\r\n @impl.implemented\r\n DoneRendering(_renderContext = null)\r\n {\r\n this.bufferSize = 0;\r\n }\r\n\r\n /**\r\n * Emits one instanced batch per live record of the requested type\r\n * (Carbon cpp:188-207). The quad vertex/index buffers are shared engine\r\n * resources, carried as descriptors on the batch; startInstanceLocation\r\n * derives from the ring offset + record offset exactly like Carbon.\r\n * Returns whether any batch was committed (JS convention).\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Quad and ring buffers become deferred descriptors the engine realizes; Carbon binds live AL buffers here.\")\r\n GetBatches(batchType, accumulator)\r\n {\r\n let committed = false;\r\n for (const record of this.#effects.values())\r\n {\r\n if (!record.count || record.batchType !== batchType)\r\n {\r\n continue;\r\n }\r\n const batch = accumulator.Allocate(Tr2RenderBatch);\r\n batch.SetMaterial(record.effect);\r\n batch.SetGeometry(record.definition, Tr2QuadRenderer.QuadVertexSource, 4, Tr2QuadRenderer.QuadIndexSource, 2);\r\n batch.SetStreamSource(1, {\r\n quadInstanceData: this.#mergedData,\r\n byteOffset: record.bufferOffset,\r\n instanceSize: record.instanceSize\r\n }, record.instanceSize);\r\n batch.SetDrawIndexedInstanced(\r\n 6 * record.quadCount,\r\n record.count,\r\n 0,\r\n 0,\r\n record.instanceSize ? (this.vertexBufferOffset + record.bufferOffset) / record.instanceSize : 0\r\n );\r\n committed = accumulator.Commit(batch) || committed;\r\n }\r\n return committed;\r\n }\r\n\r\n /**\r\n * The per-instance byte size an engine allocates for a registered effect.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetInstanceDataSize()\r\n {\r\n return this.lastInstanceDataSize;\r\n }\r\n\r\n /** The frame's merged CPU instance buffer for the engine uploader. */\r\n GetMergedData()\r\n {\r\n return this.#mergedData;\r\n }\r\n\r\n /** The largest quadCount among live records (quad IB sizing). */\r\n GetMaxQuadCount()\r\n {\r\n return this.#maxQuadCount;\r\n }\r\n\r\n /** The registered effect records (engine declaration resolution). */\r\n GetEffectRecords()\r\n {\r\n return this.#effects;\r\n }\r\n\r\n /** Carbon Tr2QuadRenderer::Instance - the scene-global singleton. */\r\n static Instance()\r\n {\r\n if (!Tr2QuadRenderer.#instance)\r\n {\r\n Tr2QuadRenderer.#instance = new Tr2QuadRenderer();\r\n }\r\n return Tr2QuadRenderer.#instance;\r\n }\r\n\r\n /**\r\n * Rounds an offset up to the next multiple of an alignment.\r\n */\r\n static #Align(offset, alignment)\r\n {\r\n return Math.ceil(offset / alignment) * alignment;\r\n }\r\n\r\n /**\r\n * The lowest common multiple of two sizes, used to align a shared instance stride.\r\n */\r\n static #Lcm(a, b)\r\n {\r\n const gcd = (x, y) => (y ? gcd(y, x % y) : x);\r\n return (a * b) / gcd(a, b);\r\n }\r\n\r\n /** Copies one AddQuads input as the exact bytes Carbon memcpy would receive. */\r\n static #CopyInstanceBytes(source, size)\r\n {\r\n let bytes;\r\n\r\n if (ArrayBuffer.isView(source))\r\n {\r\n bytes = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\r\n }\r\n else if (source instanceof ArrayBuffer)\r\n {\r\n bytes = new Uint8Array(source);\r\n }\r\n else if (Array.isArray(source))\r\n {\r\n const floats = Float32Array.from(source);\r\n bytes = new Uint8Array(floats.buffer, floats.byteOffset, floats.byteLength);\r\n }\r\n else\r\n {\r\n throw new TypeError(\"Tr2QuadRenderer.AddQuads requires terminal bytes or float32-compatible numeric data.\");\r\n }\r\n\r\n if (bytes.byteLength < size)\r\n {\r\n throw new RangeError(`Tr2QuadRenderer.AddQuads expected ${size} bytes, received ${bytes.byteLength}.`);\r\n }\r\n\r\n return bytes.slice(0, size);\r\n }\r\n\r\n static #instance = null;\r\n\r\n /** Deferred descriptor for the engine-owned shared quad vertex buffer. */\r\n static QuadVertexSource = Object.freeze({ quadRendererBuffer: \"quad-vertices\" });\r\n\r\n /** Deferred descriptor for the engine-owned shared quad index buffer. */\r\n static QuadIndexSource = Object.freeze({ quadRendererBuffer: \"quad-indices\" });\r\n\r\n static TriBatchType = TriBatchType;\r\n\r\n}\r\n"],"names":["Tr2QuadRendererEffectRecord","effect","batchType","instanceSize","quadCount","definition","bufferOffset","count","pending","addedSize","_Tr2QuadRenderer","_identity","Tr2QuadRenderer","CjsModel","e","_init_vertexBufferOffset","_init_extra_vertexBufferOffset","_init_lastInstanceDataSize","_init_extra_lastInstanceDataSize","_init_bufferAlignment","_init_extra_bufferAlignment","_init_bufferSize","_init_extra_bufferSize","_initProto","c","_initClass","_applyDecs","type","define","className","family","uint32","carbon","method","impl","implemented","adapted","reason","vertexBufferOffset","lastInstanceDataSize","bufferAlignment","bufferSize","Map","RegisterEffect","key","has","record","set","UnregisterEffect","delete","AddQuads","effectKey","sprites","get","size","bytes","push","MergeBuffers","padded","values","merged","Uint8Array","offset","chunk","byteLength","length","Math","max","BeginRendering","_renderContext","DoneRendering","GetBatches","accumulator","committed","batch","Allocate","Tr2RenderBatch","SetMaterial","SetGeometry","QuadVertexSource","QuadIndexSource","SetStreamSource","quadInstanceData","byteOffset","SetDrawIndexedInstanced","Commit","GetInstanceDataSize","GetMergedData","GetMaxQuadCount","GetEffectRecords","Instance","#Align","alignment","ceil","#Lcm","a","b","gcd","x","y","#CopyInstanceBytes","source","ArrayBuffer","isView","buffer","Array","isArray","floats","Float32Array","from","TypeError","RangeError","slice","Object","freeze","quadRendererBuffer","TriBatchType","constructor"],"mappings":"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"}