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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -0,0 +1,256 @@
1
+ import { applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { io, type, carbon, impl } from '#schema';
3
+ import { CjsModel } from '#model';
4
+ import { vec2 } from '#math/vec2';
5
+ import { vec4 } from '#math/vec4';
6
+ import { Tr2Effect as _Tr2Effect } from '../shader/Tr2Effect.js';
7
+ import { Tr2LoadAction, Tr2StoreAction, Tr2GpuUsage, PixelFormat, TextureType } from '#consts/render-context';
8
+ import { RenderingMode } from '#consts/graphics';
9
+ import { Tr2ColorAttachment } from '../../trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js';
10
+
11
+ let _initProto, _initClass, _init_bypass, _init_extra_bypass, _init_depthWeight, _init_extra_depthWeight, _init_normalWeight, _init_extra_normalWeight, _init_planeWeight, _init_extra_planeWeight, _init_radius, _init_extra_radius, _init_stepSize, _init_extra_stepSize;
12
+
13
+ /** Carbon's four effect paths (`Tr2Denoiser.cpp:19-28`). */
14
+ const ESTIMATE_NOISE_PATH = "res:/graphics/effect/managed/space/system/EstimateNoise.fx";
15
+ const DENOISE_ESTIMATE_PATH = "res:/graphics/effect/managed/space/system/DenoiseEstimate.fx";
16
+ const DENOISE_1D_PATH = "res:/graphics/effect/managed/space/system/Denoise1D.fx";
17
+
18
+ /** Carbon's shader option and its two values (`cpp:33-35`). */
19
+ const NORMALS_INPUT = "NORMALS_INPUT";
20
+ const NORMALS_INPUT_NORMALS = "NORMALS_INPUT_NORMALS";
21
+ const NORMALS_INPUT_NONE = "NORMALS_INPUT_NONE";
22
+
23
+ /**
24
+ * Carbon's hint for every one of the four passes (`cpp:107` and after):
25
+ * DONT_CARE the previous contents, STORE the result.
26
+ *
27
+ * DONT_CARE is not "clear". It says the old contents are not needed, which is
28
+ * what lets a tiler skip loading them; clearing would cost a write instead.
29
+ * Every pass here overwrites its whole target, so the load is always wasted.
30
+ */
31
+ const OVERWRITE_AND_KEEP = new Tr2ColorAttachment(Tr2LoadAction.DONT_CARE, Tr2StoreAction.STORE);
32
+
33
+ /** Every pass target is R8, and every one is both drawn to and sampled from. */
34
+ const TARGET_USAGE = Tr2GpuUsage.RENDER_TARGET | Tr2GpuUsage.SHADER_RESOURCE;
35
+
36
+ /** Builds one effect already pointed at its path, as Carbon's constructor does. */
37
+ function effectAt(path) {
38
+ const effect = new _Tr2Effect();
39
+ effect.SetEffectPathName(path);
40
+ return effect;
41
+ }
42
+
43
+ /** Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising. */
44
+ let _Tr2Denoiser;
45
+ class Tr2Denoiser extends CjsModel {
46
+ static {
47
+ ({
48
+ e: [_init_bypass, _init_extra_bypass, _init_depthWeight, _init_extra_depthWeight, _init_normalWeight, _init_extra_normalWeight, _init_planeWeight, _init_extra_planeWeight, _init_radius, _init_extra_radius, _init_stepSize, _init_extra_stepSize, _initProto],
49
+ c: [_Tr2Denoiser, _initClass]
50
+ } = _applyDecs2311(this, [type.define({
51
+ className: "Tr2Denoiser",
52
+ family: "trinityCore",
53
+ purpose: "Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising."
54
+ })], [[[io, io.notify, io, io.persist, type, type.boolean], 16, "bypass"], [[io, io.notify, io, io.persist, type, type.float32], 16, "depthWeight"], [[io, io.notify, io, io.persist, type, type.float32], 16, "normalWeight"], [[io, io.notify, io, io.persist, type, type.float32], 16, "planeWeight"], [[io, io.notify, io, io.persist, type, type.uint32], 16, "radius"], [[io, io.notify, io, io.persist, type, type.uint32], 16, "stepSize"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reaches the blitter through the static Tr2Renderer; ours is an instance, so the renderer is passed in like the pool and the context.")], 18, "Apply"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetRadius"], [[carbon, carbon.method, impl, impl.implemented], 18, "OnModified"]], 0, void 0, CjsModel));
55
+ }
56
+ /** m_bypass (bool) [READWRITE, PERSIST, NOTIFY] */
57
+ bypass = (_initProto(this), _init_bypass(this, false));
58
+
59
+ /** m_depthWeight (float) [READWRITE, PERSIST, NOTIFY] */
60
+ depthWeight = (_init_extra_bypass(this), _init_depthWeight(this, 100));
61
+
62
+ /** m_normalWeight (float) [READWRITE, PERSIST, NOTIFY] */
63
+ normalWeight = (_init_extra_depthWeight(this), _init_normalWeight(this, 1.5));
64
+
65
+ /** m_planeWeight (float) [READWRITE, PERSIST, NOTIFY] */
66
+ planeWeight = (_init_extra_normalWeight(this), _init_planeWeight(this, 0));
67
+
68
+ /** m_radius (uint32_t) [READWRITE, PERSIST, NOTIFY] */
69
+ radius = (_init_extra_planeWeight(this), _init_radius(this, 5));
70
+
71
+ /** m_stepSize (uint32_t) [READWRITE, PERSIST, NOTIFY] */
72
+ stepSize = (_init_extra_radius(this), _init_stepSize(this, 1));
73
+
74
+ /** m_estimateNoise */
75
+ #estimateNoise = (_init_extra_stepSize(this), effectAt(ESTIMATE_NOISE_PATH));
76
+
77
+ /** m_denoiseEstimate */
78
+ #denoiseEstimate = effectAt(DENOISE_ESTIMATE_PATH);
79
+
80
+ /** m_denoiseHoriz - Denoise1D with Axis (stepSize, 0). */
81
+ #denoiseHoriz = effectAt(DENOISE_1D_PATH);
82
+
83
+ /** m_denoiseVert - the SAME effect file with Axis (0, stepSize). */
84
+ #denoiseVert = effectAt(DENOISE_1D_PATH);
85
+
86
+ /**
87
+ * m_parametersDirty - set by OnModified, cleared at the end of Apply.
88
+ *
89
+ * The weights and the axis are only re-sent when something changed, which is
90
+ * the one place this class caches anything.
91
+ */
92
+ #parametersDirty = true;
93
+
94
+ /**
95
+ * Runs the four passes and returns the denoised result.
96
+ *
97
+ * Carbon `Apply` (`cpp:59-162`). The one-argument overload is the `index = 0`
98
+ * default here (`cpp:54-57`).
99
+ *
100
+ * INVALID IN, EMPTY OUT. A source or depth that is not valid returns null
101
+ * rather than borrowing four textures to produce nothing.
102
+ *
103
+ * @param {object} source The noisy texture, as a pool handle.
104
+ * @param {object} depth The scene depth buffer.
105
+ * @param {object|null} normals Optional normals; absence selects a permutation.
106
+ * @param {Array<number>} projection The REVERSED-depth projection.
107
+ * @param {number} upscaling Divides the radius, so an upscaled pass blurs less.
108
+ * @param {object} gpuResourcePool The pool the pass targets come from.
109
+ * @param {object} renderContext The context to draw through.
110
+ * @param {object} renderer The renderer owning the blitter.
111
+ * @param {number} [index] Array slice of the result to render into.
112
+ * @returns {object|null} The result handle, or null.
113
+ */
114
+ Apply(source, depth, normals, projection, upscaling, gpuResourcePool, renderContext, renderer, index = 0) {
115
+ // Carbon tests the HANDLE, not the texture behind it (`cpp:61`).
116
+ if (!source.IsValid() || !depth.IsValid()) return null;
117
+ const sourceTexture = source.Get();
118
+ // Carbon is handed a default-constructed Tr2TextureAL when there are no
119
+ // normals - a real object. Ours is handed null, so the object may be
120
+ // absent; the METHOD is not optional.
121
+ const hasNormals = Boolean(normals && normals.IsValid());
122
+ const option = hasNormals ? NORMALS_INPUT_NORMALS : NORMALS_INPUT_NONE;
123
+ this.#denoiseVert.SetOption(NORMALS_INPUT, option);
124
+ this.#denoiseHoriz.SetOption(NORMALS_INPUT, option);
125
+ const width = sourceTexture.GetWidth();
126
+ const height = sourceTexture.GetHeight();
127
+ const sourceSize = vec4.fromValues(width, height, 1 / width, 1 / height);
128
+ this.#denoiseEstimate.SetParameter("SourceDimensions", sourceSize);
129
+ const esm = renderContext.GetEffectStateManager();
130
+
131
+ // Null is Carbon's default-constructed texture: bind EMPTY, do not merely
132
+ // save. A depth buffer left bound would depth-test a fullscreen blur.
133
+ esm.PushDepthStencilBuffer(null);
134
+ esm.PushRenderTarget();
135
+ try {
136
+ esm.ApplyStandardStates(RenderingMode.RM_FULLSCREEN);
137
+ const estimate = this.#Pass(gpuResourcePool, "Tr2Denoiser Noise Estimate", width, height);
138
+ esm.SetRenderTarget(0, estimate.Get());
139
+ renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);
140
+ this.#estimateNoise.SetParameter("Source", sourceTexture);
141
+ renderer.DrawScreenQuad(renderContext, this.#estimateNoise);
142
+ this.#estimateNoise.SetParameter("Source", null);
143
+ const mask = this.#Pass(gpuResourcePool, "Tr2Denoiser Denoise Mask", width, height);
144
+ this.#denoiseEstimate.SetParameter("Source", estimate.Get());
145
+ esm.SetRenderTarget(0, mask.Get());
146
+ renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);
147
+ renderer.DrawScreenQuad(renderContext, this.#denoiseEstimate);
148
+
149
+ // Carbon releases the estimate here, before borrowing the next target, so
150
+ // the pool can hand the same surface back rather than grow (`cpp:118`).
151
+ gpuResourcePool.Free(estimate);
152
+ const temp = this.#Pass(gpuResourcePool, "Tr2Denoiser Temp", width, height);
153
+ this.#SetPassParameters(this.#denoiseHoriz, vec2.fromValues(1, 0), depth, normals, projection, sourceSize, upscaling);
154
+ this.#denoiseHoriz.SetParameter("Source", sourceTexture);
155
+ this.#denoiseHoriz.SetParameter("NoiseEstimate", mask.Get());
156
+ esm.SetRenderTarget(0, temp.Get());
157
+ renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);
158
+ renderer.DrawScreenQuad(renderContext, this.#denoiseHoriz);
159
+ this.#denoiseHoriz.SetParameter("Source", null);
160
+ this.#denoiseHoriz.SetParameter("NoiseEstimate", null);
161
+ gpuResourcePool.Free(source);
162
+ const result = this.#Pass(gpuResourcePool, "Tr2Denoiser Result", width, height);
163
+ this.#SetPassParameters(this.#denoiseVert, vec2.fromValues(0, 1), depth, normals, projection, sourceSize, upscaling);
164
+ this.#denoiseVert.SetParameter("Source", temp.Get());
165
+ this.#denoiseVert.SetParameter("NoiseEstimate", mask.Get());
166
+ esm.SetRenderTarget(0, result.Get(), true, index);
167
+ renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);
168
+ renderer.DrawScreenQuad(renderContext, this.#denoiseVert);
169
+ this.#denoiseVert.SetParameter("Source", null);
170
+ this.#denoiseVert.SetParameter("NoiseEstimate", null);
171
+
172
+ // Both blur effects hold the depth and normal buffers until here, so a
173
+ // later pass cannot inherit them (`cpp:155-158`).
174
+ for (const effect of [this.#denoiseHoriz, this.#denoiseVert]) {
175
+ effect.SetParameter("DepthBuffer", null);
176
+ effect.SetParameter("NormalBuffer", null);
177
+ }
178
+ this.#parametersDirty = false;
179
+ return result;
180
+ } finally {
181
+ // Carbon pops through ON_BLOCK_EXIT, which runs however the block leaves.
182
+ esm.PopRenderTarget();
183
+ esm.PopDepthStencilBuffer();
184
+ }
185
+ }
186
+
187
+ /**
188
+ * Carbon `SetRadius` (`cpp:170-172`).
189
+ *
190
+ * @param {number} value The new radius.
191
+ * @returns {void}
192
+ */
193
+ SetRadius(value) {
194
+ this.radius = value >>> 0;
195
+ this.#parametersDirty = true;
196
+ }
197
+
198
+ /**
199
+ * Carbon `OnModified` (`cpp:164-168`): any authored change re-sends the
200
+ * weights on the next Apply.
201
+ *
202
+ * @returns {boolean} True, as Carbon's does.
203
+ */
204
+ OnModified() {
205
+ this.#parametersDirty = true;
206
+ return true;
207
+ }
208
+
209
+ /** Borrows one R8 pass target of the source's size. */
210
+ #Pass(gpuResourcePool, name, width, height) {
211
+ return gpuResourcePool.GetTempTexture(name, {
212
+ type: TextureType.TEX_TYPE_2D,
213
+ width,
214
+ height,
215
+ depth: 1,
216
+ mipCount: 1,
217
+ format: PixelFormat.PIXEL_FORMAT_R8_UNORM,
218
+ gpuUsage: TARGET_USAGE
219
+ });
220
+ }
221
+
222
+ /**
223
+ * Carbon's `SetParams` lambda (`cpp:76-94`).
224
+ *
225
+ * The weights and the axis are sent only when something changed; the radius,
226
+ * projection and buffers go every time. Carbon draws that line and it is not
227
+ * arbitrary - the axis is per effect and constant, the radius divides by an
228
+ * upscaling factor the caller may vary per frame.
229
+ */
230
+ #SetPassParameters(effect, direction, depth, normals, projection, sourceSize, upscaling) {
231
+ if (this.#parametersDirty) {
232
+ effect.SetParameter("DepthWeight", this.depthWeight);
233
+ effect.SetParameter("NormalWeight", this.normalWeight);
234
+ effect.SetParameter("PlaneWeight", this.planeWeight);
235
+ effect.SetParameter("PassThrough", this.bypass ? 1 : 0);
236
+ effect.SetParameter("Axis", vec2.scale(vec2.create(), direction, this.stepSize));
237
+ }
238
+
239
+ // Carbon's `max(uint32_t(radius / upscaling + 0.5f), 2u)`: round to nearest,
240
+ // and never below two, or the blur would sample only itself.
241
+ effect.SetParameter("Radius", Math.max(Math.trunc(this.radius / upscaling + 0.5), 2));
242
+ effect.SetParameter("ProjectionInv", projection);
243
+ // Carbon's Vector2( projection._43, projection._33 ); column-major puts
244
+ // those at 14 and 10.
245
+ effect.SetParameter("ClipInfo", vec2.fromValues(projection[14], projection[10]));
246
+ effect.SetParameter("DepthBuffer", depth);
247
+ effect.SetParameter("NormalBuffer", normals);
248
+ effect.SetParameter("SourceDimensions", sourceSize);
249
+ }
250
+ static {
251
+ _initClass();
252
+ }
253
+ }
254
+
255
+ export { _Tr2Denoiser as Tr2Denoiser };
256
+ //# sourceMappingURL=Tr2Denoiser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2Denoiser.js","sources":["../../../../src/trinity/core/Tr2Denoiser.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Denoiser.h\n// trinity/trinity/Tr2Denoiser.cpp\n//\n// A separable spatial denoiser, run over a noisy single-channel buffer - in\n// practice the screen-space shadow factor, which is why Tr2ShadowMap owns one.\n//\n// FOUR PASSES, AND THE ORDER IS THE ALGORITHM. Estimate how noisy the source is;\n// turn that into a per-pixel denoising strength; blur horizontally; blur\n// vertically. The two blur passes share one effect FILE and differ only by an\n// `Axis` parameter, which is what makes the filter separable and why there are\n// two effect instances rather than one used twice - each carries its own axis\n// and its own NORMALS_INPUT option.\n//\n// EDGES ARE PRESERVED BY WEIGHTING, NOT BY BRANCHING. Depth, normal and plane\n// weights decide how much a neighbouring sample counts, so the blur stops at a\n// geometric edge instead of smearing across it. That is why it needs the depth\n// buffer and the reversed-depth projection, and why a normals buffer is optional\n// rather than required - without one the effect takes its NONE permutation.\n//\n// WHAT IT CANNOT DO YET, stated plainly because the structure is complete and\n// the output is not: nothing loads the four effects. Each is constructed with\n// its res: path exactly as Carbon does, and Carbon loads them elsewhere too -\n// the constructor only names them. Until a resource manager resolves those\n// paths the passes run and draw nothing, which is the same state every other\n// effect-driven path in this runtime is in.\nimport { carbon, impl, io, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { vec2 } from \"#math/vec2\";\nimport { vec4 } from \"#math/vec4\";\nimport { Tr2Effect } from \"../shader/Tr2Effect.js\";\nimport { PixelFormat, TextureType, Tr2GpuUsage } from \"#consts/render-context\";\nimport { RenderingMode } from \"#consts/graphics\";\nimport { Tr2LoadAction, Tr2StoreAction } from \"#consts/render-context\";\nimport { Tr2ColorAttachment } from \"../../trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js\";\n\n/** Carbon's four effect paths (`Tr2Denoiser.cpp:19-28`). */\nconst ESTIMATE_NOISE_PATH = \"res:/graphics/effect/managed/space/system/EstimateNoise.fx\";\nconst DENOISE_ESTIMATE_PATH = \"res:/graphics/effect/managed/space/system/DenoiseEstimate.fx\";\nconst DENOISE_1D_PATH = \"res:/graphics/effect/managed/space/system/Denoise1D.fx\";\n\n/** Carbon's shader option and its two values (`cpp:33-35`). */\nconst NORMALS_INPUT = \"NORMALS_INPUT\";\nconst NORMALS_INPUT_NORMALS = \"NORMALS_INPUT_NORMALS\";\nconst NORMALS_INPUT_NONE = \"NORMALS_INPUT_NONE\";\n\n/**\n * Carbon's hint for every one of the four passes (`cpp:107` and after):\n * DONT_CARE the previous contents, STORE the result.\n *\n * DONT_CARE is not \"clear\". It says the old contents are not needed, which is\n * what lets a tiler skip loading them; clearing would cost a write instead.\n * Every pass here overwrites its whole target, so the load is always wasted.\n */\nconst OVERWRITE_AND_KEEP = new Tr2ColorAttachment(Tr2LoadAction.DONT_CARE, Tr2StoreAction.STORE);\n\n/** Every pass target is R8, and every one is both drawn to and sampled from. */\nconst TARGET_USAGE = Tr2GpuUsage.RENDER_TARGET | Tr2GpuUsage.SHADER_RESOURCE;\n\n/** Builds one effect already pointed at its path, as Carbon's constructor does. */\nfunction effectAt(path)\n{\n const effect = new Tr2Effect();\n\n effect.SetEffectPathName(path);\n return effect;\n}\n\n/** Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising. */\n@type.define({ className: \"Tr2Denoiser\", family: \"trinityCore\", purpose: \"Carries depth, normal, and plane weights together with radius, step size, and bypass state for spatial denoising.\" })\nexport class Tr2Denoiser extends CjsModel\n{\n\n /** m_bypass (bool) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.boolean\n bypass = false;\n\n /** m_depthWeight (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n depthWeight = 100;\n\n /** m_normalWeight (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n normalWeight = 1.5;\n\n /** m_planeWeight (float) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.float32\n planeWeight = 0;\n\n /** m_radius (uint32_t) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.uint32\n radius = 5;\n\n /** m_stepSize (uint32_t) [READWRITE, PERSIST, NOTIFY] */\n @io.notify\n @io.persist\n @type.uint32\n stepSize = 1;\n\n /** m_estimateNoise */\n #estimateNoise = effectAt(ESTIMATE_NOISE_PATH);\n\n /** m_denoiseEstimate */\n #denoiseEstimate = effectAt(DENOISE_ESTIMATE_PATH);\n\n /** m_denoiseHoriz - Denoise1D with Axis (stepSize, 0). */\n #denoiseHoriz = effectAt(DENOISE_1D_PATH);\n\n /** m_denoiseVert - the SAME effect file with Axis (0, stepSize). */\n #denoiseVert = effectAt(DENOISE_1D_PATH);\n\n /**\n * m_parametersDirty - set by OnModified, cleared at the end of Apply.\n *\n * The weights and the axis are only re-sent when something changed, which is\n * the one place this class caches anything.\n */\n #parametersDirty = true;\n\n /**\n * Runs the four passes and returns the denoised result.\n *\n * Carbon `Apply` (`cpp:59-162`). The one-argument overload is the `index = 0`\n * default here (`cpp:54-57`).\n *\n * INVALID IN, EMPTY OUT. A source or depth that is not valid returns null\n * rather than borrowing four textures to produce nothing.\n *\n * @param {object} source The noisy texture, as a pool handle.\n * @param {object} depth The scene depth buffer.\n * @param {object|null} normals Optional normals; absence selects a permutation.\n * @param {Array<number>} projection The REVERSED-depth projection.\n * @param {number} upscaling Divides the radius, so an upscaled pass blurs less.\n * @param {object} gpuResourcePool The pool the pass targets come from.\n * @param {object} renderContext The context to draw through.\n * @param {object} renderer The renderer owning the blitter.\n * @param {number} [index] Array slice of the result to render into.\n * @returns {object|null} The result handle, or null.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon reaches the blitter through the static Tr2Renderer; ours is an instance, so the renderer is passed in like the pool and the context.\")\n Apply(source, depth, normals, projection, upscaling, gpuResourcePool, renderContext, renderer, index = 0)\n {\n // Carbon tests the HANDLE, not the texture behind it (`cpp:61`).\n if (!source.IsValid() || !depth.IsValid()) return null;\n\n const sourceTexture = source.Get();\n // Carbon is handed a default-constructed Tr2TextureAL when there are no\n // normals - a real object. Ours is handed null, so the object may be\n // absent; the METHOD is not optional.\n const hasNormals = Boolean(normals && normals.IsValid());\n const option = hasNormals ? NORMALS_INPUT_NORMALS : NORMALS_INPUT_NONE;\n\n this.#denoiseVert.SetOption(NORMALS_INPUT, option);\n this.#denoiseHoriz.SetOption(NORMALS_INPUT, option);\n\n const width = sourceTexture.GetWidth();\n const height = sourceTexture.GetHeight();\n const sourceSize = vec4.fromValues(width, height, 1 / width, 1 / height);\n\n this.#denoiseEstimate.SetParameter(\"SourceDimensions\", sourceSize);\n\n const esm = renderContext.GetEffectStateManager();\n\n // Null is Carbon's default-constructed texture: bind EMPTY, do not merely\n // save. A depth buffer left bound would depth-test a fullscreen blur.\n esm.PushDepthStencilBuffer(null);\n esm.PushRenderTarget();\n\n try\n {\n esm.ApplyStandardStates(RenderingMode.RM_FULLSCREEN);\n\n const estimate = this.#Pass(gpuResourcePool, \"Tr2Denoiser Noise Estimate\", width, height);\n\n esm.SetRenderTarget(0, estimate.Get());\n renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);\n this.#estimateNoise.SetParameter(\"Source\", sourceTexture);\n renderer.DrawScreenQuad(renderContext, this.#estimateNoise);\n this.#estimateNoise.SetParameter(\"Source\", null);\n\n const mask = this.#Pass(gpuResourcePool, \"Tr2Denoiser Denoise Mask\", width, height);\n\n this.#denoiseEstimate.SetParameter(\"Source\", estimate.Get());\n esm.SetRenderTarget(0, mask.Get());\n renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);\n renderer.DrawScreenQuad(renderContext, this.#denoiseEstimate);\n\n // Carbon releases the estimate here, before borrowing the next target, so\n // the pool can hand the same surface back rather than grow (`cpp:118`).\n gpuResourcePool.Free(estimate);\n\n const temp = this.#Pass(gpuResourcePool, \"Tr2Denoiser Temp\", width, height);\n\n this.#SetPassParameters(this.#denoiseHoriz, vec2.fromValues(1, 0), depth, normals, projection, sourceSize, upscaling);\n this.#denoiseHoriz.SetParameter(\"Source\", sourceTexture);\n this.#denoiseHoriz.SetParameter(\"NoiseEstimate\", mask.Get());\n esm.SetRenderTarget(0, temp.Get());\n renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);\n renderer.DrawScreenQuad(renderContext, this.#denoiseHoriz);\n this.#denoiseHoriz.SetParameter(\"Source\", null);\n this.#denoiseHoriz.SetParameter(\"NoiseEstimate\", null);\n\n gpuResourcePool.Free(source);\n\n const result = this.#Pass(gpuResourcePool, \"Tr2Denoiser Result\", width, height);\n\n this.#SetPassParameters(this.#denoiseVert, vec2.fromValues(0, 1), depth, normals, projection, sourceSize, upscaling);\n this.#denoiseVert.SetParameter(\"Source\", temp.Get());\n this.#denoiseVert.SetParameter(\"NoiseEstimate\", mask.Get());\n esm.SetRenderTarget(0, result.Get(), true, index);\n renderContext.RenderPassHint(OVERWRITE_AND_KEEP, null);\n renderer.DrawScreenQuad(renderContext, this.#denoiseVert);\n this.#denoiseVert.SetParameter(\"Source\", null);\n this.#denoiseVert.SetParameter(\"NoiseEstimate\", null);\n\n // Both blur effects hold the depth and normal buffers until here, so a\n // later pass cannot inherit them (`cpp:155-158`).\n for (const effect of [ this.#denoiseHoriz, this.#denoiseVert ])\n {\n effect.SetParameter(\"DepthBuffer\", null);\n effect.SetParameter(\"NormalBuffer\", null);\n }\n\n this.#parametersDirty = false;\n return result;\n }\n finally\n {\n // Carbon pops through ON_BLOCK_EXIT, which runs however the block leaves.\n esm.PopRenderTarget();\n esm.PopDepthStencilBuffer();\n }\n }\n\n /**\n * Carbon `SetRadius` (`cpp:170-172`).\n *\n * @param {number} value The new radius.\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n SetRadius(value)\n {\n this.radius = value >>> 0;\n this.#parametersDirty = true;\n }\n\n /**\n * Carbon `OnModified` (`cpp:164-168`): any authored change re-sends the\n * weights on the next Apply.\n *\n * @returns {boolean} True, as Carbon's does.\n */\n @carbon.method\n @impl.implemented\n OnModified()\n {\n this.#parametersDirty = true;\n return true;\n }\n\n /** Borrows one R8 pass target of the source's size. */\n #Pass(gpuResourcePool, name, width, height)\n {\n return gpuResourcePool.GetTempTexture(name, {\n type: TextureType.TEX_TYPE_2D,\n width,\n height,\n depth: 1,\n mipCount: 1,\n format: PixelFormat.PIXEL_FORMAT_R8_UNORM,\n gpuUsage: TARGET_USAGE\n });\n }\n\n /**\n * Carbon's `SetParams` lambda (`cpp:76-94`).\n *\n * The weights and the axis are sent only when something changed; the radius,\n * projection and buffers go every time. Carbon draws that line and it is not\n * arbitrary - the axis is per effect and constant, the radius divides by an\n * upscaling factor the caller may vary per frame.\n */\n #SetPassParameters(effect, direction, depth, normals, projection, sourceSize, upscaling)\n {\n if (this.#parametersDirty)\n {\n effect.SetParameter(\"DepthWeight\", this.depthWeight);\n effect.SetParameter(\"NormalWeight\", this.normalWeight);\n effect.SetParameter(\"PlaneWeight\", this.planeWeight);\n effect.SetParameter(\"PassThrough\", this.bypass ? 1 : 0);\n effect.SetParameter(\"Axis\", vec2.scale(vec2.create(), direction, this.stepSize));\n }\n\n // Carbon's `max(uint32_t(radius / upscaling + 0.5f), 2u)`: round to nearest,\n // and never below two, or the blur would sample only itself.\n effect.SetParameter(\"Radius\", Math.max(Math.trunc(this.radius / upscaling + 0.5), 2));\n\n effect.SetParameter(\"ProjectionInv\", projection);\n // Carbon's Vector2( projection._43, projection._33 ); column-major puts\n // those at 14 and 10.\n effect.SetParameter(\"ClipInfo\", vec2.fromValues(projection[14], projection[10]));\n\n effect.SetParameter(\"DepthBuffer\", depth);\n effect.SetParameter(\"NormalBuffer\", normals);\n effect.SetParameter(\"SourceDimensions\", sourceSize);\n }\n\n\n}\n"],"names":["ESTIMATE_NOISE_PATH","DENOISE_ESTIMATE_PATH","DENOISE_1D_PATH","NORMALS_INPUT","NORMALS_INPUT_NORMALS","NORMALS_INPUT_NONE","OVERWRITE_AND_KEEP","Tr2ColorAttachment","Tr2LoadAction","DONT_CARE","Tr2StoreAction","STORE","TARGET_USAGE","Tr2GpuUsage","RENDER_TARGET","SHADER_RESOURCE","effectAt","path","effect","Tr2Effect","SetEffectPathName","_Tr2Denoiser","Tr2Denoiser","CjsModel","e","_init_bypass","_init_extra_bypass","_init_depthWeight","_init_extra_depthWeight","_init_normalWeight","_init_extra_normalWeight","_init_planeWeight","_init_extra_planeWeight","_init_radius","_init_extra_radius","_init_stepSize","_init_extra_stepSize","_initProto","c","_initClass","_applyDecs","type","define","className","family","purpose","io","notify","persist","boolean","float32","uint32","carbon","method","impl","adapted","reason","implemented","bypass","depthWeight","normalWeight","planeWeight","radius","stepSize","Apply","source","depth","normals","projection","upscaling","gpuResourcePool","renderContext","renderer","index","IsValid","sourceTexture","Get","hasNormals","Boolean","option","SetOption","width","GetWidth","height","GetHeight","sourceSize","vec4","fromValues","SetParameter","esm","GetEffectStateManager","PushDepthStencilBuffer","PushRenderTarget","ApplyStandardStates","RenderingMode","RM_FULLSCREEN","estimate","SetRenderTarget","RenderPassHint","DrawScreenQuad","mask","Free","temp","vec2","result","PopRenderTarget","PopDepthStencilBuffer","SetRadius","value","OnModified","#Pass","name","GetTempTexture","TextureType","TEX_TYPE_2D","mipCount","format","PixelFormat","PIXEL_FORMAT_R8_UNORM","gpuUsage","#SetPassParameters","direction","scale","create","Math","max","trunc"],"mappings":"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"}
@@ -0,0 +1,115 @@
1
+ import { fail } from './Tr2GpuResourcePool.js';
2
+
3
+ // Nested Tr2GpuResourcePool::GpuResourceHandle (Tr2GpuResourcePool.h:54).
4
+ // Nested Tr2GpuResourcePool::GpuResourceHandle (Tr2GpuResourcePool.h:54).
5
+ // Nested Tr2GpuResourcePool::GpuResourceHandle (Tr2GpuResourcePool.h:54).
6
+ // Source: trinity/trinity/Tr2GpuResourcePool.h
7
+ // Source: trinity/trinity/Tr2GpuResourcePool.cpp
8
+ //
9
+ // Where a render pass gets a scratch texture or buffer, and how one is kept
10
+ // alive only as long as something holds it.
11
+ //
12
+ // THIS IS THE CLASS FOUR INVENTED ONES WERE STANDING IN FOR. Carbon's
13
+ // `Tr2ShadowMap::PrepareShadowRendering( gpuResourcePool, renderContext )` and
14
+ // the whole `EveSpaceScene` volumetrics family take a pool and do their own
15
+ // work. Ours had the methods but bounced them to an engine-supplied executor,
16
+ // because there was no pool to hand them. So an interface was invented per
17
+ // subsystem rather than porting the one class they all needed.
18
+ //
19
+ // TWO LIFETIMES, and the distinction is the whole design. A TEMP resource is
20
+ // recycled as soon as nothing holds it and it has not been touched for a few
21
+ // frames; a PERSISTENT one is initialized once and kept. Asking for a temp
22
+ // texture with the same shape twice in a frame therefore gets the same texture
23
+ // only if the first handle has been released - which is what makes a pass able
24
+ // to say "give me a working surface" without owning one.
25
+ //
26
+ // THE HANDLE IS THE LIFETIME. Carbon's `GpuResourceHandle` counts locks on copy
27
+ // and release, and a record with a live lock is never recycled. JavaScript has
28
+ // no destructor, so `Release()` is explicit here - see the note on the class.
29
+ //
30
+ // NESTING IS CARBON'S: a pool may have an OUTER pool, and a lookup that misses
31
+ // walks outward. That is how a scene-local pool shares the global one's
32
+ // resources without owning them.
33
+
34
+
35
+ /**
36
+ * A borrowed pool resource.
37
+ *
38
+ * CARBON RELEASES ON DESTRUCTION AND JAVASCRIPT CANNOT. Its handle decrements a
39
+ * lock count in its destructor, so a resource returns to the pool when the last
40
+ * holder goes out of scope. There is no such moment here, so `Release` is
41
+ * explicit and a handle that is never released pins its resource forever -
42
+ * which is a leak, not a crash, and therefore worth being loud about. The pool
43
+ * reports held resources so a caller can assert.
44
+ *
45
+ * THE VERB IS `Free`, AND THE POOL OWNS IT. Settled 2026-09-05 with
46
+ * `cjs-carbon-verbs`, after two wrong turns worth recording:
47
+ *
48
+ * - `Destroy` is wrong. It means GONE NOW - the pure virtual on
49
+ * `Tr2BaseDeviceResourceAL` (`trinityal/Tr2DeviceResourceAL.h:30`), used on
50
+ * 35 Carbon classes. A pooled resource is not destroyed; it goes back and is
51
+ * handed out again. `ClearUnusedResources` below is where `Destroy` is
52
+ * right, and where it is used.
53
+ * - `Release` is not engine vocabulary. Bare `Release` appears ONLY in
54
+ * Carbon's mesh viewer and video player, as Vulkan idiom. Trinity uses only
55
+ * the qualified forms - `ReleaseLater`, `ReleaseDeviceResources`.
56
+ *
57
+ * `Free` is shared engine vocabulary on six Carbon classes - `FreeList`,
58
+ * `Tr2VirtualAllocator`, `Tr2SuballocatedBuffer` and three descriptor-heap
59
+ * allocators - and EVERY ONE IS AN ALLOCATOR OR POOL. The direction is theirs
60
+ * too: `Tr2VirtualAllocator::Free( allocation )` and
61
+ * `Tr2SuballocatedBuffer::Free( allocation& )` put the verb on the allocator,
62
+ * not on the thing lent. So `pool.Free(handle)`, not `handle.Release()`.
63
+ *
64
+ * Carbon's handle has no named method at all - the work is in
65
+ * `~GpuResourceHandle`. That absence is C++ not needing a name, and reading it
66
+ * as a prohibition is how this briefly became a coined `ReleaseToPool`.
67
+ */
68
+ class GpuResourceHandle {
69
+ #record = null;
70
+
71
+ /**
72
+ * @param {object} [record] The pool record this handle locks.
73
+ */
74
+ constructor(record = null) {
75
+ this.#record = record;
76
+ if (record) record.lockCount += 1;
77
+ }
78
+
79
+ /**
80
+ * The resource itself.
81
+ *
82
+ * @returns {object|null} The resource, or null once released.
83
+ */
84
+ Get() {
85
+ return this.#record?.resource ?? null;
86
+ }
87
+
88
+ /** @returns {boolean} Whether this handle still holds a resource. */
89
+ IsValid() {
90
+ return this.#record !== null;
91
+ }
92
+
93
+ /** @returns {string} The resource's debug name. */
94
+ GetName() {
95
+ return this.#record?.name ?? "";
96
+ }
97
+
98
+ /**
99
+ * Drops this handle's claim. Called by `Tr2GpuResourcePool.Free`.
100
+ *
101
+ * Freeing twice is a caller error rather than a silent no-op: it means the
102
+ * lock count no longer describes who is holding what.
103
+ *
104
+ * @returns {boolean} Whether a claim was dropped.
105
+ */
106
+ Detach() {
107
+ if (!this.#record) fail("a handle freed twice");
108
+ this.#record.lockCount -= 1;
109
+ this.#record = null;
110
+ return true;
111
+ }
112
+ }
113
+
114
+ export { GpuResourceHandle };
115
+ //# sourceMappingURL=GpuResourceHandle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GpuResourceHandle.js","sources":["../../../../../src/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js"],"sourcesContent":["// Nested Tr2GpuResourcePool::GpuResourceHandle (Tr2GpuResourcePool.h:54).\n// Nested Tr2GpuResourcePool::GpuResourceHandle (Tr2GpuResourcePool.h:54).\n// Nested Tr2GpuResourcePool::GpuResourceHandle (Tr2GpuResourcePool.h:54).\n// Source: trinity/trinity/Tr2GpuResourcePool.h\n// Source: trinity/trinity/Tr2GpuResourcePool.cpp\n//\n// Where a render pass gets a scratch texture or buffer, and how one is kept\n// alive only as long as something holds it.\n//\n// THIS IS THE CLASS FOUR INVENTED ONES WERE STANDING IN FOR. Carbon's\n// `Tr2ShadowMap::PrepareShadowRendering( gpuResourcePool, renderContext )` and\n// the whole `EveSpaceScene` volumetrics family take a pool and do their own\n// work. Ours had the methods but bounced them to an engine-supplied executor,\n// because there was no pool to hand them. So an interface was invented per\n// subsystem rather than porting the one class they all needed.\n//\n// TWO LIFETIMES, and the distinction is the whole design. A TEMP resource is\n// recycled as soon as nothing holds it and it has not been touched for a few\n// frames; a PERSISTENT one is initialized once and kept. Asking for a temp\n// texture with the same shape twice in a frame therefore gets the same texture\n// only if the first handle has been released - which is what makes a pass able\n// to say \"give me a working surface\" without owning one.\n//\n// THE HANDLE IS THE LIFETIME. Carbon's `GpuResourceHandle` counts locks on copy\n// and release, and a record with a live lock is never recycled. JavaScript has\n// no destructor, so `Release()` is explicit here - see the note on the class.\n//\n// NESTING IS CARBON'S: a pool may have an OUTER pool, and a lookup that misses\n// walks outward. That is how a scene-local pool shares the global one's\n// resources without owning them.\n\nimport { fail } from \"./Tr2GpuResourcePool.js\";\n\n/**\n * A borrowed pool resource.\n *\n * CARBON RELEASES ON DESTRUCTION AND JAVASCRIPT CANNOT. Its handle decrements a\n * lock count in its destructor, so a resource returns to the pool when the last\n * holder goes out of scope. There is no such moment here, so `Release` is\n * explicit and a handle that is never released pins its resource forever -\n * which is a leak, not a crash, and therefore worth being loud about. The pool\n * reports held resources so a caller can assert.\n *\n * THE VERB IS `Free`, AND THE POOL OWNS IT. Settled 2026-09-05 with\n * `cjs-carbon-verbs`, after two wrong turns worth recording:\n *\n * - `Destroy` is wrong. It means GONE NOW - the pure virtual on\n * `Tr2BaseDeviceResourceAL` (`trinityal/Tr2DeviceResourceAL.h:30`), used on\n * 35 Carbon classes. A pooled resource is not destroyed; it goes back and is\n * handed out again. `ClearUnusedResources` below is where `Destroy` is\n * right, and where it is used.\n * - `Release` is not engine vocabulary. Bare `Release` appears ONLY in\n * Carbon's mesh viewer and video player, as Vulkan idiom. Trinity uses only\n * the qualified forms - `ReleaseLater`, `ReleaseDeviceResources`.\n *\n * `Free` is shared engine vocabulary on six Carbon classes - `FreeList`,\n * `Tr2VirtualAllocator`, `Tr2SuballocatedBuffer` and three descriptor-heap\n * allocators - and EVERY ONE IS AN ALLOCATOR OR POOL. The direction is theirs\n * too: `Tr2VirtualAllocator::Free( allocation )` and\n * `Tr2SuballocatedBuffer::Free( allocation& )` put the verb on the allocator,\n * not on the thing lent. So `pool.Free(handle)`, not `handle.Release()`.\n *\n * Carbon's handle has no named method at all - the work is in\n * `~GpuResourceHandle`. That absence is C++ not needing a name, and reading it\n * as a prohibition is how this briefly became a coined `ReleaseToPool`.\n */\nexport class GpuResourceHandle\n{\n #record = null;\n\n /**\n * @param {object} [record] The pool record this handle locks.\n */\n constructor(record = null)\n {\n this.#record = record;\n\n if (record) record.lockCount += 1;\n }\n\n /**\n * The resource itself.\n *\n * @returns {object|null} The resource, or null once released.\n */\n Get()\n {\n return this.#record?.resource ?? null;\n }\n\n /** @returns {boolean} Whether this handle still holds a resource. */\n IsValid()\n {\n return this.#record !== null;\n }\n\n /** @returns {string} The resource's debug name. */\n GetName()\n {\n return this.#record?.name ?? \"\";\n }\n\n /**\n * Drops this handle's claim. Called by `Tr2GpuResourcePool.Free`.\n *\n * Freeing twice is a caller error rather than a silent no-op: it means the\n * lock count no longer describes who is holding what.\n *\n * @returns {boolean} Whether a claim was dropped.\n */\n Detach()\n {\n if (!this.#record) fail(\"a handle freed twice\");\n\n this.#record.lockCount -= 1;\n this.#record = null;\n\n return true;\n }\n}\n"],"names":["GpuResourceHandle","constructor","record","lockCount","Get","resource","IsValid","GetName","name","Detach","fail"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,iBAAiB,CAC9B;EACE,OAAO,GAAG,IAAI;;AAEd;AACF;AACA;AACEC,EAAAA,WAAWA,CAACC,MAAM,GAAG,IAAI,EACzB;AACE,IAAA,IAAI,CAAC,OAAO,GAAGA,MAAM;AAErB,IAAA,IAAIA,MAAM,EAAEA,MAAM,CAACC,SAAS,IAAI,CAAC;AACnC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,GAAGA,GACH;AACE,IAAA,OAAO,IAAI,CAAC,OAAO,EAAEC,QAAQ,IAAI,IAAI;AACvC,EAAA;;AAEA;AACAC,EAAAA,OAAOA,GACP;AACE,IAAA,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI;AAC9B,EAAA;;AAEA;AACAC,EAAAA,OAAOA,GACP;AACE,IAAA,OAAO,IAAI,CAAC,OAAO,EAAEC,IAAI,IAAI,EAAE;AACjC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,MAAMA,GACN;IACE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAEC,IAAI,CAAC,sBAAsB,CAAC;AAE/C,IAAA,IAAI,CAAC,OAAO,CAACP,SAAS,IAAI,CAAC;AAC3B,IAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AAEnB,IAAA,OAAO,IAAI;AACb,EAAA;AACF;;;;"}
@@ -0,0 +1,79 @@
1
+ // Source: trinity/trinity/Tr2GpuResourcePool.h
2
+ // Source: trinity/trinity/Tr2GpuResourcePool.cpp
3
+ //
4
+ // Where a render pass gets a scratch texture or buffer, and how one is kept
5
+ // alive only as long as something holds it.
6
+ //
7
+ // THIS IS THE CLASS FOUR INVENTED ONES WERE STANDING IN FOR. Carbon's
8
+ // `Tr2ShadowMap::PrepareShadowRendering( gpuResourcePool, renderContext )` and
9
+ // the whole `EveSpaceScene` volumetrics family take a pool and do their own
10
+ // work. Ours had the methods but bounced them to an engine-supplied executor,
11
+ // because there was no pool to hand them. So an interface was invented per
12
+ // subsystem rather than porting the one class they all needed.
13
+ //
14
+ // TWO LIFETIMES, and the distinction is the whole design. A TEMP resource is
15
+ // recycled as soon as nothing holds it and it has not been touched for a few
16
+ // frames; a PERSISTENT one is initialized once and kept. Asking for a temp
17
+ // texture with the same shape twice in a frame therefore gets the same texture
18
+ // only if the first handle has been released - which is what makes a pass able
19
+ // to say "give me a working surface" without owning one.
20
+ //
21
+ // THE HANDLE IS THE LIFETIME. Carbon's `GpuResourceHandle` counts locks on copy
22
+ // and release, and a record with a live lock is never recycled. JavaScript has
23
+ // no destructor, so `Release()` is explicit here - see the note on the class.
24
+ //
25
+ // NESTING IS CARBON'S: a pool may have an OUTER pool, and a lookup that misses
26
+ // walks outward. That is how a scene-local pool shares the global one's
27
+ // resources without owning them.
28
+
29
+ /**
30
+ * A width and height, with Carbon's scaling and comparison.
31
+ */
32
+ class TextureSize2D {
33
+ /** Width in pixels. */
34
+ width = 0;
35
+
36
+ /** Height in pixels. */
37
+ height = 0;
38
+
39
+ /**
40
+ * @param {number|object} [widthOrDimensions] A width, or a `Tr2BitmapDimensions`.
41
+ * @param {number} [height] The height, when a width was given.
42
+ */
43
+ constructor(widthOrDimensions = 0, height = 0) {
44
+ if (widthOrDimensions && typeof widthOrDimensions === "object") {
45
+ this.width = widthOrDimensions.GetWidth();
46
+ this.height = widthOrDimensions.GetHeight();
47
+ return;
48
+ }
49
+ this.width = widthOrDimensions;
50
+ this.height = height;
51
+ }
52
+
53
+ /**
54
+ * Whether two sizes match.
55
+ *
56
+ * @param {TextureSize2D} other The size to compare with.
57
+ * @returns {boolean} True when they match.
58
+ */
59
+ Equals(other) {
60
+ return !!other && this.width === other.width && this.height === other.height;
61
+ }
62
+
63
+ /**
64
+ * This size scaled, never below one pixel in either direction.
65
+ *
66
+ * Carbon clamps to one (`h:TextureSize2D::operator*`), because a half-size
67
+ * chain reaches zero before it reaches one and a zero-sized target is not a
68
+ * target.
69
+ *
70
+ * @param {number} scale The factor.
71
+ * @returns {TextureSize2D} The scaled size.
72
+ */
73
+ Scaled(scale) {
74
+ return new TextureSize2D(Math.max(1, Math.trunc(this.width * scale)), Math.max(1, Math.trunc(this.height * scale)));
75
+ }
76
+ }
77
+
78
+ export { TextureSize2D };
79
+ //# sourceMappingURL=TextureSize2D.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureSize2D.js","sources":["../../../../../src/trinity/core/Tr2GpuResourcePool/TextureSize2D.js"],"sourcesContent":["// Source: trinity/trinity/Tr2GpuResourcePool.h\n// Source: trinity/trinity/Tr2GpuResourcePool.cpp\n//\n// Where a render pass gets a scratch texture or buffer, and how one is kept\n// alive only as long as something holds it.\n//\n// THIS IS THE CLASS FOUR INVENTED ONES WERE STANDING IN FOR. Carbon's\n// `Tr2ShadowMap::PrepareShadowRendering( gpuResourcePool, renderContext )` and\n// the whole `EveSpaceScene` volumetrics family take a pool and do their own\n// work. Ours had the methods but bounced them to an engine-supplied executor,\n// because there was no pool to hand them. So an interface was invented per\n// subsystem rather than porting the one class they all needed.\n//\n// TWO LIFETIMES, and the distinction is the whole design. A TEMP resource is\n// recycled as soon as nothing holds it and it has not been touched for a few\n// frames; a PERSISTENT one is initialized once and kept. Asking for a temp\n// texture with the same shape twice in a frame therefore gets the same texture\n// only if the first handle has been released - which is what makes a pass able\n// to say \"give me a working surface\" without owning one.\n//\n// THE HANDLE IS THE LIFETIME. Carbon's `GpuResourceHandle` counts locks on copy\n// and release, and a record with a live lock is never recycled. JavaScript has\n// no destructor, so `Release()` is explicit here - see the note on the class.\n//\n// NESTING IS CARBON'S: a pool may have an OUTER pool, and a lookup that misses\n// walks outward. That is how a scene-local pool shares the global one's\n// resources without owning them.\n\n\n\n/**\n * A width and height, with Carbon's scaling and comparison.\n */\nexport class TextureSize2D\n{\n /** Width in pixels. */\n width = 0;\n\n /** Height in pixels. */\n height = 0;\n\n /**\n * @param {number|object} [widthOrDimensions] A width, or a `Tr2BitmapDimensions`.\n * @param {number} [height] The height, when a width was given.\n */\n constructor(widthOrDimensions = 0, height = 0)\n {\n if (widthOrDimensions && typeof widthOrDimensions === \"object\")\n {\n this.width = widthOrDimensions.GetWidth();\n this.height = widthOrDimensions.GetHeight();\n\n return;\n }\n\n this.width = widthOrDimensions;\n this.height = height;\n }\n\n /**\n * Whether two sizes match.\n *\n * @param {TextureSize2D} other The size to compare with.\n * @returns {boolean} True when they match.\n */\n Equals(other)\n {\n return !!other && this.width === other.width && this.height === other.height;\n }\n\n /**\n * This size scaled, never below one pixel in either direction.\n *\n * Carbon clamps to one (`h:TextureSize2D::operator*`), because a half-size\n * chain reaches zero before it reaches one and a zero-sized target is not a\n * target.\n *\n * @param {number} scale The factor.\n * @returns {TextureSize2D} The scaled size.\n */\n Scaled(scale)\n {\n return new TextureSize2D(\n Math.max(1, Math.trunc(this.width * scale)),\n Math.max(1, Math.trunc(this.height * scale))\n );\n }\n}\n"],"names":["TextureSize2D","width","height","constructor","widthOrDimensions","GetWidth","GetHeight","Equals","other","Scaled","scale","Math","max","trunc"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIA;AACA;AACA;AACO,MAAMA,aAAa,CAC1B;AACE;AACAC,EAAAA,KAAK,GAAG,CAAC;;AAET;AACAC,EAAAA,MAAM,GAAG,CAAC;;AAEV;AACF;AACA;AACA;EACEC,WAAWA,CAACC,iBAAiB,GAAG,CAAC,EAAEF,MAAM,GAAG,CAAC,EAC7C;AACE,IAAA,IAAIE,iBAAiB,IAAI,OAAOA,iBAAiB,KAAK,QAAQ,EAC9D;AACE,MAAA,IAAI,CAACH,KAAK,GAAGG,iBAAiB,CAACC,QAAQ,EAAE;AACzC,MAAA,IAAI,CAACH,MAAM,GAAGE,iBAAiB,CAACE,SAAS,EAAE;AAE3C,MAAA;AACF,IAAA;IAEA,IAAI,CAACL,KAAK,GAAGG,iBAAiB;IAC9B,IAAI,CAACF,MAAM,GAAGA,MAAM;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEK,MAAMA,CAACC,KAAK,EACZ;AACE,IAAA,OAAO,CAAC,CAACA,KAAK,IAAI,IAAI,CAACP,KAAK,KAAKO,KAAK,CAACP,KAAK,IAAI,IAAI,CAACC,MAAM,KAAKM,KAAK,CAACN,MAAM;AAC9E,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEO,MAAMA,CAACC,KAAK,EACZ;AACE,IAAA,OAAO,IAAIV,aAAa,CACtBW,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAC,IAAI,CAACZ,KAAK,GAAGS,KAAK,CAAC,CAAC,EAC3CC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK,CAAC,IAAI,CAACX,MAAM,GAAGQ,KAAK,CAAC,CAC7C,CAAC;AACH,EAAA;AACF;;;;"}