@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
@@ -1,5 +1,7 @@
1
1
  import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { carbon, impl, type } from '#schema';
3
+ import { Tr2Blitter } from './Tr2Blitter.js';
4
+ import { AdjustTextureCoordsToViewport } from './Tr2RenderUtils.js';
3
5
 
4
6
  let _initProto, _initClass;
5
7
 
@@ -56,7 +58,7 @@ new class extends _identity {
56
58
  } = _applyDecs2311(this, [type.define({
57
59
  className: "Tr2Renderer",
58
60
  family: "trinityCore"
59
- })], [[[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFrameVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFramePSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectPSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectRTVertexBufferDataRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSGUIStartRegister"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetPerObjectStartRegister"]]));
61
+ })], [[[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFrameVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerFramePSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectPSStartRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectRTVertexBufferDataRegister"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetPerObjectVSGUIStartRegister"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetPerObjectStartRegister"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon also allocates the quad vertex and index buffers and the debug line set here; only the blitter is ported.")], 18, "PrepareDeviceResources"], [[carbon, carbon.method, impl, impl.implemented], 18, "DrawScreenQuad"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon distinguishes this from the material form by overload; JavaScript has none, so the rectangle form carries its own name.")], 18, "DrawScreenQuadRect"], [[carbon, carbon.method, impl, impl.implemented], 18, "DrawCameraSpaceScreenQuad"], [[carbon, carbon.method, impl, impl.implemented], 18, "DrawFullScreenWithShader"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon's four overloads differ only in an optional material and optional coordinates, which are defaults here.")], 18, "DrawTexture"]]));
60
62
  }
61
63
  // Carbon's header calls these the defaults "for the currently set shader
62
64
  // model" and they are mutable statics, but nothing ever reassigns them, so
@@ -149,6 +151,149 @@ new class extends _identity {
149
151
  return shaderType === _Tr2Renderer.PIXEL_SHADER ? this.GetPerObjectPSStartRegister() : this.GetPerObjectVSStartRegister();
150
152
  }
151
153
 
154
+ /**
155
+ * Carbon's `s_blitter`: the blitter every screen-space draw runs through.
156
+ *
157
+ * An INSTANCE field rather than Carbon's module global, for the reason this
158
+ * whole class is an instance - a second library instance must not silently
159
+ * share the first one's blitter. Created by `PrepareDeviceResources`, and
160
+ * null until then, which is why every draw below guards on it exactly as
161
+ * Carbon's `if( s_blitter )` does.
162
+ */
163
+ #blitter = null;
164
+
165
+ /**
166
+ * Creates the device-dependent resources, the blitter among them.
167
+ *
168
+ * Carbon `PrepareDeviceResources` (`Tr2Renderer.cpp:1273-1281`), which makes
169
+ * the blitter HERE rather than at startup and says why: it loads an effect,
170
+ * so the device has to exist and the shader model has to be settled first.
171
+ * That holds for us too - there is always a device by this point, the stub
172
+ * backend included, which is a real device and not an absence.
173
+ *
174
+ * Carbon also allocates its quad vertex and index buffers and its debug line
175
+ * set here. Those are not ported; this creates the blitter only.
176
+ *
177
+ * @param {object} [renderContext] The context to prepare the blitter against.
178
+ * @returns {Tr2Blitter} The renderer's blitter.
179
+ */
180
+ PrepareDeviceResources(renderContext = null) {
181
+ this.#blitter ??= new Tr2Blitter();
182
+ if (renderContext) this.#blitter.PrepareResources(renderContext);
183
+ return this.#blitter;
184
+ }
185
+
186
+ /**
187
+ * Returns the blitter, or null before `PrepareDeviceResources` has run.
188
+ *
189
+ * @returns {Tr2Blitter|null} The renderer's blitter.
190
+ */
191
+ GetBlitter() {
192
+ return this.#blitter;
193
+ }
194
+
195
+ /**
196
+ * Draws a fullscreen quad with a material.
197
+ *
198
+ * Carbon `DrawScreenQuad( renderContext, Tr2Material* )`
199
+ * (`Tr2Renderer.cpp:1006-1012`).
200
+ *
201
+ * TEXTURE COORDINATES ARE NOT VIEWPORT-CORRECTED HERE, and that is Carbon's
202
+ * behaviour rather than an omission: only the `DrawTexture` family adjusts
203
+ * them. `AdjustTextureCoordsToViewport` records what the correction is and
204
+ * why folding it into the blitter would move every screen-quad draw.
205
+ *
206
+ * @param {object} renderContext The context to draw through.
207
+ * @param {object} material The material to draw with.
208
+ * @returns {boolean} Whether the quad was drawn.
209
+ */
210
+ DrawScreenQuad(renderContext, material) {
211
+ if (!this.#blitter) return false;
212
+ return this.#blitter.Draw(renderContext, material);
213
+ }
214
+
215
+ /**
216
+ * Draws a quad with an effect over an explicit screen rectangle.
217
+ *
218
+ * Carbon `DrawScreenQuad( renderContext, Tr2Effect*, topLeft, bottomRight )`
219
+ * (`Tr2Renderer.cpp:1014-1020`), which passes the full [0,1] TEXTURE range and
220
+ * the caller's corners as the VERTEX rectangle. Carbon distinguishes the two
221
+ * by overload; JavaScript has no overloads, so the rectangle form is named.
222
+ *
223
+ * @param {object} renderContext The context to draw through.
224
+ * @param {object} effect The effect to draw with.
225
+ * @param {Array<number>} topLeft Top-left vertex corner.
226
+ * @param {Array<number>} bottomRight Bottom-right vertex corner.
227
+ * @returns {boolean} Whether the quad was drawn.
228
+ */
229
+ DrawScreenQuadRect(renderContext, effect, topLeft, bottomRight) {
230
+ if (!this.#blitter) return false;
231
+ return this.#blitter.Draw(renderContext, effect, null, {
232
+ tlTexCoord: [0, 0],
233
+ brTexCoord: [1, 1],
234
+ tlVertexCoord: topLeft,
235
+ brVertexCoord: bottomRight
236
+ });
237
+ }
238
+
239
+ /**
240
+ * Draws the quad in camera space rather than screen space.
241
+ *
242
+ * Carbon `DrawCameraSpaceScreenQuad` (`Tr2Renderer.cpp:1022-1028`).
243
+ *
244
+ * @param {object} renderContext The context to draw through.
245
+ * @param {object} shader The shader state interface to run.
246
+ * @param {object} material The material supplying its parameters.
247
+ * @returns {boolean} Whether the quad was drawn.
248
+ */
249
+ DrawCameraSpaceScreenQuad(renderContext, shader, material) {
250
+ if (!this.#blitter) return false;
251
+ return this.#blitter.DrawInCameraSpace(renderContext, shader, material);
252
+ }
253
+
254
+ /**
255
+ * Draws a unit quad with the given material and no texture.
256
+ *
257
+ * Carbon `DrawFullScreenWithShader` (`Tr2Renderer.cpp:768-775`).
258
+ *
259
+ * @param {object} renderContext The context to draw through.
260
+ * @param {object} material The material to draw with.
261
+ * @returns {boolean} Whether the quad was drawn.
262
+ */
263
+ DrawFullScreenWithShader(renderContext, material) {
264
+ if (!this.#blitter) return false;
265
+ return this.#blitter.Draw(renderContext, material);
266
+ }
267
+
268
+ /**
269
+ * Blits a texture, correcting its coordinates for the device viewport.
270
+ *
271
+ * Carbon's four `DrawTexture` overloads (`Tr2Renderer.cpp:750-834`) collapse
272
+ * into one: the material is optional, and without one the filter selects a
273
+ * built-in blit effect. THIS family adjusts the texture coordinates where
274
+ * `DrawScreenQuad` does not - Carbon draws that distinction and it is load
275
+ * bearing.
276
+ *
277
+ * @param {object} renderContext The context to draw through.
278
+ * @param {object} texture The texture to blit.
279
+ * @param {object} [options] `material`, `tlTexCoord`, `brTexCoord`, `filter`.
280
+ * @returns {boolean} Whether the quad was drawn.
281
+ */
282
+ DrawTexture(renderContext, texture, options = {}) {
283
+ if (!this.#blitter) return false;
284
+ const {
285
+ tlTexCoord,
286
+ brTexCoord
287
+ } = AdjustTextureCoordsToViewport(renderContext, options.tlTexCoord ?? [0, 0], options.brTexCoord ?? [1, 1]);
288
+ return options.material ? this.#blitter.Draw(renderContext, options.material, texture, {
289
+ tlTexCoord,
290
+ brTexCoord
291
+ }) : this.#blitter.DrawTexture(renderContext, texture, {
292
+ tlTexCoord,
293
+ brTexCoord
294
+ }, options.filter);
295
+ }
296
+
152
297
  /** Carbon's `Tr2RenderContextEnum::PIXEL_SHADER`, the one stage that differs. */
