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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2ShadowMap.js","sources":["../../../../src/trinity/core/Tr2ShadowMap.js"],"sourcesContent":["// Source: trinity/trinity/Tr2ShadowMap.h\n// trinity/trinity/Tr2ShadowMap.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { Tr2Effect } from \"../shader/Tr2Effect.js\";\r\nimport { Tr2Denoiser } from \"../generated/trinityCore/Tr2Denoiser.js\";\r\nimport { Tr2VariableStore } from \"./variable/Tr2VariableStore.js\";\r\nimport { TriFrustumOrtho } from \"./view/TriFrustumOrtho.js\";\r\n\r\nconst SHADOW_FRUSTUM_COUNT = 16;\r\nconst SHADOW_MAP_WIDTH = 8;\r\nconst SHADOW_MAP_HEIGHT = 2;\r\n\r\nconst STATIC_SPLITS = Object.freeze([\r\n 25, 75, 150, 300,\r\n 600, 1200, 2400, 4800,\r\n 9600, 19200, 38400, 76800,\r\n 153600, 307200, 614400, 1228800\r\n]);\r\n\r\nconst DX_UNIT_CUBE = Object.freeze([\r\n Object.freeze([ -1, -1, 0 ]), Object.freeze([ -1, 1, 0 ]),\r\n Object.freeze([ 1, 1, 0 ]), Object.freeze([ 1, -1, 0 ]),\r\n Object.freeze([ -1, -1, 1 ]), Object.freeze([ -1, 1, 1 ]),\r\n Object.freeze([ 1, 1, 1 ]), Object.freeze([ 1, -1, 1 ])\r\n]);\r\n\r\nconst PROJECTION_SCRATCH = mat4.create();\r\nconst INVERSE_PROJECTION_SCRATCH = mat4.create();\r\nconst BASIS_SCRATCH = mat4.create();\r\nconst LIGHT_VIEW_SCRATCH = mat4.create();\r\nconst ORTHO_SCRATCH = mat4.create();\r\nconst TRANSFORMED_SCRATCH = vec4.create();\r\nconst WORLD_SCRATCH = vec3.create();\r\nconst LIGHT_DIRECTION_SCRATCH = vec3.create();\r\n\r\nfunction createPerSplitData()\r\n{\r\n return {\r\n ShadowMapValues: Array.from({ length: 4 }, () => vec4.create()),\r\n ShadowMatrixVal: Array.from({ length: SHADOW_FRUSTUM_COUNT }, () => mat4.create()),\r\n CascadeRanges: Array.from({ length: SHADOW_FRUSTUM_COUNT }, () => vec4.create()),\r\n SplitInfo: vec4.create()\r\n };\r\n}\r\n\r\nfunction createSplitSetup()\r\n{\r\n return {\r\n shadowFrustum: new TriFrustumOrtho(),\r\n lightViewProjection: mat4.create(),\r\n invViewProj: mat4.create(),\r\n aabb: { min: vec3.create(), max: vec3.create() },\r\n corners: Array.from({ length: 8 }, () => vec3.create())\r\n };\r\n}\r\n\r\nfunction createShadowEffect()\r\n{\r\n const effect = new Tr2Effect();\r\n effect.SetEffectPathName(\"res:/graphics/effect/managed/space/system/ShadowDepth.fx\");\r\n effect.AddResourceTexture2D(\"EveSpaceSceneCascadedShadowMap\");\r\n effect.AddResourceTexture2D(\"DepthMap\");\r\n return effect;\r\n}\r\n\r\n/** Carbon PerspectiveOffCenterMatrix: D3D zero-to-one depth. */\r\nfunction writePerspectiveOffCenter(out, left, right, bottom, top, near, far)\r\n{\r\n out.fill(0);\r\n out[0] = 2 * near / (right - left);\r\n out[5] = -2 * near / (bottom - top);\r\n out[8] = 1 + 2 * left / (right - left);\r\n out[9] = -1 - 2 * top / (bottom - top);\r\n out[10] = far / (near - far);\r\n out[11] = -1;\r\n out[14] = near * far / (near - far);\r\n return out;\r\n}\r\n\r\n/** Carbon OrthoNormalBasisZ. Flat matrix bytes match gl-matrix storage. */\r\nfunction writeOrthoNormalBasisZ(out, z)\r\n{\r\n mat4.identity(out);\r\n const length = Math.hypot(z[0], z[1], z[2]);\r\n const zx = z[0] / length;\r\n const zy = z[1] / length;\r\n const zz = z[2] / length;\r\n out[8] = zx;\r\n out[9] = zy;\r\n out[10] = zz;\r\n\r\n const xx = Math.abs(zx) > 0.99 ? 0 : 1;\r\n const xy = Math.abs(zx) > 0.99 ? 1 : 0;\r\n let yx = xy * zz;\r\n let yy = -xx * zz;\r\n let yz = xx * zy - xy * zx;\r\n const yLength = Math.hypot(yx, yy, yz);\r\n yx /= yLength;\r\n yy /= yLength;\r\n yz /= yLength;\r\n\r\n out[4] = yx;\r\n out[5] = yy;\r\n out[6] = yz;\r\n out[0] = yy * zz - yz * zy;\r\n out[1] = yz * zx - yx * zz;\r\n out[2] = yx * zy - yy * zx;\r\n return out;\r\n}\r\n\r\n/** Carbon OrthoOffCenterMatrix: D3D zero-to-one depth. */\r\nfunction writeOrthoOffCenter(out, left, right, bottom, top, near, far)\r\n{\r\n mat4.identity(out);\r\n out[0] = 2 / (right - left);\r\n out[5] = 2 / (top - bottom);\r\n out[10] = 1 / (near - far);\r\n out[12] = -1 - 2 * left / (right - left);\r\n out[13] = 1 + 2 * top / (bottom - top);\r\n out[14] = near / (near - far);\r\n return out;\r\n}\r\n\r\n/** Cascaded-shadow split producer; engines realize only its GPU operations. */\r\n@type.define({ className: \"Tr2ShadowMap\", family: \"trinityCore\" })\r\nexport class Tr2ShadowMap extends CjsModel\r\n{\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"ShadowSplitMode\")\r\n shadowSplitMode = 0;\r\n\r\n @io.readwrite\r\n @type.objectRef(\"Tr2Denoiser\")\r\n denoiser = new Tr2Denoiser();\r\n\r\n @io.readwrite\r\n @type.objectRef(\"Tr2Effect\")\r\n cascadeEffect = createShadowEffect();\r\n\r\n @io.notify\r\n @io.read\r\n @type.uint32\r\n splitCount = SHADOW_FRUSTUM_COUNT;\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n debugColorSplit = false;\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr15 = STATIC_SPLITS[15];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr8 = STATIC_SPLITS[8];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr6 = STATIC_SPLITS[6];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr5 = STATIC_SPLITS[5];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr14 = STATIC_SPLITS[14];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr10 = STATIC_SPLITS[10];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr13 = STATIC_SPLITS[13];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr4 = STATIC_SPLITS[4];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr3 = STATIC_SPLITS[3];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr7 = STATIC_SPLITS[7];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr1 = STATIC_SPLITS[1];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr9 = STATIC_SPLITS[9];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr0 = STATIC_SPLITS[0];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr11 = STATIC_SPLITS[11];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr12 = STATIC_SPLITS[12];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr2 = STATIC_SPLITS[2];\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n disableShimmer = true;\r\n\r\n @io.readwrite\r\n @type.uint32\r\n size = 2048;\r\n\r\n perSplitData = createPerSplitData();\r\n\r\n #width = SHADOW_MAP_WIDTH;\r\n\r\n #height = SHADOW_MAP_HEIGHT;\r\n\r\n #oldZFar = 0;\r\n\r\n #useDenoiser = true;\r\n\r\n #lastNearClip = 0;\r\n\r\n #lastFarClip = 0;\r\n\r\n #lastShadowSplitMode = Tr2ShadowMap.ShadowSplitMode.STATIC;\r\n\r\n #lastDebugColorSplit = false;\r\n\r\n #splitSetups = Array.from({ length: SHADOW_FRUSTUM_COUNT }, () => createSplitSetup());\r\n\r\n /** Creates the logical effect/denoiser state and reserves Carbon's globals. */\r\n constructor()\r\n {\r\n super();\r\n const store = Tr2VariableStore.GlobalStore();\r\n store.RegisterVariable(\"EveSpaceSceneShadowMap\");\r\n store.RegisterVariable(\"EveSpaceSceneCascadedShadowMap\");\r\n }\r\n\r\n /** Applies the atlas element size/count and the one-way denoiser disable. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The fixed PerSplitData arrays make split counts above Carbon's 16-slot capacity fail immediately instead of corrupting adjacent native memory.\")\r\n Setup(elementSize, elementCount, useDenoiser)\r\n {\r\n const nextSize = elementSize >>> 0;\r\n const nextCount = elementCount >>> 0;\r\n if (nextCount > SHADOW_FRUSTUM_COUNT)\r\n {\r\n throw new RangeError(`Tr2ShadowMap supports at most ${SHADOW_FRUSTUM_COUNT} splits.`);\r\n }\r\n if (this.size !== nextSize || this.splitCount !== nextCount)\r\n {\r\n this.size = nextSize;\r\n this.splitCount = nextCount;\r\n this.perSplitData.SplitInfo[0] = nextCount;\r\n }\r\n this.#useDenoiser = Boolean(useDenoiser);\r\n if (!this.#useDenoiser)\r\n {\r\n this.denoiser = null;\r\n }\r\n }\r\n\r\n /** Applies Carbon's notification consequences from the current owned state. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CjsModel notifications expose settled state rather than Be::Var identity, so this compares the two notify-backed values against their cached state.\")\r\n OnModified()\r\n {\r\n if (this.debugColorSplit !== this.#lastDebugColorSplit)\r\n {\r\n this.cascadeEffect.SetOption(\"SHADOW_DEBUG_MODE\", this.debugColorSplit ? \"SDM_COLOR\" : \"SDM_NONE\");\r\n this.#lastDebugColorSplit = this.debugColorSplit;\r\n }\r\n\r\n if (this.shadowSplitMode !== this.#lastShadowSplitMode)\r\n {\r\n if (this.shadowSplitMode === Tr2ShadowMap.ShadowSplitMode.STATIC)\r\n {\r\n this.#SetStaticShadowSplits();\r\n }\r\n else if (this.shadowSplitMode === Tr2ShadowMap.ShadowSplitMode.DYNAMIC)\r\n {\r\n this.#lastNearClip = 0;\r\n this.#lastFarClip = 0;\r\n }\r\n this.#lastShadowSplitMode = this.shadowSplitMode;\r\n }\r\n\r\n this.perSplitData.SplitInfo[0] = this.splitCount;\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Changes whether an existing denoiser should be used for future results. */\r\n ShouldUseDenoiser(value)\r\n {\r\n this.#useDenoiser = Boolean(value);\r\n }\r\n\r\n /** Engine-facing read of Carbon's private denoiser-use switch. */\r\n @impl.custom\r\n @impl.reason(\"The nominal engine executor needs Carbon's private denoiser-use decision without reading implementation fields.\")\r\n GetUseDenoiser()\r\n {\r\n return this.#useDenoiser;\r\n }\r\n\r\n /** Recomputes geometric dynamic split endpoints when the clip range changes. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSplitValues(nearClip, farClip)\r\n {\r\n if (this.shadowSplitMode !== Tr2ShadowMap.ShadowSplitMode.DYNAMIC) return;\r\n if (this.#lastNearClip === nearClip && this.#lastFarClip === farClip) return;\r\n\r\n this.#lastNearClip = nearClip;\r\n this.#lastFarClip = farClip;\r\n const logNear = Math.log2(nearClip);\r\n const logFar = Math.log2(farClip);\r\n for (let index = 0; index < this.splitCount; index++)\r\n {\r\n this.#SetSplitValue(index, Math.pow(2, logNear + (logFar - logNear) * ((index + 1) / this.splitCount)));\r\n }\r\n }\r\n\r\n /**\r\n * Transforms the D3D clip cube through projection inverse, inverse view and\r\n * light view, returning its light-space bounds and writing all eight corners.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The caller supplies owned JS output containers; matrix bytes stay in logical gl-matrix form and are never pre-transposed.\")\r\n static CalculateAABB(\r\n projection,\r\n invViewTransform,\r\n lightView,\r\n corners,\r\n out = { min: vec3.create(), max: vec3.create() }\r\n )\r\n {\r\n mat4.invert(INVERSE_PROJECTION_SCRATCH, projection);\r\n const min = out.min;\r\n const max = out.max;\r\n min[0] = min[1] = min[2] = Infinity;\r\n max[0] = max[1] = max[2] = -Infinity;\r\n\r\n for (let index = 0; index < DX_UNIT_CUBE.length; index++)\r\n {\r\n const source = DX_UNIT_CUBE[index];\r\n TRANSFORMED_SCRATCH[0] = source[0];\r\n TRANSFORMED_SCRATCH[1] = source[1];\r\n TRANSFORMED_SCRATCH[2] = source[2];\r\n TRANSFORMED_SCRATCH[3] = 1;\r\n vec4.transformMat4(TRANSFORMED_SCRATCH, TRANSFORMED_SCRATCH, INVERSE_PROJECTION_SCRATCH);\r\n const inverseW = 1 / TRANSFORMED_SCRATCH[3];\r\n WORLD_SCRATCH[0] = TRANSFORMED_SCRATCH[0] * inverseW;\r\n WORLD_SCRATCH[1] = TRANSFORMED_SCRATCH[1] * inverseW;\r\n WORLD_SCRATCH[2] = TRANSFORMED_SCRATCH[2] * inverseW;\r\n vec3.transformMat4(WORLD_SCRATCH, WORLD_SCRATCH, invViewTransform);\r\n vec3.transformMat4(corners[index], WORLD_SCRATCH, lightView);\r\n\r\n const corner = corners[index];\r\n min[0] = Math.min(min[0], corner[0]);\r\n min[1] = Math.min(min[1], corner[1]);\r\n min[2] = Math.min(min[2], corner[2]);\r\n max[0] = Math.max(max[0], corner[0]);\r\n max[1] = Math.max(max[1], corner[1]);\r\n max[2] = Math.max(max[2], corner[2]);\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Builds one logical light-view-projection split and its shader data.\r\n *\r\n * The returned object is an allocation-free borrowed view for this split and\r\n * is overwritten the next time the same split index is prepared.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @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.\")\r\n SetupShadowSplit(splitIndex, invViewTransform, lightDirection, zNear, leftDivNear, rightDivNear, topDivNear, bottomDivNear)\r\n {\r\n if (!Number.isInteger(splitIndex) || splitIndex < 0 || splitIndex >= this.splitCount)\r\n {\r\n throw new RangeError(\"Tr2ShadowMap.SetupShadowSplit received an invalid split index.\");\r\n }\r\n\r\n const setup = this.#splitSetups[splitIndex];\r\n if (splitIndex === 0) this.#oldZFar = zNear;\r\n const zFar = this.#GetSplitValue(splitIndex);\r\n this.perSplitData.ShadowMapValues[splitIndex >> 2][splitIndex & 3] = zFar;\r\n\r\n const left = leftDivNear * this.#oldZFar;\r\n const right = rightDivNear * this.#oldZFar;\r\n const top = topDivNear * this.#oldZFar;\r\n const bottom = bottomDivNear * this.#oldZFar;\r\n writePerspectiveOffCenter(PROJECTION_SCRATCH, left, right, bottom, top, this.#oldZFar, zFar);\r\n this.#oldZFar = zFar;\r\n\r\n mat4.invert(INVERSE_PROJECTION_SCRATCH, PROJECTION_SCRATCH);\r\n // Carbon inverseProjection * inverseView; gl-matrix reverses the operands.\r\n mat4.multiply(setup.invViewProj, invViewTransform, INVERSE_PROJECTION_SCRATCH);\r\n\r\n LIGHT_DIRECTION_SCRATCH[0] = -lightDirection[0];\r\n LIGHT_DIRECTION_SCRATCH[1] = -lightDirection[1];\r\n LIGHT_DIRECTION_SCRATCH[2] = -lightDirection[2];\r\n writeOrthoNormalBasisZ(BASIS_SCRATCH, LIGHT_DIRECTION_SCRATCH);\r\n mat4.invert(LIGHT_VIEW_SCRATCH, BASIS_SCRATCH);\r\n\r\n Tr2ShadowMap.CalculateAABB(\r\n PROJECTION_SCRATCH,\r\n invViewTransform,\r\n LIGHT_VIEW_SCRATCH,\r\n setup.corners,\r\n setup.aabb\r\n );\r\n\r\n const min = setup.aabb.min;\r\n const max = setup.aabb.max;\r\n if (this.disableShimmer)\r\n {\r\n let maxDistance = 0;\r\n for (let first = 0; first < setup.corners.length; first++)\r\n {\r\n for (let second = first + 1; second < setup.corners.length; second++)\r\n {\r\n const a = setup.corners[first];\r\n const b = setup.corners[second];\r\n maxDistance = Math.max(maxDistance, Math.hypot(a[0] - b[0], a[1] - b[1], a[2] - b[2]));\r\n }\r\n }\r\n\r\n const radius = Math.ceil(maxDistance / 2);\r\n const texelSize = radius * 2 / this.size;\r\n const centerX = Math.floor(((min[0] + max[0]) * 0.5) / texelSize + 0.5) * texelSize;\r\n const centerY = Math.floor(((min[1] + max[1]) * 0.5) / texelSize + 0.5) * texelSize;\r\n const centerZ = (min[2] + max[2]) * 0.5;\r\n min[0] = centerX - radius;\r\n min[1] = centerY - radius;\r\n min[2] = centerZ - radius;\r\n max[0] = centerX + radius;\r\n max[1] = centerY + radius;\r\n max[2] = centerZ + radius;\r\n }\r\n\r\n writeOrthoOffCenter(ORTHO_SCRATCH, max[0], min[0], max[1], min[1], -max[2], -min[2]);\r\n // Carbon lightView * ortho; gl-matrix reverses the operands.\r\n mat4.multiply(setup.lightViewProjection, ORTHO_SCRATCH, LIGHT_VIEW_SCRATCH);\r\n\r\n const range = this.perSplitData.CascadeRanges[splitIndex];\r\n range[0] = max[0] - min[0];\r\n range[1] = max[1] - min[1];\r\n range[2] = max[2] - min[2];\r\n range[3] = 0;\r\n mat4.copy(this.perSplitData.ShadowMatrixVal[splitIndex], setup.lightViewProjection);\r\n setup.shadowFrustum.DeriveFrustum(LIGHT_VIEW_SCRATCH, min, max);\r\n return setup;\r\n }\r\n\r\n /** Delegates physical atlas allocation and setup to the installed engine. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"GPU pool allocation is realized by the nominal shadow executor installed on the render context.\")\r\n PrepareShadowRendering(renderContext)\r\n {\r\n return renderContext.GetShadowMapExecutor().PrepareShadowRendering(this, renderContext);\r\n }\r\n\r\n /** Delegates one atlas-cell render-pass begin to the installed engine. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Viewport and physical depth-target state are engine realization details.\")\r\n BeginShadowRendering(renderContext, splitIndex)\r\n {\r\n return renderContext.GetShadowMapExecutor().BeginShadowRendering(this, splitIndex, renderContext);\r\n }\r\n\r\n /** Delegates shadow rendering teardown to the installed engine. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"Physical render-state restoration is owned by the engine executor.\")\r\n EndShadowRendering(renderContext)\r\n {\r\n return renderContext.GetShadowMapExecutor().EndShadowRendering(this, renderContext);\r\n }\r\n\r\n /** Delegates shadow-result realization and optional denoising to the engine. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The engine owns temporary targets, fullscreen drawing and physical denoising.\")\r\n DrawToShadowMapResult(renderContext, depthMap, cascadedShadowDepth, upscaling)\r\n {\r\n return renderContext.GetShadowMapExecutor().DrawToShadowMapResult(\r\n this,\r\n depthMap,\r\n cascadedShadowDepth,\r\n upscaling,\r\n renderContext\r\n );\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the number of active cascade splits. */\r\n GetShadowSplitCount()\r\n {\r\n return this.splitCount;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the square pixel size of one atlas cell. */\r\n GetShadowMapSize()\r\n {\r\n return this.size;\r\n }\r\n\r\n /** Returns the fixed number of atlas columns. */\r\n @impl.custom\r\n @impl.reason(\"The nominal engine executor needs Carbon's private fixed atlas width without reading implementation fields.\")\r\n GetShadowMapWidth()\r\n {\r\n return this.#width;\r\n }\r\n\r\n /** Returns the fixed number of atlas rows. */\r\n @impl.custom\r\n @impl.reason(\"The nominal engine executor needs Carbon's private fixed atlas height without reading implementation fields.\")\r\n GetShadowMapHeight()\r\n {\r\n return this.#height;\r\n }\r\n\r\n /** Returns the stable owned record consumed by scene per-frame packing. */\r\n @impl.custom\r\n @impl.reason(\"The scene needs a nominal direct accessor to Carbon's public PerSplitData without structural probing.\")\r\n GetPerSplitData()\r\n {\r\n return this.perSplitData;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the logical effect used to resolve the screen-space shadow mask. */\r\n GetShadowEffect()\r\n {\r\n return this.cascadeEffect;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Reports whether cascade-debug colouring is enabled. */\r\n GetDebugSplitValue()\r\n {\r\n return this.debugColorSplit;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns Carbon's packed debug colour for a cascade colour index. */\r\n GetDebugColors(switchCase)\r\n {\r\n switch (switchCase)\r\n {\r\n case 0: return 0xffffffff;\r\n case 1: return 0xffff0000;\r\n case 2: return 0xff00ff00;\r\n case 3: return 0xff0000ff;\r\n case 4: return 0xffffff00;\r\n case 5: return 0xff00ffff;\r\n case 6: return 0x2200ffff;\r\n case 7: return 0xff555555;\r\n case 8: return 0xff888888;\r\n default: return undefined;\r\n }\r\n }\r\n\r\n /** Restores the sixteen fixed Carbon cascade endpoints. */\r\n #SetStaticShadowSplits()\r\n {\r\n for (let index = 0; index < STATIC_SPLITS.length; index++)\r\n {\r\n this.#SetSplitValue(index, STATIC_SPLITS[index]);\r\n }\r\n }\r\n\r\n /** Writes one authored/dynamic split endpoint to its public field. */\r\n #SetSplitValue(index, value)\r\n {\r\n this[`SplitNr${index}`] = value;\r\n }\r\n\r\n /** Reads one split endpoint from its public field. */\r\n #GetSplitValue(index)\r\n {\r\n return this[`SplitNr${index}`];\r\n }\r\n\r\n static ShadowSplitMode = Object.freeze({\r\n STATIC: 0,\r\n DYNAMIC: 1,\r\n MANUAL: 2\r\n });\r\n}\r\n"],"names":["SHADOW_FRUSTUM_COUNT","SHADOW_MAP_WIDTH","SHADOW_MAP_HEIGHT","STATIC_SPLITS","Object","freeze","DX_UNIT_CUBE","PROJECTION_SCRATCH","mat4","create","INVERSE_PROJECTION_SCRATCH","BASIS_SCRATCH","LIGHT_VIEW_SCRATCH","ORTHO_SCRATCH","TRANSFORMED_SCRATCH","vec4","WORLD_SCRATCH","vec3","LIGHT_DIRECTION_SCRATCH","createPerSplitData","ShadowMapValues","Array","from","length","ShadowMatrixVal","CascadeRanges","SplitInfo","createSplitSetup","shadowFrustum","TriFrustumOrtho","lightViewProjection","invViewProj","aabb","min","max","corners","createShadowEffect","effect","Tr2Effect","SetEffectPathName","AddResourceTexture2D","writePerspectiveOffCenter","out","left","right","bottom","top","near","far","fill","writeOrthoNormalBasisZ","z","identity","Math","hypot","zx","zy","zz","xx","abs","xy","yx","yy","yz","yLength","writeOrthoOffCenter","_Tr2ShadowMap","_identity","Tr2ShadowMap","CjsModel","e","_init_shadowSplitMode","_init_extra_shadowSplitMode","_init_denoiser","_init_extra_denoiser","_init_cascadeEffect","_init_extra_cascadeEffect","_init_splitCount","_init_extra_splitCount","_init_debugColorSplit","_init_extra_debugColorSplit","_init_SplitNr","_init_extra_SplitNr","_init_SplitNr2","_init_extra_SplitNr2","_init_SplitNr3","_init_extra_SplitNr3","_init_SplitNr4","_init_extra_SplitNr4","_init_SplitNr5","_init_extra_SplitNr5","_init_SplitNr6","_init_extra_SplitNr6","_init_SplitNr7","_init_extra_SplitNr7","_init_SplitNr8","_init_extra_SplitNr8","_init_SplitNr9","_init_extra_SplitNr9","_init_SplitNr0","_init_extra_SplitNr0","_init_SplitNr1","_init_extra_SplitNr1","_init_SplitNr10","_init_extra_SplitNr10","_init_SplitNr11","_init_extra_SplitNr11","_init_SplitNr12","_init_extra_SplitNr12","_init_SplitNr13","_init_extra_SplitNr13","_init_SplitNr14","_init_extra_SplitNr14","_init_disableShimmer","_init_extra_disableShimmer","_init_size","_init_extra_size","_initProto","_initStatic","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","readwrite","objectRef","read","uint32","boolean","float32","carbon","method","impl","adapted","reason","implemented","custom","shadowSplitMode","denoiser","Tr2Denoiser","cascadeEffect","splitCount","debugColorSplit","SplitNr15","SplitNr8","SplitNr6","SplitNr5","SplitNr14","SplitNr10","SplitNr13","SplitNr4","SplitNr3","SplitNr7","SplitNr1","SplitNr9","SplitNr0","SplitNr11","SplitNr12","SplitNr2","disableShimmer","size","perSplitData","ShadowSplitMode","STATIC","constructor","store","Tr2VariableStore","GlobalStore","RegisterVariable","Setup","elementSize","elementCount","useDenoiser","nextSize","nextCount","RangeError","Boolean","OnModified","SetOption","DYNAMIC","ShouldUseDenoiser","value","GetUseDenoiser","UpdateSplitValues","nearClip","farClip","logNear","log2","logFar","index","pow","CalculateAABB","projection","invViewTransform","lightView","invert","Infinity","source","transformMat4","inverseW","corner","SetupShadowSplit","splitIndex","lightDirection","zNear","leftDivNear","rightDivNear","topDivNear","bottomDivNear","Number","isInteger","setup","zFar","multiply","maxDistance","first","second","a","b","radius","ceil","texelSize","centerX","floor","centerY","centerZ","range","copy","DeriveFrustum","PrepareShadowRendering","renderContext","GetShadowMapExecutor","BeginShadowRendering","EndShadowRendering","DrawToShadowMapResult","depthMap","cascadedShadowDepth","upscaling","GetShadowSplitCount","GetShadowMapSize","GetShadowMapWidth","GetShadowMapHeight","GetPerSplitData","GetShadowEffect","GetDebugSplitValue","GetDebugColors","switchCase","undefined","#SetStaticShadowSplits","#SetSplitValue","#GetSplitValue","MANUAL"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2ShadowMap.js","sources":["../../../../src/trinity/core/Tr2ShadowMap.js"],"sourcesContent":["// Source: trinity/trinity/Tr2ShadowMap.h\n// trinity/trinity/Tr2ShadowMap.cpp\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { mat4 } from \"#math/mat4\";\r\nimport { vec3 } from \"#math/vec3\";\r\nimport { vec4 } from \"#math/vec4\";\r\nimport { PixelFormat, TextureType } from \"#consts/render-context\";\r\nimport { Tr2GpuUsage } from \"#consts/render-context\";\r\nimport { Tr2Effect } from \"../shader/Tr2Effect.js\";\r\nimport { Tr2Denoiser } from \"./Tr2Denoiser.js\";\r\nimport { Tr2VariableStore } from \"./variable/Tr2VariableStore.js\";\r\nimport { TriFrustumOrtho } from \"./view/TriFrustumOrtho.js\";\r\n\r\nconst SHADOW_FRUSTUM_COUNT = 16;\r\nconst SHADOW_MAP_WIDTH = 8;\r\nconst SHADOW_MAP_HEIGHT = 2;\r\n\r\nconst STATIC_SPLITS = Object.freeze([\r\n 25, 75, 150, 300,\r\n 600, 1200, 2400, 4800,\r\n 9600, 19200, 38400, 76800,\r\n 153600, 307200, 614400, 1228800\r\n]);\r\n\r\nconst DX_UNIT_CUBE = Object.freeze([\r\n Object.freeze([ -1, -1, 0 ]), Object.freeze([ -1, 1, 0 ]),\r\n Object.freeze([ 1, 1, 0 ]), Object.freeze([ 1, -1, 0 ]),\r\n Object.freeze([ -1, -1, 1 ]), Object.freeze([ -1, 1, 1 ]),\r\n Object.freeze([ 1, 1, 1 ]), Object.freeze([ 1, -1, 1 ])\r\n]);\r\n\r\nconst PROJECTION_SCRATCH = mat4.create();\r\nconst INVERSE_PROJECTION_SCRATCH = mat4.create();\r\nconst BASIS_SCRATCH = mat4.create();\r\nconst LIGHT_VIEW_SCRATCH = mat4.create();\r\nconst ORTHO_SCRATCH = mat4.create();\r\nconst TRANSFORMED_SCRATCH = vec4.create();\r\nconst WORLD_SCRATCH = vec3.create();\r\nconst LIGHT_DIRECTION_SCRATCH = vec3.create();\r\n\r\nfunction createPerSplitData()\r\n{\r\n return {\r\n ShadowMapValues: Array.from({ length: 4 }, () => vec4.create()),\r\n ShadowMatrixVal: Array.from({ length: SHADOW_FRUSTUM_COUNT }, () => mat4.create()),\r\n CascadeRanges: Array.from({ length: SHADOW_FRUSTUM_COUNT }, () => vec4.create()),\r\n SplitInfo: vec4.create()\r\n };\r\n}\r\n\r\nfunction createSplitSetup()\r\n{\r\n return {\r\n shadowFrustum: new TriFrustumOrtho(),\r\n lightViewProjection: mat4.create(),\r\n invViewProj: mat4.create(),\r\n aabb: { min: vec3.create(), max: vec3.create() },\r\n corners: Array.from({ length: 8 }, () => vec3.create())\r\n };\r\n}\r\n\r\nfunction createShadowEffect()\r\n{\r\n const effect = new Tr2Effect();\r\n\r\n effect.SetEffectPathName(\"res:/graphics/effect/managed/space/system/ShadowDepth.fx\");\r\n\r\n // DECLARED BY CLEARING, which is Carbon (`cpp:41-42`), not by\r\n // AddResourceTexture2D. The difference is not cosmetic: a res-path slot and a\r\n // runtime slot are different classes, so declaring the res-path kind here left\r\n // SetParameter unable to find a runtime slot to update - it added a new one on\r\n // every call, and a per-frame resolve grew the resource list without bound.\r\n effect.SetParameter(\"EveSpaceSceneCascadedShadowMap\", null);\r\n effect.SetParameter(\"DepthMap\", null);\r\n return effect;\r\n}\r\n\r\n/** Carbon PerspectiveOffCenterMatrix: D3D zero-to-one depth. */\r\nfunction writePerspectiveOffCenter(out, left, right, bottom, top, near, far)\r\n{\r\n out.fill(0);\r\n out[0] = 2 * near / (right - left);\r\n out[5] = -2 * near / (bottom - top);\r\n out[8] = 1 + 2 * left / (right - left);\r\n out[9] = -1 - 2 * top / (bottom - top);\r\n out[10] = far / (near - far);\r\n out[11] = -1;\r\n out[14] = near * far / (near - far);\r\n return out;\r\n}\r\n\r\n/** Carbon OrthoNormalBasisZ. Flat matrix bytes match gl-matrix storage. */\r\nfunction writeOrthoNormalBasisZ(out, z)\r\n{\r\n mat4.identity(out);\r\n const length = Math.hypot(z[0], z[1], z[2]);\r\n const zx = z[0] / length;\r\n const zy = z[1] / length;\r\n const zz = z[2] / length;\r\n out[8] = zx;\r\n out[9] = zy;\r\n out[10] = zz;\r\n\r\n const xx = Math.abs(zx) > 0.99 ? 0 : 1;\r\n const xy = Math.abs(zx) > 0.99 ? 1 : 0;\r\n let yx = xy * zz;\r\n let yy = -xx * zz;\r\n let yz = xx * zy - xy * zx;\r\n const yLength = Math.hypot(yx, yy, yz);\r\n yx /= yLength;\r\n yy /= yLength;\r\n yz /= yLength;\r\n\r\n out[4] = yx;\r\n out[5] = yy;\r\n out[6] = yz;\r\n out[0] = yy * zz - yz * zy;\r\n out[1] = yz * zx - yx * zz;\r\n out[2] = yx * zy - yy * zx;\r\n return out;\r\n}\r\n\r\n/** Carbon OrthoOffCenterMatrix: D3D zero-to-one depth. */\r\nfunction writeOrthoOffCenter(out, left, right, bottom, top, near, far)\r\n{\r\n mat4.identity(out);\r\n out[0] = 2 / (right - left);\r\n out[5] = 2 / (top - bottom);\r\n out[10] = 1 / (near - far);\r\n out[12] = -1 - 2 * left / (right - left);\r\n out[13] = 1 + 2 * top / (bottom - top);\r\n out[14] = near / (near - far);\r\n return out;\r\n}\r\n\r\n/** Cascaded-shadow split producer; engines realize only its GPU operations. */\r\n@type.define({ className: \"Tr2ShadowMap\", family: \"trinityCore\" })\r\nexport class Tr2ShadowMap extends CjsModel\r\n{\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n @type.enum(\"ShadowSplitMode\")\r\n shadowSplitMode = 0;\r\n\r\n @io.readwrite\r\n @type.objectRef(\"Tr2Denoiser\")\r\n denoiser = new Tr2Denoiser();\r\n\r\n @io.readwrite\r\n @type.objectRef(\"Tr2Effect\")\r\n cascadeEffect = createShadowEffect();\r\n\r\n @io.notify\r\n @io.read\r\n @type.uint32\r\n splitCount = SHADOW_FRUSTUM_COUNT;\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n debugColorSplit = false;\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr15 = STATIC_SPLITS[15];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr8 = STATIC_SPLITS[8];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr6 = STATIC_SPLITS[6];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr5 = STATIC_SPLITS[5];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr14 = STATIC_SPLITS[14];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr10 = STATIC_SPLITS[10];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr13 = STATIC_SPLITS[13];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr4 = STATIC_SPLITS[4];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr3 = STATIC_SPLITS[3];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr7 = STATIC_SPLITS[7];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr1 = STATIC_SPLITS[1];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr9 = STATIC_SPLITS[9];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr0 = STATIC_SPLITS[0];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr11 = STATIC_SPLITS[11];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr12 = STATIC_SPLITS[12];\r\n\r\n @io.readwrite\r\n @type.float32\r\n SplitNr2 = STATIC_SPLITS[2];\r\n\r\n @io.notify\r\n @io.readwrite\r\n @type.boolean\r\n disableShimmer = true;\r\n\r\n @io.readwrite\r\n @type.uint32\r\n size = 2048;\r\n\r\n perSplitData = createPerSplitData();\r\n\r\n #width = SHADOW_MAP_WIDTH;\r\n\r\n #height = SHADOW_MAP_HEIGHT;\r\n\r\n #oldZFar = 0;\r\n\r\n #useDenoiser = true;\r\n\r\n #lastNearClip = 0;\r\n\r\n #lastFarClip = 0;\r\n\r\n #lastShadowSplitMode = Tr2ShadowMap.ShadowSplitMode.STATIC;\r\n\r\n #lastDebugColorSplit = false;\r\n\r\n #splitSetups = Array.from({ length: SHADOW_FRUSTUM_COUNT }, () => createSplitSetup());\r\n\r\n /** Creates the logical effect/denoiser state and reserves Carbon's globals. */\r\n constructor()\r\n {\r\n super();\r\n const store = Tr2VariableStore.GlobalStore();\r\n store.RegisterVariable(\"EveSpaceSceneShadowMap\");\r\n store.RegisterVariable(\"EveSpaceSceneCascadedShadowMap\");\r\n }\r\n\r\n /** Applies the atlas element size/count and the one-way denoiser disable. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The fixed PerSplitData arrays make split counts above Carbon's 16-slot capacity fail immediately instead of corrupting adjacent native memory.\")\r\n Setup(elementSize, elementCount, useDenoiser)\r\n {\r\n const nextSize = elementSize >>> 0;\r\n const nextCount = elementCount >>> 0;\r\n if (nextCount > SHADOW_FRUSTUM_COUNT)\r\n {\r\n throw new RangeError(`Tr2ShadowMap supports at most ${SHADOW_FRUSTUM_COUNT} splits.`);\r\n }\r\n if (this.size !== nextSize || this.splitCount !== nextCount)\r\n {\r\n this.size = nextSize;\r\n this.splitCount = nextCount;\r\n this.perSplitData.SplitInfo[0] = nextCount;\r\n }\r\n this.#useDenoiser = Boolean(useDenoiser);\r\n if (!this.#useDenoiser)\r\n {\r\n this.denoiser = null;\r\n }\r\n }\r\n\r\n /** Applies Carbon's notification consequences from the current owned state. */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"CjsModel notifications expose settled state rather than Be::Var identity, so this compares the two notify-backed values against their cached state.\")\r\n OnModified()\r\n {\r\n if (this.debugColorSplit !== this.#lastDebugColorSplit)\r\n {\r\n this.cascadeEffect.SetOption(\"SHADOW_DEBUG_MODE\", this.debugColorSplit ? \"SDM_COLOR\" : \"SDM_NONE\");\r\n this.#lastDebugColorSplit = this.debugColorSplit;\r\n }\r\n\r\n if (this.shadowSplitMode !== this.#lastShadowSplitMode)\r\n {\r\n if (this.shadowSplitMode === Tr2ShadowMap.ShadowSplitMode.STATIC)\r\n {\r\n this.#SetStaticShadowSplits();\r\n }\r\n else if (this.shadowSplitMode === Tr2ShadowMap.ShadowSplitMode.DYNAMIC)\r\n {\r\n this.#lastNearClip = 0;\r\n this.#lastFarClip = 0;\r\n }\r\n this.#lastShadowSplitMode = this.shadowSplitMode;\r\n }\r\n\r\n this.perSplitData.SplitInfo[0] = this.splitCount;\r\n return true;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Changes whether an existing denoiser should be used for future results. */\r\n ShouldUseDenoiser(value)\r\n {\r\n this.#useDenoiser = Boolean(value);\r\n }\r\n\r\n /** Engine-facing read of Carbon's private denoiser-use switch. */\r\n @impl.custom\r\n @impl.reason(\"The nominal engine executor needs Carbon's private denoiser-use decision without reading implementation fields.\")\r\n GetUseDenoiser()\r\n {\r\n return this.#useDenoiser;\r\n }\r\n\r\n /** Recomputes geometric dynamic split endpoints when the clip range changes. */\r\n @carbon.method\r\n @impl.implemented\r\n UpdateSplitValues(nearClip, farClip)\r\n {\r\n if (this.shadowSplitMode !== Tr2ShadowMap.ShadowSplitMode.DYNAMIC) return;\r\n if (this.#lastNearClip === nearClip && this.#lastFarClip === farClip) return;\r\n\r\n this.#lastNearClip = nearClip;\r\n this.#lastFarClip = farClip;\r\n const logNear = Math.log2(nearClip);\r\n const logFar = Math.log2(farClip);\r\n for (let index = 0; index < this.splitCount; index++)\r\n {\r\n this.#SetSplitValue(index, Math.pow(2, logNear + (logFar - logNear) * ((index + 1) / this.splitCount)));\r\n }\r\n }\r\n\r\n /**\r\n * Transforms the D3D clip cube through projection inverse, inverse view and\r\n * light view, returning its light-space bounds and writing all eight corners.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @impl.reason(\"The caller supplies owned JS output containers; matrix bytes stay in logical gl-matrix form and are never pre-transposed.\")\r\n static CalculateAABB(\r\n projection,\r\n invViewTransform,\r\n lightView,\r\n corners,\r\n out = { min: vec3.create(), max: vec3.create() }\r\n )\r\n {\r\n mat4.invert(INVERSE_PROJECTION_SCRATCH, projection);\r\n const min = out.min;\r\n const max = out.max;\r\n min[0] = min[1] = min[2] = Infinity;\r\n max[0] = max[1] = max[2] = -Infinity;\r\n\r\n for (let index = 0; index < DX_UNIT_CUBE.length; index++)\r\n {\r\n const source = DX_UNIT_CUBE[index];\r\n TRANSFORMED_SCRATCH[0] = source[0];\r\n TRANSFORMED_SCRATCH[1] = source[1];\r\n TRANSFORMED_SCRATCH[2] = source[2];\r\n TRANSFORMED_SCRATCH[3] = 1;\r\n vec4.transformMat4(TRANSFORMED_SCRATCH, TRANSFORMED_SCRATCH, INVERSE_PROJECTION_SCRATCH);\r\n const inverseW = 1 / TRANSFORMED_SCRATCH[3];\r\n WORLD_SCRATCH[0] = TRANSFORMED_SCRATCH[0] * inverseW;\r\n WORLD_SCRATCH[1] = TRANSFORMED_SCRATCH[1] * inverseW;\r\n WORLD_SCRATCH[2] = TRANSFORMED_SCRATCH[2] * inverseW;\r\n vec3.transformMat4(WORLD_SCRATCH, WORLD_SCRATCH, invViewTransform);\r\n vec3.transformMat4(corners[index], WORLD_SCRATCH, lightView);\r\n\r\n const corner = corners[index];\r\n min[0] = Math.min(min[0], corner[0]);\r\n min[1] = Math.min(min[1], corner[1]);\r\n min[2] = Math.min(min[2], corner[2]);\r\n max[0] = Math.max(max[0], corner[0]);\r\n max[1] = Math.max(max[1], corner[1]);\r\n max[2] = Math.max(max[2], corner[2]);\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Builds one logical light-view-projection split and its shader data.\r\n *\r\n * The returned object is an allocation-free borrowed view for this split and\r\n * is overwritten the next time the same split index is prepared.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @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.\")\r\n SetupShadowSplit(splitIndex, invViewTransform, lightDirection, zNear, leftDivNear, rightDivNear, topDivNear, bottomDivNear)\r\n {\r\n if (!Number.isInteger(splitIndex) || splitIndex < 0 || splitIndex >= this.splitCount)\r\n {\r\n throw new RangeError(\"Tr2ShadowMap.SetupShadowSplit received an invalid split index.\");\r\n }\r\n\r\n const setup = this.#splitSetups[splitIndex];\r\n if (splitIndex === 0) this.#oldZFar = zNear;\r\n const zFar = this.#GetSplitValue(splitIndex);\r\n this.perSplitData.ShadowMapValues[splitIndex >> 2][splitIndex & 3] = zFar;\r\n\r\n const left = leftDivNear * this.#oldZFar;\r\n const right = rightDivNear * this.#oldZFar;\r\n const top = topDivNear * this.#oldZFar;\r\n const bottom = bottomDivNear * this.#oldZFar;\r\n writePerspectiveOffCenter(PROJECTION_SCRATCH, left, right, bottom, top, this.#oldZFar, zFar);\r\n this.#oldZFar = zFar;\r\n\r\n mat4.invert(INVERSE_PROJECTION_SCRATCH, PROJECTION_SCRATCH);\r\n // Carbon inverseProjection * inverseView; gl-matrix reverses the operands.\r\n mat4.multiply(setup.invViewProj, invViewTransform, INVERSE_PROJECTION_SCRATCH);\r\n\r\n LIGHT_DIRECTION_SCRATCH[0] = -lightDirection[0];\r\n LIGHT_DIRECTION_SCRATCH[1] = -lightDirection[1];\r\n LIGHT_DIRECTION_SCRATCH[2] = -lightDirection[2];\r\n writeOrthoNormalBasisZ(BASIS_SCRATCH, LIGHT_DIRECTION_SCRATCH);\r\n mat4.invert(LIGHT_VIEW_SCRATCH, BASIS_SCRATCH);\r\n\r\n Tr2ShadowMap.CalculateAABB(\r\n PROJECTION_SCRATCH,\r\n invViewTransform,\r\n LIGHT_VIEW_SCRATCH,\r\n setup.corners,\r\n setup.aabb\r\n );\r\n\r\n const min = setup.aabb.min;\r\n const max = setup.aabb.max;\r\n if (this.disableShimmer)\r\n {\r\n let maxDistance = 0;\r\n for (let first = 0; first < setup.corners.length; first++)\r\n {\r\n for (let second = first + 1; second < setup.corners.length; second++)\r\n {\r\n const a = setup.corners[first];\r\n const b = setup.corners[second];\r\n maxDistance = Math.max(maxDistance, Math.hypot(a[0] - b[0], a[1] - b[1], a[2] - b[2]));\r\n }\r\n }\r\n\r\n const radius = Math.ceil(maxDistance / 2);\r\n const texelSize = radius * 2 / this.size;\r\n const centerX = Math.floor(((min[0] + max[0]) * 0.5) / texelSize + 0.5) * texelSize;\r\n const centerY = Math.floor(((min[1] + max[1]) * 0.5) / texelSize + 0.5) * texelSize;\r\n const centerZ = (min[2] + max[2]) * 0.5;\r\n min[0] = centerX - radius;\r\n min[1] = centerY - radius;\r\n min[2] = centerZ - radius;\r\n max[0] = centerX + radius;\r\n max[1] = centerY + radius;\r\n max[2] = centerZ + radius;\r\n }\r\n\r\n writeOrthoOffCenter(ORTHO_SCRATCH, max[0], min[0], max[1], min[1], -max[2], -min[2]);\r\n // Carbon lightView * ortho; gl-matrix reverses the operands.\r\n mat4.multiply(setup.lightViewProjection, ORTHO_SCRATCH, LIGHT_VIEW_SCRATCH);\r\n\r\n const range = this.perSplitData.CascadeRanges[splitIndex];\r\n range[0] = max[0] - min[0];\r\n range[1] = max[1] - min[1];\r\n range[2] = max[2] - min[2];\r\n range[3] = 0;\r\n mat4.copy(this.perSplitData.ShadowMatrixVal[splitIndex], setup.lightViewProjection);\r\n setup.shadowFrustum.DeriveFrustum(LIGHT_VIEW_SCRATCH, min, max);\r\n return setup;\r\n }\r\n\r\n /**\r\n * Allocates the cascaded depth surface and makes it the render target.\r\n *\r\n * @param {object} gpuResourcePool The pool to borrow the surface from.\r\n * @param {object} renderContext The context to set state on.\r\n * @returns {object|null} The borrowed depth texture, or null when the pool\r\n * could not supply one - which Carbon notes happens on a lost device.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n PrepareShadowRendering(gpuResourcePool, renderContext)\r\n {\r\n const cascadedShadowDepth = gpuResourcePool.GetTempTexture(\"cascadedShadowDepth\", {\r\n width: this.size * this.#width,\r\n height: this.size * this.#height,\r\n format: PixelFormat.PIXEL_FORMAT_D32_FLOAT,\r\n gpuUsage: Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE\r\n });\r\n\r\n if (!cascadedShadowDepth || !cascadedShadowDepth.IsValid()) return null;\r\n\r\n const esm = renderContext.GetEffectStateManager();\r\n\r\n // The depth stencil IS the shadow map, so the colour target is pushed EMPTY -\r\n // Carbon passes a default-constructed Tr2TextureAL and comments it \"empty\r\n // texture\" (`cpp:238`). Null is that argument here. Omitting it would only\r\n // save the slot and leave the scene's colour target bound underneath the\r\n // whole shadow pass, which is what this line used to do.\r\n esm.PushViewport();\r\n esm.PushRenderTarget(null);\r\n esm.PushDepthStencilBuffer(cascadedShadowDepth);\r\n esm.UpdateRenderTargetViewport(cascadedShadowDepth.Get().GetWidth(), cascadedShadowDepth.Get().GetHeight());\r\n\r\n // Carbon wants a clean depth buffer for this pass and says so.\r\n renderContext.Clear({ depth: true, clearDepth: 1, clearStencil: 0 });\r\n renderContext.SetReadOnlyDepth(false);\r\n\r\n return cascadedShadowDepth;\r\n }\r\n\r\n /**\r\n * Points the viewport at one split's cell in the atlas.\r\n *\r\n * Eight cells per row: splits 0-7 fill the top row and 8 onward wrap to a\r\n * second, which is why the row index is `splitIndex % 8` and the y offset is\r\n * either zero or one cell down.\r\n *\r\n * @param {object} renderContext The context to set the viewport on.\r\n * @param {number} splitIndex Which cascade split.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n BeginShadowRendering(renderContext, splitIndex)\r\n {\r\n const esm = renderContext.GetEffectStateManager();\r\n const topRow = splitIndex < 8;\r\n\r\n esm.SetViewport({\r\n width: this.size,\r\n height: this.size,\r\n x: (topRow ? splitIndex : splitIndex % 8) * this.size,\r\n y: topRow ? 0 : this.size,\r\n minZ: 0,\r\n maxZ: 1\r\n });\r\n }\r\n\r\n /**\r\n * Unwinds everything `PrepareShadowRendering` pushed, in reverse.\r\n *\r\n * @param {object} renderContext The context to restore.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n EndShadowRendering(renderContext)\r\n {\r\n renderContext.SetReadOnlyDepth(false);\r\n\r\n const esm = renderContext.GetEffectStateManager();\r\n\r\n esm.PopRenderTarget();\r\n esm.PopDepthStencilBuffer();\r\n esm.PopViewport();\r\n }\r\n\r\n /**\r\n * Resolves the cascaded depth into a screen-space shadow factor.\r\n *\r\n * Carbon `DrawToShadowMapResult` (`cpp:278-305`). Borrow an R8 target the\r\n * size of the scene depth, bind it, run the shadow effect over a fullscreen\r\n * quad with the atlas and the depth map bound, then optionally denoise.\r\n *\r\n * THE DEPTH BUFFER IS PUSHED EMPTY, not merely saved. Carbon passes a\r\n * default-constructed Tr2TextureAL (`cpp:285`), which unbinds it - this pass\r\n * writes a full-screen factor and must not be depth-tested against the very\r\n * buffer it is reading.\r\n *\r\n * THE EFFECT'S TEXTURES ARE CLEARED IMMEDIATELY AFTER THE DRAW, as Carbon\r\n * does (`cpp:290-291`), so a later pass cannot inherit the atlas or the\r\n * scene depth from this one.\r\n *\r\n * `cascadeEffect` is Carbon's `m_shadowEffect` under our name - same\r\n * ShadowDepth.fx path, same two parameters (`cpp:39-42`).\r\n *\r\n * @param {object} renderContext The context to draw against.\r\n * @param {object} gpuResourcePool The pool to borrow the result target from.\r\n * @param {object} depthMap The scene depth.\r\n * @param {object} cascadedShadowDepth The atlas produced by this pass.\r\n * @param {number} upscaling The denoiser's upscaling factor.\r\n * @param {object} renderer The renderer owning the blitter.\r\n * @returns {object|null} The shadow-factor target, or null without a pool.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n @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.\")\r\n DrawToShadowMapResult(renderContext, gpuResourcePool, depthMap, cascadedShadowDepth, upscaling, renderer)\r\n {\r\n let shadowMapResult = gpuResourcePool.GetTempTexture(\"shadowMapResult\", {\r\n type: TextureType.TEX_TYPE_2D,\r\n width: depthMap.GetWidth(),\r\n height: depthMap.GetHeight(),\r\n depth: 1,\r\n mipCount: 1,\r\n format: PixelFormat.PIXEL_FORMAT_R8_UNORM,\r\n gpuUsage: Tr2GpuUsage.RENDER_TARGET | Tr2GpuUsage.SHADER_RESOURCE\r\n });\r\n\r\n const esm = renderContext.GetEffectStateManager();\r\n\r\n esm.PushRenderTarget(shadowMapResult.Get());\r\n esm.PushDepthStencilBuffer(null);\r\n\r\n try\r\n {\r\n this.cascadeEffect.SetParameter(\"EveSpaceSceneCascadedShadowMap\", cascadedShadowDepth);\r\n this.cascadeEffect.SetParameter(\"DepthMap\", depthMap);\r\n renderer.DrawScreenQuad(renderContext, this.cascadeEffect);\r\n this.cascadeEffect.SetParameter(\"EveSpaceSceneCascadedShadowMap\", null);\r\n this.cascadeEffect.SetParameter(\"DepthMap\", null);\r\n\r\n // Carbon gates on all three (`cpp:296`). Setup() nulls the denoiser when\r\n // it is disabled, so the useDenoiser flag and a present denoiser are not\r\n // the same question.\r\n if (this.denoiser && this.#useDenoiser && depthMap.IsValid())\r\n {\r\n shadowMapResult = this.denoiser.Apply(\r\n shadowMapResult,\r\n depthMap,\r\n null,\r\n renderContext.GetReversedDepthProjectionTransform(),\r\n upscaling,\r\n gpuResourcePool,\r\n renderContext,\r\n renderer\r\n );\r\n }\r\n\r\n return shadowMapResult;\r\n }\r\n finally\r\n {\r\n esm.PopRenderTarget();\r\n esm.PopDepthStencilBuffer();\r\n }\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the number of active cascade splits. */\r\n GetShadowSplitCount()\r\n {\r\n return this.splitCount;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the square pixel size of one atlas cell. */\r\n GetShadowMapSize()\r\n {\r\n return this.size;\r\n }\r\n\r\n /** Returns the fixed number of atlas columns. */\r\n @impl.custom\r\n @impl.reason(\"The nominal engine executor needs Carbon's private fixed atlas width without reading implementation fields.\")\r\n GetShadowMapWidth()\r\n {\r\n return this.#width;\r\n }\r\n\r\n /** Returns the fixed number of atlas rows. */\r\n @impl.custom\r\n @impl.reason(\"The nominal engine executor needs Carbon's private fixed atlas height without reading implementation fields.\")\r\n GetShadowMapHeight()\r\n {\r\n return this.#height;\r\n }\r\n\r\n /** Returns the stable owned record consumed by scene per-frame packing. */\r\n @impl.custom\r\n @impl.reason(\"The scene needs a nominal direct accessor to Carbon's public PerSplitData without structural probing.\")\r\n GetPerSplitData()\r\n {\r\n return this.perSplitData;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns the logical effect used to resolve the screen-space shadow mask. */\r\n GetShadowEffect()\r\n {\r\n return this.cascadeEffect;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Reports whether cascade-debug colouring is enabled. */\r\n GetDebugSplitValue()\r\n {\r\n return this.debugColorSplit;\r\n }\r\n\r\n @carbon.method\r\n @impl.implemented\r\n /** Returns Carbon's packed debug colour for a cascade colour index. */\r\n GetDebugColors(switchCase)\r\n {\r\n switch (switchCase)\r\n {\r\n case 0: return 0xffffffff;\r\n case 1: return 0xffff0000;\r\n case 2: return 0xff00ff00;\r\n case 3: return 0xff0000ff;\r\n case 4: return 0xffffff00;\r\n case 5: return 0xff00ffff;\r\n case 6: return 0x2200ffff;\r\n case 7: return 0xff555555;\r\n case 8: return 0xff888888;\r\n default: return undefined;\r\n }\r\n }\r\n\r\n /** Restores the sixteen fixed Carbon cascade endpoints. */\r\n #SetStaticShadowSplits()\r\n {\r\n for (let index = 0; index < STATIC_SPLITS.length; index++)\r\n {\r\n this.#SetSplitValue(index, STATIC_SPLITS[index]);\r\n }\r\n }\r\n\r\n /** Writes one authored/dynamic split endpoint to its public field. */\r\n #SetSplitValue(index, value)\r\n {\r\n this[`SplitNr${index}`] = value;\r\n }\r\n\r\n /** Reads one split endpoint from its public field. */\r\n #GetSplitValue(index)\r\n {\r\n return this[`SplitNr${index}`];\r\n }\r\n\r\n static ShadowSplitMode = Object.freeze({\r\n STATIC: 0,\r\n DYNAMIC: 1,\r\n MANUAL: 2\r\n });\r\n}\r\n"],"names":["SHADOW_FRUSTUM_COUNT","SHADOW_MAP_WIDTH","SHADOW_MAP_HEIGHT","STATIC_SPLITS","Object","freeze","DX_UNIT_CUBE","PROJECTION_SCRATCH","mat4","create","INVERSE_PROJECTION_SCRATCH","BASIS_SCRATCH","LIGHT_VIEW_SCRATCH","ORTHO_SCRATCH","TRANSFORMED_SCRATCH","vec4","WORLD_SCRATCH","vec3","LIGHT_DIRECTION_SCRATCH","createPerSplitData","ShadowMapValues","Array","from","length","ShadowMatrixVal","CascadeRanges","SplitInfo","createSplitSetup","shadowFrustum","TriFrustumOrtho","lightViewProjection","invViewProj","aabb","min","max","corners","createShadowEffect","effect","Tr2Effect","SetEffectPathName","SetParameter","writePerspectiveOffCenter","out","left","right","bottom","top","near","far","fill","writeOrthoNormalBasisZ","z","identity","Math","hypot","zx","zy","zz","xx","abs","xy","yx","yy","yz","yLength","writeOrthoOffCenter","_Tr2ShadowMap","_identity","Tr2ShadowMap","CjsModel","e","_init_shadowSplitMode","_init_extra_shadowSplitMode","_init_denoiser","_init_extra_denoiser","_init_cascadeEffect","_init_extra_cascadeEffect","_init_splitCount","_init_extra_splitCount","_init_debugColorSplit","_init_extra_debugColorSplit","_init_SplitNr","_init_extra_SplitNr","_init_SplitNr2","_init_extra_SplitNr2","_init_SplitNr3","_init_extra_SplitNr3","_init_SplitNr4","_init_extra_SplitNr4","_init_SplitNr5","_init_extra_SplitNr5","_init_SplitNr6","_init_extra_SplitNr6","_init_SplitNr7","_init_extra_SplitNr7","_init_SplitNr8","_init_extra_SplitNr8","_init_SplitNr9","_init_extra_SplitNr9","_init_SplitNr0","_init_extra_SplitNr0","_init_SplitNr1","_init_extra_SplitNr1","_init_SplitNr10","_init_extra_SplitNr10","_init_SplitNr11","_init_extra_SplitNr11","_init_SplitNr12","_init_extra_SplitNr12","_init_SplitNr13","_init_extra_SplitNr13","_init_SplitNr14","_init_extra_SplitNr14","_init_disableShimmer","_init_extra_disableShimmer","_init_size","_init_extra_size","_initProto","_initStatic","c","_initClass","_applyDecs","type","define","className","family","io","notify","persist","int32","enum","readwrite","objectRef","read","uint32","boolean","float32","carbon","method","impl","adapted","reason","implemented","custom","shadowSplitMode","denoiser","Tr2Denoiser","cascadeEffect","splitCount","debugColorSplit","SplitNr15","SplitNr8","SplitNr6","SplitNr5","SplitNr14","SplitNr10","SplitNr13","SplitNr4","SplitNr3","SplitNr7","SplitNr1","SplitNr9","SplitNr0","SplitNr11","SplitNr12","SplitNr2","disableShimmer","size","perSplitData","ShadowSplitMode","STATIC","constructor","store","Tr2VariableStore","GlobalStore","RegisterVariable","Setup","elementSize","elementCount","useDenoiser","nextSize","nextCount","RangeError","Boolean","OnModified","SetOption","DYNAMIC","ShouldUseDenoiser","value","GetUseDenoiser","UpdateSplitValues","nearClip","farClip","logNear","log2","logFar","index","pow","CalculateAABB","projection","invViewTransform","lightView","invert","Infinity","source","transformMat4","inverseW","corner","SetupShadowSplit","splitIndex","lightDirection","zNear","leftDivNear","rightDivNear","topDivNear","bottomDivNear","Number","isInteger","setup","zFar","multiply","maxDistance","first","second","a","b","radius","ceil","texelSize","centerX","floor","centerY","centerZ","range","copy","DeriveFrustum","PrepareShadowRendering","gpuResourcePool","renderContext","cascadedShadowDepth","GetTempTexture","width","height","format","PixelFormat","PIXEL_FORMAT_D32_FLOAT","gpuUsage","Tr2GpuUsage","DEPTH_STENCIL","SHADER_RESOURCE","IsValid","esm","GetEffectStateManager","PushViewport","PushRenderTarget","PushDepthStencilBuffer","UpdateRenderTargetViewport","Get","GetWidth","GetHeight","Clear","depth","clearDepth","clearStencil","SetReadOnlyDepth","BeginShadowRendering","topRow","SetViewport","x","y","minZ","maxZ","EndShadowRendering","PopRenderTarget","PopDepthStencilBuffer","PopViewport","DrawToShadowMapResult","depthMap","upscaling","renderer","shadowMapResult","TextureType","TEX_TYPE_2D","mipCount","PIXEL_FORMAT_R8_UNORM","RENDER_TARGET","DrawScreenQuad","Apply","GetReversedDepthProjectionTransform","GetShadowSplitCount","GetShadowMapSize","GetShadowMapWidth","GetShadowMapHeight","GetPerSplitData","GetShadowEffect","GetDebugSplitValue","GetDebugColors","switchCase","undefined","#SetStaticShadowSplits","#SetSplitValue","#GetSplitValue","MANUAL"],"mappings":"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"}
@@ -1,66 +1,11 @@
1
- import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { type } from '#schema';
3
3
  import { CjsModel } from '#model';
