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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -0,0 +1,50 @@
1
+ import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { CjsModel } from '#model';
3
+ import { carbon, impl, type } from '#schema';
4
+
5
+ let _initProto, _initClass;
6
+
7
+ /**
8
+ * Collects the visibility events a visibility executor emits, for the interior
9
+ * and portal consumers to read back.
10
+ */
11
+ let _Tr2VisibilityResults;
12
+ class Tr2VisibilityResults extends CjsModel {
13
+ static {
14
+ ({
15
+ e: [_initProto],
16
+ c: [_Tr2VisibilityResults, _initClass]
17
+ } = _applyDecs2311(this, [type.define({
18
+ className: "Tr2VisibilityResults",
19
+ family: "trinityCore"
20
+ })], [[[carbon, carbon.method, impl, impl.adapted], 18, "AddVisibilityEvent"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetEvents"], [[carbon, carbon.method, impl, impl.implemented], 18, "Clear"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetNumVisibilityEvents"]], 0, void 0, CjsModel));
21
+ }
22
+ // Carbon's m_events is private transient execution state, not Blue data.
23
+ #events = (_initProto(this), []);
24
+
25
+ /** Adds the value-like visibility event emitted by a visibility executor. */
26
+ AddVisibilityEvent(event) {
27
+ this.#events.push(event);
28
+ }
29
+
30
+ /** Returns a detached container view of the current visibility events. */
31
+ GetEvents() {
32
+ return this.#events.slice();
33
+ }
34
+
35
+ /** Clears the result set. */
36
+ Clear() {
37
+ this.#events.length = 0;
38
+ }
39
+
40
+ /** Gets the number of visibility events in the result set. */
41
+ GetNumVisibilityEvents() {
42
+ return this.#events.length;
43
+ }
44
+ static {
45
+ _initClass();
46
+ }
47
+ }
48
+
49
+ export { _Tr2VisibilityResults as Tr2VisibilityResults };
50
+ //# sourceMappingURL=Tr2VisibilityResults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2VisibilityResults.js","sources":["../../../../../../src/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js"],"sourcesContent":["// Source: trinity/trinity/Tr2VisibilityResults.h\n// trinity/trinity/Tr2VisibilityResults.cpp\r\n// trinity/trinity/Tr2VisibilityResults_Blue.cpp\n\nimport { CjsModel } from \"#model\";\nimport { carbon, impl, type } from \"#schema\";\n\n/**\r\n * Collects the visibility events a visibility executor emits, for the interior\r\n * and portal consumers to read back.\r\n */\r\n@type.define({ className: \"Tr2VisibilityResults\", family: \"trinityCore\" })\r\nexport class Tr2VisibilityResults extends CjsModel\r\n{\r\n\r\n // Carbon's m_events is private transient execution state, not Blue data.\r\n #events = [];\r\n\r\n /** Adds the value-like visibility event emitted by a visibility executor. */\r\n @carbon.method\r\n @impl.adapted\r\n AddVisibilityEvent(event)\r\n {\r\n this.#events.push(event);\r\n }\r\n\r\n /** Returns a detached container view of the current visibility events. */\r\n @carbon.method\r\n @impl.adapted\r\n GetEvents()\r\n {\r\n return this.#events.slice();\r\n }\r\n\r\n /** Clears the result set. */\r\n @carbon.method\r\n @impl.implemented\r\n Clear()\r\n {\r\n this.#events.length = 0;\r\n }\r\n\r\n /** Gets the number of visibility events in the result set. */\r\n @carbon.method\r\n @impl.implemented\r\n GetNumVisibilityEvents()\r\n {\r\n return this.#events.length;\r\n }\r\n\r\n}\n"],"names":["_Tr2VisibilityResults","Tr2VisibilityResults","CjsModel","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","adapted","implemented","AddVisibilityEvent","event","push","GetEvents","slice","Clear","length","GetNumVisibilityEvents"],"mappings":";;;;;;AAOA;AACA;AACA;AACA;AAHA,IAAAA;AAIA,MAAAC,oBAAA,SAC0CC,QAAQ,CAClD;AAAA,EAAA;AAAA,IAAA,CAAA;AAAAC,MAAAA,CAAA,GAAAC,UAAA,CAAA;MAAAC,CAAA,EAAA,CAAAL,qBAAA,EAAAM,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,sBAAsB;AAAEC,MAAAA,MAAM,EAAE;KAAe,CAAC,MAQvEC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,CAAA,EAAA,EAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAOZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,uBAOZH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAOhBJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACE,WAAW,CAAA,EAAA,EAAA,EAAA,wBAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAhCuBd,QAAQ,CAAA;AAAA;AAGhD;AACA,EAAA,OAAO,IAAAE,UAAA,CAAA,IAAA,CAAA,EAAG,EAAE;;AAEZ;EAGAa,kBAAkBA,CAACC,KAAK,EACxB;AACE,IAAA,IAAI,CAAC,OAAO,CAACC,IAAI,CAACD,KAAK,CAAC;AAC1B,EAAA;;AAEA;AAGAE,EAAAA,SAASA,GACT;AACE,IAAA,OAAO,IAAI,CAAC,OAAO,CAACC,KAAK,EAAE;AAC7B,EAAA;;AAEA;AAGAC,EAAAA,KAAKA,GACL;AACE,IAAA,IAAI,CAAC,OAAO,CAACC,MAAM,GAAG,CAAC;AACzB,EAAA;;AAEA;AAGAC,EAAAA,sBAAsBA,GACtB;AACE,IAAA,OAAO,IAAI,CAAC,OAAO,CAACD,MAAM;AAC5B,EAAA;AAAC,EAAA;IAAAjB,UAAA,EAAA;AAAA;AAEH;;;;"}
@@ -1,11 +1,13 @@
1
1
  import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { io, type, carbon, impl } from '#schema';
3
3
  import { CjsModel } from '#model';
4
- import { DepthStencilFormat } from '#consts/render-context';
4
+ import { ExFlag, Tr2GpuUsage, ConvertDepthStencilFormat, DepthStencilFormat } from '#consts/render-context';
5
+ import { Tr2BitmapDimensions } from '../../../trinityal/Tr2BitmapDimensions.js';
6
+ import { Tr2MsaaDesc } from '../../../trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js';
5
7
 
6
8
  let _initProto, _initClass, _init_name, _init_extra_name, _init_width, _init_extra_width, _init_height, _init_extra_height, _init_multiSampleType, _init_extra_multiSampleType, _init_multiSampleQuality, _init_extra_multiSampleQuality, _init_mipCount, _init_extra_mipCount, _init_format, _init_extra_format, _init_isValid, _init_extra_isValid, _init_isReadable, _init_extra_isReadable;
7
9
 
8
- /** Tr2DepthStencil (trinityCore) - generated from schema shapeHash 9acb2c99.... */
10
+ /** Tr2DepthStencil (trinityCore) - the depth-stencil surface a pass renders into. */
9
11
  let _Tr2DepthStencil;