153
298
  }];
154
299
  PIXEL_SHADER = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2Renderer.js","sources":["../../../../src/trinity/core/Tr2Renderer.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Renderer.h\n// Source: trinity/trinity/Tr2Renderer.cpp\n//\n// The renderer-wide facade: the constant-buffer register map, the frame clock,\n// and the projection and view state every pass reads.\n//\n// ONE DELIBERATE DEPARTURE, DECIDED BY THE OPERATOR ON 2026-09-05. Carbon's\n// `Tr2Renderer` is entirely STATIC - a process-wide singleton. Ours is an\n// instance the composition root creates and hands out. Two reasons, and the\n// second is the one that matters:\n//\n// - a page is unlikely to want two backends at once, so the singleton is not\n// buying much;\n// - but this runtime already supports more than one library instance with its\n// own resource manager, and a static renderer would silently make the second\n// one share the first one's frame clock and projection. That is a bug nobody\n// would look for.\n//\n// The composition root creating one is not the same as the composition root\n// BECOMING a renderer, which `runtime/docs/core/roadmap.md` rules out: this\n// class holds GPU-free state and the library composes it, exactly as it\n// composes a resource manager it does not implement.\n//\n// WHY THE REGISTER MAP IS HERE AND NOT IN AN ENGINE. Carbon keeps these six\n// numbers as `Tr2Renderer` statics (`Tr2Renderer.cpp:38-43`), because they are\n// the contract between Trinity and EVERY backend rather than one backend's\n// detail. They lived in the WebGPU engine until now, where a second backend\n// could not have reached them without copying them.\n\nimport { carbon, impl, type } from \"#schema\";\n\n\n/** perFrameVS, owned by the scene. */\nexport const PER_FRAME_VS = 1;\n\n/** perFramePS, owned by the scene. */\nexport const PER_FRAME_PS = 2;\n\n/** The effect's own constants. */\nexport const EFFECT_CONSTANTS = 0;\n\n/** perObjectVS, owned by the object being drawn. */\nexport const PER_OBJECT_VS = 3;\n\n/** perObjectPS, owned by the object being drawn. */\nexport const PER_OBJECT_PS = 4;\n\n// THERE WAS A REVERSE MAP HERE AND IT IS GONE. A register-number-to-name table\n// looked necessary because a caller reading a pipeline's DECLARED bindings has a\n// number and wants to know what it means. It is not: the numbers are fixed and\n// this class owns them, so the question is answered by comparing against the\n// accessors below - which is how Carbon answers it, and why Carbon has no such\n// table. The names only ever reached a diagnostic string.\n\n\n/**\n * Renderer-wide state: the register map now, the frame clock and camera later.\n *\n * NOT A `CjsModel`, and the reason is CATEGORY RATHER THAN COST. Operator,\n * 2026-09-05: \"CjsModel is only for things that actually need to hydrate\", and\n * \"there should be little cost in making something a CjsModel\". Both are true\n * at once, and the second is why the first has to be stated as a rule - if the\n * base were expensive, nobody would need telling.\n *\n * A model is an object that arrives from a `.red`/`.black` values graph. This\n * one is composed at runtime by the library, carries no `@io` field, and is\n * named as a type by nothing, so a hydration identity describes something that\n * can never happen. The same goes for the abstraction layer and the resource\n * and GPU classes - none of them is ever part of a serialized object. The AL\n * family already complies.\n *\n * IT IS STILL DECORATED, and that is the point worth keeping straight:\n * decorators are not only hydration. `@type.define` gives the class an\n * identity that tooling and the UI read, and `@carbon.method` is how the\n * parity audit sees a method at all. Dropping `CjsModel` costs neither.\n */\n@type.define({ className: \"Tr2Renderer\", family: \"trinityCore\" })\nexport class Tr2Renderer\n{\n // Carbon's header calls these the defaults \"for the currently set shader\n // model\" and they are mutable statics, but nothing ever reassigns them, so\n // they are constants in practice. Kept as fields rather than inlined so a\n // shader model that did move them has somewhere to move them to.\n\n /** s_perFrameVSStartRegister */\n #perFrameVSStartRegister = PER_FRAME_VS;\n\n /** s_perFramePSStartRegister */\n #perFramePSStartRegister = PER_FRAME_PS;\n\n /** s_perObjectVSStartRegister */\n #perObjectVSStartRegister = PER_OBJECT_VS;\n\n /** s_perObjectPSStartRegister */\n #perObjectPSStartRegister = PER_OBJECT_PS;\n\n /** s_perObjectRTVertexBufferDataRegister */\n #perObjectRTVertexBufferDataRegister = 5;\n\n /** s_perObjectVSGUIStartRegister */\n #perObjectVSGUIStartRegister = 6;\n\n /**\n * The register the scene's per-frame vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFrameVSStartRegister()\n {\n return this.#perFrameVSStartRegister;\n }\n\n /**\n * The register the scene's per-frame pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFramePSStartRegister()\n {\n return this.#perFramePSStartRegister;\n }\n\n /**\n * The register an object's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSStartRegister()\n {\n return this.#perObjectVSStartRegister;\n }\n\n /**\n * The register an object's per-object pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectPSStartRegister()\n {\n return this.#perObjectPSStartRegister;\n }\n\n /**\n * The register ray-traced vertex-buffer data binds at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectRTVertexBufferDataRegister()\n {\n return this.#perObjectRTVertexBufferDataRegister;\n }\n\n /**\n * The register the GUI's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSGUIStartRegister()\n {\n return this.#perObjectVSGUIStartRegister;\n }\n\n /**\n * The per-object register for one shader stage.\n *\n * Carbon's overload pair collapses to a default: the pixel stage has its own\n * register and every other stage shares the vertex one\n * (`Tr2Renderer.h:65-81`).\n *\n * @param {number} [shaderType] A Carbon `ShaderType` value.\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.adapted\n GetPerObjectStartRegister(shaderType = 0)\n {\n return shaderType === Tr2Renderer.PIXEL_SHADER\n ? this.GetPerObjectPSStartRegister()\n : this.GetPerObjectVSStartRegister();\n }\n\n /** Carbon's `Tr2RenderContextEnum::PIXEL_SHADER`, the one stage that differs. */\n static PIXEL_SHADER = 1;\n}\n"],"names":["PER_FRAME_VS","PER_FRAME_PS","EFFECT_CONSTANTS","PER_OBJECT_VS","PER_OBJECT_PS","_Tr2Renderer","_identity","Tr2Renderer","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","GetPerFrameVSStartRegister","GetPerFramePSStartRegister","GetPerObjectVSStartRegister","GetPerObjectPSStartRegister","GetPerObjectRTVertexBufferDataRegister","GetPerObjectVSGUIStartRegister","GetPerObjectStartRegister","shaderType","PIXEL_SHADER","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2Renderer.js","sources":["../../../../src/trinity/core/Tr2Renderer.js"],"sourcesContent":["// Source: trinity/trinity/Tr2Renderer.h\n// Source: trinity/trinity/Tr2Renderer.cpp\n//\n// The renderer-wide facade: the constant-buffer register map, the frame clock,\n// and the projection and view state every pass reads.\n//\n// ONE DELIBERATE DEPARTURE, DECIDED BY THE OPERATOR ON 2026-09-05. Carbon's\n// `Tr2Renderer` is entirely STATIC - a process-wide singleton. Ours is an\n// instance the composition root creates and hands out. Two reasons, and the\n// second is the one that matters:\n//\n// - a page is unlikely to want two backends at once, so the singleton is not\n// buying much;\n// - but this runtime already supports more than one library instance with its\n// own resource manager, and a static renderer would silently make the second\n// one share the first one's frame clock and projection. That is a bug nobody\n// would look for.\n//\n// The composition root creating one is not the same as the composition root\n// BECOMING a renderer, which `runtime/docs/core/roadmap.md` rules out: this\n// class holds GPU-free state and the library composes it, exactly as it\n// composes a resource manager it does not implement.\n//\n// WHY THE REGISTER MAP IS HERE AND NOT IN AN ENGINE. Carbon keeps these six\n// numbers as `Tr2Renderer` statics (`Tr2Renderer.cpp:38-43`), because they are\n// the contract between Trinity and EVERY backend rather than one backend's\n// detail. They lived in the WebGPU engine until now, where a second backend\n// could not have reached them without copying them.\n\nimport { carbon, impl, type } from \"#schema\";\nimport { Tr2Blitter } from \"./Tr2Blitter.js\";\nimport { AdjustTextureCoordsToViewport } from \"./Tr2RenderUtils.js\";\n\n\n/** perFrameVS, owned by the scene. */\nexport const PER_FRAME_VS = 1;\n\n/** perFramePS, owned by the scene. */\nexport const PER_FRAME_PS = 2;\n\n/** The effect's own constants. */\nexport const EFFECT_CONSTANTS = 0;\n\n/** perObjectVS, owned by the object being drawn. */\nexport const PER_OBJECT_VS = 3;\n\n/** perObjectPS, owned by the object being drawn. */\nexport const PER_OBJECT_PS = 4;\n\n// THERE WAS A REVERSE MAP HERE AND IT IS GONE. A register-number-to-name table\n// looked necessary because a caller reading a pipeline's DECLARED bindings has a\n// number and wants to know what it means. It is not: the numbers are fixed and\n// this class owns them, so the question is answered by comparing against the\n// accessors below - which is how Carbon answers it, and why Carbon has no such\n// table. The names only ever reached a diagnostic string.\n\n\n/**\n * Renderer-wide state: the register map now, the frame clock and camera later.\n *\n * NOT A `CjsModel`, and the reason is CATEGORY RATHER THAN COST. Operator,\n * 2026-09-05: \"CjsModel is only for things that actually need to hydrate\", and\n * \"there should be little cost in making something a CjsModel\". Both are true\n * at once, and the second is why the first has to be stated as a rule - if the\n * base were expensive, nobody would need telling.\n *\n * A model is an object that arrives from a `.red`/`.black` values graph. This\n * one is composed at runtime by the library, carries no `@io` field, and is\n * named as a type by nothing, so a hydration identity describes something that\n * can never happen. The same goes for the abstraction layer and the resource\n * and GPU classes - none of them is ever part of a serialized object. The AL\n * family already complies.\n *\n * IT IS STILL DECORATED, and that is the point worth keeping straight:\n * decorators are not only hydration. `@type.define` gives the class an\n * identity that tooling and the UI read, and `@carbon.method` is how the\n * parity audit sees a method at all. Dropping `CjsModel` costs neither.\n */\n@type.define({ className: \"Tr2Renderer\", family: \"trinityCore\" })\nexport class Tr2Renderer\n{\n // Carbon's header calls these the defaults \"for the currently set shader\n // model\" and they are mutable statics, but nothing ever reassigns them, so\n // they are constants in practice. Kept as fields rather than inlined so a\n // shader model that did move them has somewhere to move them to.\n\n /** s_perFrameVSStartRegister */\n #perFrameVSStartRegister = PER_FRAME_VS;\n\n /** s_perFramePSStartRegister */\n #perFramePSStartRegister = PER_FRAME_PS;\n\n /** s_perObjectVSStartRegister */\n #perObjectVSStartRegister = PER_OBJECT_VS;\n\n /** s_perObjectPSStartRegister */\n #perObjectPSStartRegister = PER_OBJECT_PS;\n\n /** s_perObjectRTVertexBufferDataRegister */\n #perObjectRTVertexBufferDataRegister = 5;\n\n /** s_perObjectVSGUIStartRegister */\n #perObjectVSGUIStartRegister = 6;\n\n /**\n * The register the scene's per-frame vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFrameVSStartRegister()\n {\n return this.#perFrameVSStartRegister;\n }\n\n /**\n * The register the scene's per-frame pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerFramePSStartRegister()\n {\n return this.#perFramePSStartRegister;\n }\n\n /**\n * The register an object's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSStartRegister()\n {\n return this.#perObjectVSStartRegister;\n }\n\n /**\n * The register an object's per-object pixel constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectPSStartRegister()\n {\n return this.#perObjectPSStartRegister;\n }\n\n /**\n * The register ray-traced vertex-buffer data binds at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectRTVertexBufferDataRegister()\n {\n return this.#perObjectRTVertexBufferDataRegister;\n }\n\n /**\n * The register the GUI's per-object vertex constants bind at.\n *\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.implemented\n GetPerObjectVSGUIStartRegister()\n {\n return this.#perObjectVSGUIStartRegister;\n }\n\n /**\n * The per-object register for one shader stage.\n *\n * Carbon's overload pair collapses to a default: the pixel stage has its own\n * register and every other stage shares the vertex one\n * (`Tr2Renderer.h:65-81`).\n *\n * @param {number} [shaderType] A Carbon `ShaderType` value.\n * @returns {number} A constant-buffer register.\n */\n @carbon.method\n @impl.adapted\n GetPerObjectStartRegister(shaderType = 0)\n {\n return shaderType === Tr2Renderer.PIXEL_SHADER\n ? this.GetPerObjectPSStartRegister()\n : this.GetPerObjectVSStartRegister();\n }\n\n /**\n * Carbon's `s_blitter`: the blitter every screen-space draw runs through.\n *\n * An INSTANCE field rather than Carbon's module global, for the reason this\n * whole class is an instance - a second library instance must not silently\n * share the first one's blitter. Created by `PrepareDeviceResources`, and\n * null until then, which is why every draw below guards on it exactly as\n * Carbon's `if( s_blitter )` does.\n */\n #blitter = null;\n\n /**\n * Creates the device-dependent resources, the blitter among them.\n *\n * Carbon `PrepareDeviceResources` (`Tr2Renderer.cpp:1273-1281`), which makes\n * the blitter HERE rather than at startup and says why: it loads an effect,\n * so the device has to exist and the shader model has to be settled first.\n * That holds for us too - there is always a device by this point, the stub\n * backend included, which is a real device and not an absence.\n *\n * Carbon also allocates its quad vertex and index buffers and its debug line\n * set here. Those are not ported; this creates the blitter only.\n *\n * @param {object} [renderContext] The context to prepare the blitter against.\n * @returns {Tr2Blitter} The renderer's blitter.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon also allocates the quad vertex and index buffers and the debug line set here; only the blitter is ported.\")\n PrepareDeviceResources(renderContext = null)\n {\n this.#blitter ??= new Tr2Blitter();\n if (renderContext) this.#blitter.PrepareResources(renderContext);\n return this.#blitter;\n }\n\n /**\n * Returns the blitter, or null before `PrepareDeviceResources` has run.\n *\n * @returns {Tr2Blitter|null} The renderer's blitter.\n */\n GetBlitter()\n {\n return this.#blitter;\n }\n\n /**\n * Draws a fullscreen quad with a material.\n *\n * Carbon `DrawScreenQuad( renderContext, Tr2Material* )`\n * (`Tr2Renderer.cpp:1006-1012`).\n *\n * TEXTURE COORDINATES ARE NOT VIEWPORT-CORRECTED HERE, and that is Carbon's\n * behaviour rather than an omission: only the `DrawTexture` family adjusts\n * them. `AdjustTextureCoordsToViewport` records what the correction is and\n * why folding it into the blitter would move every screen-quad draw.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} material The material to draw with.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.implemented\n DrawScreenQuad(renderContext, material)\n {\n if (!this.#blitter) return false;\n return this.#blitter.Draw(renderContext, material);\n }\n\n /**\n * Draws a quad with an effect over an explicit screen rectangle.\n *\n * Carbon `DrawScreenQuad( renderContext, Tr2Effect*, topLeft, bottomRight )`\n * (`Tr2Renderer.cpp:1014-1020`), which passes the full [0,1] TEXTURE range and\n * the caller's corners as the VERTEX rectangle. Carbon distinguishes the two\n * by overload; JavaScript has no overloads, so the rectangle form is named.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} effect The effect to draw with.\n * @param {Array<number>} topLeft Top-left vertex corner.\n * @param {Array<number>} bottomRight Bottom-right vertex corner.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon distinguishes this from the material form by overload; JavaScript has none, so the rectangle form carries its own name.\")\n DrawScreenQuadRect(renderContext, effect, topLeft, bottomRight)\n {\n if (!this.#blitter) return false;\n return this.#blitter.Draw(renderContext, effect, null, {\n tlTexCoord: [ 0, 0 ],\n brTexCoord: [ 1, 1 ],\n tlVertexCoord: topLeft,\n brVertexCoord: bottomRight\n });\n }\n\n /**\n * Draws the quad in camera space rather than screen space.\n *\n * Carbon `DrawCameraSpaceScreenQuad` (`Tr2Renderer.cpp:1022-1028`).\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} shader The shader state interface to run.\n * @param {object} material The material supplying its parameters.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.implemented\n DrawCameraSpaceScreenQuad(renderContext, shader, material)\n {\n if (!this.#blitter) return false;\n return this.#blitter.DrawInCameraSpace(renderContext, shader, material);\n }\n\n /**\n * Draws a unit quad with the given material and no texture.\n *\n * Carbon `DrawFullScreenWithShader` (`Tr2Renderer.cpp:768-775`).\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} material The material to draw with.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.implemented\n DrawFullScreenWithShader(renderContext, material)\n {\n if (!this.#blitter) return false;\n return this.#blitter.Draw(renderContext, material);\n }\n\n /**\n * Blits a texture, correcting its coordinates for the device viewport.\n *\n * Carbon's four `DrawTexture` overloads (`Tr2Renderer.cpp:750-834`) collapse\n * into one: the material is optional, and without one the filter selects a\n * built-in blit effect. THIS family adjusts the texture coordinates where\n * `DrawScreenQuad` does not - Carbon draws that distinction and it is load\n * bearing.\n *\n * @param {object} renderContext The context to draw through.\n * @param {object} texture The texture to blit.\n * @param {object} [options] `material`, `tlTexCoord`, `brTexCoord`, `filter`.\n * @returns {boolean} Whether the quad was drawn.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon's four overloads differ only in an optional material and optional coordinates, which are defaults here.\")\n DrawTexture(renderContext, texture, options = {})\n {\n if (!this.#blitter) return false;\n\n const { tlTexCoord, brTexCoord } = AdjustTextureCoordsToViewport(\n renderContext,\n options.tlTexCoord ?? [ 0, 0 ],\n options.brTexCoord ?? [ 1, 1 ]\n );\n\n return options.material\n ? this.#blitter.Draw(renderContext, options.material, texture, { tlTexCoord, brTexCoord })\n : this.#blitter.DrawTexture(renderContext, texture, { tlTexCoord, brTexCoord }, options.filter);\n }\n\n /** Carbon's `Tr2RenderContextEnum::PIXEL_SHADER`, the one stage that differs. */\n static PIXEL_SHADER = 1;\n}\n"],"names":["PER_FRAME_VS","PER_FRAME_PS","EFFECT_CONSTANTS","PER_OBJECT_VS","PER_OBJECT_PS","_Tr2Renderer","_identity","Tr2Renderer","e","_initProto","c","_initClass","_applyDecs","type","define","className","family","carbon","method","impl","implemented","adapted","reason","GetPerFrameVSStartRegister","GetPerFramePSStartRegister","GetPerObjectVSStartRegister","GetPerObjectPSStartRegister","GetPerObjectRTVertexBufferDataRegister","GetPerObjectVSGUIStartRegister","GetPerObjectStartRegister","shaderType","PIXEL_SHADER","PrepareDeviceResources","renderContext","Tr2Blitter","PrepareResources","GetBlitter","DrawScreenQuad","material","Draw","DrawScreenQuadRect","effect","topLeft","bottomRight","tlTexCoord","brTexCoord","tlVertexCoord","brVertexCoord","DrawCameraSpaceScreenQuad","shader","DrawInCameraSpace","DrawFullScreenWithShader","DrawTexture","texture","options","AdjustTextureCoordsToViewport","filter","constructor"],"mappings":"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"}