4
4
  import { Tr2CpuUsage, Tr2GpuUsage } from '#consts/render-context';
5
+ import { Tr2TextureArrayElement } from './Tr2TextureArrayElement.js';
5
6
 
6
7
  let _initClass, _init_elements, _init_extra_elements, _init_texture, _init_extra_texture, _init_dimensions, _init_extra_dimensions, _init_onTextureChange, _init_extra_onTextureChange, _init_increment, _init_extra_increment, _init_cpuUsage, _init_extra_cpuUsage, _init_gpuUsage, _init_extra_gpuUsage;
7
8
 
8
- /**
9
- * Element handle returned by {@link Tr2TextureArray.AddElement}.
10
- *
11
- * Carbon's handle is a shared_ptr whose Data destructor calls
12
- * `RemoveElement` (Tr2TextureArray.cpp:233-236). JavaScript has no
13
- * destructors, so release is EXPLICIT: the owner calls `Release()` when the
14
- * slice is done (the lifecycle ruling - Destroy/Release verbs, never
15
- * finalizers). Carbon quirk kept and documented: an invalid handle reports
16
- * element index 0, the same value as a valid slot 0 (cpp:216-219), which is
17
- * why every consumer applies the +1 bias itself.
18
- */
19
- class Tr2TextureArrayElement {
20
- #array = null;
21
- #index = 0;
22
-
23
- /** Creates a handle; internal - only AddElement constructs valid ones. */
24
- constructor(array = null, index = 0) {
25
- this.#array = array;
26
- this.#index = index;
27
- }
28
-
29
- /** Reports whether this handle names a live slice. */
30
- IsValid() {
31
- return this.#array !== null;
32
- }
33
-
34
- /** The slice index inside the array; 0 when invalid (Carbon cpp:216-219). */
35
- GetElementIndex() {
36
- return this.#array !== null ? this.#index : 0;
37
- }
38
-
39
- /** The owning array, or null for an invalid handle. */
40
- GetArray() {
41
- return this.#array;
42
- }
43
-
44
- /**
45
- * The owning array's realized texture (Carbon cpp:222-229), or null -
46
- * realization is the abstraction layer's; it parks the AL object on the
47
- * array's `texture` field and every live handle sees it.
48
- */
49
- GetTexture() {
50
- return this.#array ? this.#array.texture : null;
51
- }
52
-
53
- /**
54
- * Frees the slice (Carbon's Data destructor, cpp:233-236). Idempotent.
55
- */
56
- Release() {
57
- if (this.#array === null) return;
58
- this.#array.RemoveElement(this.#index);
59
- this.#array = null;
60
- this.#index = 0;
61
- }
62
- }
63
-
64
9
  /** Describes a texture array's elements, dimensions, resource usage, upload increment, backing texture, and change callback. */
65
10
  let _Tr2TextureArray;
66
11
  new class extends _identity {
@@ -256,5 +201,5 @@ new class extends _identity {
256
201
  }
257
202
  }();
258
203
 
259
- export { _Tr2TextureArray as Tr2TextureArray, Tr2TextureArrayElement };
204
+ export { _Tr2TextureArray as Tr2TextureArray };
260
205
  //# sourceMappingURL=Tr2TextureArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2TextureArray.js","sources":["../../../../../src/trinity/core/Tr2TextureArray/Tr2TextureArray.js"],"sourcesContent":["// Source: trinity/trinity/Tr2TextureArray.h\n// trinity/trinity/Tr2TextureArray.cpp\n\nimport { type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { Tr2CpuUsage, Tr2GpuUsage } from \"#consts/render-context\";\nimport { Tr2TextureArrayElement } from \"./Tr2TextureArrayElement.js\";\n\n/** Describes a texture array's elements, dimensions, resource usage, upload increment, backing texture, and change callback. */\n@type.define({ className: \"Tr2TextureArray\", family: \"trinityCore\", purpose: \"Describes a texture array's elements, dimensions, resource usage, upload increment, backing texture, and change callback.\" })\nexport class Tr2TextureArray extends CjsModel\n{\n\n /** m_elements (std::vector<ImageIO::HostBitmap>) */\n @type.list(\"ImageIO::HostBitmap\")\n elements = [];\n\n /** m_texture (Tr2TextureAL) */\n @type.rawStruct(\"Tr2TextureAL\")\n texture = null;\n\n /** m_dimensions (Tr2BitmapDimensions) */\n @type.rawStruct(\"Tr2BitmapDimensions\")\n dimensions = null;\n\n /** m_onTextureChange (OnTextureChangeEvent) */\n @type.rawStruct(\"OnTextureChangeEvent\")\n onTextureChange = null;\n\n /** m_increment (uint32_t) */\n @type.uint32\n increment = 16;\n\n /** m_cpuUsage (Tr2CpuUsage::Type - enum Tr2CpuUsage) */\n @type.int32\n @type.enum(\"Tr2CpuUsage\")\n cpuUsage = 0;\n\n /** m_gpuUsage (Tr2GpuUsage::Type - enum Tr2GpuUsage) */\n @type.int32\n @type.enum(\"Tr2GpuUsage\")\n gpuUsage = 16;\n\n #expectedDimensions = null;\n\n #listeners = [];\n\n #revision = 0;\n\n /**\n * Pins the dimension gate before the first element arrives\n * (Carbon SetExpectedElementDimensions).\n *\n * @param {object} dimensions Bitmap-shaped dimensions.\n */\n SetExpectedElementDimensions(dimensions)\n {\n this.#expectedDimensions = dimensions ? Tr2TextureArray.describe(dimensions) : null;\n if (!this.dimensions) this.dimensions = this.#expectedDimensions;\n }\n\n /**\n * Adds one element (Tr2TextureArray.cpp:18-79), CPU description side.\n *\n * Carbon's dimension gate REJECTS any bitmap whose type, format, width,\n * height, depth or mip count differs from the array's - silently, via an\n * invalid handle - which is exactly how a wrong-mip-count light profile\n * fails to register. Slot reuse is first-fit over released elements, the\n * element data is copied in, and the array size rounds up to a multiple\n * of `increment` (16). The GPU texture rebuild (cpp:66-72, CreateTexture)\n * is the abstraction layer's job; this side bumps the revision and\n * notifies listeners, matching m_onTextureChange.\n *\n * @param {object} bitmap Element payload: format, width, height,\n * mipCount, samples (or data), with optional dimension and depth.\n * @returns {Tr2TextureArrayElement} A valid handle, or an invalid one\n * when the payload is missing or incompatible.\n */\n AddElement(bitmap)\n {\n const payload = bitmap && (bitmap.samples || bitmap.data);\n if (!payload) return new Tr2TextureArrayElement();\n\n const described = Tr2TextureArray.describe(bitmap);\n const gate = this.dimensions || this.#expectedDimensions;\n if (gate && (\n gate.dimension !== described.dimension\n || gate.format !== described.format\n || gate.width !== described.width\n || gate.height !== described.height\n || gate.depth !== described.depth\n || gate.mipCount !== described.mipCount))\n {\n return new Tr2TextureArrayElement();\n }\n\n let index = this.elements.length;\n for (let i = 0; i < this.elements.length; i++)\n {\n if (this.elements[i] === null)\n {\n index = i;\n break;\n }\n }\n if (index === this.elements.length) this.elements.push(null);\n\n this.elements[index] = { ...bitmap, samples: payload.slice() };\n\n this.dimensions = {\n ...described,\n arraySize: Math.ceil(this.elements.length / this.increment) * this.increment\n };\n this.#revision += 1;\n for (const listener of this.#listeners) listener(this);\n\n return new Tr2TextureArrayElement(this, index);\n }\n\n /**\n * Frees one slice (cpp:127-130): the slot becomes reusable; dimensions\n * and array size are deliberately untouched, exactly as Carbon leaves\n * the vector sized and the slot invalid.\n *\n * @param {number} index Slice index.\n */\n RemoveElement(index)\n {\n if (index >= 0 && index < this.elements.length)\n {\n this.elements[index] = null;\n this.#revision += 1;\n for (const listener of this.#listeners) listener(this);\n }\n }\n\n /**\n * Registers a texture-change listener (Carbon's OnTextureChange event).\n *\n * @param {Function} listener Called with this array after each change.\n * @returns {Function} Unsubscribe.\n */\n OnTextureChange(listener)\n {\n this.#listeners.push(listener);\n return () =>\n {\n const at = this.#listeners.indexOf(listener);\n if (at !== -1) this.#listeners.splice(at, 1);\n };\n }\n\n /** Element payload at an index, or null for a released slot. */\n GetElement(index)\n {\n return this.elements[index] ?? null;\n }\n\n /** Live (non-released) element count. */\n GetElementCount()\n {\n let count = 0;\n for (const element of this.elements) if (element !== null) count += 1;\n return count;\n }\n\n /** Current dimensions, or null before the first element. */\n GetDimensions()\n {\n return this.dimensions;\n }\n\n /** Element width; 0 before the first element (Carbon cpp:101-104). */\n GetWidth()\n {\n return this.dimensions ? this.dimensions.width : 0;\n }\n\n /** Element height; 0 before the first element. */\n GetHeight()\n {\n return this.dimensions ? this.dimensions.height : 0;\n }\n\n /** Slice capacity rounded to the increment; 0 before the first element. */\n GetArraySize()\n {\n return this.dimensions ? this.dimensions.arraySize ?? 0 : 0;\n }\n\n /** Element pixel format, or null before the first element. */\n GetFormat()\n {\n return this.dimensions ? this.dimensions.format : null;\n }\n\n /** Element mip count; 0 before the first element. */\n GetMipCount()\n {\n return this.dimensions ? this.dimensions.mipCount : 0;\n }\n\n /** Monotonic change counter for AL-side re-upload decisions. */\n GetRevision()\n {\n return this.#revision;\n }\n\n /**\n * Normalizes a bitmap-shaped payload to the compared dimension keys.\n *\n * @param {object} bitmap Payload or dimensions object.\n * @returns {object} Comparable dimension description.\n */\n static describe(bitmap)\n {\n return {\n dimension: bitmap.dimension ?? \"2d\",\n format: bitmap.format ?? null,\n width: bitmap.width ?? 0,\n height: bitmap.height ?? 0,\n depth: bitmap.depth ?? 1,\n mipCount: bitmap.mipCount ?? 1\n };\n }\n\n static Tr2CpuUsage = Tr2CpuUsage;\n\n static Tr2GpuUsage = Tr2GpuUsage;\n\n}\n"],"names":["_Tr2TextureArray","_identity","Tr2TextureArray","CjsModel","e","_init_elements","_init_extra_elements","_init_texture","_init_extra_texture","_init_dimensions","_init_extra_dimensions","_init_onTextureChange","_init_extra_onTextureChange","_init_increment","_init_extra_increment","_init_cpuUsage","_init_extra_cpuUsage","_init_gpuUsage","_init_extra_gpuUsage","c","_initClass","_applyDecs","type","define","className","family","purpose","list","rawStruct","uint32","int32","enum","elements","texture","dimensions","onTextureChange","increment","cpuUsage","gpuUsage","SetExpectedElementDimensions","describe","AddElement","bitmap","payload","samples","data","Tr2TextureArrayElement","described","gate","dimension","format","width","height","depth","mipCount","index","length","i","push","slice","arraySize","Math","ceil","listener","RemoveElement","OnTextureChange","at","indexOf","splice","GetElement","GetElementCount","count","element","GetDimensions","GetWidth","GetHeight","GetArraySize","GetFormat","GetMipCount","GetRevision","Tr2CpuUsage","Tr2GpuUsage","constructor"],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ // Source: trinity/trinity/Tr2TextureArray.h
2
+ // trinity/trinity/Tr2TextureArray.cpp
3
+
4
+ /**
5
+ * Element handle returned by {@link Tr2TextureArray.AddElement}.
6
+ *
7
+ * Carbon's handle is a shared_ptr whose Data destructor calls
8
+ * `RemoveElement` (Tr2TextureArray.cpp:233-236). JavaScript has no
9
+ * destructors, so release is EXPLICIT: the owner calls `Release()` when the
10
+ * slice is done (the lifecycle ruling - Destroy/Release verbs, never
11
+ * finalizers). Carbon quirk kept and documented: an invalid handle reports
12
+ * element index 0, the same value as a valid slot 0 (cpp:216-219), which is
13
+ * why every consumer applies the +1 bias itself.
14
+ */
15
+ class Tr2TextureArrayElement {
16
+ #array = null;
17
+ #index = 0;
18
+
19
+ /** Creates a handle; internal - only AddElement constructs valid ones. */
20
+ constructor(array = null, index = 0) {
21
+ this.#array = array;
22
+ this.#index = index;
23
+ }
24
+
25
+ /** Reports whether this handle names a live slice. */
26
+ IsValid() {
27
+ return this.#array !== null;
28
+ }
29
+
30
+ /** The slice index inside the array; 0 when invalid (Carbon cpp:216-219). */
31
+ GetElementIndex() {
32
+ return this.#array !== null ? this.#index : 0;
33
+ }
34
+
35
+ /** The owning array, or null for an invalid handle. */
36
+ GetArray() {
37
+ return this.#array;
38
+ }
39
+
40
+ /**
41
+ * The owning array's realized texture (Carbon cpp:222-229), or null -
42
+ * realization is the abstraction layer's; it parks the AL object on the
43
+ * array's `texture` field and every live handle sees it.
44
+ */
45
+ GetTexture() {
46
+ return this.#array ? this.#array.texture : null;
47
+ }
48
+
49
+ /**
50
+ * Frees the slice (Carbon's Data destructor, cpp:233-236). Idempotent.
51
+ */
52
+ Release() {
53
+ if (this.#array === null) return;
54
+ this.#array.RemoveElement(this.#index);
55
+ this.#array = null;
56
+ this.#index = 0;
57
+ }
58
+ }
59
+
60
+ export { Tr2TextureArrayElement };
61
+ //# sourceMappingURL=Tr2TextureArrayElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2TextureArrayElement.js","sources":["../../../../../src/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js"],"sourcesContent":["// Source: trinity/trinity/Tr2TextureArray.h\n// trinity/trinity/Tr2TextureArray.cpp\n\n\n\n/**\n * Element handle returned by {@link Tr2TextureArray.AddElement}.\n *\n * Carbon's handle is a shared_ptr whose Data destructor calls\n * `RemoveElement` (Tr2TextureArray.cpp:233-236). JavaScript has no\n * destructors, so release is EXPLICIT: the owner calls `Release()` when the\n * slice is done (the lifecycle ruling - Destroy/Release verbs, never\n * finalizers). Carbon quirk kept and documented: an invalid handle reports\n * element index 0, the same value as a valid slot 0 (cpp:216-219), which is\n * why every consumer applies the +1 bias itself.\n */\nexport class Tr2TextureArrayElement\n{\n\n #array = null;\n\n #index = 0;\n\n /** Creates a handle; internal - only AddElement constructs valid ones. */\n constructor(array = null, index = 0)\n {\n this.#array = array;\n this.#index = index;\n }\n\n /** Reports whether this handle names a live slice. */\n IsValid()\n {\n return this.#array !== null;\n }\n\n /** The slice index inside the array; 0 when invalid (Carbon cpp:216-219). */\n GetElementIndex()\n {\n return this.#array !== null ? this.#index : 0;\n }\n\n /** The owning array, or null for an invalid handle. */\n GetArray()\n {\n return this.#array;\n }\n\n /**\n * The owning array's realized texture (Carbon cpp:222-229), or null -\n * realization is the abstraction layer's; it parks the AL object on the\n * array's `texture` field and every live handle sees it.\n */\n GetTexture()\n {\n return this.#array ? this.#array.texture : null;\n }\n\n /**\n * Frees the slice (Carbon's Data destructor, cpp:233-236). Idempotent.\n */\n Release()\n {\n if (this.#array === null) return;\n this.#array.RemoveElement(this.#index);\n this.#array = null;\n this.#index = 0;\n }\n\n}\n"],"names":["Tr2TextureArrayElement","constructor","array","index","IsValid","GetElementIndex","GetArray","GetTexture","texture","Release","RemoveElement"],"mappings":"AAAA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,sBAAsB,CACnC;EAEI,MAAM,GAAG,IAAI;EAEb,MAAM,GAAG,CAAC;;AAEV;EACAC,WAAWA,CAACC,KAAK,GAAG,IAAI,EAAEC,KAAK,GAAG,CAAC,EACnC;AACI,IAAA,IAAI,CAAC,MAAM,GAAGD,KAAK;AACnB,IAAA,IAAI,CAAC,MAAM,GAAGC,KAAK;AACvB,EAAA;;AAEA;AACAC,EAAAA,OAAOA,GACP;AACI,IAAA,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI;AAC/B,EAAA;;AAEA;AACAC,EAAAA,eAAeA,GACf;AACI,IAAA,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;AACjD,EAAA;;AAEA;AACAC,EAAAA,QAAQA,GACR;IACI,OAAO,IAAI,CAAC,MAAM;AACtB,EAAA;;AAEA;AACJ;AACA;AACA;AACA;AACIC,EAAAA,UAAUA,GACV;AACI,IAAA,OAAO,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAACC,OAAO,GAAG,IAAI;AACnD,EAAA;;AAEA;AACJ;AACA;AACIC,EAAAA,OAAOA,GACP;AACI,IAAA,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;IAC1B,IAAI,CAAC,MAAM,CAACC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,IAAA,IAAI,CAAC,MAAM,GAAG,IAAI;AAClB,IAAA,IAAI,CAAC,MAAM,GAAG,CAAC;AACnB,EAAA;AAEJ;;;;"}
@@ -0,0 +1,26 @@
1
+ import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { RenderBatchSortType } from '../../../generated/trinityCore/enums.js';
3
+ import { carbon, impl } from '#schema';
4
+
5
+ let _initStatic;
6
+
7
+ /** Carbon's DefaultKeyGenerator batch sorting policy. */
8
+ class DefaultKeyGenerator {
9
+ static {
10
+ [_initStatic] = _applyDecs2311(this, [], [[[carbon, carbon.method, impl, impl.implemented], 26, "Less"], [[carbon, carbon.method, impl, impl.implemented], 26, "GetSortType"]]).e;
11
+ _initStatic(this);
12
+ }
13
+ /** Carbon's unsorted comparator never requests a reorder. */
14
+ static Less(_batch1, _batch2) {
15
+ return false;
16
+ }
17
+
18
+ /** Selects the unsorted accumulator path. */
19
+ static GetSortType() {
20
+ return RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;
21
+ }
22
+ static ALLOW_GDPR = false;
23
+ }
24
+
25
+ export { DefaultKeyGenerator };
26
+ //# sourceMappingURL=DefaultKeyGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultKeyGenerator.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h\nimport { RenderBatchSortType } from \"../../../generated/trinityCore/enums.js\";\nimport { carbon, impl } from \"#schema\";\n\n/** Carbon's DefaultKeyGenerator batch sorting policy. */\nexport class DefaultKeyGenerator\n{\n /** Carbon's unsorted comparator never requests a reorder. */\n @carbon.method\n @impl.implemented\n static Less(_batch1, _batch2)\n {\n return false;\n }\n\n /** Selects the unsorted accumulator path. */\n @carbon.method\n @impl.implemented\n static GetSortType()\n {\n return RenderBatchSortType.RENDERBATCHSORTTYPE_NONE;\n }\n\n static ALLOW_GDPR = false;\n}\n"],"names":["DefaultKeyGenerator","_initStatic","_applyDecs","carbon","method","impl","implemented","e","Less","_batch1","_batch2","GetSortType","RenderBatchSortType","RENDERBATCHSORTTYPE_NONE","ALLOW_GDPR"],"mappings":";;;;;;AAIA;AACO,MAAMA,mBAAmB,CAChC;AAAA,EAAA;AAAA,IAAA,CAAAC,WAAA,CAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAEGC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAOhBH,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,WAAW,CAAA,EAAA,EAAA,EAAA,aAAA,CAAA,CAAA,CAAA,CAAAC,CAAA;IAAAN,WAAA,CAAA,IAAA,CAAA;AAAA;AAVjB;AACA,EAAA,OAEOO,IAAIA,CAACC,OAAO,EAAEC,OAAO,EAC5B;AACE,IAAA,OAAO,KAAK;AACd,EAAA;;AAEA;EACA,OAEOC,WAAWA,GAClB;IACE,OAAOC,mBAAmB,CAACC,wBAAwB;AACrD,EAAA;EAEA,OAAOC,UAAU,GAAG,KAAK;AAC3B;;;;"}
@@ -0,0 +1,29 @@
1
+ import { applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import { RenderBatchSortType } from '../../../generated/trinityCore/enums.js';
3
+ import { OrderOf } from './Tr2RenderBatch.js';
4
+ import { carbon, impl } from '#schema';
5
+
6
+ let _initStatic;
7
+
8
+ /** Carbon's EffectKeyGenerator batch sorting policy. */
9
+ class EffectKeyGenerator {
10
+ static {
11
+ [_initStatic] = _applyDecs2311(this, [], [[[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("JavaScript has no pointer ordering; the existing per-reference ordinal keeps equal shader identities contiguous.")], 26, "Less"], [[carbon, carbon.method, impl, impl.implemented], 26, "GetSortType"]]).e;
12
+ _initStatic(this);
13
+ }
14
+ /** Orders shader identities, then vertex declarations. */
15
+ static Less(batch1, batch2) {
16
+ const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);
17
+ if (shaderOrder !== 0) return shaderOrder < 0;
18
+ return batch1.vertexDeclaration < batch2.vertexDeclaration;
19
+ }
20
+
21
+ /** Selects Carbon's regular sort path. */
22
+ static GetSortType() {
23
+ return RenderBatchSortType.RENDERBATCHSORTTYPE_SORT;
24
+ }
25
+ static ALLOW_GDPR = true;
26
+ }
27
+
28
+ export { EffectKeyGenerator };
29
+ //# sourceMappingURL=EffectKeyGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EffectKeyGenerator.js","sources":["../../../../../../src/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js"],"sourcesContent":["// Source: trinity/trinity/TriRenderBatch.h\nimport { RenderBatchSortType } from \"../../../generated/trinityCore/enums.js\";\nimport { OrderOf } from \"./Tr2RenderBatch.js\";\nimport { carbon, impl } from \"#schema\";\n\n/** Carbon's EffectKeyGenerator batch sorting policy. */\nexport class EffectKeyGenerator\n{\n /** Orders shader identities, then vertex declarations. */\n @carbon.method\n @impl.adapted\n @impl.reason(\"JavaScript has no pointer ordering; the existing per-reference ordinal keeps equal shader identities contiguous.\")\n static Less(batch1, batch2)\n {\n const shaderOrder = OrderOf(batch1.shader) - OrderOf(batch2.shader);\n if (shaderOrder !== 0) return shaderOrder < 0;\n return batch1.vertexDeclaration < batch2.vertexDeclaration;\n }\n\n /** Selects Carbon's regular sort path. */\n @carbon.method\n @impl.implemented\n static GetSortType()\n {\n return RenderBatchSortType.RENDERBATCHSORTTYPE_SORT;\n }\n\n static ALLOW_GDPR = true;\n}\n"],"names":["EffectKeyGenerator","_initStatic","_applyDecs","carbon","method","impl","adapted","reason","implemented","e","Less","batch1","batch2","shaderOrder","OrderOf","shader","vertexDeclaration","GetSortType","RenderBatchSortType","RENDERBATCHSORTTYPE_SORT","ALLOW_GDPR"],"mappings":";;;;;;;AAKA;AACO,MAAMA,kBAAkB,CAC/B;AAAA,EAAA;AAAA,IAAA,CAAAC,WAAA,CAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAEGC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,OAAO,EAAA,MAAA,EACZD,IAAI,CAACE,MAAM,CAAC,kHAAkH,CAAC,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAS/HJ,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACG,WAAW,wBAAAC,CAAA;IAAAR,WAAA,CAAA,IAAA,CAAA;AAAA;AAbjB;AACA,EAAA,OAGOS,IAAIA,CAACC,MAAM,EAAEC,MAAM,EAC1B;AACE,IAAA,MAAMC,WAAW,GAAGC,OAAO,CAACH,MAAM,CAACI,MAAM,CAAC,GAAGD,OAAO,CAACF,MAAM,CAACG,MAAM,CAAC;AACnE,IAAA,IAAIF,WAAW,KAAK,CAAC,EAAE,OAAOA,WAAW,GAAG,CAAC;AAC7C,IAAA,OAAOF,MAAM,CAACK,iBAAiB,GAAGJ,MAAM,CAACI,iBAAiB;AAC5D,EAAA;;AAEA;EACA,OAEOC,WAAWA,GAClB;IACE,OAAOC,mBAAmB,CAACC,wBAAwB;AACrD,EAAA;EAEA,OAAOC,UAAU,GAAG,IAAI;AAC1B;;;;"}