@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expressionRuntime.js","sources":["../../../../../src/trinity/controllers/expression/expressionRuntime.js"],"sourcesContent":["// Source: parser/include/ccpparser.h (CcpParser::Parse, Program, Observer)\r\n//\r\n// The tokenizer and the AST evaluator, split out of\r\n// CjsControllerExpressionProgram.js so that the parser and the program can each\r\n// reach them without importing one another. Nothing here is a class: these are\r\n// the bytecode VM's replacement, which is why there are so many of them - see\r\n// that file's head comment for the constraint that forces an AST walk.\r\nimport { CjsControllerExpressionCompileError } from \"./CjsControllerExpressionCompileError.js\";\r\nimport { CjsControllerExpressionEvaluateError } from \"./CjsControllerExpressionEvaluateError.js\";\r\n\r\nexport const BLOCKED_IDENTIFIERS = new Set([\"__proto__\", \"prototype\", \"constructor\", \"Function\", \"eval\", \"process\", \"global\", \"globalThis\", \"window\", \"document\", \"this\"]);\r\nexport const CONSTANTS = {\r\n true: 1,\r\n false: 0,\r\n pi: Math.PI,\r\n pi2: Math.PI * 2,\r\n _pi: Math.PI,\r\n _e: Math.E\r\n};\r\n\r\nexport function Tokenize(source)\r\n{\r\n const tokens = [];\r\n let i = 0;\r\n while (i < source.length)\r\n {\r\n const c = source[i];\r\n if (/\\s/.test(c))\r\n {\r\n i++;\r\n continue;\r\n }\r\n if (IsDigit(c) || c === \".\" && IsDigit(source[i + 1]))\r\n {\r\n const start = i;\r\n i = ReadNumber(source, i);\r\n tokens.push({\r\n type: \"number\",\r\n value: Number(source.slice(start, i)),\r\n position: start\r\n });\r\n continue;\r\n }\r\n if (c === '\"' || c === \"'\")\r\n {\r\n const start = i;\r\n const result = ReadString(source, i);\r\n i = result.end;\r\n tokens.push({\r\n type: \"string\",\r\n value: result.value,\r\n position: start\r\n });\r\n continue;\r\n }\r\n if (IsIdentifierStart(c))\r\n {\r\n const start = i;\r\n i++;\r\n while (IsIdentifierPart(source[i]))\r\n {\r\n i++;\r\n }\r\n tokens.push({\r\n type: \"identifier\",\r\n value: source.slice(start, i),\r\n position: start\r\n });\r\n continue;\r\n }\r\n const two = source.slice(i, i + 2);\r\n if (two === \"&&\" || two === \"||\" || two === \"<=\" || two === \">=\" || two === \"==\" || two === \"!=\")\r\n {\r\n tokens.push({\r\n type: \"operator\",\r\n value: two,\r\n position: i\r\n });\r\n i += 2;\r\n continue;\r\n }\r\n if (\"+-*/%^<>()!,?:\".includes(c))\r\n {\r\n tokens.push({\r\n type: \"operator\",\r\n value: c,\r\n position: i\r\n });\r\n i++;\r\n continue;\r\n }\r\n throw new CjsControllerExpressionCompileError({\r\n expression: source,\r\n reason: `Unexpected character '${c}'`,\r\n position: i\r\n });\r\n }\r\n tokens.push({\r\n type: \"eof\",\r\n value: \"\",\r\n position: source.length\r\n });\r\n return tokens;\r\n}\r\nexport function ReadNumber(source, index)\r\n{\r\n let i = index;\r\n while (IsDigit(source[i]))\r\n {\r\n i++;\r\n }\r\n if (source[i] === \".\")\r\n {\r\n i++;\r\n while (IsDigit(source[i]))\r\n {\r\n i++;\r\n }\r\n }\r\n if (source[i] === \"e\" || source[i] === \"E\")\r\n {\r\n const exp = i;\r\n i++;\r\n if (source[i] === \"+\" || source[i] === \"-\")\r\n {\r\n i++;\r\n }\r\n const digits = i;\r\n while (IsDigit(source[i]))\r\n {\r\n i++;\r\n }\r\n if (digits === i)\r\n {\r\n return exp;\r\n }\r\n }\r\n return i;\r\n}\r\nexport function ReadString(source, index)\r\n{\r\n const quote = source[index];\r\n let value = \"\";\r\n let i = index + 1;\r\n while (i < source.length)\r\n {\r\n const c = source[i++];\r\n if (c === quote)\r\n {\r\n return {\r\n value,\r\n end: i\r\n };\r\n }\r\n if (c === \"\\\\\")\r\n {\r\n const n = source[i++];\r\n switch (n)\r\n {\r\n case \"n\":\r\n value += \"\\n\";\r\n break;\r\n case \"r\":\r\n value += \"\\r\";\r\n break;\r\n case \"t\":\r\n value += \"\\t\";\r\n break;\r\n default:\r\n value += n;\r\n break;\r\n }\r\n }\r\n else\r\n {\r\n value += c;\r\n }\r\n }\r\n throw new CjsControllerExpressionCompileError({\r\n expression: source,\r\n reason: \"Unterminated string\",\r\n position: index\r\n });\r\n}\r\nexport function EvaluateNode(node, context, program)\r\n{\r\n switch (node.type)\r\n {\r\n case \"literal\":\r\n return node.value;\r\n case \"identifier\":\r\n return ResolveIdentifier(node.name, context);\r\n case \"unary\":\r\n return EvaluateUnary(node.operator, EvaluateNode(node.argument, context, program));\r\n case \"binary\":\r\n return EvaluateBinary(node.operator, node.left, node.right, context, program);\r\n case \"conditional\":\r\n return ToBoolean(EvaluateNode(node.condition, context, program)) ? EvaluateNode(node.consequent, context, program) : EvaluateNode(node.alternate, context, program);\r\n case \"call\":\r\n return EvaluateCall(node, context, program);\r\n }\r\n}\r\nexport function EvaluateUnary(operator, value)\r\n{\r\n switch (operator)\r\n {\r\n case \"!\":\r\n return ToBoolean(value) ? 0 : 1;\r\n case \"-\":\r\n return -ToNumber(value);\r\n case \"+\":\r\n return ToNumber(value);\r\n default:\r\n return 0;\r\n }\r\n}\r\nexport function EvaluateBinary(operator, leftNode, rightNode, context, program)\r\n{\r\n if (operator === \"&&\")\r\n {\r\n return ToBoolean(EvaluateNode(leftNode, context, program)) && ToBoolean(EvaluateNode(rightNode, context, program)) ? 1 : 0;\r\n }\r\n if (operator === \"||\")\r\n {\r\n return ToBoolean(EvaluateNode(leftNode, context, program)) || ToBoolean(EvaluateNode(rightNode, context, program)) ? 1 : 0;\r\n }\r\n const left = EvaluateNode(leftNode, context, program);\r\n const right = EvaluateNode(rightNode, context, program);\r\n switch (operator)\r\n {\r\n case \"+\":\r\n return ToNumber(left) + ToNumber(right);\r\n case \"-\":\r\n return ToNumber(left) - ToNumber(right);\r\n case \"*\":\r\n return ToNumber(left) * ToNumber(right);\r\n case \"/\":\r\n return ToNumber(right) === 0 ? 0 : ToNumber(left) / ToNumber(right);\r\n case \"%\":\r\n return ToNumber(right) === 0 ? 0 : ToNumber(left) % ToNumber(right);\r\n case \"^\":\r\n return Math.pow(ToNumber(left), ToNumber(right));\r\n case \"<\":\r\n return ToNumber(left) < ToNumber(right) ? 1 : 0;\r\n case \"<=\":\r\n return ToNumber(left) <= ToNumber(right) ? 1 : 0;\r\n case \">\":\r\n return ToNumber(left) > ToNumber(right) ? 1 : 0;\r\n case \">=\":\r\n return ToNumber(left) >= ToNumber(right) ? 1 : 0;\r\n case \"==\":\r\n // Carbon's CcpParser numeric/string coercion is closer to loose JS here.\r\n // deno-lint-ignore eqeqeq\r\n return left == right ? 1 : 0;\r\n case \"!=\":\r\n // deno-lint-ignore eqeqeq\r\n return left != right ? 1 : 0;\r\n default:\r\n return 0;\r\n }\r\n}\r\nexport function EvaluateCall(node, context, program)\r\n{\r\n const fn = GetFunction(node.name, program.options);\r\n if (!fn)\r\n {\r\n throw new CjsControllerExpressionEvaluateError({\r\n expression: program.source,\r\n reason: `Unknown function '${node.name}'`\r\n });\r\n }\r\n const args = node.args.map(arg => EvaluateNode(arg, context, program));\r\n return fn(context || {}, ...args);\r\n}\r\nexport function ResolveIdentifier(name, context = {})\r\n{\r\n if (name in CONSTANTS)\r\n {\r\n return CONSTANTS[name];\r\n }\r\n if (context.variables)\r\n {\r\n if (context.variables instanceof Map && context.variables.has(name))\r\n {\r\n return NormalizeValue(context.variables.get(name));\r\n }\r\n if (!(context.variables instanceof Map) && Object.prototype.hasOwnProperty.call(context.variables, name))\r\n {\r\n return NormalizeValue(context.variables[name]);\r\n }\r\n }\r\n const value = context.controller?.GetVariableValue?.(name, undefined);\r\n if (value !== undefined)\r\n {\r\n return NormalizeValue(value);\r\n }\r\n if (Object.prototype.hasOwnProperty.call(context, name))\r\n {\r\n return NormalizeValue(context[name]);\r\n }\r\n return 0;\r\n}\r\nexport function GetFunction(name, options = {})\r\n{\r\n if (options.functions?.[name])\r\n {\r\n return options.functions[name];\r\n }\r\n return DEFAULT_FUNCTIONS[name] || null;\r\n}\r\nexport function IsFunctionPure(name, options = {})\r\n{\r\n if (options.functions?.[name])\r\n {\r\n const pureFunctions = options.pureFunctions;\r\n return pureFunctions instanceof Set ? pureFunctions.has(name) : Array.isArray(pureFunctions) && pureFunctions.includes(name);\r\n }\r\n return PURE_DEFAULT_FUNCTIONS.has(name);\r\n}\r\nexport const PURE_DEFAULT_FUNCTIONS = new Set([\"abs\", \"min\", \"max\", \"floor\", \"ceil\", \"round\", \"sqrt\", \"pow\", \"sin\", \"cos\", \"tan\", \"asin\", \"acos\", \"atan\", \"sinh\", \"cosh\", \"tanh\", \"asinh\", \"acosh\", \"atanh\", \"log2\", \"log10\", \"log\", \"ln\", \"exp\", \"sign\", \"rint\", \"sum\", \"avg\", \"clamp\", \"radians\", \"mod\", \"lerp\"]);\r\nexport const DEFAULT_FUNCTIONS = {\r\n abs: (_ctx, x) => Math.abs(ToNumber(x)),\r\n min: (_ctx, ...args) => Math.min(...args.map(ToNumber)),\r\n max: (_ctx, ...args) => Math.max(...args.map(ToNumber)),\r\n floor: (_ctx, x) => Math.floor(ToNumber(x)),\r\n ceil: (_ctx, x) => Math.ceil(ToNumber(x)),\r\n round: (_ctx, x) => Math.round(ToNumber(x)),\r\n sqrt: (_ctx, x) => Math.sqrt(Math.max(0, ToNumber(x))),\r\n pow: (_ctx, x, y) => Math.pow(ToNumber(x), ToNumber(y)),\r\n sin: (_ctx, x) => Math.sin(ToNumber(x)),\r\n cos: (_ctx, x) => Math.cos(ToNumber(x)),\r\n tan: (_ctx, x) => Math.tan(ToNumber(x)),\r\n asin: (_ctx, x) => Math.asin(ToNumber(x)),\r\n acos: (_ctx, x) => Math.acos(ToNumber(x)),\r\n atan: (_ctx, x) => Math.atan(ToNumber(x)),\r\n sinh: (_ctx, x) => Math.sinh(ToNumber(x)),\r\n cosh: (_ctx, x) => Math.cosh(ToNumber(x)),\r\n tanh: (_ctx, x) => Math.tanh(ToNumber(x)),\r\n asinh: (_ctx, x) => Math.asinh(ToNumber(x)),\r\n acosh: (_ctx, x) => Math.acosh(ToNumber(x)),\r\n atanh: (_ctx, x) => Math.atanh(ToNumber(x)),\r\n log2: (_ctx, x) => Math.log2(ToNumber(x)),\r\n log10: (_ctx, x) => Math.log10(ToNumber(x)),\r\n log: (_ctx, x) => Math.log(ToNumber(x)),\r\n ln: (_ctx, x) => Math.log(ToNumber(x)),\r\n exp: (_ctx, x) => Math.exp(ToNumber(x)),\r\n sign: (_ctx, x) =>\r\n {\r\n const value = ToNumber(x);\r\n return value > 0 ? 1 : value < 0 ? -1 : 0;\r\n },\r\n rint: (_ctx, x) => RoundHalfToEven(ToNumber(x)),\r\n sum: (_ctx, ...args) => SumValues(args),\r\n avg: (_ctx, ...args) => args.length ? SumValues(args) / args.length : 0,\r\n clamp: (_ctx, x, min, max) => Math.min(ToNumber(max), Math.max(ToNumber(min), ToNumber(x))),\r\n radians: (_ctx, x) => ToNumber(x) * Math.PI / 180,\r\n mod: (_ctx, x, y) => ToNumber(y) === 0 ? 0 : ToNumber(x) % ToNumber(y),\r\n lerp: (_ctx, a, b, x) => ToNumber(a) * (1 - ToNumber(x)) + ToNumber(b) * ToNumber(x),\r\n random: (_ctx, min = 0, max = 1) => ToNumber(min) + Math.random() * (ToNumber(max) - ToNumber(min)),\r\n Random: (_ctx, min = 0, max = 1) => RandomInteger(min, max),\r\n randomConstant: (ctx, min = 0, max = 1) => ToNumber(min) + GetRandomConstant(ctx) * (ToNumber(max) - ToNumber(min)),\r\n randconst: (ctx, min = 0, max = 1) => DEFAULT_FUNCTIONS.randomConstant(ctx, min, max),\r\n randhash: (_ctx, min = 0, max = 1, value = 0) => ToNumber(min) + Hash01(ToNumber(value)) * (ToNumber(max) - ToNumber(min)),\r\n noise: (ctx, x) => Hash01(ToNumber(x) + GetRandomConstant(ctx)),\r\n fractal: (ctx, x) => Hash01(ToNumber(x) + GetRandomConstant(ctx)),\r\n input: (ctx, index) => GetInputValue(ctx, index),\r\n inputAt: (ctx, index, time) => GetInputValue(ctx, index, time),\r\n StateTime: ctx => ctx.stateMachine?.GetStateTime ? ctx.stateMachine.GetStateTime() : ToNumber(ctx.stateTime),\r\n CurveSetTime: (ctx, name) => GetCurveSetTime(ctx, name),\r\n AnimationTime: (ctx, name) => CallContextFunction(ctx, \"AnimationTime\", name),\r\n IsAnimationPlaying: (ctx, name) => CallContextFunction(ctx, \"IsAnimationPlaying\", name),\r\n GetExternalControllerVariable: (ctx, name, fallback = 0) => GetExternalControllerVariable(ctx, name, fallback),\r\n ShipSpeed: ctx => CallContextFunction(ctx, \"ShipSpeed\"),\r\n ShipMaxSpeed: ctx => CallContextFunction(ctx, \"ShipMaxSpeed\", undefined, 1),\r\n ShipBoosterIntensity: ctx => CallContextFunction(ctx, \"ShipBoosterIntensity\"),\r\n KillCount: ctx => CallContextFunction(ctx, \"KillCount\"),\r\n BoundingSphereRadius: ctx => CallContextFunction(ctx, \"BoundingSphereRadius\"),\r\n ShaderQuality: ctx => CallContextFunction(ctx, \"ShaderQuality\"),\r\n IsWeekend: ctx => GetServerDatePart(ctx, \"dayOfWeek\") % 6 === 0 ? 1 : 0,\r\n ServerYear: ctx => GetServerDatePart(ctx, \"year\"),\r\n ServerMonth: ctx => GetServerDatePart(ctx, \"month\"),\r\n ServerDay: ctx => GetServerDatePart(ctx, \"day\"),\r\n ServerDayOfWeek: ctx => GetServerDatePart(ctx, \"dayOfWeek\"),\r\n ServerHour: ctx => GetServerDatePart(ctx, \"hour\"),\r\n ServerMinute: ctx => GetServerDatePart(ctx, \"minute\"),\r\n ServerSecond: ctx => GetServerDatePart(ctx, \"second\"),\r\n ServerTimePhase: (ctx, period) => GetServerTimePhase(ctx, period),\r\n ServerTimeGreaterThan: (ctx, year, month, day, hour, minute, second) => ServerTimeComparison(ctx, [year, month, day, hour, minute, second], 1),\r\n ServerTimeLessThanOrEqual: (ctx, year, month, day, hour, minute, second) => ServerTimeComparison(ctx, [year, month, day, hour, minute, second], -1),\r\n ServerTimeEqual: (ctx, year, month, day, hour, minute, second) => ServerTimeComparison(ctx, [year, month, day, hour, minute, second], 0),\r\n DaysSinceServerTime: (ctx, year, month, day) => DaysSinceServerTime(ctx, year, month, day)\r\n};\r\nexport function GetRandomConstant(context)\r\n{\r\n const source = context.curve ?? context.self ?? context.expression;\r\n if (HasFunction(source, \"GetRandomConstant\"))\r\n {\r\n return ToNumber(source.GetRandomConstant());\r\n }\r\n if (HasProperty(source, \"randomConstant\"))\r\n {\r\n return ToNumber(source.randomConstant);\r\n }\r\n return 0;\r\n}\r\nexport function GetInputValue(context, index, time)\r\n{\r\n const source = context.curve ?? context.self ?? context.expression ?? context;\r\n if (HasFunction(source, \"GetInputValue\"))\r\n {\r\n return ToNumber(source.GetInputValue(RoundInputIndex(index), time));\r\n }\r\n const inputs = HasProperty(source, \"inputs\") ? source.inputs : context.inputs;\r\n const input = Array.isArray(inputs) ? inputs[RoundInputIndex(index)] : null;\r\n if (!input)\r\n {\r\n return 0;\r\n }\r\n if (time !== undefined && HasFunction(input, \"GetValueAt\"))\r\n {\r\n return ToNumber(input.GetValueAt(ToNumber(time)));\r\n }\r\n if (HasFunction(input, \"GetValueAt\"))\r\n {\r\n return ToNumber(input.GetValueAt(ToNumber(context.time)));\r\n }\r\n if (HasProperty(input, \"currentValue\"))\r\n {\r\n return ToNumber(input.currentValue);\r\n }\r\n return ToNumber(input);\r\n}\r\nexport function RoundInputIndex(index)\r\n{\r\n return Math.trunc(ToNumber(index) + 0.5);\r\n}\r\nexport function GetCurveSetTime(context, name)\r\n{\r\n const owner = context.owner;\r\n if (owner)\r\n {\r\n if (HasFunction(owner, \"GetRangeDuration\") && typeof name === \"string\" && name.includes(\"/\"))\r\n {\r\n const parts = name.split(\"/\");\r\n return ToNumber(owner.GetRangeDuration(parts[0], parts.slice(1).join(\"/\")));\r\n }\r\n if (HasFunction(owner, \"GetCurveSetDuration\"))\r\n {\r\n return ToNumber(owner.GetCurveSetDuration(name));\r\n }\r\n }\r\n return CallContextFunction(context, \"CurveSetTime\", name);\r\n}\r\nexport function GetExternalControllerVariable(context, name, fallback)\r\n{\r\n if (HasProperty(context, \"externalControllerVariables\") && context.externalControllerVariables && typeof context.externalControllerVariables === \"object\" && Object.prototype.hasOwnProperty.call(context.externalControllerVariables, String(name)))\r\n {\r\n return ToNumber(context.externalControllerVariables[String(name)]);\r\n }\r\n if (HasFunction(context.owner, \"GetControllerValueByName\"))\r\n {\r\n const value = context.owner.GetControllerValueByName(name);\r\n return value === undefined || value === null ? ToNumber(fallback) : ToNumber(value);\r\n }\r\n return ToNumber(fallback);\r\n}\r\nexport function RandomInteger(min, max)\r\n{\r\n const minValue = ToNumber(min);\r\n const span = Math.trunc(ToNumber(max) - minValue);\r\n if (span <= 0)\r\n {\r\n return minValue;\r\n }\r\n return minValue + Math.floor(Math.random() * span);\r\n}\r\nexport function GetServerDatePart(context, part)\r\n{\r\n const override = TryCallContextFunction(context, `Server${Capitalize(part)}`);\r\n if (override !== null)\r\n {\r\n return override;\r\n }\r\n const date = GetServerDate(context);\r\n switch (part)\r\n {\r\n case \"year\":\r\n return date.getFullYear();\r\n case \"month\":\r\n return date.getMonth() + 1;\r\n case \"day\":\r\n return date.getDate();\r\n case \"dayOfWeek\":\r\n return date.getDay();\r\n case \"hour\":\r\n return date.getHours();\r\n case \"minute\":\r\n return date.getMinutes();\r\n case \"second\":\r\n return date.getSeconds();\r\n }\r\n}\r\nexport function GetServerTimePhase(context, period)\r\n{\r\n const value = Math.abs(ToNumber(period));\r\n if (value === 0)\r\n {\r\n return 0;\r\n }\r\n return GetServerTimeSeconds(context) % value;\r\n}\r\nexport function ServerTimeComparison(context, values, mode)\r\n{\r\n const parts = [GetServerDatePart(context, \"year\"), GetServerDatePart(context, \"month\"), GetServerDatePart(context, \"day\"), GetServerDatePart(context, \"hour\"), GetServerDatePart(context, \"minute\"), GetServerDatePart(context, \"second\")];\r\n for (let i = 0; i < parts.length; i++)\r\n {\r\n const expected = ToNumber(values[i], -1);\r\n if (expected === -1)\r\n {\r\n continue;\r\n }\r\n if (mode === 0)\r\n {\r\n if (parts[i] !== expected)\r\n {\r\n return 0;\r\n }\r\n continue;\r\n }\r\n if (parts[i] > expected)\r\n {\r\n return mode === 1 ? 1 : 0;\r\n }\r\n if (parts[i] < expected)\r\n {\r\n return mode === -1 ? 1 : 0;\r\n }\r\n }\r\n return 1;\r\n}\r\nexport function DaysSinceServerTime(context, year, month, day)\r\n{\r\n const currentYear = GetServerDatePart(context, \"year\");\r\n const currentMonth = GetServerDatePart(context, \"month\");\r\n const currentDay = GetServerDatePart(context, \"day\");\r\n const targetYear = ToNumber(year, -1) === -1 ? currentYear : ToNumber(year);\r\n const targetMonth = ToNumber(month, -1) === -1 ? currentMonth : ToNumber(month);\r\n const targetDay = ToNumber(day, -1) === -1 ? currentDay : ToNumber(day);\r\n const target = Date.UTC(targetYear, targetMonth, targetDay);\r\n const current = Date.UTC(currentYear, currentMonth, currentDay);\r\n if (!Number.isFinite(target) || !Number.isFinite(current))\r\n {\r\n return Number.MIN_VALUE;\r\n }\r\n return (current - target) / (60 * 60 * 24 * 1000);\r\n}\r\nexport function GetServerDate(context)\r\n{\r\n const value = GetServerTimeValue(context);\r\n if (value instanceof Date)\r\n {\r\n return value;\r\n }\r\n if (typeof value === \"number\" && Number.isFinite(value))\r\n {\r\n return new Date(NormalizeServerTimeMilliseconds(value));\r\n }\r\n return new Date();\r\n}\r\nexport function GetServerTimeSeconds(context)\r\n{\r\n const value = GetServerTimeValue(context);\r\n if (value instanceof Date)\r\n {\r\n return value.getTime() / 1000;\r\n }\r\n if (typeof value === \"number\" && Number.isFinite(value))\r\n {\r\n return NormalizeServerTimeMilliseconds(value) / 1000;\r\n }\r\n return Date.now() / 1000;\r\n}\r\nexport function GetServerTimeValue(context)\r\n{\r\n if (HasProperty(context, \"serverTime\"))\r\n {\r\n const value = context.serverTime;\r\n if (value instanceof Date || typeof value === \"number\")\r\n {\r\n return value;\r\n }\r\n }\r\n if (HasProperty(context, \"functions\") && context.functions && typeof context.functions === \"object\" && HasFunction(context.functions, \"GetServerTime\"))\r\n {\r\n const value = context.functions.GetServerTime(context);\r\n if (value instanceof Date || typeof value === \"number\")\r\n {\r\n return value;\r\n }\r\n }\r\n if (HasFunction(context.owner, \"GetServerTime\"))\r\n {\r\n const value = context.owner.GetServerTime();\r\n if (value instanceof Date || typeof value === \"number\")\r\n {\r\n return value;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function NormalizeServerTimeMilliseconds(value)\r\n{\r\n if (Math.abs(value) > 1e14)\r\n {\r\n return value / 10000;\r\n }\r\n if (Math.abs(value) < 1e10)\r\n {\r\n return value * 1000;\r\n }\r\n return value;\r\n}\r\nexport function CallContextFunction(context, name, arg, fallback = 0)\r\n{\r\n const value = TryCallContextFunction(context, name, arg);\r\n return value === null ? fallback : value;\r\n}\r\nexport function TryCallContextFunction(context, name, arg)\r\n{\r\n if (HasProperty(context, \"functions\") && context.functions && typeof context.functions === \"object\" && HasFunction(context.functions, name))\r\n {\r\n return ToNumber(context.functions[name](arg, context));\r\n }\r\n if (HasFunction(context.owner, name))\r\n {\r\n return ToNumber(context.owner[name](arg));\r\n }\r\n return null;\r\n}\r\nexport function RoundHalfToEven(value)\r\n{\r\n const floor = Math.floor(value);\r\n const diff = value - floor;\r\n if (diff < 0.5)\r\n {\r\n return floor;\r\n }\r\n if (diff > 0.5)\r\n {\r\n return floor + 1;\r\n }\r\n return floor % 2 === 0 ? floor : floor + 1;\r\n}\r\nexport function SumValues(values)\r\n{\r\n let total = 0;\r\n for (const value of values)\r\n {\r\n total += ToNumber(value);\r\n }\r\n return total;\r\n}\r\nexport function Hash01(value)\r\n{\r\n const x = Math.sin(value * 12.9898 + 78.233) * 43758.5453;\r\n return x - Math.floor(x);\r\n}\r\nexport function NormalizeValue(value)\r\n{\r\n if (value === true)\r\n {\r\n return 1;\r\n }\r\n if (value === false)\r\n {\r\n return 0;\r\n }\r\n if (value === undefined || value === null)\r\n {\r\n return 0;\r\n }\r\n return value;\r\n}\r\nexport function ToNumber(value, fallback = 0)\r\n{\r\n value = NormalizeValue(value);\r\n\r\n const number = Number(value);\r\n return Number.isFinite(number) ? number : fallback;\r\n}\r\nexport function Capitalize(value)\r\n{\r\n return value.charAt(0).toUpperCase() + value.slice(1);\r\n}\r\nexport function ToBoolean(value)\r\n{\r\n if (typeof value === \"string\")\r\n {\r\n return value.length > 0;\r\n }\r\n return ToNumber(value) !== 0;\r\n}\r\nexport function IsDigit(c)\r\n{\r\n return !!c && c >= \"0\" && c <= \"9\";\r\n}\r\nexport function IsIdentifierStart(c)\r\n{\r\n return !!c && /[A-Za-z_]/.test(c);\r\n}\r\nexport function IsIdentifierPart(c)\r\n{\r\n return !!c && /[A-Za-z0-9_]/.test(c);\r\n}\r\nexport function HasProperty(value, key)\r\n{\r\n return !!value && typeof value === \"object\" && key in value;\r\n}\r\nexport function HasFunction(value, key)\r\n{\r\n return HasProperty(value, key) && typeof value[key] === \"function\";\r\n}\r\n"],"names":["BLOCKED_IDENTIFIERS","Set","CONSTANTS","true","false","pi","Math","PI","pi2","_pi","_e","E","Tokenize","source","tokens","i","length","c","test","IsDigit","start","ReadNumber","push","type","value","Number","slice","position","result","ReadString","end","IsIdentifierStart","IsIdentifierPart","two","includes","CjsControllerExpressionCompileError","expression","reason","index","exp","digits","quote","n","EvaluateNode","node","context","program","ResolveIdentifier","name","EvaluateUnary","operator","argument","EvaluateBinary","left","right","ToBoolean","condition","consequent","alternate","EvaluateCall","ToNumber","leftNode","rightNode","pow","fn","GetFunction","options","CjsControllerExpressionEvaluateError","args","map","arg","variables","Map","has","NormalizeValue","get","Object","prototype","hasOwnProperty","call","controller","GetVariableValue","undefined","functions","DEFAULT_FUNCTIONS","IsFunctionPure","pureFunctions","Array","isArray","PURE_DEFAULT_FUNCTIONS","abs","_ctx","x","min","max","floor","ceil","round","sqrt","y","sin","cos","tan","asin","acos","atan","sinh","cosh","tanh","asinh","acosh","atanh","log2","log10","log","ln","sign","rint","RoundHalfToEven","sum","SumValues","avg","clamp","radians","mod","lerp","a","b","random","Random","RandomInteger","randomConstant","ctx","GetRandomConstant","randconst","randhash","Hash01","noise","fractal","input","GetInputValue","inputAt","time","StateTime","stateMachine","GetStateTime","stateTime","CurveSetTime","GetCurveSetTime","AnimationTime","CallContextFunction","IsAnimationPlaying","GetExternalControllerVariable","fallback","ShipSpeed","ShipMaxSpeed","ShipBoosterIntensity","KillCount","BoundingSphereRadius","ShaderQuality","IsWeekend","GetServerDatePart","ServerYear","ServerMonth","ServerDay","ServerDayOfWeek","ServerHour","ServerMinute","ServerSecond","ServerTimePhase","period","GetServerTimePhase","ServerTimeGreaterThan","year","month","day","hour","minute","second","ServerTimeComparison","ServerTimeLessThanOrEqual","ServerTimeEqual","DaysSinceServerTime","curve","self","HasFunction","HasProperty","RoundInputIndex","inputs","GetValueAt","currentValue","trunc","owner","parts","split","GetRangeDuration","join","GetCurveSetDuration","externalControllerVariables","String","GetControllerValueByName","minValue","span","part","override","TryCallContextFunction","Capitalize","date","GetServerDate","getFullYear","getMonth","getDate","getDay","getHours","getMinutes","getSeconds","GetServerTimeSeconds","values","mode","expected","currentYear","currentMonth","currentDay","targetYear","targetMonth","targetDay","target","Date","UTC","current","isFinite","MIN_VALUE","GetServerTimeValue","NormalizeServerTimeMilliseconds","getTime","now","serverTime","GetServerTime","diff","total","number","charAt","toUpperCase","key"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- export { Adopt, Brand, ITr2ActionController, ITr2Controller, withITr2ActionController, withITr2Controller } from './ITr2Controller.js';
1
+ export { Adopt, Brand, ITr2Controller, withITr2Controller } from './ITr2Controller/ITr2Controller.js';
2
+ export { ITr2ActionController, withITr2ActionController } from './ITr2Controller/ITr2ActionController.js';
2
3
  export { ITr2ControllerOwner, withITr2ControllerOwner } from './ITr2ControllerOwner.js';