@@ -4,8 +4,9 @@ import { CjsModel } from '#model';
4
4
  import { mat4 } from '#math/mat4';
5
5
  import { vec3 } from '#math/vec3';
6
6
  import { vec4 } from '#math/vec4';
7
+ import { PixelFormat, Tr2GpuUsage, TextureType } from '#consts/render-context';
7
8
  import { Tr2Effect as _Tr2Effect } from '../shader/Tr2Effect.js';
8
- import { Tr2Denoiser as _Tr2Denoiser } from '../generated/trinityCore/Tr2Denoiser.js';
9
+ import { Tr2Denoiser as _Tr2Denoiser } from './Tr2Denoiser.js';
9
10
  import { Tr2VariableStore as _Tr2VariableStore } from './variable/Tr2VariableStore.js';
10
11
  import { TriFrustumOrtho } from './view/TriFrustumOrtho.js';
11
12
 
@@ -54,8 +55,14 @@ function createSplitSetup() {
54
55
  function createShadowEffect() {
55
56
  const effect = new _Tr2Effect();
56
57
  effect.SetEffectPathName("res:/graphics/effect/managed/space/system/ShadowDepth.fx");
57
- effect.AddResourceTexture2D("EveSpaceSceneCascadedShadowMap");
58
- effect.AddResourceTexture2D("DepthMap");
58
+
59
+ // DECLARED BY CLEARING, which is Carbon (`cpp:41-42`), not by
60
+ // AddResourceTexture2D. The difference is not cosmetic: a res-path slot and a
61
+ // runtime slot are different classes, so declaring the res-path kind here left
62
+ // SetParameter unable to find a runtime slot to update - it added a new one on
63
+ // every call, and a per-frame resolve grew the resource list without bound.
64
+ effect.SetParameter("EveSpaceSceneCascadedShadowMap", null);
65
+ effect.SetParameter("DepthMap", null);
59
66
  return effect;
60
67
  }
61
68
 
@@ -123,7 +130,7 @@ new class extends _identity {
123
130
  } = _applyDecs2311(this, [type.define({
124
131
  className: "Tr2ShadowMap",
125
132
  family: "trinityCore"
126
- })], [[[io, io.notify, io, io.persist, type, type.int32, void 0, type.enum("ShadowSplitMode")], 16, "shadowSplitMode"], [[io, io.readwrite, void 0, type.objectRef("Tr2Denoiser")], 16, "denoiser"], [[io, io.readwrite, void 0, type.objectRef("Tr2Effect")], 16, "cascadeEffect"], [[io, io.notify, io, io.read, type, type.uint32], 16, "splitCount"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "debugColorSplit"], [[io, io.readwrite, type, type.float32], 16, "SplitNr15"], [[io, io.readwrite, type, type.float32], 16, "SplitNr8"], [[io, io.readwrite, type, type.float32], 16, "SplitNr6"], [[io, io.readwrite, type, type.float32], 16, "SplitNr5"], [[io, io.readwrite, type, type.float32], 16, "SplitNr14"], [[io, io.readwrite, type, type.float32], 16, "SplitNr10"], [[io, io.readwrite, type, type.float32], 16, "SplitNr13"], [[io, io.readwrite, type, type.float32], 16, "SplitNr4"], [[io, io.readwrite, type, type.float32], 16, "SplitNr3"], [[io, io.readwrite, type, type.float32], 16, "SplitNr7"], [[io, io.readwrite, type, type.float32], 16, "SplitNr1"], [[io, io.readwrite, type, type.float32], 16, "SplitNr9"], [[io, io.readwrite, type, type.float32], 16, "SplitNr0"], [[io, io.readwrite, type, type.float32], 16, "SplitNr11"], [[io, io.readwrite, type, type.float32], 16, "SplitNr12"], [[io, io.readwrite, type, type.float32], 16, "SplitNr2"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "disableShimmer"], [[io, io.readwrite, type, type.uint32], 16, "size"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The fixed PerSplitData arrays make split counts above Carbon's 16-slot capacity fail immediately instead of corrupting adjacent native memory.")], 18, "Setup"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CjsModel notifications expose settled state rather than Be::Var identity, so this compares the two notify-backed values against their cached state.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "ShouldUseDenoiser"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private denoiser-use decision without reading implementation fields.")], 18, "GetUseDenoiser"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSplitValues"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The caller supplies owned JS output containers; matrix bytes stay in logical gl-matrix form and are never pre-transposed.")], 26, "CalculateAABB"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon stores Transpose(lightViewProjection) and returns SplitSetup by value; Trinity stores the logical matrix for RawData's terminal transpose and reuses one allocation-free result per split.")], 18, "SetupShadowSplit"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("GPU pool allocation is realized by the nominal shadow executor installed on the render context.")], 18, "PrepareShadowRendering"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Viewport and physical depth-target state are engine realization details.")], 18, "BeginShadowRendering"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Physical render-state restoration is owned by the engine executor.")], 18, "EndShadowRendering"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The engine owns temporary targets, fullscreen drawing and physical denoising.")], 18, "DrawToShadowMapResult"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowSplitCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowMapSize"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private fixed atlas width without reading implementation fields.")], 18, "GetShadowMapWidth"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private fixed atlas height without reading implementation fields.")], 18, "GetShadowMapHeight"], [[impl, impl.custom, void 0, impl.reason("The scene needs a nominal direct accessor to Carbon's public PerSplitData without structural probing.")], 18, "GetPerSplitData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDebugSplitValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDebugColors"]], 0, void 0, CjsModel));
133
+ })], [[[io, io.notify, io, io.persist, type, type.int32, void 0, type.enum("ShadowSplitMode")], 16, "shadowSplitMode"], [[io, io.readwrite, void 0, type.objectRef("Tr2Denoiser")], 16, "denoiser"], [[io, io.readwrite, void 0, type.objectRef("Tr2Effect")], 16, "cascadeEffect"], [[io, io.notify, io, io.read, type, type.uint32], 16, "splitCount"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "debugColorSplit"], [[io, io.readwrite, type, type.float32], 16, "SplitNr15"], [[io, io.readwrite, type, type.float32], 16, "SplitNr8"], [[io, io.readwrite, type, type.float32], 16, "SplitNr6"], [[io, io.readwrite, type, type.float32], 16, "SplitNr5"], [[io, io.readwrite, type, type.float32], 16, "SplitNr14"], [[io, io.readwrite, type, type.float32], 16, "SplitNr10"], [[io, io.readwrite, type, type.float32], 16, "SplitNr13"], [[io, io.readwrite, type, type.float32], 16, "SplitNr4"], [[io, io.readwrite, type, type.float32], 16, "SplitNr3"], [[io, io.readwrite, type, type.float32], 16, "SplitNr7"], [[io, io.readwrite, type, type.float32], 16, "SplitNr1"], [[io, io.readwrite, type, type.float32], 16, "SplitNr9"], [[io, io.readwrite, type, type.float32], 16, "SplitNr0"], [[io, io.readwrite, type, type.float32], 16, "SplitNr11"], [[io, io.readwrite, type, type.float32], 16, "SplitNr12"], [[io, io.readwrite, type, type.float32], 16, "SplitNr2"], [[io, io.notify, io, io.readwrite, type, type.boolean], 16, "disableShimmer"], [[io, io.readwrite, type, type.uint32], 16, "size"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The fixed PerSplitData arrays make split counts above Carbon's 16-slot capacity fail immediately instead of corrupting adjacent native memory.")], 18, "Setup"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("CjsModel notifications expose settled state rather than Be::Var identity, so this compares the two notify-backed values against their cached state.")], 18, "OnModified"], [[carbon, carbon.method, impl, impl.implemented], 18, "ShouldUseDenoiser"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private denoiser-use decision without reading implementation fields.")], 18, "GetUseDenoiser"], [[carbon, carbon.method, impl, impl.implemented], 18, "UpdateSplitValues"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("The caller supplies owned JS output containers; matrix bytes stay in logical gl-matrix form and are never pre-transposed.")], 26, "CalculateAABB"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon stores Transpose(lightViewProjection) and returns SplitSetup by value; Trinity stores the logical matrix for RawData's terminal transpose and reuses one allocation-free result per split.")], 18, "SetupShadowSplit"], [[carbon, carbon.method, impl, impl.implemented], 18, "PrepareShadowRendering"], [[carbon, carbon.method, impl, impl.implemented], 18, "BeginShadowRendering"], [[carbon, carbon.method, impl, impl.implemented], 18, "EndShadowRendering"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon reaches the blitter and the reversed-depth projection through static Tr2Renderer; ours are an instance and the render context, so the renderer is passed in.")], 18, "DrawToShadowMapResult"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowSplitCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowMapSize"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private fixed atlas width without reading implementation fields.")], 18, "GetShadowMapWidth"], [[impl, impl.custom, void 0, impl.reason("The nominal engine executor needs Carbon's private fixed atlas height without reading implementation fields.")], 18, "GetShadowMapHeight"], [[impl, impl.custom, void 0, impl.reason("The scene needs a nominal direct accessor to Carbon's public PerSplitData without structural probing.")], 18, "GetPerSplitData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowEffect"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDebugSplitValue"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDebugColors"]], 0, void 0, CjsModel));
127
134
  _initStatic(this);