10
12
  new class extends _identity {
11
13
  static [class Tr2DepthStencil extends CjsModel {
@@ -16,11 +18,7 @@ new class extends _identity {
16
18
  } = _applyDecs2311(this, [type.define({
17
19
  className: "Tr2DepthStencil",
18
20
  family: "trinityCore"
19
- })], [[[io, io.persistOnly, type, type.string], 16, "name"], [[io, io.read, type, type.uint32], 16, "width"], [[io, io.read, type, type.uint32], 16, "height"], [[io, io.read, type, type.uint32], 16, "multiSampleType"], [[io, io.read, type, type.uint32], 16, "multiSampleQuality"], [[io, io.read, type, type.uint32], 16, "mipCount"], [[io, io.read, type, type.int32, void 0, type.enum("DepthStencilFormat")], 16, "format"], [[io, io.read, type, type.boolean], 16, "isValid"], [[io, io.read, type, type.boolean], 16, "isReadable"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "__init__"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "Create"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasALObject"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "sharedHandle"]], 0, void 0, CjsModel));
20
- }
21
- constructor(...args) {
22
- super(...args);
23
- _init_extra_isReadable(this);
21
+ })], [[[io, io.persistOnly, type, type.string], 16, "name"], [[io, io.read, type, type.uint32], 16, "width"], [[io, io.read, type, type.uint32], 16, "height"], [[io, io.read, type, type.uint32], 16, "multiSampleType"], [[io, io.read, type, type.uint32], 16, "multiSampleQuality"], [[io, io.read, type, type.uint32], 16, "mipCount"], [[io, io.read, type, type.int32, void 0, type.enum("DepthStencilFormat")], 16, "format"], [[io, io.read, type, type.boolean], 16, "isValid"], [[io, io.read, type, type.boolean], 16, "isReadable"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon returns an HRESULT and reaches the main-thread render context through a global; this returns a boolean and takes the context, which is the same reason Tr2Blitter does.")], 18, "Create"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetTexture"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon exposes the member directly through a conversion operator; JavaScript has none, so the raw surface is reached by name.")], 18, "GetDepthStencil"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon returns its event object for the caller to attach to; this takes the listener and returns the unsubscribe, matching Tr2TextureArray.")], 18, "OnTextureChange"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsValid"], [[carbon, carbon.method, impl, impl.implemented], 18, "IsReadable"], [[carbon, carbon.method, impl, impl.implemented], 18, "Destroy"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWidth"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetHeight"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMsaaSamples"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMsaaQuality"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMipCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetFormat"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetName"], [[carbon, carbon.method, impl, impl.implemented], 18, "HasALObject"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "sharedHandle"]], 0, void 0, CjsModel));
24
22
  }
25
23
  /** m_name (std::string) [PERSISTONLY] */
26
24
  name = (_initProto(this), _init_name(this, ""));
@@ -33,14 +31,172 @@ new class extends _identity {
33
31
  isValid = (_init_extra_format(this), _init_isValid(this, false));
34
32
  isReadable = (_init_extra_isValid(this), _init_isReadable(this, false));
35
33
 
36
- /** Carbon method __init__ -> py__init__ (MAP_METHOD_AND_WRAP_OPTIONAL_ARGS). */
37
- __init__(...args) {
38
- throw new Error("Tr2DepthStencil.__init__ is not implemented in CarbonEngineJS.");
34
+ /** m_depthStencil (Tr2TextureAL), the one resource this class exists to hold. */
35
+ #depthStencil = (_init_extra_isReadable(this), null);
36
+
37
+ /** m_msaa (Tr2MsaaDesc), retained so OnPrepareResources can rebuild. */
38
+ #msaa = null;
39
+
40
+ /** m_flags (Tr2RenderContextEnum::ExFlag), retained for the same reason. */
41
+ #flags = ExFlag.EX_NONE;
42
+
43
+ /** Carbon's m_onTextureChange listeners. */
44
+ #listeners = [];
45
+
46
+ /**
47
+ * Creates the depth-stencil surface.
48
+ *
49
+ * Carbon `Create` (`cpp:49-74`). Usage is always DEPTH_STENCIL plus
50
+ * SHADER_RESOURCE - which is what makes the surface sampleable, and therefore
51
+ * what `IsReadable` reports - with SHARED added when the caller asks for it.
52
+ *
53
+ * A FAILED CREATE DESTROYS RATHER THAN LEAVING HALF A SURFACE, which is
54
+ * Carbon's `else Destroy()`. Without it a caller could read a stale width off
55
+ * an object whose texture never came back.
56
+ *
57
+ * @param {number} width Surface width in pixels.
58
+ * @param {number} height Surface height in pixels.
59
+ * @param {number} format A `DepthStencilFormat` value.
60
+ * @param {number} [msaaType] Sample count.
61
+ * @param {number} [msaaQuality] Sample quality.
62
+ * @param {number} [flags] An `ExFlag` value.
63
+ * @param {object} [renderContext] The context to create through.
64
+ * @returns {boolean} Whether the surface was created.
65
+ */
66
+ Create(width, height, format, msaaType = 1, msaaQuality = 0, flags = ExFlag.EX_NONE, renderContext = null) {
67
+ let gpuUsage = Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE;
68
+ if ((flags & ExFlag.EX_CREATE_SHARED) !== 0) gpuUsage |= Tr2GpuUsage.SHARED;
69
+ const msaa = new Tr2MsaaDesc(msaaType, msaaQuality);
70
+ const texture = renderContext?.CreateTexture(Tr2BitmapDimensions.Texture2D(width, height, 1, ConvertDepthStencilFormat(format)), {
71
+ gpuUsage,
72
+ msaa
73
+ });
74
+ if (!texture) {
75
+ this.Destroy();
76
+ return false;
77
+ }
78
+ this.#depthStencil = texture;
79
+ this.#msaa = msaa;
80
+ this.#flags = flags;
81
+ this.SetName(this.name);
82
+ this.#Refresh();
83
+ this.#Changed();
84
+ return true;
85
+ }
86
+
87
+ /**
88
+ * The texture, but only when it can actually be sampled.
89
+ *
90
+ * Carbon `GetTexture` (`cpp:76-83`) returns null for a surface without
91
+ * SHADER_RESOURCE usage even though the surface itself is valid. A caller
92
+ * binding the result as a shader input is the reason: a depth buffer that was
93
+ * never made readable must fail here rather than at the draw.
94
+ *
95
+ * @returns {object|null} The `Tr2TextureAL`, or null when it is not readable.
96
+ */
97
+ GetTexture() {
98
+ return this.IsValid() && this.IsReadable() ? this.#depthStencil : null;
99
+ }
100
+
101
+ /**
102
+ * The surface itself, readable or not.
103
+ *
104
+ * Carbon reaches `m_depthStencil` directly - it is public, and the class
105
+ * carries `operator Tr2TextureAL&()` for it with the comment "avoid
106
+ * m_depthStencil->m_depthStencil all over the place" (`h:62-69`).
107
+ *
108
+ * THIS IS NOT GetTexture. That one refuses a surface without SHADER_RESOURCE,
109
+ * because its caller is binding a shader input. A caller RENDERING into the
110
+ * surface needs it whether or not it can also be sampled, and would otherwise
111
+ * be told a perfectly good depth buffer does not exist.
112
+ *
113
+ * @returns {object|null} The `Tr2TextureAL`, or null before Create.
114
+ */
115
+ GetDepthStencil() {
116
+ return this.#depthStencil;
39
117
  }
40
118
 
41
- /** Carbon method Create (MAP_METHOD_AND_WRAP_OPTIONAL_ARGS). */
42
- Create(...args) {
43
- throw new Error("Tr2DepthStencil.Create is not implemented in CarbonEngineJS.");
119
+ /**
120
+ * Registers a texture-change listener (Carbon's `OnTextureChange` event).
121
+ *
122
+ * @param {Function} listener Called with this surface after each change.
123
+ * @returns {Function} Unsubscribe.
124
+ */
125
+ OnTextureChange(listener) {
126
+ this.#listeners.push(listener);
127
+ return () => {
128
+ const at = this.#listeners.indexOf(listener);
129
+ if (at !== -1) this.#listeners.splice(at, 1);
130
+ };
131
+ }
132
+
133
+ /** Carbon `IsValid` (`cpp:95-98`): whether the texture exists. */
134
+ IsValid() {
135
+ return Boolean(this.#depthStencil?.IsValid());
136
+ }
137
+
138
+ /** Carbon `IsReadable` (`cpp:90-93`): whether the surface carries SHADER_RESOURCE. */
139
+ IsReadable() {
140
+ if (!this.#depthStencil) return false;
141
+ return (this.#depthStencil.GetGpuUsage() & Tr2GpuUsage.SHADER_RESOURCE) !== 0;
142
+ }
143
+
144
+ /**
145
+ * Releases the surface and returns every parameter to its default.
146
+ *
147
+ * Carbon `Destroy` (`cpp:100-111`), which resets the format to DSFMT_AUTO
148
+ * rather than DSFMT_UNKNOWN.
149
+ *
150
+ * @returns {void}
151
+ */
152
+ Destroy() {
153
+ this.#depthStencil = null;
154
+ this.#msaa = null;
155
+ this.#flags = ExFlag.EX_NONE;
156
+ this.format = DepthStencilFormat.DSFMT_AUTO;
157
+ this.#Refresh();
158
+ this.#Changed();
159
+ }
160
+
161
+ /** Carbon `GetWidth` (`cpp:141-144`), read off the texture. */
162
+ GetWidth() {
163
+ return this.#depthStencil?.GetWidth() ?? 0;
164
+ }
165
+
166
+ /** Carbon `GetHeight` (`cpp:147-150`), read off the texture. */
167
+ GetHeight() {
168
+ return this.#depthStencil?.GetHeight() ?? 0;
169
+ }
170
+
171
+ /** Carbon `GetMsaaSamples` (`cpp:153-156`). */
172
+ GetMsaaSamples() {
173
+ return this.#msaa?.samples ?? 0;
174
+ }
175
+
176
+ /** Carbon `GetMsaaQuality` (`cpp:159-162`). */
177
+ GetMsaaQuality() {
178
+ return this.#msaa?.quality ?? 0;
179
+ }
180
+
181
+ /** Carbon `GetMipCount` (`cpp:164-167`) returns a literal 1. */
182
+ GetMipCount() {
183
+ return 1;
184
+ }
185
+
186
+ /** Carbon `GetFormat` (`cpp:170-173`), the format asked for rather than the texture's. */
187
+ GetFormat() {
188
+ return this.format;
189
+ }
190
+
191
+ /** Carbon `SetName` (`cpp:20-24`), which names the texture too. */
192
+ SetName(name) {
193
+ this.name = name ?? "";
194
+ this.#depthStencil?.SetName(this.name);
195
+ }
196
+
197
+ /** Carbon `GetName` (`cpp:26-29`). */
198
+ GetName() {
199
+ return this.name;
44
200
  }
45
201
 
46
202
  /** Carbon Tr2DepthStencil::HasALObject always reports false (cpp:124-127). */
@@ -52,8 +208,25 @@ new class extends _identity {
52
208
  sharedHandle(...args) {
53
209
  throw new Error("Tr2DepthStencil.sharedHandle is not implemented in CarbonEngineJS.");
54
210
  }
211
+
212
+ /** Republishes the Blue READ projection from the live texture. */
213
+ #Refresh() {
214
+ this.width = this.GetWidth();
215
+ this.height = this.GetHeight();
216
+ this.multiSampleType = this.GetMsaaSamples();
217
+ this.multiSampleQuality = this.GetMsaaQuality();
218
+ this.mipCount = this.GetMipCount();
219
+ this.isValid = this.IsValid();
220
+ this.isReadable = this.IsReadable();
221
+ }
222
+
223
+ /** Carbon's `m_onTextureChange()`. */
224
+ #Changed() {
225
+ for (const listener of this.#listeners) listener(this);
226
+ }
55
227
  }];
56
228
  DepthStencilFormat = DepthStencilFormat;
229
+ ExFlag = ExFlag;
57
230
  constructor() {
58
231
  super(_Tr2DepthStencil), _initClass();
59
232
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2DepthStencil.js","sources":["../../../../../src/trinity/core/device/Tr2DepthStencil.js"],"sourcesContent":["// Source: trinity/trinity/Tr2DepthStencil.h\n// Hand-maintained from Carbon source; Trinity owns the graph class and engines realize live state.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { DepthStencilFormat } from \"#consts/render-context\";\r\n\r\n/** Tr2DepthStencil (trinityCore) - generated from schema shapeHash 9acb2c99.... */\r\n@type.define({ className: \"Tr2DepthStencil\", family: \"trinityCore\" })\r\nexport class Tr2DepthStencil extends CjsModel\r\n{\r\n\r\n /** m_name (std::string) [PERSISTONLY] */\r\n @io.persistOnly\r\n @type.string\r\n name = \"\";\r\n\r\n @io.read\r\n @type.uint32\r\n width = 0;\r\n\r\n @io.read\r\n @type.uint32\r\n height = 0;\r\n\r\n @io.read\r\n @type.uint32\r\n multiSampleType = 0;\r\n\r\n @io.read\r\n @type.uint32\r\n multiSampleQuality = 0;\r\n\r\n @io.read\r\n @type.uint32\r\n mipCount = 0;\r\n\r\n @io.read\r\n @type.int32\r\n @type.enum(\"DepthStencilFormat\")\r\n format = 7;\r\n\r\n @io.read\r\n @type.boolean\r\n isValid = false;\r\n\r\n @io.read\r\n @type.boolean\r\n isReadable = false;\r\n\r\n /** Carbon method __init__ -> py__init__ (MAP_METHOD_AND_WRAP_OPTIONAL_ARGS). */\r\n @carbon.method\r\n @impl.notImplemented\r\n __init__(...args)\r\n {\r\n throw new Error(\"Tr2DepthStencil.__init__ is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon method Create (MAP_METHOD_AND_WRAP_OPTIONAL_ARGS). */\r\n @carbon.method\r\n @impl.notImplemented\r\n Create(...args)\r\n {\r\n throw new Error(\"Tr2DepthStencil.Create is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n /** Carbon Tr2DepthStencil::HasALObject always reports false (cpp:124-127). */\n @carbon.method\n @impl.implemented\n HasALObject(_type, _object)\n {\n return false;\n }\n\r\n /** Carbon method sharedHandle -> GetSharedHandle (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.notImplemented\r\n sharedHandle(...args)\r\n {\r\n throw new Error(\"Tr2DepthStencil.sharedHandle is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n static DepthStencilFormat = DepthStencilFormat;\r\n\r\n}\r\n"],"names":["_Tr2DepthStencil","_identity","Tr2DepthStencil","CjsModel","e","_init_name","_init_extra_name","_init_width","_init_extra_width","_init_height","_init_extra_height","_init_multiSampleType","_init_extra_multiSampleType","_init_multiSampleQuality","_init_extra_multiSampleQuality","_init_mipCount","_init_extra_mipCount","_init_format","_init_extra_format","_init_isValid","_init_extra_isValid","_init_isReadable","_init_extra_isReadable","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","string","read","uint32","int32","enum","boolean","carbon","method","impl","notImplemented","implemented","constructor","args","name","width","height","multiSampleType","multiSampleQuality","mipCount","format","isValid","isReadable","__init__","Error","Create","HasALObject","_type","_object","sharedHandle","DepthStencilFormat"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2DepthStencil.js","sources":["../../../../../src/trinity/core/device/Tr2DepthStencil.js"],"sourcesContent":["// Source: trinity/trinity/Tr2DepthStencil.h\n// trinity/trinity/Tr2DepthStencil.cpp\n//\n// \"A class to hang on to platform specific pointers needed for a classic\n// depth-and-stencil-buffer setup\" - Carbon's own description. It owns ONE\n// Tr2TextureAL and the parameters it was made with, and everything else is an\n// accessor over that pair.\n//\n// THE TEXTURE IS NOT A PERSISTED FIELD, and the reason is Carbon's rather than a\n// rule about GPU types. `m_depthStencil` is a PUBLIC member there and still not\n// Blue-persisted: the exposure is READ properties only. A live device resource\n// is not document state, whoever can reach it. (The AL is also why the older\n// \"no GPUTexture in a Trinity field\" framing no longer bites here - what this\n// holds is a Tr2TextureAL, which is backend-agnostic and is exactly what Carbon\n// holds too.)\n//\n// The `@io.read` properties below are that READ projection, refreshed wherever\n// the texture changes - Create and Destroy are the only two places, which is\n// what keeps them from drifting.\n//\n// THE RENDER CONTEXT IS A PARAMETER. Carbon reaches the main-thread context\n// through USE_MAIN_THREAD_RENDER_CONTEXT(), a global we deliberately do not\n// have; the same reason Tr2Blitter takes one.\nimport { carbon, impl, io, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { ConvertDepthStencilFormat, DepthStencilFormat, ExFlag, Tr2GpuUsage } from \"#consts/render-context\";\nimport { Tr2BitmapDimensions } from \"../../../trinityal/Tr2BitmapDimensions.js\";\nimport { Tr2MsaaDesc } from \"../../../trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js\";\n\n/** Tr2DepthStencil (trinityCore) - the depth-stencil surface a pass renders into. */\n@type.define({ className: \"Tr2DepthStencil\", family: \"trinityCore\" })\nexport class Tr2DepthStencil extends CjsModel\n{\n\n /** m_name (std::string) [PERSISTONLY] */\n @io.persistOnly\n @type.string\n name = \"\";\n\n @io.read\n @type.uint32\n width = 0;\n\n @io.read\n @type.uint32\n height = 0;\n\n @io.read\n @type.uint32\n multiSampleType = 0;\n\n @io.read\n @type.uint32\n multiSampleQuality = 0;\n\n @io.read\n @type.uint32\n mipCount = 0;\n\n @io.read\n @type.int32\n @type.enum(\"DepthStencilFormat\")\n format = 7;\n\n @io.read\n @type.boolean\n isValid = false;\n\n @io.read\n @type.boolean\n isReadable = false;\n\n /** m_depthStencil (Tr2TextureAL), the one resource this class exists to hold. */\n #depthStencil = null;\n\n /** m_msaa (Tr2MsaaDesc), retained so OnPrepareResources can rebuild. */\n #msaa = null;\n\n /** m_flags (Tr2RenderContextEnum::ExFlag), retained for the same reason. */\n #flags = ExFlag.EX_NONE;\n\n /** Carbon's m_onTextureChange listeners. */\n #listeners = [];\n\n /**\n * Creates the depth-stencil surface.\n *\n * Carbon `Create` (`cpp:49-74`). Usage is always DEPTH_STENCIL plus\n * SHADER_RESOURCE - which is what makes the surface sampleable, and therefore\n * what `IsReadable` reports - with SHARED added when the caller asks for it.\n *\n * A FAILED CREATE DESTROYS RATHER THAN LEAVING HALF A SURFACE, which is\n * Carbon's `else Destroy()`. Without it a caller could read a stale width off\n * an object whose texture never came back.\n *\n * @param {number} width Surface width in pixels.\n * @param {number} height Surface height in pixels.\n * @param {number} format A `DepthStencilFormat` value.\n * @param {number} [msaaType] Sample count.\n * @param {number} [msaaQuality] Sample quality.\n * @param {number} [flags] An `ExFlag` value.\n * @param {object} [renderContext] The context to create through.\n * @returns {boolean} Whether the surface was created.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns an HRESULT and reaches the main-thread render context through a global; this returns a boolean and takes the context, which is the same reason Tr2Blitter does.\")\n Create(width, height, format, msaaType = 1, msaaQuality = 0, flags = ExFlag.EX_NONE, renderContext = null)\n {\n let gpuUsage = Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE;\n\n if ((flags & ExFlag.EX_CREATE_SHARED) !== 0) gpuUsage |= Tr2GpuUsage.SHARED;\n\n const msaa = new Tr2MsaaDesc(msaaType, msaaQuality);\n const texture = renderContext?.CreateTexture(\n Tr2BitmapDimensions.Texture2D(width, height, 1, ConvertDepthStencilFormat(format)),\n { gpuUsage, msaa }\n );\n\n if (!texture)\n {\n this.Destroy();\n return false;\n }\n\n this.#depthStencil = texture;\n this.#msaa = msaa;\n this.#flags = flags;\n this.SetName(this.name);\n this.#Refresh();\n this.#Changed();\n return true;\n }\n\n /**\n * The texture, but only when it can actually be sampled.\n *\n * Carbon `GetTexture` (`cpp:76-83`) returns null for a surface without\n * SHADER_RESOURCE usage even though the surface itself is valid. A caller\n * binding the result as a shader input is the reason: a depth buffer that was\n * never made readable must fail here rather than at the draw.\n *\n * @returns {object|null} The `Tr2TextureAL`, or null when it is not readable.\n */\n @carbon.method\n @impl.implemented\n GetTexture()\n {\n return this.IsValid() && this.IsReadable() ? this.#depthStencil : null;\n }\n\n /**\n * The surface itself, readable or not.\n *\n * Carbon reaches `m_depthStencil` directly - it is public, and the class\n * carries `operator Tr2TextureAL&()` for it with the comment \"avoid\n * m_depthStencil->m_depthStencil all over the place\" (`h:62-69`).\n *\n * THIS IS NOT GetTexture. That one refuses a surface without SHADER_RESOURCE,\n * because its caller is binding a shader input. A caller RENDERING into the\n * surface needs it whether or not it can also be sampled, and would otherwise\n * be told a perfectly good depth buffer does not exist.\n *\n * @returns {object|null} The `Tr2TextureAL`, or null before Create.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon exposes the member directly through a conversion operator; JavaScript has none, so the raw surface is reached by name.\")\n GetDepthStencil()\n {\n return this.#depthStencil;\n }\n\n /**\n * Registers a texture-change listener (Carbon's `OnTextureChange` event).\n *\n * @param {Function} listener Called with this surface after each change.\n * @returns {Function} Unsubscribe.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns its event object for the caller to attach to; this takes the listener and returns the unsubscribe, matching Tr2TextureArray.\")\n OnTextureChange(listener)\n {\n this.#listeners.push(listener);\n return () =>\n {\n const at = this.#listeners.indexOf(listener);\n if (at !== -1) this.#listeners.splice(at, 1);\n };\n }\n\n /** Carbon `IsValid` (`cpp:95-98`): whether the texture exists. */\n @carbon.method\n @impl.implemented\n IsValid()\n {\n return Boolean(this.#depthStencil?.IsValid());\n }\n\n /** Carbon `IsReadable` (`cpp:90-93`): whether the surface carries SHADER_RESOURCE. */\n @carbon.method\n @impl.implemented\n IsReadable()\n {\n if (!this.#depthStencil) return false;\n return (this.#depthStencil.GetGpuUsage() & Tr2GpuUsage.SHADER_RESOURCE) !== 0;\n }\n\n /**\n * Releases the surface and returns every parameter to its default.\n *\n * Carbon `Destroy` (`cpp:100-111`), which resets the format to DSFMT_AUTO\n * rather than DSFMT_UNKNOWN.\n *\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n Destroy()\n {\n this.#depthStencil = null;\n this.#msaa = null;\n this.#flags = ExFlag.EX_NONE;\n this.format = DepthStencilFormat.DSFMT_AUTO;\n this.#Refresh();\n this.#Changed();\n }\n\n /** Carbon `GetWidth` (`cpp:141-144`), read off the texture. */\n @carbon.method\n @impl.implemented\n GetWidth()\n {\n return this.#depthStencil?.GetWidth() ?? 0;\n }\n\n /** Carbon `GetHeight` (`cpp:147-150`), read off the texture. */\n @carbon.method\n @impl.implemented\n GetHeight()\n {\n return this.#depthStencil?.GetHeight() ?? 0;\n }\n\n /** Carbon `GetMsaaSamples` (`cpp:153-156`). */\n @carbon.method\n @impl.implemented\n GetMsaaSamples()\n {\n return this.#msaa?.samples ?? 0;\n }\n\n /** Carbon `GetMsaaQuality` (`cpp:159-162`). */\n @carbon.method\n @impl.implemented\n GetMsaaQuality()\n {\n return this.#msaa?.quality ?? 0;\n }\n\n /** Carbon `GetMipCount` (`cpp:164-167`) returns a literal 1. */\n @carbon.method\n @impl.implemented\n GetMipCount()\n {\n return 1;\n }\n\n /** Carbon `GetFormat` (`cpp:170-173`), the format asked for rather than the texture's. */\n @carbon.method\n @impl.implemented\n GetFormat()\n {\n return this.format;\n }\n\n /** Carbon `SetName` (`cpp:20-24`), which names the texture too. */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = name ?? \"\";\n this.#depthStencil?.SetName(this.name);\n }\n\n /** Carbon `GetName` (`cpp:26-29`). */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n /** Carbon Tr2DepthStencil::HasALObject always reports false (cpp:124-127). */\n @carbon.method\n @impl.implemented\n HasALObject(_type, _object)\n {\n return false;\n }\n\n /** Carbon method sharedHandle -> GetSharedHandle (MAP_METHOD_AND_WRAP). */\n @carbon.method\n @impl.notImplemented\n sharedHandle(...args)\n {\n throw new Error(\"Tr2DepthStencil.sharedHandle is not implemented in CarbonEngineJS.\");\n }\n\n /** Republishes the Blue READ projection from the live texture. */\n #Refresh()\n {\n this.width = this.GetWidth();\n this.height = this.GetHeight();\n this.multiSampleType = this.GetMsaaSamples();\n this.multiSampleQuality = this.GetMsaaQuality();\n this.mipCount = this.GetMipCount();\n this.isValid = this.IsValid();\n this.isReadable = this.IsReadable();\n }\n\n /** Carbon's `m_onTextureChange()`. */\n #Changed()\n {\n for (const listener of this.#listeners) listener(this);\n }\n\n static DepthStencilFormat = DepthStencilFormat;\n\n static ExFlag = ExFlag;\n\n}\n"],"names":["_Tr2DepthStencil","_identity","Tr2DepthStencil","CjsModel","e","_init_name","_init_extra_name","_init_width","_init_extra_width","_init_height","_init_extra_height","_init_multiSampleType","_init_extra_multiSampleType","_init_multiSampleQuality","_init_extra_multiSampleQuality","_init_mipCount","_init_extra_mipCount","_init_format","_init_extra_format","_init_isValid","_init_extra_isValid","_init_isReadable","_init_extra_isReadable","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persistOnly","string","read","uint32","int32","enum","boolean","carbon","method","impl","adapted","reason","implemented","notImplemented","name","width","height","multiSampleType","multiSampleQuality","mipCount","format","isValid","isReadable","ExFlag","EX_NONE","Create","msaaType","msaaQuality","flags","renderContext","gpuUsage","Tr2GpuUsage","DEPTH_STENCIL","SHADER_RESOURCE","EX_CREATE_SHARED","SHARED","msaa","Tr2MsaaDesc","texture","CreateTexture","Tr2BitmapDimensions","Texture2D","ConvertDepthStencilFormat","Destroy","SetName","GetTexture","IsValid","IsReadable","GetDepthStencil","OnTextureChange","listener","push","at","indexOf","splice","Boolean","GetGpuUsage","DepthStencilFormat","DSFMT_AUTO","GetWidth","GetHeight","GetMsaaSamples","samples","GetMsaaQuality","quality","GetMipCount","GetFormat","GetName","HasALObject","_type","_object","sharedHandle","args","Error","#Refresh","#Changed","constructor"],"mappings":"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"}
@@ -1,13 +1,31 @@
1
- import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { io, type, carbon, impl } from '#schema';
3
3
  import { CjsModel } from '#model';
4
- import '../../../trinityal/Tr2BitmapDimensions.js';
5
- import '../../../trinityal/Tr2DrawUPHelper.js';
6
- import '../../../global/consts/renderContext/formats.js';
7
- import '../../../global/consts/renderContext/pipeline.js';
8
- import '../../../trinityal/Tr2ResourceSetAL.js';
9
- import { Tr2BufferALStub, Tr2BufferDescriptionAL } from '../../../trinityal/stub/Tr2BufferALStub.js';
10
- import '../../../trinityal/stub/Tr2RenderContextALStub.js';
4
+ import '../../../../trinityal/Tr2BitmapDimensions.js';
5
+ import { Tr2BufferDescriptionAL } from '../../../../trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js';
6
+ import '../../../../trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js';
7
+ import '../../../../trinityal/Tr2DrawUPHelper.js';
8
+ import '../../../../global/consts/renderContext/formats.js';
9
+ import '../../../../global/consts/renderContext/pipeline.js';
10
+ import '../../../../trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js';
11
+ import '../../../../trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js';
12
+ import '../../../../trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js';
13
+ import '../../../../trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js';
14
+ import { Tr2BufferALStub } from '../../../../trinityal/stub/Tr2BufferALStub.js';
15
+ import '../../../../trinityal/stub/Tr2CapsALStub.js';
16
+ import '../../../../trinityal/stub/Tr2ConstantBufferALStub.js';
17
+ import '../../../../trinityal/stub/Tr2FenceALStub.js';
18
+ import '../../../../trinityal/stub/Tr2OcclusionQueryALStub.js';
19
+ import '../../../../trinityal/stub/Tr2GpuTimerALStub.js';
20
+ import '../../../../trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js';
21
+ import '../../../../trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js';
22
+ import '../../../../trinityal/stub/Tr2SamplerStateALStub.js';
23
+ import '../../../../trinityal/stub/Tr2ShaderALStub.js';
24
+ import '../../../../trinityal/stub/Tr2ShaderProgramALStub.js';
25
+ import '../../../../trinityal/stub/Tr2SwapChainALStub.js';
26
+ import '../../../../trinityal/stub/Tr2TextureALStub.js';
27
+ import '../../../../trinityal/stub/Tr2VertexLayoutALStub.js';
28
+ import '../../../../trinityal/stub/Tr2VideoAdapterInfoStub.js';
11
29
  import { Tr2GpuUsage, Tr2CpuUsage } from '#consts/render-context';
12
30
 
13
31
  let _initProto, _initClass, _init_name, _init_extra_name, _init_stride, _init_extra_stride, _init_size, _init_extra_size, _init_head, _init_extra_head, _init_tail, _init_extra_tail;
@@ -20,76 +38,6 @@ function failRing(message) {
20
38
  /** Carbon's `INITIAL_SIZE` (`Tr2RingBuffer.cpp:8`), in ELEMENTS rather than bytes. */
21
39
  const INITIAL_SIZE = 16 * 1024;
22
40
 
23
- /** Carbon's `Tr2RingBufferOffsets::INVALID_OFFSET`. */
24
- const INVALID_OFFSET = 0xffffffff;
25
-
26
- /**
27
- * Where one consumer's rows landed, this frame and last.
28
- *
29
- * Held by value in Carbon, so each consumer owns one rather than sharing.
30
- */
31
- class Tr2RingBufferOffsets {
32
- /** Carbon's `INVALID_OFFSET`; the "nothing uploaded" state, and a no-draw. */
33
- static INVALID_OFFSET = INVALID_OFFSET;
34
-
35
- /** m_currentFrameOffset */
36
- #currentFrameOffset = INVALID_OFFSET;
37
-
38
- /** m_previousFrameOffset */
39
- #previousFrameOffset = INVALID_OFFSET;
40
-
41
- /**
42
- * Where this frame's rows start, in elements.
43
- *
44
- * @returns {number} The offset, or `INVALID_OFFSET` before an upload.
45
- */
46
- GetCurrentFrameOffset() {
47
- return this.#currentFrameOffset;
48
- }
49
-
50
- /**
51
- * Where last frame's rows start, in elements.
52
- *
53
- * @returns {number} The offset, or `INVALID_OFFSET` before a second frame.
54
- */
55
- GetPreviousFrameOffset() {
56
- return this.#previousFrameOffset;
57
- }
58
-
59
- /**
60
- * Uploads this consumer's rows, ONCE per frame.
61
- *
62
- * The early return is the interesting line: a second upload in the same frame
63
- * is ignored rather than appended, so an object updated twice does not eat
64
- * the ring twice. `AdvanceFrame` is what re-arms it.
65
- *
66
- * @param {Tr2RingBuffer} buffer The arena for this data type.
67
- * @param {ArrayBufferView} transforms The packed rows.
68
- * @param {number} count How many rows.
69
- * @returns {void}
70
- */
71
- UploadTransforms(buffer, transforms, count) {
72
- if (this.#currentFrameOffset !== INVALID_OFFSET) return;
73
- this.#currentFrameOffset = buffer.UploadTransforms(transforms, count);
74
-
75
- // First frame: last frame's rows are this frame's, so a shader reading the
76
- // previous offset reads something valid rather than nothing.
77
- if (this.#previousFrameOffset === INVALID_OFFSET) {
78
- this.#previousFrameOffset = this.#currentFrameOffset;
79
- }
80
- }
81
-
82
- /**
83
- * Rolls this frame's offset into last frame's and re-arms the upload.
84
- *
85
- * @returns {void}
86
- */
87
- AdvanceFrame() {
88
- this.#previousFrameOffset = this.#currentFrameOffset;
89
- this.#currentFrameOffset = INVALID_OFFSET;
90
- }
91
- }
92
-
93
41
  /**
94
42
  * One upload arena per data type, fenced by frame.
95
43
  */
@@ -356,5 +304,5 @@ new class extends _identity {
356
304
  }
357
305
  }();
358
306
 
359
- export { _Tr2RingBuffer as Tr2RingBuffer, Tr2RingBufferOffsets };
307
+ export { _Tr2RingBuffer as Tr2RingBuffer };
360
308
  //# sourceMappingURL=Tr2RingBuffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2RingBuffer.js","sources":["../../../../../../src/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js"],"sourcesContent":["// Source: trinity/trinity/Tr2RingBuffer.h\n// Source: trinity/trinity/Tr2RingBuffer.cpp\n//\n// One shared arena that many objects upload per-frame rows into, and a small\n// per-consumer cursor that remembers where this frame's rows and last frame's\n// rows landed.\n//\n// WHY A RING AND NOT A BUFFER EACH. Every booster set, every morph target, every\n// skinned thing wants a handful of rows on the GPU each frame. A buffer each\n// means an allocation each; one ring means one allocation and an offset each.\n// The offset is what a shader is handed.\n//\n// WHY TWO OBJECTS, which is the part worth reading twice. `Tr2RingBuffer` is the\n// arena and there is one per DATA TYPE. `Tr2RingBufferOffsets` is the cursor and\n// there is one per CONSUMER, held by value. The cursor keeps the PREVIOUS\n// frame's offset as well as this frame's, which is what a pass reading last\n// frame's transforms needs - motion vectors, trails, anything comparing two\n// frames. Collapsing the two into \"upload and get an offset back\" works today\n// and quietly loses that.\n//\n// THE FRAME FENCE IS THE WHOLE DESIGN. Rows uploaded for a frame cannot be\n// overwritten until the GPU has finished that frame, so the ring records a\n// locked region per upload and only moves its tail past regions whose frame the\n// device reports complete. `SetFrameNumbers` is deliberately pessimistic - it\n// clamps \"completed\" to two frames behind \"recording\" no matter what it is\n// told.\n//\n// THREE DIFFERENCES FROM CARBON, EACH FORCED:\n//\n// - Carbon reaches a process-wide render context through a macro; we have none,\n// so the context is supplied to `GetInstance` and kept. Same reason\n// `TriDevice`'s capability methods are still unimplemented.\n// - Carbon drives the fence from EveSpaceScene::Update, which reaches the\n// process-wide render context (`EveSpaceScene.cpp:441-445`). We have no\n// process-wide context, so nothing ticks a ring per frame yet and a caller\n// must drive `SetFrameNumbers` itself. The seeding at creation IS Carbon's.\n// - Carbon's `SetFrameNumbers` erases consumed locked regions only when it finds\n// an incomplete one, so a ring whose regions all complete erases none and the\n// list grows for the life of the process. That is survivable in a game\n// session and is not in a browser tab, so the consumed prefix is erased in\n// both cases. The tail it computes is identical either way.\n\nimport { carbon, impl, io, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { Tr2BufferALStub, Tr2BufferDescriptionAL } from \"../../../../trinityal/index.js\";\nimport { Tr2CpuUsage, Tr2GpuUsage } from \"#consts/render-context\";\n\n\nfunction failRing(message)\n{\n const error = new Error(`Tr2RingBuffer: ${message}`);\n error.code = \"CJS_RING_BUFFER_INVALID\";\n throw error;\n}\n\n\n/** Carbon's `INITIAL_SIZE` (`Tr2RingBuffer.cpp:8`), in ELEMENTS rather than bytes. */\nconst INITIAL_SIZE = 16 * 1024;\n\n/** Carbon's `Tr2RingBufferOffsets::INVALID_OFFSET`. */\nconst INVALID_OFFSET = 0xffffffff;\n\n\n/**\n * One upload arena per data type, fenced by frame.\n */\n@type.define({ className: \"Tr2RingBuffer\", family: \"trinityCore\" })\nexport class Tr2RingBuffer extends CjsModel\n{\n /** One arena per data type, as Carbon's typed `GetInstance` gives. */\n static #instances = new Map();\n\n /** m_name */\n @io.persist\n @type.string\n name = \"\";\n\n /** m_stride - bytes per element; every upload must match it. */\n @io.persist\n @type.uint32\n stride = 0;\n\n /** m_size - capacity in ELEMENTS, not bytes. */\n @io.read\n @type.uint32\n size = 0;\n\n /** m_head - where the next upload lands, in elements. */\n @io.read\n @type.uint32\n head = 0;\n\n /** m_tail - the oldest element the GPU may still be reading. */\n @io.read\n @type.uint32\n tail = 0;\n\n /** m_frame - the frame being recorded. */\n #frame = 0;\n\n /** m_mirror - the CPU copy, and the authority until a backend uploads it. */\n #mirror = new Uint8Array(0);\n\n /** m_buffer */\n #buffer = null;\n\n /** m_dirtyRegions[2] - what changed since the last PrepareBuffer. */\n #dirtyRegions = [ { offset: 0, size: 0 }, { offset: 0, size: 0 } ];\n\n /** m_lockedRegions - uploads the GPU may still be reading, by frame. */\n #lockedRegions = [];\n\n /** The render context this ring creates and updates its buffer through. */\n #renderContext = null;\n\n /**\n * The arena for one data type, created on first ask.\n *\n * Carbon keys this on the C++ type (`GetInstance<T>`); a key and a stride say\n * the same thing here, and the stride is checked on every ask so two callers\n * cannot disagree about what a row is.\n *\n * @param {string} key Names the data type, e.g. \"ChildBoosterInstance\".\n * @param {number} stride Bytes per row.\n * @param {object} renderContext The context to create the buffer through.\n * @returns {Tr2RingBuffer} The arena.\n */\n static GetInstance(key, stride, renderContext)\n {\n if (typeof key !== \"string\" || !key) failRing(\"an instance needs a data-type key\");\n if (!Number.isInteger(stride) || stride <= 0) failRing(`${key} needs a positive stride`);\n\n const existing = Tr2RingBuffer.#instances.get(key);\n\n if (existing)\n {\n if (existing.stride !== stride)\n {\n failRing(`${key} was created with stride ${existing.stride}, not ${stride}`);\n }\n\n return existing;\n }\n\n const created = new Tr2RingBuffer();\n\n created.stride = stride;\n created.SetName(key);\n created.#renderContext = renderContext;\n\n // Carbon seeds the fence from the context before the first sizing\n // (`Tr2RingBuffer.cpp:121`), so a ring created mid-session does not think\n // every frame ever recorded is still in flight.\n created.SetFrameNumbers(renderContext.GetRecordingFrameNumber(), renderContext.GetRenderedFrameNumber());\n created.Resize(INITIAL_SIZE);\n\n Tr2RingBuffer.#instances.set(key, created);\n\n return created;\n }\n\n /** Forgets every arena. Test and teardown only; Carbon's are process-lived. */\n static ResetInstances()\n {\n Tr2RingBuffer.#instances.clear();\n }\n\n /**\n * Names the ring, and its buffer if one exists.\n *\n * @param {string} name The debug label.\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = name;\n\n if (this.#buffer && this.#buffer.IsValid()) this.#buffer.SetName(name);\n }\n\n /**\n * The backend buffer these rows live in.\n *\n * @returns {object|null} The buffer, or null before the first size.\n */\n @carbon.method\n @impl.implemented\n GetGpuBuffer()\n {\n return this.#buffer;\n }\n\n /**\n * Copies rows in and returns where they landed, in elements.\n *\n * TWO RING RULES, IN CARBON'S ORDER. When the head is ahead of the tail and\n * the rows will not fit before the end, it wraps to zero. When the head is\n * BEHIND the tail and would reach it, the ring is full of frames the GPU may\n * still be reading, so it doubles instead of overwriting them.\n *\n * @param {ArrayBufferView} data The packed rows.\n * @param {number} count How many rows.\n * @returns {number} The element offset the rows landed at.\n */\n @carbon.method\n @impl.implemented\n UploadTransforms(data, count)\n {\n if (!ArrayBuffer.isView(data)) failRing(\"UploadTransforms needs a typed array of rows\");\n if (!Number.isInteger(count) || count < 0) failRing(\"UploadTransforms needs a row count\");\n\n const bytes = count * this.stride;\n\n if (data.byteLength < bytes)\n {\n failRing(`${count} rows of ${this.stride} bytes need ${bytes}, and ${data.byteLength} were given`);\n }\n\n if (this.head >= this.tail && this.head + count > this.size) this.head = 0;\n\n if (this.head < this.tail && this.head + count >= this.tail) this.Resize(this.size * 2);\n\n this.#mirror.set(new Uint8Array(data.buffer, data.byteOffset, bytes), this.head * this.stride);\n\n // The two regions exist so a wrap can be described without a third: one run\n // ends at the head, or the other does. Neither means the head moved without\n // this ring being told, which is a caller writing behind its back.\n const first = this.#dirtyRegions[0];\n const second = this.#dirtyRegions[1];\n\n if (first.offset + first.size === this.head) first.size += count;\n else if (second.offset + second.size === this.head) second.size += count;\n else failRing(\"neither dirty region ends at the head; the ring was written to behind its back\");\n\n const offset = this.head;\n\n this.head += count;\n\n return offset;\n }\n\n /**\n * Pushes what changed to the backend and locks it for this frame.\n *\n * @param {object} renderContext The context to update through.\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n PrepareBuffer(renderContext)\n {\n for (const region of this.#dirtyRegions)\n {\n if (!region.size) continue;\n\n this.#buffer.UpdateBuffer(\n region.offset * this.stride,\n region.size * this.stride,\n this.#mirror.subarray(region.offset * this.stride, (region.offset + region.size) * this.stride),\n renderContext\n );\n\n this.#lockedRegions.push({ frame: this.#frame, tail: region.offset + region.size });\n }\n\n this.#dirtyRegions[0] = { offset: this.head, size: 0 };\n this.#dirtyRegions[1] = { offset: 0, size: 0 };\n }\n\n /**\n * Moves the tail past every upload the device has finished with.\n *\n * CARBON DISTRUSTS THE COMPLETED NUMBER and clamps it to two frames behind\n * the one being recorded, whatever it is told. Freeing a frame the GPU is\n * still reading corrupts it, and the cost of being late is a slightly larger\n * ring.\n *\n * @param {number} recordingFrame The frame being recorded.\n * @param {number} completedFrame The frame the device reports finished.\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n SetFrameNumbers(recordingFrame, completedFrame)\n {\n this.#frame = recordingFrame;\n\n const completed = Math.min(completedFrame, recordingFrame - 2);\n let consumed = 0;\n\n for (const region of this.#lockedRegions)\n {\n if (region.frame > completed) break;\n\n this.tail = region.tail;\n consumed += 1;\n }\n\n // See the head comment: Carbon erases only when it stops early, so a ring\n // whose regions all complete never erases any. Same tail, bounded list.\n if (consumed) this.#lockedRegions.splice(0, consumed);\n }\n\n /**\n * Grows the ring, keeping what it already holds.\n *\n * Carbon marks the WHOLE old extent dirty and parks the head at the old size\n * with the tail at the new one, so the next upload lands in the fresh space\n * and everything already written is re-uploaded once.\n *\n * @param {number} size The new capacity, in elements.\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n Resize(size)\n {\n if (!Number.isInteger(size) || size <= 0) failRing(\"a ring needs a positive size\");\n\n const previousSize = this.size;\n const grown = new Uint8Array(size * this.stride);\n\n grown.set(this.#mirror.subarray(0, Math.min(this.#mirror.length, grown.length)));\n\n this.#dirtyRegions[0] = { offset: 0, size: previousSize };\n this.#dirtyRegions[1] = { offset: 0, size: 0 };\n this.#lockedRegions.length = 0;\n this.#mirror = grown;\n this.head = previousSize;\n this.size = size;\n this.tail = size;\n\n this.#CreateBuffer(null);\n }\n\n /**\n * Recreates the backend buffer from the mirror after a device loss.\n *\n * @returns {boolean} True.\n */\n @carbon.method\n @impl.implemented\n OnPrepareResources()\n {\n if (this.#mirror.length && !(this.#buffer && this.#buffer.IsValid())) this.#CreateBuffer(this.#mirror);\n\n return true;\n }\n\n /**\n * Creates the backend buffer at the current size.\n *\n * WRITE_OFTEN and NON_SYNCRONIZED_WRITE are Carbon's, and they are what a\n * ring is: written every frame, and never waited on, because the frame fence\n * already guarantees nobody is reading what is being written.\n */\n #CreateBuffer(initialData)\n {\n if (!this.#renderContext) failRing(`${this.name} has no render context to create its buffer through`);\n\n if (this.#buffer) this.#buffer.Destroy();\n\n this.#buffer = new Tr2BufferALStub();\n\n const description = Tr2BufferDescriptionAL.FromStride(\n this.stride,\n this.size,\n Tr2GpuUsage.SHADER_RESOURCE,\n Tr2CpuUsage.WRITE_OFTEN | Tr2CpuUsage.NON_SYNCRONIZED_WRITE\n );\n\n this.#buffer.Create(description, initialData, this.#renderContext);\n this.#buffer.SetName(this.name);\n }\n}\n"],"names":["failRing","message","error","Error","code","INITIAL_SIZE","_Tr2RingBuffer","_identity","Tr2RingBuffer","CjsModel","e","_init_name","_init_extra_name","_init_stride","_init_extra_stride","_init_size","_init_extra_size","_init_head","_init_extra_head","_init_tail","_init_extra_tail","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","persist","string","uint32","read","carbon","method","impl","implemented","name","stride","size","head","tail","Uint8Array","offset","GetInstance","key","renderContext","Number","isInteger","existing","get","created","SetName","SetFrameNumbers","GetRecordingFrameNumber","GetRenderedFrameNumber","Resize","set","ResetInstances","clear","IsValid","GetGpuBuffer","UploadTransforms","data","count","ArrayBuffer","isView","bytes","byteLength","buffer","byteOffset","first","second","PrepareBuffer","region","UpdateBuffer","subarray","push","frame","recordingFrame","completedFrame","completed","Math","min","consumed","splice","previousSize","grown","length","OnPrepareResources","#CreateBuffer","initialData","Destroy","Tr2BufferALStub","description","Tr2BufferDescriptionAL","FromStride","Tr2GpuUsage","SHADER_RESOURCE","Tr2CpuUsage","WRITE_OFTEN","NON_SYNCRONIZED_WRITE","Create","Map","constructor"],"mappings":"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"}