3
4
  export { Tr2Controller } from './Tr2Controller.js';
4
5
  export { Tr2ControllerEventHandler } from './Tr2ControllerEventHandler.js';
@@ -25,7 +26,9 @@ export { Tr2ActionSetExternalControllerVariable } from './action/Tr2ActionSetExt
25
26
  export { Tr2ActionSetShaderOption } from './action/Tr2ActionSetShaderOption.js';
26
27
  export { Tr2ActionSetValue } from './action/Tr2ActionSetValue.js';
27
28
  export { Tr2ActionSpawnParticles } from './action/Tr2ActionSpawnParticles.js';
28
- export { CjsControllerExpressionCompileError, CjsControllerExpressionEvaluateError, CjsControllerExpressionProgram } from './expression/CjsControllerExpressionProgram.js';
29
+ export { CjsControllerExpressionProgram } from './expression/CjsControllerExpressionProgram.js';
30
+ export { CjsControllerExpressionCompileError } from './expression/CjsControllerExpressionCompileError.js';
31
+ export { CjsControllerExpressionEvaluateError } from './expression/CjsControllerExpressionEvaluateError.js';
29
32
  export { Tr2BindingPoint } from './expression/Tr2BindingPoint.js';
30
33
  export { Tr2ControllerExpression } from './expression/Tr2ControllerExpression.js';