128
135
  }
129
136
  shadowSplitMode = (_initProto(this), _init_shadowSplitMode(this, 0));
@@ -331,24 +338,138 @@ new class extends _identity {
331
338
  return setup;
332
339
  }
333
340
 
334
- /** Delegates physical atlas allocation and setup to the installed engine. */
335
- PrepareShadowRendering(renderContext) {
336
- return renderContext.GetShadowMapExecutor().PrepareShadowRendering(this, renderContext);
341
+ /**
342
+ * Allocates the cascaded depth surface and makes it the render target.
343
+ *
344
+ * @param {object} gpuResourcePool The pool to borrow the surface from.
345
+ * @param {object} renderContext The context to set state on.
346
+ * @returns {object|null} The borrowed depth texture, or null when the pool
347
+ * could not supply one - which Carbon notes happens on a lost device.
348
+ */
349
+ PrepareShadowRendering(gpuResourcePool, renderContext) {
350
+ const cascadedShadowDepth = gpuResourcePool.GetTempTexture("cascadedShadowDepth", {
351
+ width: this.size * this.#width,
352
+ height: this.size * this.#height,
353
+ format: PixelFormat.PIXEL_FORMAT_D32_FLOAT,
354
+ gpuUsage: Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE
355
+ });
356
+ if (!cascadedShadowDepth || !cascadedShadowDepth.IsValid()) return null;
357
+ const esm = renderContext.GetEffectStateManager();
358
+
359
+ // The depth stencil IS the shadow map, so the colour target is pushed EMPTY -
360
+ // Carbon passes a default-constructed Tr2TextureAL and comments it "empty
361
+ // texture" (`cpp:238`). Null is that argument here. Omitting it would only
362
+ // save the slot and leave the scene's colour target bound underneath the
363
+ // whole shadow pass, which is what this line used to do.
364
+ esm.PushViewport();
365
+ esm.PushRenderTarget(null);
366
+ esm.PushDepthStencilBuffer(cascadedShadowDepth);
367
+ esm.UpdateRenderTargetViewport(cascadedShadowDepth.Get().GetWidth(), cascadedShadowDepth.Get().GetHeight());
368
+
369
+ // Carbon wants a clean depth buffer for this pass and says so.
370
+ renderContext.Clear({
371
+ depth: true,
372
+ clearDepth: 1,
373
+ clearStencil: 0
374
+ });
375
+ renderContext.SetReadOnlyDepth(false);
376
+ return cascadedShadowDepth;
337
377
  }
338
378
 
339
- /** Delegates one atlas-cell render-pass begin to the installed engine. */
379
+ /**
380
+ * Points the viewport at one split's cell in the atlas.
381
+ *
382
+ * Eight cells per row: splits 0-7 fill the top row and 8 onward wrap to a
383
+ * second, which is why the row index is `splitIndex % 8` and the y offset is
384
+ * either zero or one cell down.
385
+ *
386
+ * @param {object} renderContext The context to set the viewport on.
387
+ * @param {number} splitIndex Which cascade split.
388
+ */
340
389
  BeginShadowRendering(renderContext, splitIndex) {
341
- return renderContext.GetShadowMapExecutor().BeginShadowRendering(this, splitIndex, renderContext);
390
+ const esm = renderContext.GetEffectStateManager();
391
+ const topRow = splitIndex < 8;
392
+ esm.SetViewport({
393
+ width: this.size,
394
+ height: this.size,
395
+ x: (topRow ? splitIndex : splitIndex % 8) * this.size,
396
+ y: topRow ? 0 : this.size,
397
+ minZ: 0,
398
+ maxZ: 1
399
+ });
342
400
  }
343
401
 
344
- /** Delegates shadow rendering teardown to the installed engine. */
402
+ /**
403
+ * Unwinds everything `PrepareShadowRendering` pushed, in reverse.
404
+ *
405
+ * @param {object} renderContext The context to restore.
406
+ */
345
407
  EndShadowRendering(renderContext) {
346
- return renderContext.GetShadowMapExecutor().EndShadowRendering(this, renderContext);
408
+ renderContext.SetReadOnlyDepth(false);
409
+ const esm = renderContext.GetEffectStateManager();
410
+ esm.PopRenderTarget();
411
+ esm.PopDepthStencilBuffer();
412
+ esm.PopViewport();
347
413
  }
348
414
 
349
- /** Delegates shadow-result realization and optional denoising to the engine. */
350
- DrawToShadowMapResult(renderContext, depthMap, cascadedShadowDepth, upscaling) {
351
- return renderContext.GetShadowMapExecutor().DrawToShadowMapResult(this, depthMap, cascadedShadowDepth, upscaling, renderContext);
415
+ /**
416
+ * Resolves the cascaded depth into a screen-space shadow factor.
417
+ *
418
+ * Carbon `DrawToShadowMapResult` (`cpp:278-305`). Borrow an R8 target the
419
+ * size of the scene depth, bind it, run the shadow effect over a fullscreen
420
+ * quad with the atlas and the depth map bound, then optionally denoise.
421
+ *
422
+ * THE DEPTH BUFFER IS PUSHED EMPTY, not merely saved. Carbon passes a
423
+ * default-constructed Tr2TextureAL (`cpp:285`), which unbinds it - this pass
424
+ * writes a full-screen factor and must not be depth-tested against the very
425
+ * buffer it is reading.
426
+ *
427
+ * THE EFFECT'S TEXTURES ARE CLEARED IMMEDIATELY AFTER THE DRAW, as Carbon
428
+ * does (`cpp:290-291`), so a later pass cannot inherit the atlas or the
429
+ * scene depth from this one.
430
+ *
431
+ * `cascadeEffect` is Carbon's `m_shadowEffect` under our name - same
432
+ * ShadowDepth.fx path, same two parameters (`cpp:39-42`).
433
+ *
434
+ * @param {object} renderContext The context to draw against.
435
+ * @param {object} gpuResourcePool The pool to borrow the result target from.
436
+ * @param {object} depthMap The scene depth.
437
+ * @param {object} cascadedShadowDepth The atlas produced by this pass.
438
+ * @param {number} upscaling The denoiser's upscaling factor.
439
+ * @param {object} renderer The renderer owning the blitter.
440
+ * @returns {object|null} The shadow-factor target, or null without a pool.
441
+ */
442
+ DrawToShadowMapResult(renderContext, gpuResourcePool, depthMap, cascadedShadowDepth, upscaling, renderer) {
443
+ let shadowMapResult = gpuResourcePool.GetTempTexture("shadowMapResult", {
444
+ type: TextureType.TEX_TYPE_2D,
445
+ width: depthMap.GetWidth(),
446
+ height: depthMap.GetHeight(),
447
+ depth: 1,
448
+ mipCount: 1,
449
+ format: PixelFormat.PIXEL_FORMAT_R8_UNORM,
450
+ gpuUsage: Tr2GpuUsage.RENDER_TARGET | Tr2GpuUsage.SHADER_RESOURCE
451
+ });
452
+ const esm = renderContext.GetEffectStateManager();
453
+ esm.PushRenderTarget(shadowMapResult.Get());
454
+ esm.PushDepthStencilBuffer(null);
455
+ try {
456
+ this.cascadeEffect.SetParameter("EveSpaceSceneCascadedShadowMap", cascadedShadowDepth);
457
+ this.cascadeEffect.SetParameter("DepthMap", depthMap);
458
+ renderer.DrawScreenQuad(renderContext, this.cascadeEffect);
459
+ this.cascadeEffect.SetParameter("EveSpaceSceneCascadedShadowMap", null);
460
+ this.cascadeEffect.SetParameter("DepthMap", null);
461
+
462
+ // Carbon gates on all three (`cpp:296`). Setup() nulls the denoiser when
463
+ // it is disabled, so the useDenoiser flag and a present denoiser are not
464
+ // the same question.
465
+ if (this.denoiser && this.#useDenoiser && depthMap.IsValid()) {
466
+ shadowMapResult = this.denoiser.Apply(shadowMapResult, depthMap, null, renderContext.GetReversedDepthProjectionTransform(), upscaling, gpuResourcePool, renderContext, renderer);
467
+ }
468
+ return shadowMapResult;
469
+ } finally {
470
+ esm.PopRenderTarget();
471
+ esm.PopDepthStencilBuffer();
472
+ }
352
473
  }
353
474
  /** Returns the number of active cascade splits. */
354
475
  GetShadowSplitCount() {