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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (929) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/utils/bytes.js +22 -4
  80. package/dist/global/utils/bytes.js.map +1 -1
  81. package/dist/global/utils/checksum.js +80 -0
  82. package/dist/global/utils/checksum.js.map +1 -0
  83. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  84. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  85. package/dist/global/utils/errors/CjsError.js +21 -52
  86. package/dist/global/utils/errors/CjsError.js.map +1 -1
  87. package/dist/global/utils/errors/abort.js +1 -1
  88. package/dist/global/utils/errors/abort.js.map +1 -1
  89. package/dist/global/utils/errors/index.js +2 -1
  90. package/dist/global/utils/errors/index.js.map +1 -1
  91. package/dist/global/utils/index.js +4 -2
  92. package/dist/global/utils/index.js.map +1 -1
  93. package/dist/index.js +95 -35
  94. package/dist/index.js.map +1 -1
  95. package/dist/input/Tr2MainWindow.js +7 -9
  96. package/dist/input/Tr2MainWindow.js.map +1 -1
  97. package/dist/resource/CjsResMan.js +33 -39
  98. package/dist/resource/CjsResMan.js.map +1 -1
  99. package/dist/resource/CjsResource.js +19 -5
  100. package/dist/resource/CjsResource.js.map +1 -1
  101. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  102. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  103. package/dist/resource/audio/CjsAudioRes.js +4 -5
  104. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  105. package/dist/resource/format/CjsBitReader.js +263 -0
  106. package/dist/resource/format/CjsBitReader.js.map +1 -0
  107. package/dist/resource/format/CjsByteReader.js +130 -125
  108. package/dist/resource/format/CjsByteReader.js.map +1 -1
  109. package/dist/resource/format/CjsFormat.js +11 -4
  110. package/dist/resource/format/CjsFormat.js.map +1 -1
  111. package/dist/resource/format/CjsFormatError.js +37 -1
  112. package/dist/resource/format/CjsFormatError.js.map +1 -1
  113. package/dist/resource/format/CjsResourceProbe.js +41 -37
  114. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  115. package/dist/resource/format/carbonRecordGuard.js +33 -0
  116. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  117. package/dist/resource/format/imageSignatures.js +202 -0
  118. package/dist/resource/format/imageSignatures.js.map +1 -0
  119. package/dist/resource/format/index.js +2 -1
  120. package/dist/resource/format/index.js.map +1 -1
  121. package/dist/resource/format/jsonPolicies.js +180 -0
  122. package/dist/resource/format/jsonPolicies.js.map +1 -0
  123. package/dist/resource/formats/black/core/helpers.js +18 -29
  124. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  125. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  126. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  127. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  128. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  129. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  130. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  132. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  133. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  134. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  136. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  138. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  140. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  142. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  144. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  145. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  146. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  147. package/dist/resource/formats/cmf/core/binary.js +54 -60
  148. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  149. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  150. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  151. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  152. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  153. package/dist/resource/formats/dds/core/bc7.js +28 -24
  154. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  155. package/dist/resource/formats/dds/core/helpers.js +7 -133
  156. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  157. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  158. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  159. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  160. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  162. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  163. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  164. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  166. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  167. package/dist/resource/formats/flac/core/helpers.js +1 -62
  168. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  170. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  171. package/dist/resource/formats/gif/core/helpers.js +1 -63
  172. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  174. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  175. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  176. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  178. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  179. package/dist/resource/formats/gr2/core/container.js +1 -10
  180. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  181. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  182. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/shared.js +193 -189
  184. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  185. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  186. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  187. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  188. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  189. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  190. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  191. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  192. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  194. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  195. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  196. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  198. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  199. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  200. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  202. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  203. package/dist/resource/formats/obj/core/helpers.js +93 -115
  204. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  206. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  207. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  208. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  210. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  211. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  212. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  213. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  214. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  215. package/dist/resource/formats/png/core/helpers.js +13 -152
  216. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  217. package/dist/resource/formats/png/core/writer.js +3 -27
  218. package/dist/resource/formats/png/core/writer.js.map +1 -1
  219. package/dist/resource/formats/red/core/helpers.js +19 -29
  220. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  222. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  223. package/dist/resource/formats/stl/core/helpers.js +44 -66
  224. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  226. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  227. package/dist/resource/formats/tga/core/helpers.js +7 -153
  228. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  230. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  231. package/dist/resource/formats/vta/core/helpers.js +1 -17
  232. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  234. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  235. package/dist/resource/formats/wav/core/helpers.js +1 -15
  236. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  238. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  239. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +52 -4
  240. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  241. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  242. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  243. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  244. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  245. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  246. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  247. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  248. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  249. package/dist/resource/formats/webm/core/helpers.js +1 -73
  250. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  251. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  252. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  253. package/dist/resource/formats/webp/core/helpers.js +1 -62
  254. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  255. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  256. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  257. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  258. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  259. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  260. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  261. package/dist/resource/formats/wem/core/helpers.js +1 -15
  262. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  263. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  264. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  265. package/dist/resource/geometry/MeshDecalData.js +23 -25
  266. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  267. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  268. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  269. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  270. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  271. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  272. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  273. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  274. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  276. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  278. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  280. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  281. package/dist/resource/geometry/TriJointBinding.js +16 -24
  282. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  283. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  284. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  285. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  286. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  287. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  288. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  289. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  290. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  291. package/dist/resource/index.js +1 -1
  292. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  293. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  294. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  295. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  296. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  297. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  299. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  301. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  303. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  305. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  307. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  309. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  310. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  311. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  312. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  313. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  314. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  315. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  316. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  317. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  318. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  319. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  320. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  321. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  322. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  323. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  325. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  327. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  329. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  337. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  338. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  339. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  340. package/dist/resource/worker/protocol.js +18 -1
  341. package/dist/resource/worker/protocol.js.map +1 -1
  342. package/dist/sof/EveSOF.js +2 -222
  343. package/dist/sof/EveSOF.js.map +1 -1
  344. package/dist/sof/SofDocumentBuilder.js +205 -0
  345. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  346. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  347. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  348. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  349. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  350. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  351. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  352. package/dist/sof/faction/index.js +3 -1
  353. package/dist/sof/faction/index.js.map +1 -1
  354. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  355. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  356. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  357. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  358. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  359. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  360. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  361. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  362. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  363. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  364. package/dist/sof/generic/index.js +5 -1
  365. package/dist/sof/generic/index.js.map +1 -1
  366. package/dist/sof/index.js +23 -7
  367. package/dist/sof/index.js.map +1 -1
  368. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  369. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  370. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  371. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  372. package/dist/sof/pattern/index.js +2 -1
  373. package/dist/sof/pattern/index.js.map +1 -1
  374. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  375. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  376. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  377. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  378. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  379. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  380. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  381. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  382. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  383. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  384. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  385. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  386. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  387. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  388. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  389. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  390. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  391. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  392. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  393. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  395. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  398. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  399. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  400. package/dist/sof/shared/index.js +13 -4
  401. package/dist/sof/shared/index.js.map +1 -1
  402. package/dist/sof/sofDocumentValues.js +33 -0
  403. package/dist/sof/sofDocumentValues.js.map +1 -0
  404. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  405. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  406. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  407. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  408. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  409. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  410. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  411. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  412. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  413. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  414. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  415. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  416. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  417. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  418. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  419. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  420. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  421. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  424. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  425. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  426. package/dist/trinity/controllers/index.js +5 -2
  427. package/dist/trinity/controllers/index.js.map +1 -1
  428. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  429. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  430. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  431. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  432. package/dist/trinity/core/ITr2Updateable.js +2 -1
  433. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  434. package/dist/trinity/core/Tr2Blitter.js +6 -3
  435. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  436. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  437. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  438. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  439. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  440. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  441. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  442. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  443. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  444. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  445. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  446. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  447. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  448. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  449. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  450. package/dist/trinity/core/Tr2Renderer.js +146 -1
  451. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  452. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  453. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  454. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  455. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  456. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  457. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  458. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  459. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  460. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  461. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  462. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  463. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  464. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  465. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  466. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  467. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  468. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  469. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  470. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  471. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  472. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  473. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  474. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  475. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  476. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  477. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  478. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  479. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  480. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  481. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  482. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  483. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  484. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  485. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  486. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  487. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  488. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  489. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  490. package/dist/trinity/core/index.js +42 -15
  491. package/dist/trinity/core/index.js.map +1 -1
  492. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  493. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  494. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  495. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  496. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  497. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  498. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  499. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  500. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  501. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  502. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  503. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  504. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  505. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  506. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  507. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  508. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  509. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  510. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  511. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  512. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  513. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  514. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  515. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  516. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  517. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  519. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  520. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  521. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  522. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  547. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  549. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  550. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  551. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  552. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  553. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  573. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  575. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  577. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  578. package/dist/trinity/core/variable/TriVariable.js +83 -83
  579. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  580. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  581. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  582. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  583. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  584. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  585. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  586. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  587. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  588. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  589. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  590. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  591. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  592. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  593. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  594. package/dist/trinity/eve/IEveTransform.js +2 -1
  595. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  596. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  597. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  598. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  599. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  600. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  601. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  602. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  603. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  604. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  605. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  606. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  607. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  608. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  609. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  610. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  611. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  612. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  613. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  614. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  615. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  616. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  617. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  619. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  621. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  622. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  623. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  624. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  625. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  626. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  627. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  628. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  629. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  631. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  632. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  633. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  634. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  635. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  636. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  639. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  640. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  641. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  643. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  645. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  647. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  648. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  649. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  650. package/dist/trinity/eve/index.js +10 -4
  651. package/dist/trinity/eve/index.js.map +1 -1
  652. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  653. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  654. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  655. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  656. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  657. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  658. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  659. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  660. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  661. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  662. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  663. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  664. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  665. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  666. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  667. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  668. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  669. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  670. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  671. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  672. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  673. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  674. package/dist/trinity/generated/index.js +0 -1
  675. package/dist/trinity/generated/index.js.map +1 -1
  676. package/dist/trinity/generated/trinityCore/index.js +0 -1
  677. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  678. package/dist/trinity/index.js +59 -23
  679. package/dist/trinity/index.js.map +1 -1
  680. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  681. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  682. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  683. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  684. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  685. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  686. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  687. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  688. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  689. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  690. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  691. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  692. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  693. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  694. package/dist/trinity/particle/index.js +2 -1
  695. package/dist/trinity/particle/index.js.map +1 -1
  696. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  697. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  698. package/dist/trinity/shader/Tr2Effect.js +131 -58
  699. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  700. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  701. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  702. package/dist/trinity/shader/Tr2Material.js +21 -4
  703. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  704. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  705. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  706. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  707. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  708. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  709. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  710. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  711. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  712. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  713. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  714. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  715. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  716. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  717. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  718. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  719. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  720. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  721. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  724. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  728. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  729. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  730. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  731. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  732. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  733. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  734. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  735. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  736. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  737. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  740. package/dist/trinityal/index.js +22 -9
  741. package/dist/trinityal/index.js.map +1 -1
  742. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  743. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  744. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  745. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  746. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  747. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  749. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  751. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  752. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  753. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  754. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  755. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  756. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  757. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  758. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  759. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  761. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  762. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  763. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  764. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  765. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  766. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  767. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  769. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  771. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  772. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  773. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  774. package/dist/trinityal/stub/index.js +8 -4
  775. package/dist/trinityal/stub/index.js.map +1 -1
  776. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  777. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  778. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  779. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  780. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  781. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  782. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  783. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  785. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  787. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  789. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  791. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  793. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  795. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  796. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  797. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  799. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  800. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  801. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  802. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  803. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  804. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  807. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  813. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  815. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  817. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  821. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  822. package/dist/trinityal/webgpu/internal.js +12 -11
  823. package/dist/trinityal/webgpu/internal.js.map +1 -1
  824. package/docs/audio/reference/classes/trinity.md +44 -34
  825. package/docs/character/architecture.md +276 -0
  826. package/docs/character/reference/character-appearance-plans.md +30 -66
  827. package/docs/character/reference/prepared-libraries.md +14 -30
  828. package/docs/global/reference/api.md +2 -1
  829. package/docs/global/reference/classes/README.md +53 -71
  830. package/docs/global/reference/classes/dropped.md +16 -0
  831. package/docs/resource/README.md +19 -15
  832. package/docs/resource/architecture.md +9 -2
  833. package/docs/resource/concepts/format-capabilities.md +124 -80
  834. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  835. package/docs/resource/formats/README.md +230 -224
  836. package/docs/resource/formats/bitknit2.md +221 -0
  837. package/docs/resource/formats/carbon-effect-container.md +184 -269
  838. package/docs/resource/formats/gr2.md +6 -1
  839. package/docs/resource/formats/schemabound.md +28 -48
  840. package/docs/resource/formats/static.md +70 -97
  841. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  842. package/docs/resource/formats/webgl/decl-io.md +165 -256
  843. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  844. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  845. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  846. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  847. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  848. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +104 -260
  849. package/docs/resource/reference/classes/core.md +256 -236
  850. package/docs/resource/reference/classes/formats.md +1668 -1672
  851. package/docs/resource/reference/workers.md +4 -2
  852. package/docs/sof/reference/classes/core.md +1 -1
  853. package/docs/sof/reference/classes/faction.md +2 -2
  854. package/docs/sof/reference/classes/generic.md +4 -4
  855. package/docs/sof/reference/classes/pattern.md +1 -1
  856. package/docs/sof/reference/classes/shared.md +10 -10
  857. package/docs/trinity/architecture.md +55 -44
  858. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  859. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  860. package/docs/trinity/reference/classes/dropped.md +0 -189
  861. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  862. package/docs/trinity/reference/classes/generated.md +0 -10
  863. package/docs/trinity/reference/classes/particle.md +2 -2
  864. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  865. package/docs/trinity/reference/implementation-status.md +50 -75
  866. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  867. package/docs/trinityal/reference/classes/README.md +77 -27
  868. package/docs/trinityal/reference/classes/dropped.md +82 -0
  869. package/docs/trinityal/webgpu/README.md +3 -1
  870. package/docs/trinityal/webgpu/architecture.md +121 -228
  871. package/docs/trinityal/webgpu/reference/api.md +5 -5
  872. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  873. package/format-notices/gr2/NOTICE +18 -12
  874. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  875. package/package.json +4 -1
  876. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  877. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  878. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  879. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  880. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  881. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  882. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  883. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  884. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  885. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  886. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  887. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  888. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  889. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  890. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  891. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  892. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  893. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  894. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  895. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  896. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  897. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  898. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  899. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  900. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  901. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  902. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  903. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  904. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  905. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  906. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  907. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  908. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  909. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  910. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  911. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  912. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  913. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  914. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  915. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  916. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  917. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  918. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  919. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  920. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  921. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  922. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  923. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2Material.js","sources":["../../../../src/trinity/shader/Tr2Material.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2Material.h\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\nimport { type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { Tr2Shader } from \"#resource/shader\";\nimport { ShaderType } from \"#consts/render-context\";\nimport { FNV1_INITIAL, hashFnv1Floats } from \"../../global/utils/hash.js\";\nimport { Failed } from \"../../trinityal/ALResult.js\";\nimport { Tr2ConstantUsageAL } from \"../../trinityal/index.js\";\nimport { Tr2EffectStateManager } from \"./Tr2EffectStateManager.js\";\nimport { EFFECT_CONSTANTS } from \"../core/Tr2Renderer.js\";\nimport { CompareFunc } from \"#consts/render-context\";\nimport { SAMPLER_LOD_UNBOUNDED } from \"../../trinityal/Tr2SamplerDescription.js\";\n\n\n/**\n * Carbon's `CreateSamplerDescription( const Tr2SamplerOverride& )`\n * (`Tr2Effect.cpp:595-612`), field for field: the override's one filter serves\n * min and mag, no comparison, a transparent black border, `maxMipLevel` as the\n * minimum LOD and an unbounded maximum.\n *\n * @param {object} override A `Tr2SamplerOverride`.\n * @returns {object} A `Tr2SamplerDescription`.\n */\nfunction SamplerDescriptionFromOverride(override)\n{\n return {\n minFilter: override.filter,\n magFilter: override.filter,\n mipFilter: override.mipFilter,\n comparison: false,\n addressU: override.addressU,\n addressV: override.addressV,\n addressW: override.addressW,\n mipLODBias: override.lodBias,\n maxAnisotropy: override.maxAnisotropy,\n comparisonFunc: CompareFunc.CMP_NEVER,\n borderColor: [ 0, 0, 0, 0 ],\n minLOD: override.maxMipLevel,\n maxLOD: SAMPLER_LOD_UNBOUNDED\n };\n}\n\n/** Owns a resolved shader's per-technique pass and library bindings, resource invalidation, texture LOD forwarding, and draw-sort state. */\n@type.define({ className: \"Tr2Material\", family: \"shader\" })\nexport class Tr2Material extends CjsModel\n{\n\n /** m_shader (Tr2ShaderPtr) */\n @type.objectRef(\"Tr2Shader\")\n shader = null;\n\n /** m_parametersForPasses (Tr2EffectTechniqueParametersVector) */\n @type.list(\"Tr2EffectTechniqueInputs\")\n parametersForPasses = [];\n\n /** m_parametersForLibraries (Tr2EffectTechniqueParametersVector) */\n @type.list(\"Tr2EffectTechniqueInputs\")\n parametersForLibraries = [];\n\n /** m_lodTextureParameters (std::vector<ITriEffectTextureParameterPtr>) */\n @type.list(\"ITriEffectTextureParameter\")\n lodTextureParameters = [];\n\n /** m_resourceSetHash (mutable uint32_t) */\n @type.uint32\n resourceSetHash = 0;\n\n /** m_compatibleWithGdr (bool) */\n @type.boolean\n compatibleWithGdr = false;\n\n /**\n * The resource-set hash, which doubles as the material's draw-sort key; 0\n * whenever the resource sets have been invalidated.\n */\n GetSortValue()\n {\n return this.resourceSetHash;\n }\n\n /**\n * The Tr2Shader supplying reflection and render state for this material, or\n * null before one is resolved.\n */\n GetShaderStateInterface()\n {\n return this.shader;\n }\n\n /**\n * The per-pass parameter block for a technique/pass pair, or null when either\n * index is out of range.\n */\n GetPassDescription(techniqueIndex = 0, passIndex = 0)\n {\n return this.parametersForPasses?.[techniqueIndex]?.passes?.[passIndex] ?? null;\n }\n\n /**\n * Binds one pass's parameters: its constants to the stages that read them,\n * and its resources through a resource set built from the description.\n *\n * Carbon `Tr2Material::ApplyMaterialDataForPass`\n * (`Shader/Tr2Material.cpp:209-253`). THIS IS THE METHOD THE INTENT QUEUE\n * WAS BUILT AROUND NOT HAVING - the browser backend's resolver reimplemented\n * its effect on the engine side because \"the engine does device work\" was\n * read as the engine PACKAGE rather than the abstraction layer. It belongs\n * here, and everything it touches is a description or a handle.\n *\n * ONLY THE STAGES THE TECHNIQUE DECLARES are walked, which is what the mask\n * is for: a technique with no geometry shader must not bind one's constants.\n *\n * @param {number} techniqueIndex Technique index.\n * @param {number} passIndex Pass index within the technique.\n * @param {object} renderContext The context to bind against.\n * @returns {boolean} Whether the pass was applied.\n */\n ApplyMaterialDataForPass(techniqueIndex, passIndex, renderContext)\n {\n if (!this.shader) return false;\n\n const pass = this.GetPassDescription(techniqueIndex, passIndex);\n\n if (!pass) return false;\n\n // SEEDED ON FIRST APPLY, THROUGH THE CONTEXT THAT APPLIES. Carbon seeds the\n // pass description with sampler states at effect load through the\n // main-thread context (Tr2EffectDescription.cpp:436, :639-650) and applies\n // overrides per rebuild (Tr2Effect.cpp:623-662). Ours has no process-wide\n // device context - `Tr2RenderContext.GetDefault()` exists, but nothing\n // installs a backend on it - so seeding there made every sampler state the\n // stub's, which a WebGPU resource set cannot bind and replaced with its\n // dummy. A fresh pass (no set yet) is seeded here, by the context that will\n // build its resource set, of that backend's kind.\n if (pass.resourceSet === null) this.SeedSamplers(techniqueIndex, passIndex, pass, renderContext);\n\n let mask = this.shader.GetShaderTypeMask(techniqueIndex);\n let descChanged = pass.resourceSetDirty;\n\n for (let stage = 0; stage < ShaderType.SHADER_TYPE_COUNT && mask; stage += 1)\n {\n if (!(mask & (1 << stage))) continue;\n\n // OR-ASSIGNED, NEVER SHORT-CIRCUITED. Carbon writes `descChanged |=`, and\n // `||` here would skip the remaining stages' bindings as soon as one\n // reported a change - a pixel stage silently unbound because the vertex\n // stage happened to move first.\n descChanged = this.ApplyShaderInputs(pass, stage, renderContext) || descChanged;\n mask &= ~(1 << stage);\n }\n\n if (descChanged || !pass.resourceSet)\n {\n const handle = this.shader.GetEffect()?.techniques?.[techniqueIndex]?.passes?.[passIndex]?.shaderProgram;\n\n // Carbon: `renderContext.m_esm.GetShaderProgram( handle )`, then\n // `pp.m_resourceSet.Create( desc, *sp, renderContext )`\n // (Tr2Material.cpp:232-234). The program is the REALIZED AL program -\n // the resource set lays its entries out against the program's bindings -\n // and the set is the backend's kind, made by the context. Until\n // 2026-09-10 this constructed the stub directly with the interned ROW,\n // so no backend ever saw a resource set it could bind.\n if (Tr2EffectStateManager.getShaderProgramRecord(handle) === null) return false;\n\n const program = renderContext.GetEffectStateManager().GetShaderProgram(handle);\n\n // Carbon tests the program itself and binds nothing without one\n // (Tr2Material.cpp:232-236); a stage that refused to compile is such a case.\n if (!program) return false;\n\n const resourceSet = renderContext.CreateResourceSet(pass.resourceSetDesc, program);\n\n if (!resourceSet) return false;\n\n pass.resourceSet = resourceSet;\n pass.resourceSetHash = pass.resourceSetDesc.ComputeHash();\n pass.resourceSetDirty = false;\n\n this.#RebuildResourceSetHash();\n }\n\n return renderContext.SetResourceSet(pass.resourceSet);\n }\n\n /**\n * Applies one shader stage of one pass: its constants, then its resources\n * into the pass's description.\n *\n * Carbon `Tr2Material::ApplyShaderInputs`.\n *\n * @param {object} pass A `Tr2EffectPassParameters`.\n * @param {number} shaderType A `ShaderType`.\n * @param {object} renderContext The context to bind against.\n * @returns {boolean} Whether the description changed.\n */\n ApplyShaderInputs(pass, shaderType, renderContext)\n {\n const input = pass.stageInput[shaderType];\n\n if (!input) return false;\n\n this.ApplyConstants(shaderType, input, pass.reroutedParameters.length > 0, renderContext);\n\n return this.UpdateResourceSetDesc(shaderType, input, pass.resourceSetDesc, renderContext);\n }\n\n /**\n * Writes one stage's textures and UAVs into a resource-set description.\n *\n * Carbon `Tr2Material::UpdateResourceSetDesc`. Each parameter binds itself -\n * the material knows the register, the parameter knows the resource.\n *\n * `registerCount` IS A FLAG WORD HERE, not a count. Carbon passes it as\n * `ResourceFlags`, and for a resource that field carries the sRGB bit; only\n * for a constant is it a byte size.\n *\n * @param {number} shaderType A `ShaderType`.\n * @param {object} input A `Tr2MaterialStageInput`.\n * @param {object} desc A `Tr2ResourceSetDescriptionAL`.\n * @returns {boolean} Whether any binding changed the description.\n */\n UpdateResourceSetDesc(shaderType, input, desc, renderContext = null)\n {\n let descChanged = false;\n\n for (const texture of input.textures)\n {\n // The context is an added trailing argument: a texture parameter makes\n // the resource's texture at first bind through it (Carbon makes it at\n // load through a process-wide context; see Tr2ImageIOHelpers).\n descChanged = texture.sourceValue?.CopyToResourceSet(\n desc,\n shaderType,\n texture.registerIndex,\n texture.registerCount,\n renderContext\n ) || descChanged;\n }\n\n for (const uav of input.uavs)\n {\n descChanged = uav.sourceValue?.ApplyUav(desc, shaderType, uav.registerIndex) || descChanged;\n }\n\n return descChanged;\n }\n\n /**\n * Refreshes one stage's constant mirror and binds its buffer.\n *\n * Carbon `Tr2Material::ApplyConstants`. A stage with no constant buffer does\n * nothing at all - not an empty bind.\n *\n * @param {number} shaderType A `ShaderType`.\n * @param {object} input A `Tr2MaterialStageInput`.\n * @param {boolean} hasReroutables Whether the pass has rerouted parameters.\n * @param {object} renderContext The context to bind against.\n * @returns {boolean} Whether a buffer was bound.\n */\n ApplyConstants(shaderType, input, hasReroutables, renderContext)\n {\n const mirror = input.constantMirror;\n\n // Carbon's test is `cb.GetSize()` (`Tr2Material.cpp:309`): a stage with no\n // constants binds nothing.\n if (!mirror) return false;\n\n // CREATED ON FIRST APPLY, NOT AT ALLOCATION. Carbon's\n // `AllocateConstants` creates the buffer through a process-wide\n // main-thread context (`USE_MAIN_THREAD_RENDER_CONTEXT`, `:170-176`);\n // ours has no global context, so the buffer is made by the context that\n // first applies it, of that backend's kind. The mirror's bytes seed it so\n // a fully static stage - Carbon's shared immutable buffer - is correct\n // without ever being locked. Until 2026-09-10 nothing created this buffer\n // at all, so b0 never reached any backend from this path.\n if (!input.constantBuffer)\n {\n input.constantBuffer = renderContext.CreateConstantBuffer(mirror.byteLength, Tr2ConstantUsageAL.ONE_SHOT, mirror);\n\n if (!input.constantBuffer) return false;\n }\n\n this.UpdateConstants(shaderType, input, hasReroutables, renderContext);\n\n return renderContext.SetConstants(input.constantBuffer, shaderType, EFFECT_CONSTANTS);\n }\n\n /**\n * Refills one stage's CPU constant mirror from its parameters.\n *\n * Carbon `Tr2Material::UpdateConstants`. The three-way condition is Carbon's:\n * a dirty buffer must be refilled, a rerouted parameter may have been\n * written behind the material's back, and a stage with live parameters is\n * refilled every time because a parameter's value can change without\n * anything marking the buffer.\n *\n * @param {number} shaderType A `ShaderType`.\n * @param {object} input A `Tr2MaterialStageInput`.\n * @param {boolean} hasReroutables Whether the pass has rerouted parameters.\n * @param {object} renderContext The context to copy against.\n * @returns {boolean} Whether the mirror was refilled.\n */\n UpdateConstants(shaderType, input, hasReroutables, renderContext)\n {\n if (!input.constantBuffer) return false;\n if (!input.constantBufferDirty && !hasReroutables && !input.shaderParameters.length) return false;\n\n const mirror = input.constantMirror;\n\n if (!mirror) return false;\n\n for (const parameter of [ ...input.shaderParameters, ...input.shaderParametersWithNotification ])\n {\n // The register index is a BYTE OFFSET into the mirror, and the count a\n // byte size. Carbon indexes the raw pointer with both.\n parameter.sourceValue?.CopyValueToEffect(\n shaderType,\n mirror.subarray(parameter.registerIndex),\n parameter.registerCount,\n renderContext\n );\n }\n\n // Carbon (`cpp:341-346`): lock, copy the mirror, unlock. The upload itself\n // is the backend's business and happens when the buffer is bound.\n const { result, data } = input.constantBuffer.Lock(renderContext);\n\n if (!Failed(result) && data)\n {\n data.set(mirror.subarray(0, Math.min(mirror.length, data.length)));\n input.constantBuffer.Unlock(renderContext);\n }\n\n input.constantBufferDirty = false;\n\n return true;\n }\n\n /**\n * Folds every pass's resource-set hash into the material's own.\n *\n * Carbon does this inline at the end of `ApplyMaterialDataForPass`; it is a\n * method here because it is a whole-material walk hiding inside a per-pass\n * call, and naming it is the only way that reads as deliberate.\n */\n /**\n * Puts the pass's sampler states into its resource-set description, authored\n * first and overrides on top.\n *\n * Carbon does this in two places that both run at effect load: the\n * description reader creates each authored sampler's state and seeds the\n * pass description (`Tr2EffectDescription.cpp:436`, `:639-650`), and\n * `RebuildCachedDataInternal` creates a state per override and\n * `UpdateSamplers` writes it over the authored one by NAME\n * (`Tr2Effect.cpp:623-662`, `:688-691`), first match only\n * (`FindSamplerByName`, `:627`). A name is matched only on a DYNAMIC sampler:\n * Carbon nulls the name of a non-dynamic one at read (`Tr2EffectDescription.cpp:425-433`),\n * so an override can never reach it.\n *\n * Until 2026-09-10 neither happened: the description held no samplers at all,\n * so a resource set could never bind one. A description the factory refuses -\n * a mode Carbon's enum lacks - leaves the register unset rather than binding a\n * wrong sampler.\n *\n * @param {number} techniqueIndex The technique.\n * @param {number} passIndex The pass.\n * @param {object} pass The pass parameters owning the description.\n * @param {object} renderContext The context whose sampler factory answers.\n * @returns {void}\n */\n SeedSamplers(techniqueIndex, passIndex, pass, renderContext)\n {\n const reflected = this.shader.GetEffect()?.techniques?.[techniqueIndex]?.passes?.[passIndex];\n const description = pass.resourceSetDesc;\n const overrides = this.samplerOverrides ?? [];\n\n for (let stageType = 0; stageType < (reflected?.stageInputs?.length ?? 0); stageType += 1)\n {\n const stage = reflected.stageInputs[stageType];\n\n if (!stage?.exists) continue;\n\n for (const [ registerIndex, setup ] of stage.samplers ?? [])\n {\n const state = renderContext.CreateSamplerState(setup?.sampler);\n\n if (state) description.SetSampler(stageType, registerIndex, state);\n }\n\n for (const override of overrides)\n {\n for (const [ registerIndex, setup ] of stage.samplers ?? [])\n {\n if (!setup?.isDynamic || setup.name !== override.name) continue;\n\n const state = renderContext.CreateSamplerState(SamplerDescriptionFromOverride(override));\n\n // Carbon: an override that CHANGED the description makes the pass\n // incompatible with the GDR path (Tr2Effect.cpp:653-657).\n if (state && description.SetSampler(stageType, registerIndex, state)) pass.compatibleWithGdr = false;\n\n break;\n }\n }\n }\n }\n\n /** Rehashes every pass's resource-set hash into one, so a changed binding is seen. */\n #RebuildResourceSetHash()\n {\n let hash = FNV1_INITIAL;\n\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? []) hash = hashFnv1Floats([ pass.resourceSetHash ], hash);\n }\n\n this.resourceSetHash = hash >>> 0;\n }\n\n /**\n * Marks every pass's resource set and used-texture list stale and clears the\n * material sort hash, so they are rebuilt before the next draw.\n */\n InvalidateResourceSets()\n {\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? [])\n {\n // THESE TWO LINES WERE MISSING AND THE OMISSION WAS LIVE. Carbon drops\n // the realized set and clears the description\n // (`Shader/Tr2Material.cpp`, InvalidateResourceSets); without them\n // this marked the set dirty while leaving the stale bindings in place,\n // so a material whose textures changed could rebind the old ones. It is\n // also what separates this method from `ResourceChanged` below, which\n // deliberately only invalidates - the two were identical, which should\n // have been the tell.\n //\n // Clearing a DESCRIPTION is not touching a backend object. A test used\n // to assert the opposite - \"runtime-trinity must not clear backend\n // resource sets\" - which was the engine-means-`trinityal/webgpu`\n // misreading written down as a guarantee. Trinity owns the\n // description; the abstraction layer owns the set built from it.\n pass.resourceSet = null;\n pass.resourceSetDesc?.ClearResources();\n pass.resourceSetHash = 0;\n pass.resourceSetDirty = true;\n pass.usedTexturesDirty = true;\n }\n for (const library of technique?.libraries ?? [])\n {\n library.usedTexturesDirty = true;\n }\n }\n this.resourceSetHash = 0;\n }\n\n /**\n * Same invalidation as InvalidateResourceSets, raised when a bound resource\n * itself changed rather than the set layout.\n */\n ResourceChanged()\n {\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? [])\n {\n pass.resourceSetHash = 0;\n pass.resourceSetDirty = true;\n pass.usedTexturesDirty = true;\n }\n for (const library of technique?.libraries ?? [])\n {\n library.usedTexturesDirty = true;\n }\n }\n this.resourceSetHash = 0;\n }\n\n /**\n * Flags the constant buffer of every stage that has notification-registered\n * parameters - pass stages plus each library's global and local input - and\n * clears the sort hash.\n */\n MarkConstantBuffersDirty()\n {\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? [])\n {\n for (const stage of pass?.stageInput ?? [])\n {\n if (stage?.shaderParametersWithNotification?.length)\n {\n stage.constantBufferDirty = true;\n }\n }\n }\n for (const library of technique?.libraries ?? [])\n {\n if (library?.globalInput?.shaderParametersWithNotification?.length)\n {\n library.globalInput.constantBufferDirty = true;\n }\n if (library?.localInput?.shaderParametersWithNotification?.length)\n {\n library.localInput.constantBufferDirty = true;\n }\n }\n }\n this.resourceSetHash = 0;\n }\n\n /**\n * Forwards a screen-size/world-radius LOD query to every texture parameter\n * registered as LOD-driven during the last cached-data rebuild.\n */\n UsedWithScreenSize(screenSize, worldRadius, uvDensities = [])\n {\n for (const value of this.lodTextureParameters)\n {\n // Unhedged: the list is FILTERED ON ENTRY by exactly this method\n // (`Tr2Effect.js:725`), so every member has it by construction.\n value.UsedWithScreenSize(screenSize, worldRadius, uvDensities);\n }\n }\n\n /**\n * Whether GDR rendering can be used: the cached material-wide flag when called with no technique, otherwise whether every pass of that technique is compatible.\n * @param techniqueName null returns the cached flag; an unknown name returns false\n */\n CompatibleWithGdr(techniqueName = null)\n {\n if (techniqueName === null)\n {\n return this.compatibleWithGdr;\n }\n if (this.shader !== null && !(this.shader instanceof Tr2Shader))\n {\n throw new TypeError(\"Tr2Material.shader must be a Tr2Shader or null.\");\n }\n const techniqueIndex = this.shader === null ? -1 : this.shader.GetTechniqueIndex(techniqueName);\n if (techniqueIndex < 0)\n {\n return false;\n }\n return (this.parametersForPasses?.[techniqueIndex]?.passes ?? []).every(pass => pass?.compatibleWithGdr !== false);\n }\n\n}\n"],"names":["SamplerDescriptionFromOverride","override","minFilter","filter","magFilter","mipFilter","comparison","addressU","addressV","addressW","mipLODBias","lodBias","maxAnisotropy","comparisonFunc","CompareFunc","CMP_NEVER","borderColor","minLOD","maxMipLevel","maxLOD","SAMPLER_LOD_UNBOUNDED","_Tr2Material","Tr2Material","CjsModel","e","_init_shader","_init_extra_shader","_init_parametersForPasses","_init_extra_parametersForPasses","_init_parametersForLibraries","_init_extra_parametersForLibraries","_init_lodTextureParameters","_init_extra_lodTextureParameters","_init_resourceSetHash","_init_extra_resourceSetHash","_init_compatibleWithGdr","_init_extra_compatibleWithGdr","c","_initClass","_applyDecs","type","define","className","family","objectRef","list","uint32","boolean","constructor","args","shader","parametersForPasses","parametersForLibraries","lodTextureParameters","resourceSetHash","compatibleWithGdr","GetSortValue","GetShaderStateInterface","GetPassDescription","techniqueIndex","passIndex","passes","ApplyMaterialDataForPass","renderContext","pass","resourceSet","SeedSamplers","mask","GetShaderTypeMask","descChanged","resourceSetDirty","stage","ShaderType","SHADER_TYPE_COUNT","ApplyShaderInputs","handle","GetEffect","techniques","shaderProgram","Tr2EffectStateManager","getShaderProgramRecord","program","GetEffectStateManager","GetShaderProgram","CreateResourceSet","resourceSetDesc","ComputeHash","SetResourceSet","shaderType","input","stageInput","ApplyConstants","reroutedParameters","length","UpdateResourceSetDesc","desc","texture","textures","sourceValue","CopyToResourceSet","registerIndex","registerCount","uav","uavs","ApplyUav","hasReroutables","mirror","constantMirror","constantBuffer","CreateConstantBuffer","byteLength","Tr2ConstantUsageAL","ONE_SHOT","UpdateConstants","SetConstants","EFFECT_CONSTANTS","constantBufferDirty","shaderParameters","parameter","shaderParametersWithNotification","CopyValueToEffect","subarray","result","data","Lock","Failed","set","Math","min","Unlock","reflected","description","overrides","samplerOverrides","stageType","stageInputs","exists","setup","samplers","state","CreateSamplerState","sampler","SetSampler","isDynamic","name","#RebuildResourceSetHash","hash","FNV1_INITIAL","technique","hashFnv1Floats","InvalidateResourceSets","ClearResources","usedTexturesDirty","library","libraries","ResourceChanged","MarkConstantBuffersDirty","globalInput","localInput","UsedWithScreenSize","screenSize","worldRadius","uvDensities","value","CompatibleWithGdr","techniqueName","Tr2Shader","TypeError","GetTechniqueIndex","every"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2Material.js","sources":["../../../../src/trinity/shader/Tr2Material.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2Material.h\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\nimport { type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { Tr2Shader } from \"#resource/shader\";\nimport { ShaderType } from \"#consts/render-context\";\nimport { FNV1_INITIAL, hashFnv1Floats } from \"../../global/utils/hash.js\";\nimport { Failed } from \"../../trinityal/ALResult.js\";\nimport { Tr2ConstantUsageAL } from \"../../trinityal/index.js\";\nimport { Tr2EffectStateManager } from \"./Tr2EffectStateManager.js\";\nimport { EFFECT_CONSTANTS } from \"../core/Tr2Renderer.js\";\nimport { CompareFunc } from \"#consts/render-context\";\nimport { SAMPLER_LOD_UNBOUNDED } from \"../../trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js\";\n\n\n/**\n * Carbon's `CreateSamplerDescription( const Tr2SamplerOverride& )`\n * (`Tr2Effect.cpp:595-612`), field for field: the override's one filter serves\n * min and mag, no comparison, a transparent black border, `maxMipLevel` as the\n * minimum LOD and an unbounded maximum.\n *\n * @param {object} override A `Tr2SamplerOverride`.\n * @returns {object} A `Tr2SamplerDescription`.\n */\nfunction SamplerDescriptionFromOverride(override)\n{\n return {\n minFilter: override.filter,\n magFilter: override.filter,\n mipFilter: override.mipFilter,\n comparison: false,\n addressU: override.addressU,\n addressV: override.addressV,\n addressW: override.addressW,\n mipLODBias: override.lodBias,\n maxAnisotropy: override.maxAnisotropy,\n comparisonFunc: CompareFunc.CMP_NEVER,\n borderColor: [ 0, 0, 0, 0 ],\n minLOD: override.maxMipLevel,\n maxLOD: SAMPLER_LOD_UNBOUNDED\n };\n}\n\n/** Owns a resolved shader's per-technique pass and library bindings, resource invalidation, texture LOD forwarding, and draw-sort state. */\n@type.define({ className: \"Tr2Material\", family: \"shader\" })\nexport class Tr2Material extends CjsModel\n{\n\n /** m_shader (Tr2ShaderPtr) */\n @type.objectRef(\"Tr2Shader\")\n shader = null;\n\n /** m_parametersForPasses (Tr2EffectTechniqueParametersVector) */\n @type.list(\"Tr2EffectTechniqueInputs\")\n parametersForPasses = [];\n\n /** m_parametersForLibraries (Tr2EffectTechniqueParametersVector) */\n @type.list(\"Tr2EffectTechniqueInputs\")\n parametersForLibraries = [];\n\n /** m_lodTextureParameters (std::vector<ITriEffectTextureParameterPtr>) */\n @type.list(\"ITriEffectTextureParameter\")\n lodTextureParameters = [];\n\n /** m_resourceSetHash (mutable uint32_t) */\n @type.uint32\n resourceSetHash = 0;\n\n /** m_compatibleWithGdr (bool) */\n @type.boolean\n compatibleWithGdr = false;\n\n /**\n * The resource-set hash, which doubles as the material's draw-sort key; 0\n * whenever the resource sets have been invalidated.\n */\n GetSortValue()\n {\n return this.resourceSetHash;\n }\n\n /**\n * The Tr2Shader supplying reflection and render state for this material, or\n * null before one is resolved.\n */\n GetShaderStateInterface()\n {\n return this.shader;\n }\n\n /**\n * The per-pass parameter block for a technique/pass pair, or null when either\n * index is out of range.\n */\n GetPassDescription(techniqueIndex = 0, passIndex = 0)\n {\n return this.parametersForPasses?.[techniqueIndex]?.passes?.[passIndex] ?? null;\n }\n\n /**\n * Binds one pass's parameters: its constants to the stages that read them,\n * and its resources through a resource set built from the description.\n *\n * Carbon `Tr2Material::ApplyMaterialDataForPass`\n * (`Shader/Tr2Material.cpp:209-253`). THIS IS THE METHOD THE INTENT QUEUE\n * WAS BUILT AROUND NOT HAVING - the browser backend's resolver reimplemented\n * its effect on the engine side because \"the engine does device work\" was\n * read as the engine PACKAGE rather than the abstraction layer. It belongs\n * here, and everything it touches is a description or a handle.\n *\n * ONLY THE STAGES THE TECHNIQUE DECLARES are walked, which is what the mask\n * is for: a technique with no geometry shader must not bind one's constants.\n *\n * @param {number} techniqueIndex Technique index.\n * @param {number} passIndex Pass index within the technique.\n * @param {object} renderContext The context to bind against.\n * @returns {boolean} Whether the pass was applied.\n */\n ApplyMaterialDataForPass(techniqueIndex, passIndex, renderContext)\n {\n if (!this.shader) return false;\n\n const pass = this.GetPassDescription(techniqueIndex, passIndex);\n\n if (!pass) return false;\n\n // SEEDED ON FIRST APPLY, THROUGH THE CONTEXT THAT APPLIES. Carbon seeds the\n // pass description with sampler states at effect load through the\n // main-thread context (Tr2EffectDescription.cpp:436, :639-650) and applies\n // overrides per rebuild (Tr2Effect.cpp:623-662). Ours has no process-wide\n // device context - `Tr2RenderContext.GetDefault()` exists, but nothing\n // installs a backend on it - so seeding there made every sampler state the\n // stub's, which a WebGPU resource set cannot bind and replaced with its\n // dummy. A fresh pass (no set yet) is seeded here, by the context that will\n // build its resource set, of that backend's kind.\n if (pass.resourceSet === null) this.SeedSamplers(techniqueIndex, passIndex, pass, renderContext);\n\n let mask = this.shader.GetShaderTypeMask(techniqueIndex);\n let descChanged = pass.resourceSetDirty;\n\n for (let stage = 0; stage < ShaderType.SHADER_TYPE_COUNT && mask; stage += 1)\n {\n if (!(mask & (1 << stage))) continue;\n\n // OR-ASSIGNED, NEVER SHORT-CIRCUITED. Carbon writes `descChanged |=`, and\n // `||` here would skip the remaining stages' bindings as soon as one\n // reported a change - a pixel stage silently unbound because the vertex\n // stage happened to move first.\n descChanged = this.ApplyShaderInputs(pass, stage, renderContext) || descChanged;\n mask &= ~(1 << stage);\n }\n\n if (descChanged || !pass.resourceSet)\n {\n const handle = this.shader.GetEffect()?.techniques?.[techniqueIndex]?.passes?.[passIndex]?.shaderProgram;\n\n // Carbon: `renderContext.m_esm.GetShaderProgram( handle )`, then\n // `pp.m_resourceSet.Create( desc, *sp, renderContext )`\n // (Tr2Material.cpp:232-234). The program is the REALIZED AL program -\n // the resource set lays its entries out against the program's bindings -\n // and the set is the backend's kind, made by the context. Until\n // 2026-09-10 this constructed the stub directly with the interned ROW,\n // so no backend ever saw a resource set it could bind.\n if (Tr2EffectStateManager.getShaderProgramRecord(handle) === null) return false;\n\n const program = renderContext.GetEffectStateManager().GetShaderProgram(handle);\n\n // Carbon tests the program itself and binds nothing without one\n // (Tr2Material.cpp:232-236); a stage that refused to compile is such a case.\n if (!program) return false;\n\n const resourceSet = renderContext.CreateResourceSet(pass.resourceSetDesc, program);\n\n if (!resourceSet) return false;\n\n pass.resourceSet = resourceSet;\n pass.resourceSetHash = pass.resourceSetDesc.ComputeHash();\n pass.resourceSetDirty = false;\n\n this.#RebuildResourceSetHash();\n }\n\n return renderContext.SetResourceSet(pass.resourceSet);\n }\n\n /**\n * Applies one shader stage of one pass: its constants, then its resources\n * into the pass's description.\n *\n * Carbon `Tr2Material::ApplyShaderInputs`.\n *\n * @param {object} pass A `Tr2EffectPassParameters`.\n * @param {number} shaderType A `ShaderType`.\n * @param {object} renderContext The context to bind against.\n * @returns {boolean} Whether the description changed.\n */\n ApplyShaderInputs(pass, shaderType, renderContext)\n {\n const input = pass.stageInput[shaderType];\n\n if (!input) return false;\n\n this.ApplyConstants(shaderType, input, pass.reroutedParameters.length > 0, renderContext);\n\n return this.UpdateResourceSetDesc(shaderType, input, pass.resourceSetDesc, renderContext);\n }\n\n /**\n * Writes one stage's textures and UAVs into a resource-set description.\n *\n * Carbon `Tr2Material::UpdateResourceSetDesc`. Each parameter binds itself -\n * the material knows the register, the parameter knows the resource.\n *\n * `registerCount` IS A FLAG WORD HERE, not a count. Carbon passes it as\n * `ResourceFlags`, and for a resource that field carries the sRGB bit; only\n * for a constant is it a byte size.\n *\n * @param {number} shaderType A `ShaderType`.\n * @param {object} input A `Tr2MaterialStageInput`.\n * @param {object} desc A `Tr2ResourceSetDescriptionAL`.\n * @returns {boolean} Whether any binding changed the description.\n */\n UpdateResourceSetDesc(shaderType, input, desc, renderContext = null)\n {\n let descChanged = false;\n\n for (const texture of input.textures)\n {\n // The context is an added trailing argument: a texture parameter makes\n // the resource's texture at first bind through it (Carbon makes it at\n // load through a process-wide context; see Tr2ImageIOHelpers).\n descChanged = texture.sourceValue?.CopyToResourceSet(\n desc,\n shaderType,\n texture.registerIndex,\n texture.registerCount,\n renderContext\n ) || descChanged;\n }\n\n for (const uav of input.uavs)\n {\n descChanged = uav.sourceValue?.ApplyUav(desc, shaderType, uav.registerIndex) || descChanged;\n }\n\n return descChanged;\n }\n\n /**\n * Refreshes one stage's constant mirror and binds its buffer.\n *\n * Carbon `Tr2Material::ApplyConstants`. A stage with no constant buffer does\n * nothing at all - not an empty bind.\n *\n * @param {number} shaderType A `ShaderType`.\n * @param {object} input A `Tr2MaterialStageInput`.\n * @param {boolean} hasReroutables Whether the pass has rerouted parameters.\n * @param {object} renderContext The context to bind against.\n * @returns {boolean} Whether a buffer was bound.\n */\n ApplyConstants(shaderType, input, hasReroutables, renderContext)\n {\n const mirror = input.constantMirror;\n\n // Carbon's test is `cb.GetSize()` (`Tr2Material.cpp:309`): a stage with no\n // constants binds nothing.\n if (!mirror) return false;\n\n // CREATED ON FIRST APPLY, NOT AT ALLOCATION. Carbon's\n // `AllocateConstants` creates the buffer through a process-wide\n // main-thread context (`USE_MAIN_THREAD_RENDER_CONTEXT`, `:170-176`);\n // ours has no global context, so the buffer is made by the context that\n // first applies it, of that backend's kind. The mirror's bytes seed it so\n // a fully static stage - Carbon's shared immutable buffer - is correct\n // without ever being locked. Until 2026-09-10 nothing created this buffer\n // at all, so b0 never reached any backend from this path.\n if (!input.constantBuffer)\n {\n input.constantBuffer = renderContext.CreateConstantBuffer(mirror.byteLength, Tr2ConstantUsageAL.ONE_SHOT, mirror);\n\n if (!input.constantBuffer) return false;\n }\n\n this.UpdateConstants(shaderType, input, hasReroutables, renderContext);\n\n return renderContext.SetConstants(input.constantBuffer, shaderType, EFFECT_CONSTANTS);\n }\n\n /**\n * Refills one stage's CPU constant mirror from its parameters.\n *\n * Carbon `Tr2Material::UpdateConstants`. The three-way condition is Carbon's:\n * a dirty buffer must be refilled, a rerouted parameter may have been\n * written behind the material's back, and a stage with live parameters is\n * refilled every time because a parameter's value can change without\n * anything marking the buffer.\n *\n * @param {number} shaderType A `ShaderType`.\n * @param {object} input A `Tr2MaterialStageInput`.\n * @param {boolean} hasReroutables Whether the pass has rerouted parameters.\n * @param {object} renderContext The context to copy against.\n * @returns {boolean} Whether the mirror was refilled.\n */\n UpdateConstants(shaderType, input, hasReroutables, renderContext)\n {\n if (!input.constantBuffer) return false;\n if (!input.constantBufferDirty && !hasReroutables && !input.shaderParameters.length) return false;\n\n const mirror = input.constantMirror;\n\n if (!mirror) return false;\n\n for (const parameter of [ ...input.shaderParameters, ...input.shaderParametersWithNotification ])\n {\n // The register index is a BYTE OFFSET into the mirror, and the count a\n // byte size. Carbon indexes the raw pointer with both.\n parameter.sourceValue?.CopyValueToEffect(\n shaderType,\n mirror.subarray(parameter.registerIndex),\n parameter.registerCount,\n renderContext\n );\n }\n\n // Carbon (`cpp:341-346`): lock, copy the mirror, unlock. The upload itself\n // is the backend's business and happens when the buffer is bound.\n const { result, data } = input.constantBuffer.Lock(renderContext);\n\n if (!Failed(result) && data)\n {\n data.set(mirror.subarray(0, Math.min(mirror.length, data.length)));\n input.constantBuffer.Unlock(renderContext);\n }\n\n input.constantBufferDirty = false;\n\n return true;\n }\n\n /**\n * Folds every pass's resource-set hash into the material's own.\n *\n * Carbon does this inline at the end of `ApplyMaterialDataForPass`; it is a\n * method here because it is a whole-material walk hiding inside a per-pass\n * call, and naming it is the only way that reads as deliberate.\n */\n /**\n * Puts the pass's sampler states into its resource-set description, authored\n * first and overrides on top.\n *\n * Carbon does this in two places that both run at effect load: the\n * description reader creates each authored sampler's state and seeds the\n * pass description (`Tr2EffectDescription.cpp:436`, `:639-650`), and\n * `RebuildCachedDataInternal` creates a state per override and\n * `UpdateSamplers` writes it over the authored one by NAME\n * (`Tr2Effect.cpp:623-662`, `:688-691`), first match only\n * (`FindSamplerByName`, `:627`). A name is matched only on a DYNAMIC sampler:\n * Carbon nulls the name of a non-dynamic one at read (`Tr2EffectDescription.cpp:425-433`),\n * so an override can never reach it.\n *\n * Until 2026-09-10 neither happened: the description held no samplers at all,\n * so a resource set could never bind one. A description the factory refuses -\n * a mode Carbon's enum lacks - leaves the register unset rather than binding a\n * wrong sampler.\n *\n * @param {number} techniqueIndex The technique.\n * @param {number} passIndex The pass.\n * @param {object} pass The pass parameters owning the description.\n * @param {object} renderContext The context whose sampler factory answers.\n * @returns {void}\n */\n SeedSamplers(techniqueIndex, passIndex, pass, renderContext)\n {\n const reflected = this.shader.GetEffect()?.techniques?.[techniqueIndex]?.passes?.[passIndex];\n const description = pass.resourceSetDesc;\n const overrides = this.samplerOverrides ?? [];\n\n for (let stageType = 0; stageType < (reflected?.stageInputs?.length ?? 0); stageType += 1)\n {\n const stage = reflected.stageInputs[stageType];\n\n if (!stage?.exists) continue;\n\n for (const [ registerIndex, setup ] of stage.samplers ?? [])\n {\n const state = renderContext.CreateSamplerState(setup?.sampler);\n\n if (state) description.SetSampler(stageType, registerIndex, state);\n }\n\n for (const override of overrides)\n {\n for (const [ registerIndex, setup ] of stage.samplers ?? [])\n {\n if (!setup?.isDynamic || setup.name !== override.name) continue;\n\n const state = renderContext.CreateSamplerState(SamplerDescriptionFromOverride(override));\n\n // Carbon: an override that CHANGED the description makes the pass\n // incompatible with the GDR path (Tr2Effect.cpp:653-657).\n if (state && description.SetSampler(stageType, registerIndex, state)) pass.compatibleWithGdr = false;\n\n break;\n }\n }\n }\n }\n\n /** Rehashes every pass's resource-set hash into one, so a changed binding is seen. */\n #RebuildResourceSetHash()\n {\n let hash = FNV1_INITIAL;\n\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? []) hash = hashFnv1Floats([ pass.resourceSetHash ], hash);\n }\n\n this.resourceSetHash = hash >>> 0;\n }\n\n /**\n * Marks every pass's resource set and used-texture list stale and clears the\n * material sort hash, so they are rebuilt before the next draw.\n */\n InvalidateResourceSets()\n {\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? [])\n {\n // THESE TWO LINES WERE MISSING AND THE OMISSION WAS LIVE. Carbon drops\n // the realized set and clears the description\n // (`Shader/Tr2Material.cpp`, InvalidateResourceSets); without them\n // this marked the set dirty while leaving the stale bindings in place,\n // so a material whose textures changed could rebind the old ones. It is\n // also what separates this method from `ResourceChanged` below, which\n // deliberately only invalidates - the two were identical, which should\n // have been the tell.\n //\n // Clearing a DESCRIPTION is not touching a backend object. A test used\n // to assert the opposite - \"runtime-trinity must not clear backend\n // resource sets\" - which was the engine-means-`trinityal/webgpu`\n // misreading written down as a guarantee. Trinity owns the\n // description; the abstraction layer owns the set built from it.\n pass.resourceSet = null;\n pass.resourceSetDesc?.ClearResources();\n pass.resourceSetHash = 0;\n pass.resourceSetDirty = true;\n pass.usedTexturesDirty = true;\n }\n for (const library of technique?.libraries ?? [])\n {\n library.usedTexturesDirty = true;\n }\n }\n this.resourceSetHash = 0;\n }\n\n /**\n * Same invalidation as InvalidateResourceSets, raised when a bound resource\n * itself changed rather than the set layout.\n */\n ResourceChanged()\n {\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? [])\n {\n pass.resourceSetHash = 0;\n pass.resourceSetDirty = true;\n pass.usedTexturesDirty = true;\n }\n for (const library of technique?.libraries ?? [])\n {\n library.usedTexturesDirty = true;\n }\n }\n this.resourceSetHash = 0;\n }\n\n /**\n * Flags the constant buffer of every stage that has notification-registered\n * parameters - pass stages plus each library's global and local input - and\n * clears the sort hash.\n */\n MarkConstantBuffersDirty()\n {\n for (const technique of this.parametersForPasses)\n {\n for (const pass of technique?.passes ?? [])\n {\n for (const stage of pass?.stageInput ?? [])\n {\n if (stage?.shaderParametersWithNotification?.length)\n {\n stage.constantBufferDirty = true;\n }\n }\n }\n for (const library of technique?.libraries ?? [])\n {\n if (library?.globalInput?.shaderParametersWithNotification?.length)\n {\n library.globalInput.constantBufferDirty = true;\n }\n if (library?.localInput?.shaderParametersWithNotification?.length)\n {\n library.localInput.constantBufferDirty = true;\n }\n }\n }\n this.resourceSetHash = 0;\n }\n\n /**\n * Forwards a screen-size/world-radius LOD query to every texture parameter\n * registered as LOD-driven during the last cached-data rebuild.\n */\n UsedWithScreenSize(screenSize, worldRadius, uvDensities = [])\n {\n for (const value of this.lodTextureParameters)\n {\n // Unhedged: the list is FILTERED ON ENTRY by exactly this method\n // (`Tr2Effect.js:725`), so every member has it by construction.\n value.UsedWithScreenSize(screenSize, worldRadius, uvDensities);\n }\n }\n\n /**\n * Whether GDR rendering can be used: the cached material-wide flag when called with no technique, otherwise whether every pass of that technique is compatible.\n * @param techniqueName null returns the cached flag; an unknown name returns false\n */\n CompatibleWithGdr(techniqueName = null)\n {\n if (techniqueName === null)\n {\n return this.compatibleWithGdr;\n }\n if (this.shader !== null && !(this.shader instanceof Tr2Shader))\n {\n throw new TypeError(\"Tr2Material.shader must be a Tr2Shader or null.\");\n }\n const techniqueIndex = this.shader === null ? -1 : this.shader.GetTechniqueIndex(techniqueName);\n if (techniqueIndex < 0)\n {\n return false;\n }\n return (this.parametersForPasses?.[techniqueIndex]?.passes ?? []).every(pass => pass?.compatibleWithGdr !== false);\n }\n\n}\n"],"names":["SamplerDescriptionFromOverride","override","minFilter","filter","magFilter","mipFilter","comparison","addressU","addressV","addressW","mipLODBias","lodBias","maxAnisotropy","comparisonFunc","CompareFunc","CMP_NEVER","borderColor","minLOD","maxMipLevel","maxLOD","SAMPLER_LOD_UNBOUNDED","_Tr2Material","Tr2Material","CjsModel","e","_init_shader","_init_extra_shader","_init_parametersForPasses","_init_extra_parametersForPasses","_init_parametersForLibraries","_init_extra_parametersForLibraries","_init_lodTextureParameters","_init_extra_lodTextureParameters","_init_resourceSetHash","_init_extra_resourceSetHash","_init_compatibleWithGdr","_init_extra_compatibleWithGdr","c","_initClass","_applyDecs","type","define","className","family","objectRef","list","uint32","boolean","constructor","args","shader","parametersForPasses","parametersForLibraries","lodTextureParameters","resourceSetHash","compatibleWithGdr","GetSortValue","GetShaderStateInterface","GetPassDescription","techniqueIndex","passIndex","passes","ApplyMaterialDataForPass","renderContext","pass","resourceSet","SeedSamplers","mask","GetShaderTypeMask","descChanged","resourceSetDirty","stage","ShaderType","SHADER_TYPE_COUNT","ApplyShaderInputs","handle","GetEffect","techniques","shaderProgram","Tr2EffectStateManager","getShaderProgramRecord","program","GetEffectStateManager","GetShaderProgram","CreateResourceSet","resourceSetDesc","ComputeHash","SetResourceSet","shaderType","input","stageInput","ApplyConstants","reroutedParameters","length","UpdateResourceSetDesc","desc","texture","textures","sourceValue","CopyToResourceSet","registerIndex","registerCount","uav","uavs","ApplyUav","hasReroutables","mirror","constantMirror","constantBuffer","CreateConstantBuffer","byteLength","Tr2ConstantUsageAL","ONE_SHOT","UpdateConstants","SetConstants","EFFECT_CONSTANTS","constantBufferDirty","shaderParameters","parameter","shaderParametersWithNotification","CopyValueToEffect","subarray","result","data","Lock","Failed","set","Math","min","Unlock","reflected","description","overrides","samplerOverrides","stageType","stageInputs","exists","setup","samplers","state","CreateSamplerState","sampler","SetSampler","isDynamic","name","#RebuildResourceSetHash","hash","FNV1_INITIAL","technique","hashFnv1Floats","InvalidateResourceSets","ClearResources","usedTexturesDirty","library","libraries","ResourceChanged","MarkConstantBuffersDirty","globalInput","localInput","UsedWithScreenSize","screenSize","worldRadius","uvDensities","value","CompatibleWithGdr","techniqueName","Tr2Shader","TypeError","GetTechniqueIndex","every"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { type } from '#schema';
3
3
  import { CjsModel } from '#model';
4
- import { Tr2ResourceSetDescriptionAL } from '../../../trinityal/Tr2ResourceSetAL.js';
4
+ import '../../../trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js';
5
+ import { Tr2ResourceSetDescriptionAL } from '../../../trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js';
6
+ import '../../../trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js';
7
+ import '../../../trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js';
5
8
  import { Tr2MaterialStageInput as _Tr2MaterialStageInpu } from './Tr2MaterialStageInput.js';
6
9
 
7
10
  let _initClass, _init_stageInput, _init_extra_stageInput, _init_reroutedParameters, _init_extra_reroutedParameters, _init_resourceSetDesc, _init_extra_resourceSetDesc, _init_resourceSet, _init_extra_resourceSet, _init_usedResources, _init_extra_usedResources, _init_usedTextures, _init_extra_usedTextures, _init_resourceSetHash, _init_extra_resourceSetHash, _init_resourceSetDirty, _init_extra_resourceSetDirty, _init_compatibleWithGdr, _init_extra_compatibleWithGdr, _init_usedTexturesDirty, _init_extra_usedTexturesDirty;
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2EffectPassParameters.js","sources":["../../../../../src/trinity/shader/material/Tr2EffectPassParameters.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2Material.h\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\nimport { type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { Tr2ResourceSetDescriptionAL } from \"../../../trinityal/Tr2ResourceSetAL.js\";\nimport { Tr2MaterialStageInput } from \"./Tr2MaterialStageInput.js\";\n\n/** Collects one effect pass's per-stage inputs, rerouted parameters, used resources, and resource-set state. */\n@type.define({ className: \"Tr2EffectPassParameters\", family: \"shader\" })\nexport class Tr2EffectPassParameters extends CjsModel\n{\n\n /** m_stageInput (Tr2MaterialStageInput) */\n @type.rawStruct(\"Tr2MaterialStageInput\")\n stageInput = Array.from({ length: 6 }, () => new Tr2MaterialStageInput());\n\n /** m_reroutedParameters (std::vector<ITriReroutable*>) */\n @type.list(\"ITriReroutable\")\n reroutedParameters = [];\n\n // TWO DIFFERENT OBJECTS USED TO SHARE THIS NAME, and the field held the\n // wrong one until 2026-09-05. `Tr2Effect` assigned the READER's\n // `HlslResourceSetDescription` straight in - a class with `SetSampler` and\n // the D3D12 heap-view setters, but no `SetSrv`, `SetUav` or\n // `ClearResources`. Carbon's `m_resourceSetDesc` is a member of the pass\n // parameters, constructed here and filled at bind time by\n // `UpdateResourceSetDesc`; it is not something a format reader hands over.\n //\n // The reader's object is not junk - its heap views are a fidelity artifact\n // of the binding-manifest round trip and its own test asserts them - so the\n // two are separated rather than one deleted. See\n // /docs/research/graphics-path-review-2026-09-05.md.\n\n /** m_resourceSetDesc (Tr2ResourceSetDescriptionAL) */\n @type.rawStruct(\"Tr2ResourceSetDescriptionAL\")\n resourceSetDesc = new Tr2ResourceSetDescriptionAL();\n\n /** m_resourceSet (Tr2ResourceSetAL) */\n @type.rawStruct(\"Tr2ResourceSetAL\")\n resourceSet = null;\n\n /** m_usedResources (std::vector<ITr2EffectValuePtr>) */\n @type.list(\"ITr2EffectValue\")\n usedResources = [];\n\n /** m_usedTextures (Tr2BindlessResourcesAL) */\n @type.rawStruct(\"Tr2BindlessResourcesAL\")\n usedTextures = null;\n\n /** m_resourceSetHash (uint32_t) */\n @type.uint32\n resourceSetHash = 0;\n\n /** m_resourceSetDirty (bool) */\n @type.boolean\n resourceSetDirty = true;\n\n /** m_compatibleWithGdr (bool) */\n @type.boolean\n compatibleWithGdr = true;\n\n /** m_usedTexturesDirty (bool) */\n @type.boolean\n usedTexturesDirty = false;\n\n /** Records a resource this pass binds and marks the used-texture list stale. */\n AddUsedResource(resource)\n {\n this.usedResources.push(resource);\n this.usedTexturesDirty = true;\n }\n\n /**\n * Records a parameter whose value destination has been rerouted into this\n * pass's storage.\n */\n AddReroutable(reroutable)\n {\n this.reroutedParameters.push(reroutable);\n }\n\n /**\n * Allocates the CPU-side constant mirror for one shader stage of this pass.\n * @param type stage index into stageInput\n * @param size mirror size in bytes, rounded up to 16 by the stage\n */\n AllocateConstantMirror(type, size)\n {\n this.#stage(type).AllocateConstants(size);\n }\n\n /**\n * Fills one stage's constant mirror from already-built shared buffer contents and clears that stage's dirty flag.\n * @param type stage index into stageInput\n */\n GetSharedConstantBuffer(type, contents, size)\n {\n this.#stage(type).GetSharedConstantBuffer(contents, size);\n }\n\n /**\n * The stage input at the given index, created on demand; negative or\n * non-numeric indices clamp to 0.\n */\n #stage(type)\n {\n const index = Math.max(0, Number(type) || 0);\n this.stageInput[index] ??= new Tr2MaterialStageInput();\n return this.stageInput[index];\n }\n\n}\n"],"names":["_Tr2EffectPassParamet","Tr2EffectPassParameters","CjsModel","e","_init_stageInput","_init_extra_stageInput","_init_reroutedParameters","_init_extra_reroutedParameters","_init_resourceSetDesc","_init_extra_resourceSetDesc","_init_resourceSet","_init_extra_resourceSet","_init_usedResources","_init_extra_usedResources","_init_usedTextures","_init_extra_usedTextures","_init_resourceSetHash","_init_extra_resourceSetHash","_init_resourceSetDirty","_init_extra_resourceSetDirty","_init_compatibleWithGdr","_init_extra_compatibleWithGdr","_init_usedTexturesDirty","_init_extra_usedTexturesDirty","c","_initClass","_applyDecs","type","define","className","family","rawStruct","list","uint32","boolean","constructor","args","stageInput","Array","from","length","Tr2MaterialStageInput","reroutedParameters","resourceSetDesc","Tr2ResourceSetDescriptionAL","resourceSet","usedResources","usedTextures","resourceSetHash","resourceSetDirty","compatibleWithGdr","usedTexturesDirty","AddUsedResource","resource","push","AddReroutable","reroutable","AllocateConstantMirror","size","AllocateConstants","GetSharedConstantBuffer","contents","#stage","index","Math","max","Number"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2EffectPassParameters.js","sources":["../../../../../src/trinity/shader/material/Tr2EffectPassParameters.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Tr2Material.h\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\nimport { type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { Tr2ResourceSetDescriptionAL } from \"../../../trinityal/Tr2ResourceSetAL/index.js\";\nimport { Tr2MaterialStageInput } from \"./Tr2MaterialStageInput.js\";\n\n/** Collects one effect pass's per-stage inputs, rerouted parameters, used resources, and resource-set state. */\n@type.define({ className: \"Tr2EffectPassParameters\", family: \"shader\" })\nexport class Tr2EffectPassParameters extends CjsModel\n{\n\n /** m_stageInput (Tr2MaterialStageInput) */\n @type.rawStruct(\"Tr2MaterialStageInput\")\n stageInput = Array.from({ length: 6 }, () => new Tr2MaterialStageInput());\n\n /** m_reroutedParameters (std::vector<ITriReroutable*>) */\n @type.list(\"ITriReroutable\")\n reroutedParameters = [];\n\n // TWO DIFFERENT OBJECTS USED TO SHARE THIS NAME, and the field held the\n // wrong one until 2026-09-05. `Tr2Effect` assigned the READER's\n // `HlslResourceSetDescription` straight in - a class with `SetSampler` and\n // the D3D12 heap-view setters, but no `SetSrv`, `SetUav` or\n // `ClearResources`. Carbon's `m_resourceSetDesc` is a member of the pass\n // parameters, constructed here and filled at bind time by\n // `UpdateResourceSetDesc`; it is not something a format reader hands over.\n //\n // The reader's object is not junk - its heap views are a fidelity artifact\n // of the binding-manifest round trip and its own test asserts them - so the\n // two are separated rather than one deleted. See\n // /docs/research/graphics-path-review-2026-09-05.md.\n\n /** m_resourceSetDesc (Tr2ResourceSetDescriptionAL) */\n @type.rawStruct(\"Tr2ResourceSetDescriptionAL\")\n resourceSetDesc = new Tr2ResourceSetDescriptionAL();\n\n /** m_resourceSet (Tr2ResourceSetAL) */\n @type.rawStruct(\"Tr2ResourceSetAL\")\n resourceSet = null;\n\n /** m_usedResources (std::vector<ITr2EffectValuePtr>) */\n @type.list(\"ITr2EffectValue\")\n usedResources = [];\n\n /** m_usedTextures (Tr2BindlessResourcesAL) */\n @type.rawStruct(\"Tr2BindlessResourcesAL\")\n usedTextures = null;\n\n /** m_resourceSetHash (uint32_t) */\n @type.uint32\n resourceSetHash = 0;\n\n /** m_resourceSetDirty (bool) */\n @type.boolean\n resourceSetDirty = true;\n\n /** m_compatibleWithGdr (bool) */\n @type.boolean\n compatibleWithGdr = true;\n\n /** m_usedTexturesDirty (bool) */\n @type.boolean\n usedTexturesDirty = false;\n\n /** Records a resource this pass binds and marks the used-texture list stale. */\n AddUsedResource(resource)\n {\n this.usedResources.push(resource);\n this.usedTexturesDirty = true;\n }\n\n /**\n * Records a parameter whose value destination has been rerouted into this\n * pass's storage.\n */\n AddReroutable(reroutable)\n {\n this.reroutedParameters.push(reroutable);\n }\n\n /**\n * Allocates the CPU-side constant mirror for one shader stage of this pass.\n * @param type stage index into stageInput\n * @param size mirror size in bytes, rounded up to 16 by the stage\n */\n AllocateConstantMirror(type, size)\n {\n this.#stage(type).AllocateConstants(size);\n }\n\n /**\n * Fills one stage's constant mirror from already-built shared buffer contents and clears that stage's dirty flag.\n * @param type stage index into stageInput\n */\n GetSharedConstantBuffer(type, contents, size)\n {\n this.#stage(type).GetSharedConstantBuffer(contents, size);\n }\n\n /**\n * The stage input at the given index, created on demand; negative or\n * non-numeric indices clamp to 0.\n */\n #stage(type)\n {\n const index = Math.max(0, Number(type) || 0);\n this.stageInput[index] ??= new Tr2MaterialStageInput();\n return this.stageInput[index];\n }\n\n}\n"],"names":["_Tr2EffectPassParamet","Tr2EffectPassParameters","CjsModel","e","_init_stageInput","_init_extra_stageInput","_init_reroutedParameters","_init_extra_reroutedParameters","_init_resourceSetDesc","_init_extra_resourceSetDesc","_init_resourceSet","_init_extra_resourceSet","_init_usedResources","_init_extra_usedResources","_init_usedTextures","_init_extra_usedTextures","_init_resourceSetHash","_init_extra_resourceSetHash","_init_resourceSetDirty","_init_extra_resourceSetDirty","_init_compatibleWithGdr","_init_extra_compatibleWithGdr","_init_usedTexturesDirty","_init_extra_usedTexturesDirty","c","_initClass","_applyDecs","type","define","className","family","rawStruct","list","uint32","boolean","constructor","args","stageInput","Array","from","length","Tr2MaterialStageInput","reroutedParameters","resourceSetDesc","Tr2ResourceSetDescriptionAL","resourceSet","usedResources","usedTextures","resourceSetHash","resourceSetDirty","compatibleWithGdr","usedTexturesDirty","AddUsedResource","resource","push","AddReroutable","reroutable","AllocateConstantMirror","size","AllocateConstants","GetSharedConstantBuffer","contents","#stage","index","Math","max","Number"],"mappings":"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"}
@@ -96,7 +96,7 @@ class Tr2GeometryBufferParameter extends CjsParameter {
96
96
  CopyToResourceSet(resourceDesc, stage, registerIndex, _flags = 0) {
97
97
  const buffer = this.gpuBuffer?.GetGpuBuffer(this.meshIndex);
98
98
  if (!buffer) return false;
99
- return resourceDesc.SetSrv(stage, registerIndex, buffer);
99
+ return resourceDesc.SetSrv(stage, registerIndex, buffer, 0, 1);
100
100
  }
101
101
 
102
102
  /**
@@ -111,7 +111,7 @@ class Tr2GeometryBufferParameter extends CjsParameter {
111
111
  * @returns {boolean} Whether the slot took the binding.
112
112
  */
113
113
  ApplyUav(resourceDesc, stage, registerIndex) {
114
- return resourceDesc.SetUav(stage, registerIndex, this.gpuBuffer?.GetGpuBuffer(this.meshIndex) ?? null);
114
+ return resourceDesc.SetUav(stage, registerIndex, this.gpuBuffer?.GetGpuBuffer(this.meshIndex) ?? null, 0, 1);
115
115
  }
116
116
 
117
117
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2GeometryBufferParameter.js","sources":["../../../../../src/trinity/shader/parameter/Tr2GeometryBufferParameter.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Parameter/Tr2GeometryBufferParameter.h\r\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { CjsParameter } from \"./CjsParameter.js\";\r\n\r\n/** Carries a named shader-buffer path for host resolution or a caller-owned GPU buffer reference. */\r\n@type.define({ className: \"Tr2GeometryBufferParameter\", family: \"shader\" })\r\nexport class Tr2GeometryBufferParameter extends CjsParameter\r\n{\r\n\r\n /** m_resourcePath (std::wstring) [READWRITE, NOTIFY, PERSIST] */\r\n @io.flag(\"resource\")\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n resourcePath = \"\";\r\n\r\n /** m_gpuBuffer (ITr2GpuBufferPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.objectRef(\"ITr2GpuBuffer\")\r\n gpuBuffer = null;\r\n\r\n /** m_isUsedByEffect (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n usedByCurrentEffect = false;\r\n\r\n /** m_meshIndex (int32_t) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n meshIndex = 0;\r\n\r\n /** m_name (BlueSharedString) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n cachedEffect = null;\r\n\r\n /** The shader resource name this buffer binds to. */\r\n @carbon.method\r\n @impl.implemented\r\n GetParameterName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Content hash: resource path (when set) then name. */\r\n @carbon.method\r\n @impl.adapted\r\n GetHashValue(startingHash = CjsParameter.FNV1_INITIAL)\r\n {\r\n if (this.resourcePath)\r\n {\r\n startingHash = CjsParameter.hashFnv1String(this.resourcePath, startingHash);\r\n }\r\n return CjsParameter.hashFnv1String(this.name, startingHash);\r\n }\r\n\r\n /**\r\n * Nothing to do in this GPU-free package - a resource path is never resolved\r\n * to a buffer here; returns true.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Consumes the `resource` dirty flag by re-initializing and re-resolving\r\n * handles against the cached shader.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n OnModified(_options = {})\r\n {\r\n if (this.__state.flags.delete(\"resource\"))\r\n {\r\n this.Initialize();\r\n this.RebuildEffectHandles(this.cachedEffect);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Caches the shader and records whether it reflects a resource of this name;\r\n * no GPU buffer is bound.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildEffectHandles(effectRes)\r\n {\r\n this.cachedEffect = effectRes;\r\n this.usedByCurrentEffect = !!this.name && !!CjsParameter.getEffectResource(effectRes, this.name);\r\n }\r\n\r\n /**\r\n * Binds this parameter's geometry buffer as a shader resource.\r\n *\r\n * Carbon `Tr2GeometryBufferParameter::CopyToResourceSet`. No colour space —\r\n * a buffer has no transfer function — so `flags` is accepted for the shared\r\n * signature and unread, exactly as Carbon's is.\r\n *\r\n * A MISSING BUFFER BINDS NOTHING HERE and binds an EMPTY UAV below. That\r\n * asymmetry is Carbon's: an unbound srv register keeps whatever the previous\r\n * draw left, which a shader may legitimately still be reading, while an\r\n * unbound uav must be cleared or the next dispatch writes into a stale one.\r\n *\r\n * @param {object} resourceDesc A `Tr2ResourceSetDescriptionAL`.\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @param {number} [_flags] A `ResourceFlags` word; unread for a buffer.\r\n * @returns {boolean} Whether the slot took the binding.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CopyToResourceSet(resourceDesc, stage, registerIndex, _flags = 0)\r\n {\r\n const buffer = this.gpuBuffer?.GetGpuBuffer(this.meshIndex);\r\n\r\n if (!buffer) return false;\r\n\r\n return resourceDesc.SetSrv(stage, registerIndex, buffer);\r\n }\r\n\r\n /**\r\n * Binds this parameter's geometry buffer as an unordered-access view, or an\r\n * empty one when nothing is attached — see the note above on why.\r\n *\r\n * Carbon `Tr2GeometryBufferParameter::ApplyUav`.\r\n *\r\n * @param {object} resourceDesc A `Tr2ResourceSetDescriptionAL`.\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @returns {boolean} Whether the slot took the binding.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ApplyUav(resourceDesc, stage, registerIndex)\r\n {\r\n return resourceDesc.SetUav(stage, registerIndex, this.gpuBuffer?.GetGpuBuffer(this.meshIndex) ?? null);\r\n }\r\n\r\n /**\r\n * Whether a buffer object has actually been attached; an authored resourcePath\r\n * alone does not make the parameter valid.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsValid()\r\n {\r\n return !!this.gpuBuffer;\r\n }\r\n\r\n /**\r\n * Attaches a buffer object directly and clears the authored resource path, so\r\n * the path can no longer override it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetGpuBuffer(buffer)\r\n {\r\n this.resourcePath = \"\";\r\n this.gpuBuffer = buffer;\r\n }\r\n\r\n /**\r\n * The attached buffer object, or null; held by reference and never created\r\n * here.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetGpuBuffer()\r\n {\r\n return this.gpuBuffer;\r\n }\r\n\r\n}\r\n"],"names":["_Tr2GeometryBufferPar","Tr2GeometryBufferParameter","CjsParameter","e","_init_resourcePath","_init_extra_resourcePath","_init_gpuBuffer","_init_extra_gpuBuffer","_init_usedByCurrentEffect","_init_extra_usedByCurrentEffect","_init_meshIndex","_init_extra_meshIndex","_init_name","_init_extra_name","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","flag","notify","persist","string","objectRef","read","boolean","int32","carbon","method","impl","implemented","adapted","resourcePath","gpuBuffer","usedByCurrentEffect","meshIndex","name","cachedEffect","GetParameterName","GetHashValue","startingHash","FNV1_INITIAL","hashFnv1String","Initialize","OnModified","_options","__state","flags","delete","RebuildEffectHandles","effectRes","getEffectResource","CopyToResourceSet","resourceDesc","stage","registerIndex","_flags","buffer","GetGpuBuffer","SetSrv","ApplyUav","SetUav","IsValid","SetGpuBuffer"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2GeometryBufferParameter.js","sources":["../../../../../src/trinity/shader/parameter/Tr2GeometryBufferParameter.js"],"sourcesContent":["// Source: trinity/trinity/Shader/Parameter/Tr2GeometryBufferParameter.h\r\n// Maintained CarbonEngineJS implementation; generated schema is reference-only.\r\nimport { carbon, impl, io, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\nimport { CjsParameter } from \"./CjsParameter.js\";\r\n\r\n/** Carries a named shader-buffer path for host resolution or a caller-owned GPU buffer reference. */\r\n@type.define({ className: \"Tr2GeometryBufferParameter\", family: \"shader\" })\r\nexport class Tr2GeometryBufferParameter extends CjsParameter\r\n{\r\n\r\n /** m_resourcePath (std::wstring) [READWRITE, NOTIFY, PERSIST] */\r\n @io.flag(\"resource\")\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n resourcePath = \"\";\r\n\r\n /** m_gpuBuffer (ITr2GpuBufferPtr) [READWRITE, PERSIST, NOTIFY] */\r\n @io.notify\r\n @io.persist\r\n @type.objectRef(\"ITr2GpuBuffer\")\r\n gpuBuffer = null;\r\n\r\n /** m_isUsedByEffect (bool) [READ] */\r\n @io.read\r\n @type.boolean\r\n usedByCurrentEffect = false;\r\n\r\n /** m_meshIndex (int32_t) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.int32\r\n meshIndex = 0;\r\n\r\n /** m_name (BlueSharedString) [READWRITE, NOTIFY, PERSIST] */\r\n @io.notify\r\n @io.persist\r\n @type.string\r\n name = \"\";\r\n\r\n cachedEffect = null;\r\n\r\n /** The shader resource name this buffer binds to. */\r\n @carbon.method\r\n @impl.implemented\r\n GetParameterName()\r\n {\r\n return this.name;\r\n }\r\n\r\n /** Content hash: resource path (when set) then name. */\r\n @carbon.method\r\n @impl.adapted\r\n GetHashValue(startingHash = CjsParameter.FNV1_INITIAL)\r\n {\r\n if (this.resourcePath)\r\n {\r\n startingHash = CjsParameter.hashFnv1String(this.resourcePath, startingHash);\r\n }\r\n return CjsParameter.hashFnv1String(this.name, startingHash);\r\n }\r\n\r\n /**\r\n * Nothing to do in this GPU-free package - a resource path is never resolved\r\n * to a buffer here; returns true.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n Initialize()\r\n {\r\n return true;\r\n }\r\n\r\n /**\r\n * Consumes the `resource` dirty flag by re-initializing and re-resolving\r\n * handles against the cached shader.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n OnModified(_options = {})\r\n {\r\n if (this.__state.flags.delete(\"resource\"))\r\n {\r\n this.Initialize();\r\n this.RebuildEffectHandles(this.cachedEffect);\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Caches the shader and records whether it reflects a resource of this name;\r\n * no GPU buffer is bound.\r\n */\r\n @carbon.method\r\n @impl.adapted\r\n RebuildEffectHandles(effectRes)\r\n {\r\n this.cachedEffect = effectRes;\r\n this.usedByCurrentEffect = !!this.name && !!CjsParameter.getEffectResource(effectRes, this.name);\r\n }\r\n\r\n /**\r\n * Binds this parameter's geometry buffer as a shader resource.\r\n *\r\n * Carbon `Tr2GeometryBufferParameter::CopyToResourceSet`. No colour space —\r\n * a buffer has no transfer function — so `flags` is accepted for the shared\r\n * signature and unread, exactly as Carbon's is.\r\n *\r\n * A MISSING BUFFER BINDS NOTHING HERE and binds an EMPTY UAV below. That\r\n * asymmetry is Carbon's: an unbound srv register keeps whatever the previous\r\n * draw left, which a shader may legitimately still be reading, while an\r\n * unbound uav must be cleared or the next dispatch writes into a stale one.\r\n *\r\n * @param {object} resourceDesc A `Tr2ResourceSetDescriptionAL`.\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @param {number} [_flags] A `ResourceFlags` word; unread for a buffer.\r\n * @returns {boolean} Whether the slot took the binding.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n CopyToResourceSet(resourceDesc, stage, registerIndex, _flags = 0)\r\n {\r\n const buffer = this.gpuBuffer?.GetGpuBuffer(this.meshIndex);\r\n\r\n if (!buffer) return false;\r\n\r\n return resourceDesc.SetSrv(stage, registerIndex, buffer, 0, 1);\r\n }\r\n\r\n /**\r\n * Binds this parameter's geometry buffer as an unordered-access view, or an\r\n * empty one when nothing is attached — see the note above on why.\r\n *\r\n * Carbon `Tr2GeometryBufferParameter::ApplyUav`.\r\n *\r\n * @param {object} resourceDesc A `Tr2ResourceSetDescriptionAL`.\r\n * @param {number} stage A `ShaderType`.\r\n * @param {number} registerIndex The register.\r\n * @returns {boolean} Whether the slot took the binding.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n ApplyUav(resourceDesc, stage, registerIndex)\r\n {\r\n return resourceDesc.SetUav(stage, registerIndex, this.gpuBuffer?.GetGpuBuffer(this.meshIndex) ?? null, 0, 1);\r\n }\r\n\r\n /**\r\n * Whether a buffer object has actually been attached; an authored resourcePath\r\n * alone does not make the parameter valid.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n IsValid()\r\n {\r\n return !!this.gpuBuffer;\r\n }\r\n\r\n /**\r\n * Attaches a buffer object directly and clears the authored resource path, so\r\n * the path can no longer override it.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n SetGpuBuffer(buffer)\r\n {\r\n this.resourcePath = \"\";\r\n this.gpuBuffer = buffer;\r\n }\r\n\r\n /**\r\n * The attached buffer object, or null; held by reference and never created\r\n * here.\r\n */\r\n @carbon.method\r\n @impl.implemented\r\n GetGpuBuffer()\r\n {\r\n return this.gpuBuffer;\r\n }\r\n\r\n}\r\n"],"names":["_Tr2GeometryBufferPar","Tr2GeometryBufferParameter","CjsParameter","e","_init_resourcePath","_init_extra_resourcePath","_init_gpuBuffer","_init_extra_gpuBuffer","_init_usedByCurrentEffect","_init_extra_usedByCurrentEffect","_init_meshIndex","_init_extra_meshIndex","_init_name","_init_extra_name","_initProto","c","_initClass","_applyDecs","type","define","className","family","io","flag","notify","persist","string","objectRef","read","boolean","int32","carbon","method","impl","implemented","adapted","resourcePath","gpuBuffer","usedByCurrentEffect","meshIndex","name","cachedEffect","GetParameterName","GetHashValue","startingHash","FNV1_INITIAL","hashFnv1String","Initialize","OnModified","_options","__state","flags","delete","RebuildEffectHandles","effectRes","getEffectResource","CopyToResourceSet","resourceDesc","stage","registerIndex","_flags","buffer","GetGpuBuffer","SetSrv","ApplyUav","SetUav","IsValid","SetGpuBuffer"],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ import { PixelFormat, GetBytesPerPixel } from '../../global/consts/renderContext/formats.js';
2
+ import '../../global/consts/renderContext/pipeline.js';
3
+ import { Tr2GpuUsage, Tr2CpuUsage } from '../../global/consts/renderContext/resources.js';
4
+
5
+ // Source: trinity/trinityal/include/Tr2BufferAL.h
6
+ // Source: trinity/trinityal/src/Tr2BufferAL.cpp (the description constructors)
7
+
8
+ /**
9
+ * How a buffer is laid out and what may touch it.
10
+ *
11
+ * Carbon's two non-default constructors differ only in where the stride comes
12
+ * from: `FromFormat` derives it from the pixel format, `FromStride` is given
13
+ * it outright for a structured buffer.
14
+ */
15
+ class Tr2BufferDescriptionAL {
16
+ /** A `PixelFormat` value; unknown for a structured buffer. */
17
+ format = PixelFormat.PIXEL_FORMAT_UNKNOWN;
18
+
19
+ /** Bytes per element. */
20
+ stride = 0;
21
+
22
+ /** Elements. */
23
+ count = 0;
24
+
25
+ /** A `Tr2GpuUsage` bit set. */
26
+ gpuUsage = Tr2GpuUsage.NONE;
27
+
28
+ /** A `Tr2CpuUsage` bit set. */
29
+ cpuUsage = Tr2CpuUsage.NONE;
30
+
31
+ /**
32
+ * A typed buffer, whose stride follows from its format.
33
+ *
34
+ * @param {number} format A `PixelFormat` value.
35
+ * @param {number} count Elements.
36
+ * @param {number} gpuUsage A `Tr2GpuUsage` bit set.
37
+ * @param {number} cpuUsage A `Tr2CpuUsage` bit set.
38
+ * @returns {Tr2BufferDescriptionAL} The description.
39
+ */
40
+ static FromFormat(format, count, gpuUsage, cpuUsage) {
41
+ const description = new Tr2BufferDescriptionAL();
42
+ description.format = format;
43
+ description.stride = GetBytesPerPixel(format);
44
+ description.count = count;
45
+ description.gpuUsage = gpuUsage;
46
+ description.cpuUsage = cpuUsage;
47
+ return description;
48
+ }
49
+
50
+ /**
51
+ * A structured buffer, whose stride is given.
52
+ *
53
+ * @param {number} stride Bytes per element.
54
+ * @param {number} count Elements.
55
+ * @param {number} gpuUsage A `Tr2GpuUsage` bit set.
56
+ * @param {number} cpuUsage A `Tr2CpuUsage` bit set.
57
+ * @returns {Tr2BufferDescriptionAL} The description.
58
+ */
59
+ static FromStride(stride, count, gpuUsage, cpuUsage) {
60
+ const description = new Tr2BufferDescriptionAL();
61
+ description.stride = stride;
62
+ description.count = count;
63
+ description.gpuUsage = gpuUsage;
64
+ description.cpuUsage = cpuUsage;
65
+ return description;
66
+ }
67
+
68
+ /**
69
+ * The buffer's size in bytes.
70
+ *
71
+ * @returns {number} Stride times count.
72
+ */
73
+ GetSizeInBytes() {
74
+ return this.stride * this.count;
75
+ }
76
+ }
77
+
78
+ export { Tr2BufferDescriptionAL };
79
+ //# sourceMappingURL=Tr2BufferDescriptionAL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2BufferDescriptionAL.js","sources":["../../../../src/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js"],"sourcesContent":["// Source: trinity/trinityal/include/Tr2BufferAL.h\r\n// Source: trinity/trinityal/src/Tr2BufferAL.cpp (the description constructors)\r\nimport { GetBytesPerPixel, PixelFormat, Tr2CpuUsage, Tr2GpuUsage } from \"../../global/consts/renderContext/index.js\";\r\n\r\n/**\r\n * How a buffer is laid out and what may touch it.\r\n *\r\n * Carbon's two non-default constructors differ only in where the stride comes\r\n * from: `FromFormat` derives it from the pixel format, `FromStride` is given\r\n * it outright for a structured buffer.\r\n */\r\nexport class Tr2BufferDescriptionAL\r\n{\r\n /** A `PixelFormat` value; unknown for a structured buffer. */\r\n format = PixelFormat.PIXEL_FORMAT_UNKNOWN;\r\n\r\n /** Bytes per element. */\r\n stride = 0;\r\n\r\n /** Elements. */\r\n count = 0;\r\n\r\n /** A `Tr2GpuUsage` bit set. */\r\n gpuUsage = Tr2GpuUsage.NONE;\r\n\r\n /** A `Tr2CpuUsage` bit set. */\r\n cpuUsage = Tr2CpuUsage.NONE;\r\n\r\n /**\r\n * A typed buffer, whose stride follows from its format.\r\n *\r\n * @param {number} format A `PixelFormat` value.\r\n * @param {number} count Elements.\r\n * @param {number} gpuUsage A `Tr2GpuUsage` bit set.\r\n * @param {number} cpuUsage A `Tr2CpuUsage` bit set.\r\n * @returns {Tr2BufferDescriptionAL} The description.\r\n */\r\n static FromFormat(format, count, gpuUsage, cpuUsage)\r\n {\r\n const description = new Tr2BufferDescriptionAL();\r\n\r\n description.format = format;\r\n description.stride = GetBytesPerPixel(format);\r\n description.count = count;\r\n description.gpuUsage = gpuUsage;\r\n description.cpuUsage = cpuUsage;\r\n\r\n return description;\r\n }\r\n\r\n /**\r\n * A structured buffer, whose stride is given.\r\n *\r\n * @param {number} stride Bytes per element.\r\n * @param {number} count Elements.\r\n * @param {number} gpuUsage A `Tr2GpuUsage` bit set.\r\n * @param {number} cpuUsage A `Tr2CpuUsage` bit set.\r\n * @returns {Tr2BufferDescriptionAL} The description.\r\n */\r\n static FromStride(stride, count, gpuUsage, cpuUsage)\r\n {\r\n const description = new Tr2BufferDescriptionAL();\r\n\r\n description.stride = stride;\r\n description.count = count;\r\n description.gpuUsage = gpuUsage;\r\n description.cpuUsage = cpuUsage;\r\n\r\n return description;\r\n }\r\n\r\n /**\r\n * The buffer's size in bytes.\r\n *\r\n * @returns {number} Stride times count.\r\n */\r\n GetSizeInBytes()\r\n {\r\n return this.stride * this.count;\r\n }\r\n}\r\n"],"names":["Tr2BufferDescriptionAL","format","PixelFormat","PIXEL_FORMAT_UNKNOWN","stride","count","gpuUsage","Tr2GpuUsage","NONE","cpuUsage","Tr2CpuUsage","FromFormat","description","GetBytesPerPixel","FromStride","GetSizeInBytes"],"mappings":";;;;AAAA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,sBAAsB,CACnC;AACE;EACAC,MAAM,GAAGC,WAAW,CAACC,oBAAoB;;AAEzC;AACAC,EAAAA,MAAM,GAAG,CAAC;;AAEV;AACAC,EAAAA,KAAK,GAAG,CAAC;;AAET;EACAC,QAAQ,GAAGC,WAAW,CAACC,IAAI;;AAE3B;EACAC,QAAQ,GAAGC,WAAW,CAACF,IAAI;;AAE3B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOG,UAAUA,CAACV,MAAM,EAAEI,KAAK,EAAEC,QAAQ,EAAEG,QAAQ,EACnD;AACE,IAAA,MAAMG,WAAW,GAAG,IAAIZ,sBAAsB,EAAE;IAEhDY,WAAW,CAACX,MAAM,GAAGA,MAAM;AAC3BW,IAAAA,WAAW,CAACR,MAAM,GAAGS,gBAAgB,CAACZ,MAAM,CAAC;IAC7CW,WAAW,CAACP,KAAK,GAAGA,KAAK;IACzBO,WAAW,CAACN,QAAQ,GAAGA,QAAQ;IAC/BM,WAAW,CAACH,QAAQ,GAAGA,QAAQ;AAE/B,IAAA,OAAOG,WAAW;AACpB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,UAAUA,CAACV,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEG,QAAQ,EACnD;AACE,IAAA,MAAMG,WAAW,GAAG,IAAIZ,sBAAsB,EAAE;IAEhDY,WAAW,CAACR,MAAM,GAAGA,MAAM;IAC3BQ,WAAW,CAACP,KAAK,GAAGA,KAAK;IACzBO,WAAW,CAACN,QAAQ,GAAGA,QAAQ;IAC/BM,WAAW,CAACH,QAAQ,GAAGA,QAAQ;AAE/B,IAAA,OAAOG,WAAW;AACpB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEG,EAAAA,cAAcA,GACd;AACE,IAAA,OAAO,IAAI,CAACX,MAAM,GAAG,IAAI,CAACC,KAAK;AACjC,EAAA;AACF;;;;"}