31
34
  export { Tr2ControllerFloatVariable } from './expression/Tr2ControllerFloatVariable.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { CjsSchema } from '#schema';
2
- import { Brand, Adopt } from '../ITr2Controller.js';
2
+ import { Brand, Adopt } from '../ITr2Controller/ITr2Controller.js';
3
+ import '../ITr2Controller/ITr2ActionController.js';
3
4
 
4
5
  // Source: trinity/trinity/Controllers/Finalizers/ITr2StateMachineStateFinalizer.h
5
6
  //
@@ -1 +1 @@
1
- {"version":3,"file":"ITr2StateMachineStateFinalizer.js","sources":["../../../../../src/trinity/controllers/state/ITr2StateMachineStateFinalizer.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/Finalizers/ITr2StateMachineStateFinalizer.h\n//\n// The contract a state finalizer answers to. Until 2026-09-05 this file was a\n// one-line `export {};` - re-exported from the barrel and listed in the\n// generated summary, so it READ as ported while declaring nothing. Carbon\n// gives Link and Unlink EMPTY BODIES and makes only CanTransition pure\n// virtual, which is why Tr2StateMachineState's calls into its finalizer were\n// hedged: the hedge was emulating the empty bodies one call site at a time.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../ITr2Controller.js\";\n\n\nconst ITR2_STATE_MACHINE_STATE_FINALIZER = Symbol.for(\"carbonenginejs.contract.ITr2StateMachineStateFinalizer\");\n\nconst FINALIZER_NOOPS = [ \"Link\", \"Unlink\" ];\nconst FINALIZER_ABSTRACTS = [ \"CanTransition\" ];\n\n\n/** Contract for an object that holds a state machine in its current state. */\nexport class ITr2StateMachineStateFinalizer\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_STATE_MACHINE_STATE_FINALIZER] === true;\n }\n\n /**\n * Attaches this finalizer to the controller whose state it gates.\n *\n * @param {object} _controller The owning controller.\n */\n Link(_controller)\n {\n }\n\n /** Detaches this finalizer, dropping every reference to the controller. */\n Unlink()\n {\n }\n\n /**\n * Whether the owning state may transition away.\n *\n * THE ONE METHOD CARBON MAKES PURE VIRTUAL: a finalizer exists precisely to\n * answer this, so there is no sensible default.\n *\n * @param {object} _controller The owning controller.\n * @returns {boolean} Whether the state machine may leave the current state.\n */\n CanTransition(_controller)\n {\n throw new Error(\"ITr2StateMachineStateFinalizer.CanTransition must be implemented by a finalizer.\");\n }\n}\n\n\nBrand(ITr2StateMachineStateFinalizer, ITR2_STATE_MACHINE_STATE_FINALIZER, FINALIZER_NOOPS, FINALIZER_ABSTRACTS);\nCjsSchema.define(ITr2StateMachineStateFinalizer, { className: \"ITr2StateMachineStateFinalizer\" });\n\n\n/**\n * Adds the ITr2StateMachineStateFinalizer contract without replacing an\n * existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withITr2StateMachineStateFinalizer(Base)\n{\n const Finalizer = Adopt(Base, ITr2StateMachineStateFinalizer, [ ...FINALIZER_NOOPS, ...FINALIZER_ABSTRACTS ]);\n\n Brand(Finalizer, ITR2_STATE_MACHINE_STATE_FINALIZER, FINALIZER_NOOPS, FINALIZER_ABSTRACTS);\n\n return Finalizer;\n}\n"],"names":["ITR2_STATE_MACHINE_STATE_FINALIZER","Symbol","for","FINALIZER_NOOPS","FINALIZER_ABSTRACTS","ITr2StateMachineStateFinalizer","hasInstance","value","undefined","Link","_controller","Unlink","CanTransition","Error","Brand","CjsSchema","define","className","withITr2StateMachineStateFinalizer","Base","Finalizer","Adopt"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,kCAAkC,GAAGC,MAAM,CAACC,GAAG,CAAC,wDAAwD,CAAC;AAE/G,MAAMC,eAAe,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE;AAC5C,MAAMC,mBAAmB,GAAG,CAAE,eAAe,CAAE;;AAG/C;AACO,MAAMC,8BAA8B,CAC3C;AACE,EAAA,QAAQJ,MAAM,CAACK,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACP,kCAAkC,CAAC,KAAK,IAAI;AACpG,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACES,IAAIA,CAACC,WAAW,EAChB,CACA;;AAEA;EACAC,MAAMA,GACN,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,aAAaA,CAACF,WAAW,EACzB;AACE,IAAA,MAAM,IAAIG,KAAK,CAAC,kFAAkF,CAAC;AACrG,EAAA;AACF;AAGAC,KAAK,CAACT,8BAA8B,EAAEL,kCAAkC,EAAEG,eAAe,EAAEC,mBAAmB,CAAC;AAC/GW,SAAS,CAACC,MAAM,CAACX,8BAA8B,EAAE;AAAEY,EAAAA,SAAS,EAAE;AAAiC,CAAC,CAAC;;AAGjG;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kCAAkCA,CAACC,IAAI,EACvD;AACE,EAAA,MAAMC,SAAS,GAAGC,KAAK,CAACF,IAAI,EAAEd,8BAA8B,EAAE,CAAE,GAAGF,eAAe,EAAE,GAAGC,mBAAmB,CAAE,CAAC;EAE7GU,KAAK,CAACM,SAAS,EAAEpB,kCAAkC,EAAEG,eAAe,EAAEC,mBAAmB,CAAC;AAE1F,EAAA,OAAOgB,SAAS;AAClB;;;;"}
1
+ {"version":3,"file":"ITr2StateMachineStateFinalizer.js","sources":["../../../../../src/trinity/controllers/state/ITr2StateMachineStateFinalizer.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/Finalizers/ITr2StateMachineStateFinalizer.h\n//\n// The contract a state finalizer answers to. Until 2026-09-05 this file was a\n// one-line `export {};` - re-exported from the barrel and listed in the\n// generated summary, so it READ as ported while declaring nothing. Carbon\n// gives Link and Unlink EMPTY BODIES and makes only CanTransition pure\n// virtual, which is why Tr2StateMachineState's calls into its finalizer were\n// hedged: the hedge was emulating the empty bodies one call site at a time.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../ITr2Controller/index.js\";\n\n\nconst ITR2_STATE_MACHINE_STATE_FINALIZER = Symbol.for(\"carbonenginejs.contract.ITr2StateMachineStateFinalizer\");\n\nconst FINALIZER_NOOPS = [ \"Link\", \"Unlink\" ];\nconst FINALIZER_ABSTRACTS = [ \"CanTransition\" ];\n\n\n/** Contract for an object that holds a state machine in its current state. */\nexport class ITr2StateMachineStateFinalizer\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_STATE_MACHINE_STATE_FINALIZER] === true;\n }\n\n /**\n * Attaches this finalizer to the controller whose state it gates.\n *\n * @param {object} _controller The owning controller.\n */\n Link(_controller)\n {\n }\n\n /** Detaches this finalizer, dropping every reference to the controller. */\n Unlink()\n {\n }\n\n /**\n * Whether the owning state may transition away.\n *\n * THE ONE METHOD CARBON MAKES PURE VIRTUAL: a finalizer exists precisely to\n * answer this, so there is no sensible default.\n *\n * @param {object} _controller The owning controller.\n * @returns {boolean} Whether the state machine may leave the current state.\n */\n CanTransition(_controller)\n {\n throw new Error(\"ITr2StateMachineStateFinalizer.CanTransition must be implemented by a finalizer.\");\n }\n}\n\n\nBrand(ITr2StateMachineStateFinalizer, ITR2_STATE_MACHINE_STATE_FINALIZER, FINALIZER_NOOPS, FINALIZER_ABSTRACTS);\nCjsSchema.define(ITr2StateMachineStateFinalizer, { className: \"ITr2StateMachineStateFinalizer\" });\n\n\n/**\n * Adds the ITr2StateMachineStateFinalizer contract without replacing an\n * existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withITr2StateMachineStateFinalizer(Base)\n{\n const Finalizer = Adopt(Base, ITr2StateMachineStateFinalizer, [ ...FINALIZER_NOOPS, ...FINALIZER_ABSTRACTS ]);\n\n Brand(Finalizer, ITR2_STATE_MACHINE_STATE_FINALIZER, FINALIZER_NOOPS, FINALIZER_ABSTRACTS);\n\n return Finalizer;\n}\n"],"names":["ITR2_STATE_MACHINE_STATE_FINALIZER","Symbol","for","FINALIZER_NOOPS","FINALIZER_ABSTRACTS","ITr2StateMachineStateFinalizer","hasInstance","value","undefined","Link","_controller","Unlink","CanTransition","Error","Brand","CjsSchema","define","className","withITr2StateMachineStateFinalizer","Base","Finalizer","Adopt"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,kCAAkC,GAAGC,MAAM,CAACC,GAAG,CAAC,wDAAwD,CAAC;AAE/G,MAAMC,eAAe,GAAG,CAAE,MAAM,EAAE,QAAQ,CAAE;AAC5C,MAAMC,mBAAmB,GAAG,CAAE,eAAe,CAAE;;AAG/C;AACO,MAAMC,8BAA8B,CAC3C;AACE,EAAA,QAAQJ,MAAM,CAACK,WAAW,CAAA,CAAEC,KAAK,EACjC;AACE,IAAA,OAAOA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,IAAID,KAAK,CAACP,kCAAkC,CAAC,KAAK,IAAI;AACpG,EAAA;;AAEA;AACF;AACA;AACA;AACA;EACES,IAAIA,CAACC,WAAW,EAChB,CACA;;AAEA;EACAC,MAAMA,GACN,CACA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,aAAaA,CAACF,WAAW,EACzB;AACE,IAAA,MAAM,IAAIG,KAAK,CAAC,kFAAkF,CAAC;AACrG,EAAA;AACF;AAGAC,KAAK,CAACT,8BAA8B,EAAEL,kCAAkC,EAAEG,eAAe,EAAEC,mBAAmB,CAAC;AAC/GW,SAAS,CAACC,MAAM,CAACX,8BAA8B,EAAE;AAAEY,EAAAA,SAAS,EAAE;AAAiC,CAAC,CAAC;;AAGjG;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kCAAkCA,CAACC,IAAI,EACvD;AACE,EAAA,MAAMC,SAAS,GAAGC,KAAK,CAACF,IAAI,EAAEd,8BAA8B,EAAE,CAAE,GAAGF,eAAe,EAAE,GAAGC,mBAAmB,CAAE,CAAC;EAE7GU,KAAK,CAACM,SAAS,EAAEpB,kCAAkC,EAAEG,eAAe,EAAEC,mBAAmB,CAAC;AAE1F,EAAA,OAAOgB,SAAS;AAClB;;;;"}
@@ -2,7 +2,8 @@ import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../..
2
2
  import { io, type, carbon, impl } from '#schema';
3
3
  import { GetControllerFrameTimeSeconds, GetControllerActualTimeSeconds } from '../contracts.js';
4
4
  import { EveThrottleable as _EveThrottleable } from '../../eve/EveThrottleable.js';
5
- import { withITr2ActionController } from '../ITr2Controller.js';
5
+ import '../ITr2Controller/ITr2Controller.js';
6
+ import { withITr2ActionController } from '../ITr2Controller/ITr2ActionController.js';
6
7
  import { Tr2TimelineEntry as _Tr2TimelineEntry } from './Tr2TimelineEntry.js';
7
8
  import { UnlinkReason } from '../enums.js';
8
9
 
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2TimelineController.js","sources":["../../../../../src/trinity/controllers/timeline/Tr2TimelineController.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/Tr2TimelineController.h\r\n// Source: trinity/trinity/Controllers/Tr2TimelineController.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\nimport { GetControllerActualTimeSeconds, GetControllerFrameTimeSeconds } from \"../contracts.js\";\nimport { EveThrottleable } from \"../../eve/EveThrottleable.js\";\nimport { withITr2ActionController } from \"../ITr2Controller.js\";\nimport { Tr2TimelineEntry } from \"./Tr2TimelineEntry.js\";\nimport { UnlinkReason } from \"../enums.js\";\r\n\r\n\r\n/**\r\n * Plays a list of controller actions against a scrubbable timeline, starting and\r\n * stopping each action as the current time enters and leaves its authored\r\n * start/end range on an enabled track.\r\n */\r\n@type.define({\r\n className: \"Tr2TimelineController\",\r\n family: \"controllers\"\r\n})\r\nexport class Tr2TimelineController extends withITr2ActionController(EveThrottleable)\n{\r\n @io.persistOnly\r\n @type.list(\"ITr2ControllerAction\")\r\n actions = [];\r\n\r\n @io.persistOnly\r\n @type.list(\"Tr2TimelineEntry\")\r\n entries = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerFloatVariable\")\r\n variables = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerEventHandler\")\r\n eventHandlers = [];\r\n\r\n @io.persist\r\n @type.float32\r\n timeScale = 1;\r\n\r\n @io.read\r\n @type.boolean\r\n isPlaying = false;\r\n\r\n @io.read\r\n @type.boolean\r\n isPaused = false;\r\n\r\n #owner = null;\r\n\r\n #time = 0;\r\n\r\n #lastUpdateTime = 0;\r\n\r\n #callbacks = [];\r\n\r\n #updateables = new Set();\r\n\r\n #disabledTracks = new Set();\r\n\r\n #variableView = [];\r\n\r\n #variableData = new Float32Array(0);\r\n\r\n #tempArena = new ArrayBuffer(0);\r\n\r\n #bindingPathRoots = [];\n\n /** Blue property alias for the controller's runtime timeline clock. */\n get time()\n {\n return this.GetTime();\n }\n\n /** Sets the Blue timeline-clock alias through Carbon's SetTime path. */\n set time(value)\n {\n this.SetTime(value);\n }\n\n /**\n * Links actions, variables, and event handlers to an owner.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Link(owner)\r\n {\r\n this.Unlink();\r\n this.#owner = owner;\r\n this.#variableView = [];\r\n this.#variableData = new Float32Array(this.variables.length);\r\n for (let i = 0; i < this.variables.length; i++)\r\n {\r\n const variable = this.variables[i];\r\n this.#variableView.push({\r\n name: variable.GetName(),\r\n index: i,\r\n offset: i * Float32Array.BYTES_PER_ELEMENT\r\n });\r\n variable.SetDestinationBuffer(this.#variableData, i);\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n for (const action of this.actions)\r\n {\r\n action.Link(this);\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Link(this);\r\n }\r\n }\r\n\r\n /**\r\n * Unlinks runtime children and clears owner state.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Unlink(reason = UnlinkReason.UNLINKING)\r\n {\r\n if (!this.#owner)\r\n {\r\n return;\r\n }\r\n if (reason !== UnlinkReason.DELETING)\r\n {\r\n this.Stop();\r\n }\r\n for (const variable of this.variables)\r\n {\r\n variable.SetDestinationBuffer(null);\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n for (const action of this.actions)\r\n {\r\n action.Unlink();\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Unlink();\r\n }\r\n this.#bindingPathRoots = [];\r\n this.#owner = null;\r\n }\r\n\r\n /**\r\n * Checks whether this timeline is linked.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsLinked()\r\n {\r\n return this.#owner !== null;\r\n }\r\n\r\n /**\r\n * Starts actions already active at the current time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Start()\r\n {\r\n if (this.isPlaying)\r\n {\r\n this.Stop();\r\n }\r\n this.isPlaying = true;\r\n this.#lastUpdateTime = GetControllerFrameTimeSeconds();\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n const entry = this.#entryAt(i);\r\n if (entry && this.IsActionEnabled(i) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n this.actions[i].Start(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Stops currently active actions and resets timeline time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Stop()\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n const entry = this.#entryAt(i);\r\n if (entry && this.IsActionEnabled(i) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n this.actions[i].Stop(this);\r\n }\r\n }\r\n this.isPlaying = false;\r\n this.#time = 0;\r\n }\r\n\r\n /**\r\n * Advances the timeline and toggles action activity.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Update(normalizedUpdateFrequency = 0.5)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n const actualTime = GetControllerActualTimeSeconds();\r\n if (this.ShouldSkipUpdate(normalizedUpdateFrequency, actualTime))\n {\r\n return;\r\n }\r\n const frameTime = GetControllerFrameTimeSeconds();\r\n const dt = (frameTime - this.#lastUpdateTime) * this.timeScale;\r\n this.#lastUpdateTime = frameTime;\r\n if (!this.isPaused)\r\n {\r\n this.#setTime(this.#time + dt, true);\r\n }\r\n for (const updateable of this.#updateables)\r\n {\r\n updateable.Update(actualTime, frameTime);\r\n }\r\n }\r\n\r\n /**\r\n * Sets a named variable.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetVariable(name, value)\r\n {\r\n this.variables.find(variable => variable.GetName() === name)?.SetValue(value);\r\n }\r\n\r\n /**\r\n * Handles a named event.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n HandleEvent(eventName)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n if (handler.GetName() === eventName)\r\n {\r\n handler.Execute(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the linked owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetOwner()\r\n {\r\n return this.#owner;\r\n }\r\n\r\n /**\r\n * Invokes callbacks registered for a name.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Callback(callbackName)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return false;\r\n }\r\n let called = false;\r\n for (const entry of this.#callbacks)\r\n {\r\n if (entry.name === callbackName)\r\n {\r\n entry.callback();\r\n called = true;\r\n }\r\n }\r\n return called;\r\n }\r\n\r\n /**\r\n * Registers an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterUpdateable(updateable)\r\n {\r\n this.#updateables.add(updateable);\r\n }\r\n\r\n /**\r\n * Unregisters an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterUpdateable(updateable)\r\n {\r\n this.#updateables.delete(updateable);\r\n }\r\n\r\n /**\r\n * Gets named roots for controller binding paths.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBindingPathRoots()\r\n {\r\n if (!this.#bindingPathRoots.length)\r\n {\r\n if (this.#owner)\r\n {\r\n this.#bindingPathRoots.push([\"Owner\", this.#owner]);\r\n }\r\n for (const variable of this.variables)\r\n {\r\n this.#bindingPathRoots.push([variable.GetName(), variable]);\r\n }\r\n }\r\n return this.#bindingPathRoots;\r\n }\r\n\r\n /**\r\n * Gets a float variable by name.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFloatVariableByName(name)\r\n {\r\n return this.variables.find(variable => variable.GetName() === name)?.GetValue();\r\n }\r\n\r\n /**\r\n * Appends expression metadata for variables.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetExpressionTermInfo(out)\r\n {\r\n for (const variable of this.variables)\r\n {\r\n out.push({\r\n group: \"Variables\",\r\n name: variable.GetName(),\r\n description: \"controller variable\",\r\n kind: \"variable\"\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets expression variable metadata.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableView()\r\n {\r\n return this.#variableView;\r\n }\r\n\r\n /**\r\n * Gets expression variable data.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableBuffer()\r\n {\r\n return this.#variableData;\r\n }\r\n\r\n /**\r\n * Ensures the expression temporary arena is large enough.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EnsureTempArenaSize(size)\r\n {\r\n if (this.#tempArena.byteLength < size)\r\n {\r\n this.#tempArena = new ArrayBuffer(size);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the expression temporary arena.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTempArena()\r\n {\r\n return this.#tempArena;\r\n }\r\n\r\n /**\r\n * Rebases action sim time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n OnSimClockRebase(oldTime, newTime)\r\n {\r\n const diff = newTime - oldTime;\r\n this.#lastUpdateTime += diff;\r\n for (const action of this.actions)\r\n {\r\n action.RebaseSimTime?.(diff);\r\n }\r\n }\r\n\r\n /**\r\n * Gets action count.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionCount()\r\n {\r\n return this.actions.length;\r\n }\r\n\r\n /**\r\n * Gets an action by index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetAction(index)\r\n {\r\n return this.actions[index] ?? null;\r\n }\r\n\r\n /**\r\n * Gets the timeline start time in seconds of the action at an index, or 0 when\r\n * the index has no entry.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionStartTime(index)\r\n {\r\n return this.#entryAt(index)?.startTime ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the timeline end time in seconds of the action at an index, or 0 when\r\n * the index has no entry.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionEndTime(index)\r\n {\r\n return this.#entryAt(index)?.endTime ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the track the action at an index belongs to, or 0 when the index has no\r\n * entry.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionTrackID(index)\r\n {\r\n return this.#entryAt(index)?.trackID ?? 0;\r\n }\r\n\r\n /**\r\n * Moves an action's start time, starting or stopping the action immediately\r\n * when the edit changes whether it covers the current time; returns false for\r\n * an out-of-range index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetActionStartTime(index, startTime)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const entry = this.#entryAt(index);\r\n if (!entry)\r\n {\r\n return false;\r\n }\r\n if (this.isPlaying && this.IsActionEnabled(index))\r\n {\r\n const wasActive = Tr2TimelineController.#inRange(this.#time, entry);\r\n const isActive = Tr2TimelineController.#inRange(this.#time, {\r\n startTime,\r\n endTime: entry.endTime\r\n });\r\n if (wasActive && !isActive)\r\n {\r\n this.actions[index].Stop(this);\r\n }\r\n else if (!wasActive && isActive)\r\n {\r\n this.actions[index].Start(this);\r\n }\r\n }\r\n entry.startTime = startTime;\r\n return true;\r\n }\r\n\r\n /**\r\n * Moves an action's end time, starting or stopping the action immediately when\r\n * the edit changes whether it covers the current time; returns false for an\r\n * out-of-range index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetActionEndTime(index, endTime)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const entry = this.#entryAt(index);\r\n if (!entry)\r\n {\r\n return false;\r\n }\r\n if (this.isPlaying && this.IsActionEnabled(index))\r\n {\r\n const wasActive = Tr2TimelineController.#inRange(this.#time, entry);\r\n const isActive = Tr2TimelineController.#inRange(this.#time, {\r\n startTime: entry.startTime,\r\n endTime\r\n });\r\n if (wasActive && !isActive)\r\n {\r\n this.actions[index].Stop(this);\r\n }\r\n else if (!wasActive && isActive)\r\n {\r\n this.actions[index].Start(this);\r\n }\r\n }\r\n entry.endTime = endTime;\r\n return true;\r\n }\r\n\r\n /**\r\n * Reassigns an action to another track, starting or stopping it when the move\r\n * changes whether its track is enabled while the action covers the current\r\n * time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetActionTrackID(index, trackID)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const wasEnabled = this.IsActionEnabled(index);\r\n const entry = this.#entryAt(index);\r\n if (!entry)\r\n {\r\n return false;\r\n }\r\n entry.trackID = trackID;\r\n const isEnabled = this.IsActionEnabled(index);\r\n if (this.isPlaying && wasEnabled !== isEnabled && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n if (isEnabled)\r\n {\r\n this.actions[index].Start(this);\r\n }\r\n else\r\n {\r\n this.actions[index].Stop(this);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Adds an action and entry.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddAction(action, startTime, endTime, trackID = 0)\r\n {\r\n if (!action)\r\n {\r\n return;\r\n }\r\n this.actions.push(action);\r\n const entry = new Tr2TimelineEntry();\r\n entry.startTime = startTime;\r\n entry.endTime = endTime;\r\n entry.trackID = trackID;\r\n this.entries.push(entry);\r\n if (this.#owner)\r\n {\r\n action.Link(this);\r\n }\r\n if (this.isPlaying && this.IsActionEnabled(this.actions.length - 1) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n action.Start(this);\r\n }\r\n }\r\n\r\n /**\r\n * Removes an action by index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RemoveAction(index)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const action = this.actions[index];\r\n const entry = this.#entryAt(index);\r\n if (entry && this.isPlaying && this.IsActionEnabled(index) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n action.Stop(this);\r\n }\r\n if (this.#owner)\r\n {\r\n action.Unlink();\r\n }\r\n this.actions.splice(index, 1);\r\n this.entries.splice(index, 1);\r\n return true;\r\n }\r\n\r\n /**\r\n * Checks whether the action's track is enabled.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsActionEnabled(index)\r\n {\r\n const entry = this.#entryAt(index);\r\n return !!entry && !this.#disabledTracks.has(entry.trackID);\r\n }\r\n\r\n /**\r\n * Checks whether a track is enabled.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsTrackEnabled(trackID)\r\n {\r\n return !this.#disabledTracks.has(trackID);\r\n }\r\n\r\n /**\r\n * Enables or disables a track.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n EnableTrack(trackID, enable)\r\n {\r\n const wasEnabled = this.IsTrackEnabled(trackID);\r\n if (enable)\r\n {\r\n this.#disabledTracks.delete(trackID);\r\n }\r\n else\r\n {\r\n this.#disabledTracks.add(trackID);\r\n }\r\n if (this.isPlaying && wasEnabled !== enable)\r\n {\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n const entry = this.#entryAt(i);\r\n if (entry && entry.trackID === trackID && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n if (enable)\r\n {\r\n this.actions[i].Start(this);\r\n }\r\n else\r\n {\r\n this.actions[i].Stop(this);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers a callback.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RegisterCallback(name, callback)\r\n {\r\n this.#callbacks.push({\r\n name,\r\n callback\r\n });\r\n }\r\n\r\n /**\r\n * Clears callbacks.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearCallbacks()\r\n {\r\n this.#callbacks = [];\r\n }\r\n\r\n /**\r\n * Gets current timeline time.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTime()\r\n {\r\n return this.#time;\r\n }\r\n\r\n /**\r\n * Gets the current frame simulation time for JS action adapters.\r\n */\r\n CjsGetCurrentFrameTime()\r\n {\r\n return this.#lastUpdateTime || GetControllerFrameTimeSeconds();\r\n }\r\n\r\n /**\r\n * Sets current timeline time and toggles action activity.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetTime(time)\r\n {\r\n if (!this.isPlaying || time === this.#time)\r\n {\r\n return;\r\n }\r\n this.#setTime(time, false);\r\n }\r\n\r\n /**\r\n * Sets the current time and reconciles every enabled action against the new\r\n * time; when includePassedActions is set, an action whose whole range was\r\n * skipped over in one step is started and stopped back to back so it is not\r\n * silently missed.\r\n */\r\n #setTime(time, includePassedActions)\r\n {\r\n const oldTime = this.#time;\r\n this.#time = time;\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n if (!this.IsActionEnabled(i))\r\n {\r\n continue;\r\n }\r\n const entry = this.#entryAt(i);\r\n if (!entry)\r\n {\r\n continue;\r\n }\r\n const wasActive = Tr2TimelineController.#inRange(oldTime, entry);\r\n const isActive = Tr2TimelineController.#inRange(this.#time, entry);\r\n if (wasActive && !isActive)\r\n {\r\n this.actions[i].Stop(this);\r\n }\r\n else if (!wasActive && isActive)\r\n {\r\n this.actions[i].Start(this);\r\n }\r\n else if (includePassedActions && Tr2TimelineController.#crossedRange(oldTime, this.#time, entry))\r\n {\r\n this.actions[i].Start(this);\r\n this.actions[i].Stop(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Pauses time progression.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Pause()\r\n {\r\n this.isPaused = true;\r\n }\r\n\r\n /**\r\n * Resumes time progression.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Resume()\r\n {\r\n this.isPaused = false;\r\n }\r\n\r\n /**\r\n * Relinks to the current owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ReLink()\r\n {\r\n const owner = this.#owner;\r\n if (owner)\r\n {\r\n this.Link(owner);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the timeline entry parallel to the action at an index, or null when the\r\n * lists are not the same length.\r\n */\r\n #entryAt(index)\r\n {\r\n return this.entries[index] ?? null;\r\n }\r\n\r\n /**\r\n * Checks whether a time falls in an entry's range; the start is inclusive and\r\n * the end exclusive.\r\n */\r\n static #inRange(time, entry)\r\n {\r\n return time >= entry.startTime && time < entry.endTime;\r\n }\r\n\r\n /**\r\n * Checks whether an entry's whole range fell inside a single update step,\r\n * meaning the action was never observed active.\r\n */\r\n static #crossedRange(oldTime, newTime, entry)\r\n {\r\n const updateRange = { startTime: oldTime, endTime: newTime };\r\n return Tr2TimelineController.#inRange(entry.startTime, updateRange) && Tr2TimelineController.#inRange(entry.endTime, updateRange);\r\n }\r\n}\r\n"],"names":["_Tr2TimelineControlle","_identity","Tr2TimelineController","_withITr2ActionContro","withITr2ActionController","EveThrottleable","e","_init_actions","_init_extra_actions","_init_entries","_init_extra_entries","_init_name","_init_extra_name","_init_variables","_init_extra_variables","_init_eventHandlers","_init_extra_eventHandlers","_init_timeScale","_init_extra_timeScale","_init_isPlaying","_init_extra_isPlaying","_init_isPaused","_init_extra_isPaused","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","list","persist","string","float32","read","boolean","carbon","method","impl","adapted","implemented","actions","entries","name","variables","eventHandlers","timeScale","isPlaying","isPaused","Set","Float32Array","ArrayBuffer","time","GetTime","value","SetTime","Link","owner","Unlink","length","i","variable","push","GetName","index","offset","BYTES_PER_ELEMENT","SetDestinationBuffer","SetDirtyMask","action","handler","reason","UnlinkReason","UNLINKING","DELETING","Stop","IsLinked","Start","GetControllerFrameTimeSeconds","entry","IsActionEnabled","Update","normalizedUpdateFrequency","actualTime","GetControllerActualTimeSeconds","ShouldSkipUpdate","frameTime","dt","updateable","SetVariable","find","SetValue","HandleEvent","eventName","Execute","GetOwner","Callback","callbackName","called","callback","RegisterUpdateable","add","UnRegisterUpdateable","delete","GetBindingPathRoots","GetFloatVariableByName","GetValue","GetExpressionTermInfo","out","group","description","kind","GetVariableView","GetVariableBuffer","EnsureTempArenaSize","size","byteLength","GetTempArena","OnSimClockRebase","oldTime","newTime","diff","RebaseSimTime","GetActionCount","GetAction","GetActionStartTime","startTime","GetActionEndTime","endTime","GetActionTrackID","trackID","SetActionStartTime","wasActive","isActive","SetActionEndTime","SetActionTrackID","wasEnabled","isEnabled","AddAction","Tr2TimelineEntry","RemoveAction","splice","has","IsTrackEnabled","EnableTrack","enable","RegisterCallback","ClearCallbacks","CjsGetCurrentFrameTime","#setTime","includePassedActions","Pause","Resume","ReLink","#entryAt","#inRange","#crossedRange","updateRange","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2TimelineController.js","sources":["../../../../../src/trinity/controllers/timeline/Tr2TimelineController.js"],"sourcesContent":["// Source: trinity/trinity/Controllers/Tr2TimelineController.h\r\n// Source: trinity/trinity/Controllers/Tr2TimelineController.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\nimport { GetControllerActualTimeSeconds, GetControllerFrameTimeSeconds } from \"../contracts.js\";\nimport { EveThrottleable } from \"../../eve/EveThrottleable.js\";\nimport { withITr2ActionController } from \"../ITr2Controller/index.js\";\nimport { Tr2TimelineEntry } from \"./Tr2TimelineEntry.js\";\nimport { UnlinkReason } from \"../enums.js\";\r\n\r\n\r\n/**\r\n * Plays a list of controller actions against a scrubbable timeline, starting and\r\n * stopping each action as the current time enters and leaves its authored\r\n * start/end range on an enabled track.\r\n */\r\n@type.define({\r\n className: \"Tr2TimelineController\",\r\n family: \"controllers\"\r\n})\r\nexport class Tr2TimelineController extends withITr2ActionController(EveThrottleable)\n{\r\n @io.persistOnly\r\n @type.list(\"ITr2ControllerAction\")\r\n actions = [];\r\n\r\n @io.persistOnly\r\n @type.list(\"Tr2TimelineEntry\")\r\n entries = [];\r\n\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerFloatVariable\")\r\n variables = [];\r\n\r\n @io.persist\r\n @type.list(\"Tr2ControllerEventHandler\")\r\n eventHandlers = [];\r\n\r\n @io.persist\r\n @type.float32\r\n timeScale = 1;\r\n\r\n @io.read\r\n @type.boolean\r\n isPlaying = false;\r\n\r\n @io.read\r\n @type.boolean\r\n isPaused = false;\r\n\r\n #owner = null;\r\n\r\n #time = 0;\r\n\r\n #lastUpdateTime = 0;\r\n\r\n #callbacks = [];\r\n\r\n #updateables = new Set();\r\n\r\n #disabledTracks = new Set();\r\n\r\n #variableView = [];\r\n\r\n #variableData = new Float32Array(0);\r\n\r\n #tempArena = new ArrayBuffer(0);\r\n\r\n #bindingPathRoots = [];\n\n /** Blue property alias for the controller's runtime timeline clock. */\n get time()\n {\n return this.GetTime();\n }\n\n /** Sets the Blue timeline-clock alias through Carbon's SetTime path. */\n set time(value)\n {\n this.SetTime(value);\n }\n\n /**\n * Links actions, variables, and event handlers to an owner.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Link(owner)\r\n {\r\n this.Unlink();\r\n this.#owner = owner;\r\n this.#variableView = [];\r\n this.#variableData = new Float32Array(this.variables.length);\r\n for (let i = 0; i < this.variables.length; i++)\r\n {\r\n const variable = this.variables[i];\r\n this.#variableView.push({\r\n name: variable.GetName(),\r\n index: i,\r\n offset: i * Float32Array.BYTES_PER_ELEMENT\r\n });\r\n variable.SetDestinationBuffer(this.#variableData, i);\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n for (const action of this.actions)\r\n {\r\n action.Link(this);\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Link(this);\r\n }\r\n }\r\n\r\n /**\r\n * Unlinks runtime children and clears owner state.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Unlink(reason = UnlinkReason.UNLINKING)\r\n {\r\n if (!this.#owner)\r\n {\r\n return;\r\n }\r\n if (reason !== UnlinkReason.DELETING)\r\n {\r\n this.Stop();\r\n }\r\n for (const variable of this.variables)\r\n {\r\n variable.SetDestinationBuffer(null);\r\n variable.SetDirtyMask(null, 0);\r\n }\r\n for (const action of this.actions)\r\n {\r\n action.Unlink();\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n handler.Unlink();\r\n }\r\n this.#bindingPathRoots = [];\r\n this.#owner = null;\r\n }\r\n\r\n /**\r\n * Checks whether this timeline is linked.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsLinked()\r\n {\r\n return this.#owner !== null;\r\n }\r\n\r\n /**\r\n * Starts actions already active at the current time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Start()\r\n {\r\n if (this.isPlaying)\r\n {\r\n this.Stop();\r\n }\r\n this.isPlaying = true;\r\n this.#lastUpdateTime = GetControllerFrameTimeSeconds();\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n const entry = this.#entryAt(i);\r\n if (entry && this.IsActionEnabled(i) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n this.actions[i].Start(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Stops currently active actions and resets timeline time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Stop()\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n const entry = this.#entryAt(i);\r\n if (entry && this.IsActionEnabled(i) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n this.actions[i].Stop(this);\r\n }\r\n }\r\n this.isPlaying = false;\r\n this.#time = 0;\r\n }\r\n\r\n /**\r\n * Advances the timeline and toggles action activity.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Update(normalizedUpdateFrequency = 0.5)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n const actualTime = GetControllerActualTimeSeconds();\r\n if (this.ShouldSkipUpdate(normalizedUpdateFrequency, actualTime))\n {\r\n return;\r\n }\r\n const frameTime = GetControllerFrameTimeSeconds();\r\n const dt = (frameTime - this.#lastUpdateTime) * this.timeScale;\r\n this.#lastUpdateTime = frameTime;\r\n if (!this.isPaused)\r\n {\r\n this.#setTime(this.#time + dt, true);\r\n }\r\n for (const updateable of this.#updateables)\r\n {\r\n updateable.Update(actualTime, frameTime);\r\n }\r\n }\r\n\r\n /**\r\n * Sets a named variable.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetVariable(name, value)\r\n {\r\n this.variables.find(variable => variable.GetName() === name)?.SetValue(value);\r\n }\r\n\r\n /**\r\n * Handles a named event.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n HandleEvent(eventName)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return;\r\n }\r\n for (const handler of this.eventHandlers)\r\n {\r\n if (handler.GetName() === eventName)\r\n {\r\n handler.Execute(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Gets the linked owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetOwner()\r\n {\r\n return this.#owner;\r\n }\r\n\r\n /**\r\n * Invokes callbacks registered for a name.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Callback(callbackName)\r\n {\r\n if (!this.isPlaying)\r\n {\r\n return false;\r\n }\r\n let called = false;\r\n for (const entry of this.#callbacks)\r\n {\r\n if (entry.name === callbackName)\r\n {\r\n entry.callback();\r\n called = true;\r\n }\r\n }\r\n return called;\r\n }\r\n\r\n /**\r\n * Registers an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n RegisterUpdateable(updateable)\r\n {\r\n this.#updateables.add(updateable);\r\n }\r\n\r\n /**\r\n * Unregisters an updateable object.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n UnRegisterUpdateable(updateable)\r\n {\r\n this.#updateables.delete(updateable);\r\n }\r\n\r\n /**\r\n * Gets named roots for controller binding paths.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetBindingPathRoots()\r\n {\r\n if (!this.#bindingPathRoots.length)\r\n {\r\n if (this.#owner)\r\n {\r\n this.#bindingPathRoots.push([\"Owner\", this.#owner]);\r\n }\r\n for (const variable of this.variables)\r\n {\r\n this.#bindingPathRoots.push([variable.GetName(), variable]);\r\n }\r\n }\r\n return this.#bindingPathRoots;\r\n }\r\n\r\n /**\r\n * Gets a float variable by name.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetFloatVariableByName(name)\r\n {\r\n return this.variables.find(variable => variable.GetName() === name)?.GetValue();\r\n }\r\n\r\n /**\r\n * Appends expression metadata for variables.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetExpressionTermInfo(out)\r\n {\r\n for (const variable of this.variables)\r\n {\r\n out.push({\r\n group: \"Variables\",\r\n name: variable.GetName(),\r\n description: \"controller variable\",\r\n kind: \"variable\"\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Gets expression variable metadata.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableView()\r\n {\r\n return this.#variableView;\r\n }\r\n\r\n /**\r\n * Gets expression variable data.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetVariableBuffer()\r\n {\r\n return this.#variableData;\r\n }\r\n\r\n /**\r\n * Ensures the expression temporary arena is large enough.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EnsureTempArenaSize(size)\r\n {\r\n if (this.#tempArena.byteLength < size)\r\n {\r\n this.#tempArena = new ArrayBuffer(size);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the expression temporary arena.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTempArena()\r\n {\r\n return this.#tempArena;\r\n }\r\n\r\n /**\r\n * Rebases action sim time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n OnSimClockRebase(oldTime, newTime)\r\n {\r\n const diff = newTime - oldTime;\r\n this.#lastUpdateTime += diff;\r\n for (const action of this.actions)\r\n {\r\n action.RebaseSimTime?.(diff);\r\n }\r\n }\r\n\r\n /**\r\n * Gets action count.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionCount()\r\n {\r\n return this.actions.length;\r\n }\r\n\r\n /**\r\n * Gets an action by index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n GetAction(index)\r\n {\r\n return this.actions[index] ?? null;\r\n }\r\n\r\n /**\r\n * Gets the timeline start time in seconds of the action at an index, or 0 when\r\n * the index has no entry.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionStartTime(index)\r\n {\r\n return this.#entryAt(index)?.startTime ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the timeline end time in seconds of the action at an index, or 0 when\r\n * the index has no entry.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionEndTime(index)\r\n {\r\n return this.#entryAt(index)?.endTime ?? 0;\r\n }\r\n\r\n /**\r\n * Gets the track the action at an index belongs to, or 0 when the index has no\r\n * entry.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetActionTrackID(index)\r\n {\r\n return this.#entryAt(index)?.trackID ?? 0;\r\n }\r\n\r\n /**\r\n * Moves an action's start time, starting or stopping the action immediately\r\n * when the edit changes whether it covers the current time; returns false for\r\n * an out-of-range index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetActionStartTime(index, startTime)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const entry = this.#entryAt(index);\r\n if (!entry)\r\n {\r\n return false;\r\n }\r\n if (this.isPlaying && this.IsActionEnabled(index))\r\n {\r\n const wasActive = Tr2TimelineController.#inRange(this.#time, entry);\r\n const isActive = Tr2TimelineController.#inRange(this.#time, {\r\n startTime,\r\n endTime: entry.endTime\r\n });\r\n if (wasActive && !isActive)\r\n {\r\n this.actions[index].Stop(this);\r\n }\r\n else if (!wasActive && isActive)\r\n {\r\n this.actions[index].Start(this);\r\n }\r\n }\r\n entry.startTime = startTime;\r\n return true;\r\n }\r\n\r\n /**\r\n * Moves an action's end time, starting or stopping the action immediately when\r\n * the edit changes whether it covers the current time; returns false for an\r\n * out-of-range index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetActionEndTime(index, endTime)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const entry = this.#entryAt(index);\r\n if (!entry)\r\n {\r\n return false;\r\n }\r\n if (this.isPlaying && this.IsActionEnabled(index))\r\n {\r\n const wasActive = Tr2TimelineController.#inRange(this.#time, entry);\r\n const isActive = Tr2TimelineController.#inRange(this.#time, {\r\n startTime: entry.startTime,\r\n endTime\r\n });\r\n if (wasActive && !isActive)\r\n {\r\n this.actions[index].Stop(this);\r\n }\r\n else if (!wasActive && isActive)\r\n {\r\n this.actions[index].Start(this);\r\n }\r\n }\r\n entry.endTime = endTime;\r\n return true;\r\n }\r\n\r\n /**\r\n * Reassigns an action to another track, starting or stopping it when the move\r\n * changes whether its track is enabled while the action covers the current\r\n * time.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetActionTrackID(index, trackID)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const wasEnabled = this.IsActionEnabled(index);\r\n const entry = this.#entryAt(index);\r\n if (!entry)\r\n {\r\n return false;\r\n }\r\n entry.trackID = trackID;\r\n const isEnabled = this.IsActionEnabled(index);\r\n if (this.isPlaying && wasEnabled !== isEnabled && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n if (isEnabled)\r\n {\r\n this.actions[index].Start(this);\r\n }\r\n else\r\n {\r\n this.actions[index].Stop(this);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Adds an action and entry.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n AddAction(action, startTime, endTime, trackID = 0)\r\n {\r\n if (!action)\r\n {\r\n return;\r\n }\r\n this.actions.push(action);\r\n const entry = new Tr2TimelineEntry();\r\n entry.startTime = startTime;\r\n entry.endTime = endTime;\r\n entry.trackID = trackID;\r\n this.entries.push(entry);\r\n if (this.#owner)\r\n {\r\n action.Link(this);\r\n }\r\n if (this.isPlaying && this.IsActionEnabled(this.actions.length - 1) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n action.Start(this);\r\n }\r\n }\r\n\r\n /**\r\n * Removes an action by index.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RemoveAction(index)\r\n {\r\n if (index < 0 || index >= this.actions.length)\r\n {\r\n return false;\r\n }\r\n const action = this.actions[index];\r\n const entry = this.#entryAt(index);\r\n if (entry && this.isPlaying && this.IsActionEnabled(index) && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n action.Stop(this);\r\n }\r\n if (this.#owner)\r\n {\r\n action.Unlink();\r\n }\r\n this.actions.splice(index, 1);\r\n this.entries.splice(index, 1);\r\n return true;\r\n }\r\n\r\n /**\r\n * Checks whether the action's track is enabled.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsActionEnabled(index)\r\n {\r\n const entry = this.#entryAt(index);\r\n return !!entry && !this.#disabledTracks.has(entry.trackID);\r\n }\r\n\r\n /**\r\n * Checks whether a track is enabled.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsTrackEnabled(trackID)\r\n {\r\n return !this.#disabledTracks.has(trackID);\r\n }\r\n\r\n /**\r\n * Enables or disables a track.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n EnableTrack(trackID, enable)\r\n {\r\n const wasEnabled = this.IsTrackEnabled(trackID);\r\n if (enable)\r\n {\r\n this.#disabledTracks.delete(trackID);\r\n }\r\n else\r\n {\r\n this.#disabledTracks.add(trackID);\r\n }\r\n if (this.isPlaying && wasEnabled !== enable)\r\n {\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n const entry = this.#entryAt(i);\r\n if (entry && entry.trackID === trackID && Tr2TimelineController.#inRange(this.#time, entry))\r\n {\r\n if (enable)\r\n {\r\n this.actions[i].Start(this);\r\n }\r\n else\r\n {\r\n this.actions[i].Stop(this);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Registers a callback.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RegisterCallback(name, callback)\r\n {\r\n this.#callbacks.push({\r\n name,\r\n callback\r\n });\r\n }\r\n\r\n /**\r\n * Clears callbacks.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ClearCallbacks()\r\n {\r\n this.#callbacks = [];\r\n }\r\n\r\n /**\r\n * Gets current timeline time.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetTime()\r\n {\r\n return this.#time;\r\n }\r\n\r\n /**\r\n * Gets the current frame simulation time for JS action adapters.\r\n */\r\n CjsGetCurrentFrameTime()\r\n {\r\n return this.#lastUpdateTime || GetControllerFrameTimeSeconds();\r\n }\r\n\r\n /**\r\n * Sets current timeline time and toggles action activity.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n SetTime(time)\r\n {\r\n if (!this.isPlaying || time === this.#time)\r\n {\r\n return;\r\n }\r\n this.#setTime(time, false);\r\n }\r\n\r\n /**\r\n * Sets the current time and reconciles every enabled action against the new\r\n * time; when includePassedActions is set, an action whose whole range was\r\n * skipped over in one step is started and stopped back to back so it is not\r\n * silently missed.\r\n */\r\n #setTime(time, includePassedActions)\r\n {\r\n const oldTime = this.#time;\r\n this.#time = time;\r\n for (let i = 0; i < this.actions.length; i++)\r\n {\r\n if (!this.IsActionEnabled(i))\r\n {\r\n continue;\r\n }\r\n const entry = this.#entryAt(i);\r\n if (!entry)\r\n {\r\n continue;\r\n }\r\n const wasActive = Tr2TimelineController.#inRange(oldTime, entry);\r\n const isActive = Tr2TimelineController.#inRange(this.#time, entry);\r\n if (wasActive && !isActive)\r\n {\r\n this.actions[i].Stop(this);\r\n }\r\n else if (!wasActive && isActive)\r\n {\r\n this.actions[i].Start(this);\r\n }\r\n else if (includePassedActions && Tr2TimelineController.#crossedRange(oldTime, this.#time, entry))\r\n {\r\n this.actions[i].Start(this);\r\n this.actions[i].Stop(this);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Pauses time progression.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Pause()\r\n {\r\n this.isPaused = true;\r\n }\r\n\r\n /**\r\n * Resumes time progression.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n Resume()\r\n {\r\n this.isPaused = false;\r\n }\r\n\r\n /**\r\n * Relinks to the current owner.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ReLink()\r\n {\r\n const owner = this.#owner;\r\n if (owner)\r\n {\r\n this.Link(owner);\r\n }\r\n }\r\n\r\n /**\r\n * Gets the timeline entry parallel to the action at an index, or null when the\r\n * lists are not the same length.\r\n */\r\n #entryAt(index)\r\n {\r\n return this.entries[index] ?? null;\r\n }\r\n\r\n /**\r\n * Checks whether a time falls in an entry's range; the start is inclusive and\r\n * the end exclusive.\r\n */\r\n static #inRange(time, entry)\r\n {\r\n return time >= entry.startTime && time < entry.endTime;\r\n }\r\n\r\n /**\r\n * Checks whether an entry's whole range fell inside a single update step,\r\n * meaning the action was never observed active.\r\n */\r\n static #crossedRange(oldTime, newTime, entry)\r\n {\r\n const updateRange = { startTime: oldTime, endTime: newTime };\r\n return Tr2TimelineController.#inRange(entry.startTime, updateRange) && Tr2TimelineController.#inRange(entry.endTime, updateRange);\r\n }\r\n}\r\n"],"names":["_Tr2TimelineControlle","_identity","Tr2TimelineController","_withITr2ActionContro","withITr2ActionController","EveThrottleable","e","_init_actions","_init_extra_actions","_init_entries","_init_extra_entries","_init_name","_init_extra_name","_init_variables","_init_extra_variables","_init_eventHandlers","_init_extra_eventHandlers","_init_timeScale","_init_extra_timeScale","_init_isPlaying","_init_extra_isPlaying","_init_isPaused","_init_extra_isPaused","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","list","persist","string","float32","read","boolean","carbon","method","impl","adapted","implemented","actions","entries","name","variables","eventHandlers","timeScale","isPlaying","isPaused","Set","Float32Array","ArrayBuffer","time","GetTime","value","SetTime","Link","owner","Unlink","length","i","variable","push","GetName","index","offset","BYTES_PER_ELEMENT","SetDestinationBuffer","SetDirtyMask","action","handler","reason","UnlinkReason","UNLINKING","DELETING","Stop","IsLinked","Start","GetControllerFrameTimeSeconds","entry","IsActionEnabled","Update","normalizedUpdateFrequency","actualTime","GetControllerActualTimeSeconds","ShouldSkipUpdate","frameTime","dt","updateable","SetVariable","find","SetValue","HandleEvent","eventName","Execute","GetOwner","Callback","callbackName","called","callback","RegisterUpdateable","add","UnRegisterUpdateable","delete","GetBindingPathRoots","GetFloatVariableByName","GetValue","GetExpressionTermInfo","out","group","description","kind","GetVariableView","GetVariableBuffer","EnsureTempArenaSize","size","byteLength","GetTempArena","OnSimClockRebase","oldTime","newTime","diff","RebaseSimTime","GetActionCount","GetAction","GetActionStartTime","startTime","GetActionEndTime","endTime","GetActionTrackID","trackID","SetActionStartTime","wasActive","isActive","SetActionEndTime","SetActionTrackID","wasEnabled","isEnabled","AddAction","Tr2TimelineEntry","RemoveAction","splice","has","IsTrackEnabled","EnableTrack","enable","RegisterCallback","ClearCallbacks","CjsGetCurrentFrameTime","#setTime","includePassedActions","Pause","Resume","ReLink","#entryAt","#inRange","#crossedRange","updateRange","constructor"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { CjsSchema } from '#schema';
2
- import { Brand, Adopt } from '../controllers/ITr2Controller.js';
2
+ import { Brand, Adopt } from '../controllers/ITr2Controller/ITr2Controller.js';
3
+ import '../controllers/ITr2Controller/ITr2ActionController.js';
3
4
 
4
5
  // Source: trinity/trinity/Include/ITr2Updateable.h
5
6
  //
@@ -1 +1 @@
1
- {"version":3,"file":"ITr2Updateable.js","sources":["../../../../src/trinity/core/ITr2Updateable.js"],"sourcesContent":["// Source: trinity/trinity/Include/ITr2Updateable.h\n//\n// Carbon's single-method update contract: anything registered with a\n// controller's RegisterUpdateable, or placed in TriStepUpdate's object slot,\n// answers Update(realTime, simTime). The one method is PURE VIRTUAL - Carbon\n// cannot register a non-updateable, which is why the callers that used to\n// write `updateable.Update?.()` never needed the hedge.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller.js\";\n\n\nconst ITR2_UPDATEABLE = Symbol.for(\"carbonenginejs.contract.ITr2Updateable\");\n\nconst UPDATEABLE_ABSTRACTS = [ \"Update\" ];\n\n\n/** Contract for an object updated once per controller or render-job tick. */\nexport class ITr2Updateable\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_UPDATEABLE] === true;\n }\n\n /**\n * Runs one tick's update.\n *\n * THE ONLY METHOD, AND CARBON MAKES IT PURE VIRTUAL: an updateable exists\n * precisely to be updated, so there is no sensible default.\n *\n * @param {number} _realTime Wall-clock seconds.\n * @param {number} _simTime Sim-clock seconds.\n */\n Update(_realTime, _simTime)\n {\n throw new Error(\"ITr2Updateable.Update must be implemented by an updateable.\");\n }\n}\n\n\nBrand(ITr2Updateable, ITR2_UPDATEABLE, [], UPDATEABLE_ABSTRACTS);\nCjsSchema.define(ITr2Updateable, { className: \"ITr2Updateable\" });\n\n\n/**\n * Adds the ITr2Updateable contract without replacing an existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withITr2Updateable(Base)\n{\n const Updateable = Adopt(Base, ITr2Updateable, UPDATEABLE_ABSTRACTS);\n\n Brand(Updateable, ITR2_UPDATEABLE, [], UPDATEABLE_ABSTRACTS);\n\n return Updateable;\n}\n"],"names":["ITR2_UPDATEABLE","Symbol","for","UPDATEABLE_ABSTRACTS","ITr2Updateable","hasInstance","value","undefined","Update","_realTime","_simTime","Error","Brand","CjsSchema","define","className","withITr2Updateable","Base","Updateable","Adopt"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,wCAAwC,CAAC;AAE5E,MAAMC,oBAAoB,GAAG,CAAE,QAAQ,CAAE;;AAGzC;AACO,MAAMC,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;AACA;AACEQ,EAAAA,MAAMA,CAACC,SAAS,EAAEC,QAAQ,EAC1B;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,6DAA6D,CAAC;AAChF,EAAA;AACF;AAGAC,KAAK,CAACR,cAAc,EAAEJ,eAAe,EAAE,EAAE,EAAEG,oBAAoB,CAAC;AAChEU,SAAS,CAACC,MAAM,CAACV,cAAc,EAAE;AAAEW,EAAAA,SAAS,EAAE;AAAiB,CAAC,CAAC;;AAGjE;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,IAAI,EACvC;EACE,MAAMC,UAAU,GAAGC,KAAK,CAACF,IAAI,EAAEb,cAAc,EAAED,oBAAoB,CAAC;EAEpES,KAAK,CAACM,UAAU,EAAElB,eAAe,EAAE,EAAE,EAAEG,oBAAoB,CAAC;AAE5D,EAAA,OAAOe,UAAU;AACnB;;;;"}
1
+ {"version":3,"file":"ITr2Updateable.js","sources":["../../../../src/trinity/core/ITr2Updateable.js"],"sourcesContent":["// Source: trinity/trinity/Include/ITr2Updateable.h\n//\n// Carbon's single-method update contract: anything registered with a\n// controller's RegisterUpdateable, or placed in TriStepUpdate's object slot,\n// answers Update(realTime, simTime). The one method is PURE VIRTUAL - Carbon\n// cannot register a non-updateable, which is why the callers that used to\n// write `updateable.Update?.()` never needed the hedge.\n\nimport { CjsSchema } from \"#schema\";\nimport { Adopt, Brand } from \"../controllers/ITr2Controller/index.js\";\n\n\nconst ITR2_UPDATEABLE = Symbol.for(\"carbonenginejs.contract.ITr2Updateable\");\n\nconst UPDATEABLE_ABSTRACTS = [ \"Update\" ];\n\n\n/** Contract for an object updated once per controller or render-job tick. */\nexport class ITr2Updateable\n{\n static [Symbol.hasInstance](value)\n {\n return value !== null && value !== undefined && value[ITR2_UPDATEABLE] === true;\n }\n\n /**\n * Runs one tick's update.\n *\n * THE ONLY METHOD, AND CARBON MAKES IT PURE VIRTUAL: an updateable exists\n * precisely to be updated, so there is no sensible default.\n *\n * @param {number} _realTime Wall-clock seconds.\n * @param {number} _simTime Sim-clock seconds.\n */\n Update(_realTime, _simTime)\n {\n throw new Error(\"ITr2Updateable.Update must be implemented by an updateable.\");\n }\n}\n\n\nBrand(ITr2Updateable, ITR2_UPDATEABLE, [], UPDATEABLE_ABSTRACTS);\nCjsSchema.define(ITr2Updateable, { className: \"ITr2Updateable\" });\n\n\n/**\n * Adds the ITr2Updateable contract without replacing an existing model base.\n *\n * @param {Function} Base The class to extend.\n * @returns {Function} A subclass carrying the contract.\n */\nexport function withITr2Updateable(Base)\n{\n const Updateable = Adopt(Base, ITr2Updateable, UPDATEABLE_ABSTRACTS);\n\n Brand(Updateable, ITR2_UPDATEABLE, [], UPDATEABLE_ABSTRACTS);\n\n return Updateable;\n}\n"],"names":["ITR2_UPDATEABLE","Symbol","for","UPDATEABLE_ABSTRACTS","ITr2Updateable","hasInstance","value","undefined","Update","_realTime","_simTime","Error","Brand","CjsSchema","define","className","withITr2Updateable","Base","Updateable","Adopt"],"mappings":";;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMA,MAAMA,eAAe,GAAGC,MAAM,CAACC,GAAG,CAAC,wCAAwC,CAAC;AAE5E,MAAMC,oBAAoB,GAAG,CAAE,QAAQ,CAAE;;AAGzC;AACO,MAAMC,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;AACA;AACEQ,EAAAA,MAAMA,CAACC,SAAS,EAAEC,QAAQ,EAC1B;AACE,IAAA,MAAM,IAAIC,KAAK,CAAC,6DAA6D,CAAC;AAChF,EAAA;AACF;AAGAC,KAAK,CAACR,cAAc,EAAEJ,eAAe,EAAE,EAAE,EAAEG,oBAAoB,CAAC;AAChEU,SAAS,CAACC,MAAM,CAACV,cAAc,EAAE;AAAEW,EAAAA,SAAS,EAAE;AAAiB,CAAC,CAAC;;AAGjE;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,IAAI,EACvC;EACE,MAAMC,UAAU,GAAGC,KAAK,CAACF,IAAI,EAAEb,cAAc,EAAED,oBAAoB,CAAC;EAEpES,KAAK,CAACM,UAAU,EAAElB,eAAe,EAAE,EAAE,EAAEG,oBAAoB,CAAC;AAE5D,EAAA,OAAOe,UAAU;AACnB;;;;"}
@@ -1,9 +1,10 @@
1
1
  import { Tr2GpuUsage, Tr2CpuUsage, Topology } from '#consts/render-context';
2
- import { Tr2BufferDescriptionAL } from '../../trinityal/stub/Tr2BufferALStub.js';
3
- import { Tr2VertexDefinition } from './vertex/Tr2VertexDefinition.js';
2
+ import '../../trinityal/stub/Tr2BufferALStub.js';
3
+ import { Tr2VertexDefinition } from './vertex/Tr2VertexDefinition/Tr2VertexDefinition.js';
4
4
  import { Tr2EffectStateManager as _Tr2EffectStateManage } from '../shader/Tr2EffectStateManager.js';
5
5
  import { Tr2VariableStore as _Tr2VariableStore } from './variable/Tr2VariableStore.js';
6
6
  import { SCREEN_QUAD_FLOATS, SCREEN_VERTEX_BYTES, SetupScreenQuadInCameraSpace, SetupScreenQuad } from './Tr2RenderUtils.js';
7
+ import { Tr2BufferDescriptionAL } from '../../trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js';
7
8
 
8
9
  // Source: trinity/trinity/Tr2Blitter.h
9
10
  // trinity/trinity/Tr2Blitter.cpp
@@ -26,7 +27,9 @@ import { SCREEN_QUAD_FLOATS, SCREEN_VERTEX_BYTES, SetupScreenQuadInCameraSpace,
26
27
  // a promise on the device itself and nothing here rebuilds on it yet. The
27
28
  // `PrepareResources`/`OnPrepareResources` split IS kept - that is where such
28
29
  // a registry would hook in - but it is called from first use rather than from
29
- // the constructor, because Carbon has a device by construction and we may not.
30
+ // the constructor, because the constructor takes no render context to prepare
31
+ // against. NOT because a device might be missing: there is always one by then,
32
+ // the stub backend included, which is what runs without webgpu or webgl.
30
33
  // - `BLITCUBE_EFFECT_PATH`. Carbon declares the constant and never uses it
31
34
  // (`Tr2Blitter.cpp:13`); transcribing dead code would imply a cube blit
32
35
  // exists.
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2Blitter.js","sources":["../../../../src/trinity/core/Tr2Blitter.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Blitter.h\n// trinity/trinity/Tr2Blitter.cpp\n//\n// The fullscreen-quad draw. Carbon routes every screen-space blit through this\n// one class: `Tr2Renderer::DrawTexture` and `DrawFullScreenWithShader` are\n// three-line wrappers around `s_blitter->Draw` (`Tr2Renderer.cpp:750-834`), and\n// `TriStepRenderTexture`, `TriStepRenderEffect` and `TriStepRenderAtlas` all\n// reach it that way. It is why those render steps could not be ported.\n//\n// THE WHOLE CLASS IS ONE METHOD. `DrawHelper` fills a four-vertex quad, binds\n// it, then runs every pass of the shader over it. The eight public `Draw`\n// overloads differ only in which arguments they pass through, so they collapse\n// into one method with defaults here.\n//\n// WHAT IS DELIBERATELY NOT PORTED:\n//\n// - The `Tr2DeviceResource` BASE. Carbon needs it because a DX device can be\n// lost and every registered resource rebuilt; WebGPU surfaces device loss as\n// a promise on the device itself and nothing here rebuilds on it yet. The\n// `PrepareResources`/`OnPrepareResources` split IS kept - that is where such\n// a registry would hook in - but it is called from first use rather than from\n// the constructor, because Carbon has a device by construction and we may not.\n// - `BLITCUBE_EFFECT_PATH`. Carbon declares the constant and never uses it\n// (`Tr2Blitter.cpp:13`); transcribing dead code would imply a cube blit\n// exists.\n//\n// THE BUFFER COMES FROM THE RENDER CONTEXT, not from `new Tr2BufferALStub()`.\n// Carbon picks the backend with a compile-time typedef; a Trinity class that\n// imports a concrete buffer picks it at authoring time and silently reaches no\n// device. See `Tr2RenderContext.CreateBuffer`.\n\nimport { Topology, Tr2CpuUsage, Tr2GpuUsage } from \"#consts/render-context\";\nimport { Tr2BufferDescriptionAL } from \"../../trinityal/stub/Tr2BufferALStub.js\";\nimport { Tr2VertexDefinition } from \"./vertex/Tr2VertexDefinition.js\";\nimport { Tr2EffectStateManager } from \"../shader/Tr2EffectStateManager.js\";\nimport { Tr2VariableStore } from \"./variable/Tr2VariableStore.js\";\nimport { SCREEN_QUAD_FLOATS, SCREEN_VERTEX_BYTES, SetupScreenQuad, SetupScreenQuadInCameraSpace } from \"./Tr2RenderUtils.js\";\n\n\n/** Carbon's two blit effect paths (`Tr2Blitter.cpp:11-12`). */\nexport const BLIT_EFFECT_PATH = \"res:/Graphics/Effect/Managed/space/system/Blit.fx\";\nexport const BLIT_FILTERED_EFFECT_PATH = \"res:/Graphics/Effect/Managed/space/system/BlitFiltered.fx\";\n\n\n/** Carbon `Tr2Blitter::Filtering`. */\nexport const Filtering = Object.freeze({\n FILTER_POINT: 0,\n FILTER_LINEAR: 1\n});\n\n\n/**\n * The screen-quad declaration, BUILT as Carbon builds it\n * (`Tr2Blitter.cpp:167-172`):\n *\n * Tr2VertexDefinition vd;\n * vd.Add( vd.FLOAT32_4, vd.POSITION );\n * vd.Add( vd.FLOAT32_2, vd.TEXCOORD );\n *\n * A definition is BUILT, not declared. An earlier version of this file wrote\n * the two items as a frozen literal with the offsets computed by hand - 0 and\n * 16 - which is the same shape Carbon spells with two `Add` calls, minus the\n * ledger that guarantees the offsets. Hand arithmetic that happens to agree\n * today is a defect waiting for the third element.\n *\n * @returns {Tr2VertexDefinition} A fresh definition; the state manager interns it.\n */\nfunction screenVertexDefinition()\n{\n const definition = new Tr2VertexDefinition();\n\n definition.Add(\"FLOAT32_4\", \"POSITION\");\n definition.Add(\"FLOAT32_2\", \"TEXCOORD\");\n\n return definition;\n}\n\n\n/** The four vertices of a screen quad, as Carbon's buffer holds them. */\nconst SCREEN_QUAD_VERTICES = 4;\n\n\n/** The global-store variable the blit shaders sample by name. */\nconst BLIT_SOURCE = \"BlitSource\";\n\n\n/**\n * Draws a fullscreen or sub-rectangle quad with a given material.\n */\nexport class Tr2Blitter\n{\n /** m_screenVertexDecl - interned once, and -1 until it is. */\n #screenVertexDecl = -1;\n\n /** m_vertexBuffer - four Tr2ScreenVertex, rewritten per draw. */\n #vertexBuffer = null;\n\n /** The quad staged on the CPU before it goes into the buffer. */\n #quad = new Float32Array(SCREEN_QUAD_FLOATS);\n\n /** m_blitEffect / m_blitFilteredEffect, set by the host that owns loading. */\n #blitEffect = null;\n\n #blitFilteredEffect = null;\n\n /**\n * Registers `BlitSource` on the global store, as Carbon's constructor does\n * (`Tr2Blitter.cpp:21`). The blit shaders sample it by name, so it has to\n * exist before the first draw rather than be created by one.\n */\n constructor()\n {\n Tr2VariableStore.GlobalStore().RegisterVariable(BLIT_SOURCE, null);\n }\n\n /**\n * Installs the two blit materials.\n *\n * CARBON CONSTRUCTS THESE ITSELF, from `BLIT_EFFECT_PATH` and\n * `BLIT_FILTERED_EFFECT_PATH` (`Tr2Blitter.cpp:22-26`). It can, because\n * `Tr2Effect::SetEffectPathName` reaches a synchronous resource manager.\n * Loading here is asynchronous and belongs to whoever owns the resource\n * manager, so the blitter is given its materials rather than fetching them.\n * The paths are exported above so a host uses Carbon's, not its own.\n *\n * @param {object} blitEffect The point-sampled blit material.\n * @param {object} [blitFilteredEffect] The linear-sampled one.\n * @returns {Tr2Blitter} This, for chaining.\n */\n SetBlitEffects(blitEffect, blitFilteredEffect = null)\n {\n this.#blitEffect = blitEffect;\n this.#blitFilteredEffect = blitFilteredEffect;\n\n return this;\n }\n\n /**\n * The interned handle for the screen-vertex declaration, or -1 before it is\n * prepared. Carbon's `m_screenVertexDecl`.\n *\n * @returns {number} The handle.\n */\n GetScreenVertexDeclaration()\n {\n return this.#screenVertexDecl;\n }\n\n /** Whether the blitter has what it needs to draw an untextured material. */\n IsPrepared()\n {\n return this.#screenVertexDecl !== -1 && this.#vertexBuffer !== null;\n }\n\n /**\n * Brings the blitter's device resources up.\n *\n * Carbon's `Tr2DeviceResource::PrepareResources` is the public entry and\n * `OnPrepareResources` the virtual a subclass implements; the blitter's\n * constructor calls the former (`Tr2Blitter.cpp:28`). The split is kept\n * because the base's half is where a device-resource registry would hook in,\n * and collapsing it would hide that seam.\n *\n * @param {object} renderContext The context to create against.\n * @returns {boolean} Whether the blitter is ready to draw.\n */\n PrepareResources(renderContext)\n {\n this.OnPrepareResources(renderContext);\n\n return this.IsPrepared();\n }\n\n /**\n * Interns the vertex declaration and creates the vertex buffer.\n *\n * Carbon `OnPrepareResources` (`Tr2Blitter.cpp:161-179`). Both halves test\n * before building, so it is idempotent exactly as Carbon's is - which is what\n * lets it be called from first use here rather than from the constructor.\n * Carbon can call it at construction because it has a device by then; we may\n * not.\n *\n * @param {object} renderContext The context to create against.\n * @returns {boolean} Carbon returns true unconditionally, and so does this.\n */\n OnPrepareResources(renderContext)\n {\n if (this.#screenVertexDecl === -1)\n {\n // Carbon's exact spelling: m_screenVertexDecl =\n // Tr2EffectStateManager::GetVertexDeclarationHandle( vd ) (cpp:172).\n this.#screenVertexDecl = Tr2EffectStateManager.getVertexDeclarationHandle(screenVertexDefinition());\n }\n\n // Carbon's DrawHelper returns false when the buffer is invalid\n // (`cpp:109-112`) and the caller clears instead, so a blitter without a\n // device DEGRADES rather than throws. A context with no backend installed\n // is that case; asking it for a buffer is a loud error everywhere else, and\n // should stay one.\n if (!this.#vertexBuffer && renderContext.GetRenderContextAL())\n {\n // WRITE_OFTEN because the quad is rewritten every draw; VERTEX_BUFFER\n // because that is all it is ever bound as. Carbon's own flags\n // (`Tr2Blitter.cpp:175`).\n this.#vertexBuffer = renderContext.CreateBuffer(Tr2BufferDescriptionAL.FromStride(\n SCREEN_VERTEX_BYTES,\n SCREEN_QUAD_VERTICES,\n Tr2GpuUsage.VERTEX_BUFFER,\n Tr2CpuUsage.WRITE_OFTEN\n ));\n }\n\n return true;\n }\n\n /** Drops the declaration handle and the buffer, as `ReleaseResources` does. */\n ReleaseResources()\n {\n if (this.#vertexBuffer) this.#vertexBuffer.Destroy();\n\n this.#vertexBuffer = null;\n this.#screenVertexDecl = -1;\n }\n\n /**\n * Draws a screen quad with a material, optionally over a texture.\n *\n * Carbon's `DrawHelper` (`Tr2Blitter.cpp:100-159`). The eight `Draw`\n * overloads are this one method; `Draw` and `DrawInCameraSpace` below are the\n * two callers Carbon distinguishes.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} shader The material's `Tr2Shader`.\n * @param {object} material The material to draw with.\n * @param {object|null} texture A texture to publish as `BlitSource`.\n * @param {boolean} isCameraSpace Whether to unproject the corners.\n * @param {object} placement `{ tlTexCoord, brTexCoord, tlVertexCoord, brVertexCoord }`.\n * @returns {boolean} Whether the quad was drawn.\n */\n DrawHelper(renderContext, shader, material, texture, isCameraSpace, placement = {})\n {\n // Carbon asserts on a null material and then returns false anyway, because\n // \"final build should not crash even if we get here with a null effect\"\n // (`cpp:101-107`). The refusal is the part that ships.\n if (!material || !shader) return false;\n\n if (!this.PrepareResources(renderContext)) return false;\n\n const {\n tlTexCoord = [ 0, 0 ],\n brTexCoord = [ 1, 1 ],\n tlVertexCoord = [ 0, 0 ],\n brVertexCoord = [ 1, 1 ]\n } = placement;\n\n if (isCameraSpace)\n {\n // Carbon asserts the vertex coordinates are the full quad here\n // (`cpp:126-127`), because the camera-space builder ignores them.\n if (!SetupScreenQuadInCameraSpace(this.#quad, renderContext)) return false;\n }\n else\n {\n SetupScreenQuad(this.#quad, renderContext, tlTexCoord, brTexCoord, tlVertexCoord, brVertexCoord);\n }\n\n const mapped = this.#vertexBuffer.MapForWriting(renderContext);\n if (!mapped.data) return false;\n\n new Float32Array(mapped.data.buffer, mapped.data.byteOffset, SCREEN_QUAD_FLOATS).set(this.#quad);\n this.#vertexBuffer.UnmapForWriting(renderContext);\n\n const esm = renderContext.GetEffectStateManager();\n\n esm.ApplyVertexDeclaration(this.#screenVertexDecl);\n esm.ApplyStreamSource(0, this.#vertexBuffer, 0, SCREEN_VERTEX_BYTES);\n\n // Carbon publishes the source texture through the GLOBAL VARIABLE STORE\n // rather than binding it (`cpp:136-144`), because the blit shaders declare\n // a `BlitSource` sampler by name and the material's own parameter path\n // resolves it. It clears the entry afterwards so the next blit cannot\n // inherit this one's texture.\n const blitSource = texture ? Tr2VariableStore.GlobalStore().GetVariable(BLIT_SOURCE) : null;\n\n if (blitSource) blitSource.SetValue(texture);\n\n const passCount = shader.GetPassCount(0);\n\n for (let passIndex = 0; passIndex < passCount; passIndex++)\n {\n shader.ApplyAllStateForPass(0, passIndex, renderContext);\n material.ApplyMaterialDataForPass(0, passIndex, renderContext);\n\n // Two triangles as a strip, which is what the four vertices describe and\n // why the interior-edge flip in SetupScreenQuad matters.\n renderContext.SetTopology(Topology.TOP_TRIANGLE_STRIP);\n renderContext.DrawPrimitive(0, 2);\n }\n\n if (blitSource) blitSource.Clear();\n\n return true;\n }\n\n /**\n * Draws a screen quad with a material.\n *\n * Carbon's `Draw` overloads collapse here: pass a texture to blit it, omit it\n * to run a fullscreen shader, and give a placement to draw a sub-rectangle.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} material The material to draw with.\n * @param {object|null} [texture] A texture to publish as `BlitSource`.\n * @param {object} [placement] Texture and vertex corners.\n * @returns {boolean} Whether the quad was drawn.\n */\n Draw(renderContext, material, texture = null, placement = {})\n {\n if (!material) return false;\n\n return this.DrawHelper(renderContext, material.GetShaderStateInterface(), material, texture, false, placement);\n }\n\n /**\n * Blits a texture with the built-in blit material.\n *\n * Carbon `Draw( renderContext, texture, tl, br, filter )` (`cpp:41-51`).\n * Point and linear are two different effects, not a sampler setting.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} texture The texture to blit.\n * @param {object} [placement] Texture and vertex corners.\n * @param {number} [filter] A `Filtering` value.\n * @returns {boolean} Whether the quad was drawn.\n */\n DrawTexture(renderContext, texture, placement = {}, filter = Filtering.FILTER_POINT)\n {\n const material = filter === Filtering.FILTER_LINEAR ? this.#blitFilteredEffect : this.#blitEffect;\n\n // Carbon's switch has no default and falls through to `return false` for an\n // unknown filter (`cpp:43-50`); a missing effect lands in the same place.\n if (!material) return false;\n\n return this.DrawHelper(renderContext, material.GetShaderStateInterface(), material, texture, false, placement);\n }\n\n /**\n * Draws the quad with its corners unprojected into view space.\n *\n * Carbon `DrawInCameraSpace` (`cpp:96-99`), which is the one caller that\n * passes an explicitly chosen shader rather than the material's own.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} shader The shader to run.\n * @param {object} material The material to draw with.\n * @returns {boolean} Whether the quad was drawn.\n */\n DrawInCameraSpace(renderContext, shader, material)\n {\n return this.DrawHelper(renderContext, shader, material, null, true);\n }\n}\n"],"names":["BLIT_EFFECT_PATH","BLIT_FILTERED_EFFECT_PATH","Filtering","Object","freeze","FILTER_POINT","FILTER_LINEAR","screenVertexDefinition","definition","Tr2VertexDefinition","Add","SCREEN_QUAD_VERTICES","BLIT_SOURCE","Tr2Blitter","Float32Array","SCREEN_QUAD_FLOATS","constructor","Tr2VariableStore","GlobalStore","RegisterVariable","SetBlitEffects","blitEffect","blitFilteredEffect","GetScreenVertexDeclaration","IsPrepared","PrepareResources","renderContext","OnPrepareResources","Tr2EffectStateManager","getVertexDeclarationHandle","GetRenderContextAL","CreateBuffer","Tr2BufferDescriptionAL","FromStride","SCREEN_VERTEX_BYTES","Tr2GpuUsage","VERTEX_BUFFER","Tr2CpuUsage","WRITE_OFTEN","ReleaseResources","Destroy","DrawHelper","shader","material","texture","isCameraSpace","placement","tlTexCoord","brTexCoord","tlVertexCoord","brVertexCoord","SetupScreenQuadInCameraSpace","SetupScreenQuad","mapped","MapForWriting","data","buffer","byteOffset","set","UnmapForWriting","esm","GetEffectStateManager","ApplyVertexDeclaration","ApplyStreamSource","blitSource","GetVariable","SetValue","passCount","GetPassCount","passIndex","ApplyAllStateForPass","ApplyMaterialDataForPass","SetTopology","Topology","TOP_TRIANGLE_STRIP","DrawPrimitive","Clear","Draw","GetShaderStateInterface","DrawTexture","filter","DrawInCameraSpace"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2Blitter.js","sources":["../../../../src/trinity/core/Tr2Blitter.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Blitter.h\n// trinity/trinity/Tr2Blitter.cpp\n//\n// The fullscreen-quad draw. Carbon routes every screen-space blit through this\n// one class: `Tr2Renderer::DrawTexture` and `DrawFullScreenWithShader` are\n// three-line wrappers around `s_blitter->Draw` (`Tr2Renderer.cpp:750-834`), and\n// `TriStepRenderTexture`, `TriStepRenderEffect` and `TriStepRenderAtlas` all\n// reach it that way. It is why those render steps could not be ported.\n//\n// THE WHOLE CLASS IS ONE METHOD. `DrawHelper` fills a four-vertex quad, binds\n// it, then runs every pass of the shader over it. The eight public `Draw`\n// overloads differ only in which arguments they pass through, so they collapse\n// into one method with defaults here.\n//\n// WHAT IS DELIBERATELY NOT PORTED:\n//\n// - The `Tr2DeviceResource` BASE. Carbon needs it because a DX device can be\n// lost and every registered resource rebuilt; WebGPU surfaces device loss as\n// a promise on the device itself and nothing here rebuilds on it yet. The\n// `PrepareResources`/`OnPrepareResources` split IS kept - that is where such\n// a registry would hook in - but it is called from first use rather than from\n// the constructor, because the constructor takes no render context to prepare\n// against. NOT because a device might be missing: there is always one by then,\n// the stub backend included, which is what runs without webgpu or webgl.\n// - `BLITCUBE_EFFECT_PATH`. Carbon declares the constant and never uses it\n// (`Tr2Blitter.cpp:13`); transcribing dead code would imply a cube blit\n// exists.\n//\n// THE BUFFER COMES FROM THE RENDER CONTEXT, not from `new Tr2BufferALStub()`.\n// Carbon picks the backend with a compile-time typedef; a Trinity class that\n// imports a concrete buffer picks it at authoring time and silently reaches no\n// device. See `Tr2RenderContext.CreateBuffer`.\n\nimport { Topology, Tr2CpuUsage, Tr2GpuUsage } from \"#consts/render-context\";\nimport { Tr2BufferDescriptionAL } from \"../../trinityal/stub/Tr2BufferALStub.js\";\nimport { Tr2VertexDefinition } from \"./vertex/Tr2VertexDefinition/index.js\";\nimport { Tr2EffectStateManager } from \"../shader/Tr2EffectStateManager.js\";\nimport { Tr2VariableStore } from \"./variable/Tr2VariableStore.js\";\nimport { SCREEN_QUAD_FLOATS, SCREEN_VERTEX_BYTES, SetupScreenQuad, SetupScreenQuadInCameraSpace } from \"./Tr2RenderUtils.js\";\n\n\n/** Carbon's two blit effect paths (`Tr2Blitter.cpp:11-12`). */\nexport const BLIT_EFFECT_PATH = \"res:/Graphics/Effect/Managed/space/system/Blit.fx\";\nexport const BLIT_FILTERED_EFFECT_PATH = \"res:/Graphics/Effect/Managed/space/system/BlitFiltered.fx\";\n\n\n/** Carbon `Tr2Blitter::Filtering`. */\nexport const Filtering = Object.freeze({\n FILTER_POINT: 0,\n FILTER_LINEAR: 1\n});\n\n\n/**\n * The screen-quad declaration, BUILT as Carbon builds it\n * (`Tr2Blitter.cpp:167-172`):\n *\n * Tr2VertexDefinition vd;\n * vd.Add( vd.FLOAT32_4, vd.POSITION );\n * vd.Add( vd.FLOAT32_2, vd.TEXCOORD );\n *\n * A definition is BUILT, not declared. An earlier version of this file wrote\n * the two items as a frozen literal with the offsets computed by hand - 0 and\n * 16 - which is the same shape Carbon spells with two `Add` calls, minus the\n * ledger that guarantees the offsets. Hand arithmetic that happens to agree\n * today is a defect waiting for the third element.\n *\n * @returns {Tr2VertexDefinition} A fresh definition; the state manager interns it.\n */\nfunction screenVertexDefinition()\n{\n const definition = new Tr2VertexDefinition();\n\n definition.Add(\"FLOAT32_4\", \"POSITION\");\n definition.Add(\"FLOAT32_2\", \"TEXCOORD\");\n\n return definition;\n}\n\n\n/** The four vertices of a screen quad, as Carbon's buffer holds them. */\nconst SCREEN_QUAD_VERTICES = 4;\n\n\n/** The global-store variable the blit shaders sample by name. */\nconst BLIT_SOURCE = \"BlitSource\";\n\n\n/**\n * Draws a fullscreen or sub-rectangle quad with a given material.\n */\nexport class Tr2Blitter\n{\n /** m_screenVertexDecl - interned once, and -1 until it is. */\n #screenVertexDecl = -1;\n\n /** m_vertexBuffer - four Tr2ScreenVertex, rewritten per draw. */\n #vertexBuffer = null;\n\n /** The quad staged on the CPU before it goes into the buffer. */\n #quad = new Float32Array(SCREEN_QUAD_FLOATS);\n\n /** m_blitEffect / m_blitFilteredEffect, set by the host that owns loading. */\n #blitEffect = null;\n\n #blitFilteredEffect = null;\n\n /**\n * Registers `BlitSource` on the global store, as Carbon's constructor does\n * (`Tr2Blitter.cpp:21`). The blit shaders sample it by name, so it has to\n * exist before the first draw rather than be created by one.\n */\n constructor()\n {\n Tr2VariableStore.GlobalStore().RegisterVariable(BLIT_SOURCE, null);\n }\n\n /**\n * Installs the two blit materials.\n *\n * CARBON CONSTRUCTS THESE ITSELF, from `BLIT_EFFECT_PATH` and\n * `BLIT_FILTERED_EFFECT_PATH` (`Tr2Blitter.cpp:22-26`). It can, because\n * `Tr2Effect::SetEffectPathName` reaches a synchronous resource manager.\n * Loading here is asynchronous and belongs to whoever owns the resource\n * manager, so the blitter is given its materials rather than fetching them.\n * The paths are exported above so a host uses Carbon's, not its own.\n *\n * @param {object} blitEffect The point-sampled blit material.\n * @param {object} [blitFilteredEffect] The linear-sampled one.\n * @returns {Tr2Blitter} This, for chaining.\n */\n SetBlitEffects(blitEffect, blitFilteredEffect = null)\n {\n this.#blitEffect = blitEffect;\n this.#blitFilteredEffect = blitFilteredEffect;\n\n return this;\n }\n\n /**\n * The interned handle for the screen-vertex declaration, or -1 before it is\n * prepared. Carbon's `m_screenVertexDecl`.\n *\n * @returns {number} The handle.\n */\n GetScreenVertexDeclaration()\n {\n return this.#screenVertexDecl;\n }\n\n /** Whether the blitter has what it needs to draw an untextured material. */\n IsPrepared()\n {\n return this.#screenVertexDecl !== -1 && this.#vertexBuffer !== null;\n }\n\n /**\n * Brings the blitter's device resources up.\n *\n * Carbon's `Tr2DeviceResource::PrepareResources` is the public entry and\n * `OnPrepareResources` the virtual a subclass implements; the blitter's\n * constructor calls the former (`Tr2Blitter.cpp:28`). The split is kept\n * because the base's half is where a device-resource registry would hook in,\n * and collapsing it would hide that seam.\n *\n * @param {object} renderContext The context to create against.\n * @returns {boolean} Whether the blitter is ready to draw.\n */\n PrepareResources(renderContext)\n {\n this.OnPrepareResources(renderContext);\n\n return this.IsPrepared();\n }\n\n /**\n * Interns the vertex declaration and creates the vertex buffer.\n *\n * Carbon `OnPrepareResources` (`Tr2Blitter.cpp:161-179`). Both halves test\n * before building, so it is idempotent exactly as Carbon's is - which is what\n * lets it be called from first use here rather than from the constructor.\n * Carbon can call it at construction because it has a device by then; we may\n * not.\n *\n * @param {object} renderContext The context to create against.\n * @returns {boolean} Carbon returns true unconditionally, and so does this.\n */\n OnPrepareResources(renderContext)\n {\n if (this.#screenVertexDecl === -1)\n {\n // Carbon's exact spelling: m_screenVertexDecl =\n // Tr2EffectStateManager::GetVertexDeclarationHandle( vd ) (cpp:172).\n this.#screenVertexDecl = Tr2EffectStateManager.getVertexDeclarationHandle(screenVertexDefinition());\n }\n\n // Carbon's DrawHelper returns false when the buffer is invalid\n // (`cpp:109-112`) and the caller clears instead, so a blitter without a\n // device DEGRADES rather than throws. A context with no backend installed\n // is that case; asking it for a buffer is a loud error everywhere else, and\n // should stay one.\n if (!this.#vertexBuffer && renderContext.GetRenderContextAL())\n {\n // WRITE_OFTEN because the quad is rewritten every draw; VERTEX_BUFFER\n // because that is all it is ever bound as. Carbon's own flags\n // (`Tr2Blitter.cpp:175`).\n this.#vertexBuffer = renderContext.CreateBuffer(Tr2BufferDescriptionAL.FromStride(\n SCREEN_VERTEX_BYTES,\n SCREEN_QUAD_VERTICES,\n Tr2GpuUsage.VERTEX_BUFFER,\n Tr2CpuUsage.WRITE_OFTEN\n ));\n }\n\n return true;\n }\n\n /** Drops the declaration handle and the buffer, as `ReleaseResources` does. */\n ReleaseResources()\n {\n if (this.#vertexBuffer) this.#vertexBuffer.Destroy();\n\n this.#vertexBuffer = null;\n this.#screenVertexDecl = -1;\n }\n\n /**\n * Draws a screen quad with a material, optionally over a texture.\n *\n * Carbon's `DrawHelper` (`Tr2Blitter.cpp:100-159`). The eight `Draw`\n * overloads are this one method; `Draw` and `DrawInCameraSpace` below are the\n * two callers Carbon distinguishes.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} shader The material's `Tr2Shader`.\n * @param {object} material The material to draw with.\n * @param {object|null} texture A texture to publish as `BlitSource`.\n * @param {boolean} isCameraSpace Whether to unproject the corners.\n * @param {object} placement `{ tlTexCoord, brTexCoord, tlVertexCoord, brVertexCoord }`.\n * @returns {boolean} Whether the quad was drawn.\n */\n DrawHelper(renderContext, shader, material, texture, isCameraSpace, placement = {})\n {\n // Carbon asserts on a null material and then returns false anyway, because\n // \"final build should not crash even if we get here with a null effect\"\n // (`cpp:101-107`). The refusal is the part that ships.\n if (!material || !shader) return false;\n\n if (!this.PrepareResources(renderContext)) return false;\n\n const {\n tlTexCoord = [ 0, 0 ],\n brTexCoord = [ 1, 1 ],\n tlVertexCoord = [ 0, 0 ],\n brVertexCoord = [ 1, 1 ]\n } = placement;\n\n if (isCameraSpace)\n {\n // Carbon asserts the vertex coordinates are the full quad here\n // (`cpp:126-127`), because the camera-space builder ignores them.\n if (!SetupScreenQuadInCameraSpace(this.#quad, renderContext)) return false;\n }\n else\n {\n SetupScreenQuad(this.#quad, renderContext, tlTexCoord, brTexCoord, tlVertexCoord, brVertexCoord);\n }\n\n const mapped = this.#vertexBuffer.MapForWriting(renderContext);\n if (!mapped.data) return false;\n\n new Float32Array(mapped.data.buffer, mapped.data.byteOffset, SCREEN_QUAD_FLOATS).set(this.#quad);\n this.#vertexBuffer.UnmapForWriting(renderContext);\n\n const esm = renderContext.GetEffectStateManager();\n\n esm.ApplyVertexDeclaration(this.#screenVertexDecl);\n esm.ApplyStreamSource(0, this.#vertexBuffer, 0, SCREEN_VERTEX_BYTES);\n\n // Carbon publishes the source texture through the GLOBAL VARIABLE STORE\n // rather than binding it (`cpp:136-144`), because the blit shaders declare\n // a `BlitSource` sampler by name and the material's own parameter path\n // resolves it. It clears the entry afterwards so the next blit cannot\n // inherit this one's texture.\n const blitSource = texture ? Tr2VariableStore.GlobalStore().GetVariable(BLIT_SOURCE) : null;\n\n if (blitSource) blitSource.SetValue(texture);\n\n const passCount = shader.GetPassCount(0);\n\n for (let passIndex = 0; passIndex < passCount; passIndex++)\n {\n shader.ApplyAllStateForPass(0, passIndex, renderContext);\n material.ApplyMaterialDataForPass(0, passIndex, renderContext);\n\n // Two triangles as a strip, which is what the four vertices describe and\n // why the interior-edge flip in SetupScreenQuad matters.\n renderContext.SetTopology(Topology.TOP_TRIANGLE_STRIP);\n renderContext.DrawPrimitive(0, 2);\n }\n\n if (blitSource) blitSource.Clear();\n\n return true;\n }\n\n /**\n * Draws a screen quad with a material.\n *\n * Carbon's `Draw` overloads collapse here: pass a texture to blit it, omit it\n * to run a fullscreen shader, and give a placement to draw a sub-rectangle.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} material The material to draw with.\n * @param {object|null} [texture] A texture to publish as `BlitSource`.\n * @param {object} [placement] Texture and vertex corners.\n * @returns {boolean} Whether the quad was drawn.\n */\n Draw(renderContext, material, texture = null, placement = {})\n {\n if (!material) return false;\n\n return this.DrawHelper(renderContext, material.GetShaderStateInterface(), material, texture, false, placement);\n }\n\n /**\n * Blits a texture with the built-in blit material.\n *\n * Carbon `Draw( renderContext, texture, tl, br, filter )` (`cpp:41-51`).\n * Point and linear are two different effects, not a sampler setting.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} texture The texture to blit.\n * @param {object} [placement] Texture and vertex corners.\n * @param {number} [filter] A `Filtering` value.\n * @returns {boolean} Whether the quad was drawn.\n */\n DrawTexture(renderContext, texture, placement = {}, filter = Filtering.FILTER_POINT)\n {\n const material = filter === Filtering.FILTER_LINEAR ? this.#blitFilteredEffect : this.#blitEffect;\n\n // Carbon's switch has no default and falls through to `return false` for an\n // unknown filter (`cpp:43-50`); a missing effect lands in the same place.\n if (!material) return false;\n\n return this.DrawHelper(renderContext, material.GetShaderStateInterface(), material, texture, false, placement);\n }\n\n /**\n * Draws the quad with its corners unprojected into view space.\n *\n * Carbon `DrawInCameraSpace` (`cpp:96-99`), which is the one caller that\n * passes an explicitly chosen shader rather than the material's own.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} shader The shader to run.\n * @param {object} material The material to draw with.\n * @returns {boolean} Whether the quad was drawn.\n */\n DrawInCameraSpace(renderContext, shader, material)\n {\n return this.DrawHelper(renderContext, shader, material, null, true);\n }\n}\n"],"names":["BLIT_EFFECT_PATH","BLIT_FILTERED_EFFECT_PATH","Filtering","Object","freeze","FILTER_POINT","FILTER_LINEAR","screenVertexDefinition","definition","Tr2VertexDefinition","Add","SCREEN_QUAD_VERTICES","BLIT_SOURCE","Tr2Blitter","Float32Array","SCREEN_QUAD_FLOATS","constructor","Tr2VariableStore","GlobalStore","RegisterVariable","SetBlitEffects","blitEffect","blitFilteredEffect","GetScreenVertexDeclaration","IsPrepared","PrepareResources","renderContext","OnPrepareResources","Tr2EffectStateManager","getVertexDeclarationHandle","GetRenderContextAL","CreateBuffer","Tr2BufferDescriptionAL","FromStride","SCREEN_VERTEX_BYTES","Tr2GpuUsage","VERTEX_BUFFER","Tr2CpuUsage","WRITE_OFTEN","ReleaseResources","Destroy","DrawHelper","shader","material","texture","isCameraSpace","placement","tlTexCoord","brTexCoord","tlVertexCoord","brVertexCoord","SetupScreenQuadInCameraSpace","SetupScreenQuad","mapped","MapForWriting","data","buffer","byteOffset","set","UnmapForWriting","esm","GetEffectStateManager","ApplyVertexDeclaration","ApplyStreamSource","blitSource","GetVariable","SetValue","passCount","GetPassCount","passIndex","ApplyAllStateForPass","ApplyMaterialDataForPass","SetTopology","Topology","TOP_TRIANGLE_STRIP","DrawPrimitive","Clear","Draw","GetShaderStateInterface","DrawTexture","filter","DrawInCameraSpace"],"mappings":"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"}