@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,6 +1,6 @@
1
1
  import { CjsTrinityBatchResolver } from '#trinity/core/batch/CjsTrinityBatchResolver';
2
2
  import { Tr2EffectStateManager } from '#trinity/shader';
3
- import { Tr2PerObjectData } from '#trinity/core/rawData/Tr2PerObjectData';
3
+ import { Tr2PerObjectData } from '#trinity/core/rawData/perObjectData/Tr2PerObjectData';
4
4
  import { resolveBindingPlan } from '#trinityal/vertexLayoutMatch';
5
5
  import { CarbonVertexElements } from '#trinity/core/vertex/vertexUsage';
6
6
  import { CjsWebgpuPackage } from '../CjsWebgpuPackage.js';
@@ -59,30 +59,30 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
59
59
  /** Geometry source identity to realized device geometry. */
60
60
  _geometry = new Map();
61
61
 
62
- /**
63
- * @param {object} webgpu Canonical WebGPU device.
64
- * @param {object} options Composition.
65
- * @param {Function} [options.CreatePackage] Turns container bytes into a
66
- * package. Injected rather than imported: the engine must not reach into a
67
- * format's internals, and a caller that already holds a package can supply
68
- * it without owning a reader.
69
- * @param {Function} [options.read] The WebGPU format's `read`, a convenience
70
- * that supplies the default CreatePackage.
71
- * @param {Array<object>} options.targets Colour attachment formats of the
72
- * pass this resolver draws into. A pipeline must declare them and the
73
- * effect cannot know them; they belong to the frame.
74
- * @param {string|null} [options.depthFormat] Depth attachment format, or null
75
- * when the pass has none.
76
- * @param {string} [options.techniqueName] Carbon's DEFAULT_TECHNIQUE.
77
- * @param {Function} [options.ResolvePerFrame] Supplies the packed bytes for a
78
- * per-frame constant slot, which the scene owns.
79
- * @param {Function} [options.ResolveSampler] Supplies a device sampler for a
80
- * declared sampler binding.
81
- * @param {Function} [options.ResolveStorageBuffer] Supplies a storage buffer
82
- * binding, such as a bone palette.
83
- * @param {Function} [options.ResolveTexture] Supplies a device texture for a
84
- * named effect resource. Absent means this resolver draws only effects that
85
- * bind none, and says so rather than binding nothing.
62
+ /**
63
+ * @param {object} webgpu Canonical WebGPU device.
64
+ * @param {object} options Composition.
65
+ * @param {Function} [options.CreatePackage] Turns container bytes into a
66
+ * package. Injected rather than imported: the engine must not reach into a
67
+ * format's internals, and a caller that already holds a package can supply
68
+ * it without owning a reader.
69
+ * @param {Function} [options.read] The WebGPU format's `read`, a convenience
70
+ * that supplies the default CreatePackage.
71
+ * @param {Array<object>} options.targets Colour attachment formats of the
72
+ * pass this resolver draws into. A pipeline must declare them and the
73
+ * effect cannot know them; they belong to the frame.
74
+ * @param {string|null} [options.depthFormat] Depth attachment format, or null
75
+ * when the pass has none.
76
+ * @param {string} [options.techniqueName] Carbon's DEFAULT_TECHNIQUE.
77
+ * @param {Function} [options.ResolvePerFrame] Supplies the packed bytes for a
78
+ * per-frame constant slot, which the scene owns.
79
+ * @param {Function} [options.ResolveSampler] Supplies a device sampler for a
80
+ * declared sampler binding.
81
+ * @param {Function} [options.ResolveStorageBuffer] Supplies a storage buffer
82
+ * binding, such as a bone palette.
83
+ * @param {Function} [options.ResolveTexture] Supplies a device texture for a
84
+ * named effect resource. Absent means this resolver draws only effects that
85
+ * bind none, and says so rather than binding nothing.
86
86
  */
87
87
  constructor(webgpu, options = {}) {
88
88
  super();
@@ -112,26 +112,26 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
112
112
  this._renderer = options.renderer ?? new Tr2Renderer();
113
113
  }
114
114
 
115
- /**
116
- * The reflected pass this batch draws, for a pass index.
117
- *
118
- * @param {object} material Trinity material.
119
- * @param {number} passIndex Pass within the technique.
120
- * @returns {object|null} Reflected pass.
115
+ /**
116
+ * The reflected pass this batch draws, for a pass index.
117
+ *
118
+ * @param {object} material Trinity material.
119
+ * @param {number} passIndex Pass within the technique.
120
+ * @returns {object|null} Reflected pass.
121
121
  */
122
122
  _PassOf(material, passIndex) {
123
- const shader = material.GetShaderStateInterface?.();
123
+ const shader = material.GetShaderStateInterface();
124
124
  const techniqueIndex = shader?.GetTechniqueIndex?.(this._techniqueName) ?? -1;
125
125
  if (techniqueIndex < 0) return null;
126
126
  return shader.GetEffect?.()?.techniques?.[techniqueIndex]?.passes?.[passIndex] ?? null;
127
127
  }
128
128
 
129
- /**
130
- * The package for this material's effect, read once from the container bytes
131
- * the resource already holds.
132
- *
133
- * @param {object} material Trinity material.
134
- * @returns {object} Package.
129
+ /**
130
+ * The package for this material's effect, read once from the container bytes
131
+ * the resource already holds.
132
+ *
133
+ * @param {object} material Trinity material.
134
+ * @returns {object} Package.
135
135
  */
136
136
  _PackageFor(material) {
137
137
  const resource = material.GetEffectRes?.();
@@ -145,16 +145,16 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
145
145
  return built;
146
146
  }
147
147
 
148
- /**
149
- * Realizes a batch's geometry once and keeps it.
150
- *
151
- * Keyed on the geometry resource, mesh, LOD and the shader inputs it was
152
- * bound against, because the same bytes drawn by two shaders need two
153
- * layouts. Realizing per batch would repack every mesh every frame.
154
- *
155
- * @param {object} source Batch geometry source.
156
- * @param {object} pass Reflected pass supplying the vertex inputs.
157
- * @returns {Promise<object>} Device geometry.
148
+ /**
149
+ * Realizes a batch's geometry once and keeps it.
150
+ *
151
+ * Keyed on the geometry resource, mesh, LOD and the shader inputs it was
152
+ * bound against, because the same bytes drawn by two shaders need two
153
+ * layouts. Realizing per batch would repack every mesh every frame.
154
+ *
155
+ * @param {object} source Batch geometry source.
156
+ * @param {object} pass Reflected pass supplying the vertex inputs.
157
+ * @returns {Promise<object>} Device geometry.
158
158
  */
159
159
  async _GeometryFor(source, pass) {
160
160
  // Under `signature`, not on the stage input itself: the reflection groups a
@@ -266,24 +266,24 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
266
266
  };
267
267
  }
268
268
 
269
- /**
270
- * The caller-supplied source for one declared binding, by kind.
271
- *
272
- * Kinds are kept apart because they are answered by different things: a
273
- * texture comes from a resource path, a sampler from authored state, a
274
- * storage buffer from whatever produced its contents. Carbon keeps the same
275
- * separation - SetSrv, SetSampler and the buffer overload are distinct calls
276
- * on the resource-set description (Tr2ResourceSetAL.h:57-64).
277
- *
278
- * KIND ALONE DOES NOT SEPARATE A TEXTURE FROM A BUFFER. A structured buffer
279
- * such as a bone palette is declared through an SRV, so it arrives as a
280
- * "sampled-resource" exactly like a texture does. The binding's LAYOUT is
281
- * what tells them apart, and the package already computed it - it is the
282
- * same descriptor the bind-group layout is created from, so reading it here
283
- * cannot disagree with what the pipeline was built to accept.
284
- *
285
- * @param {object} binding Declared binding record.
286
- * @returns {Function|null} Source for this kind, or null when none was given.
269
+ /**
270
+ * The caller-supplied source for one declared binding, by kind.
271
+ *
272
+ * Kinds are kept apart because they are answered by different things: a
273
+ * texture comes from a resource path, a sampler from authored state, a
274
+ * storage buffer from whatever produced its contents. Carbon keeps the same
275
+ * separation - SetSrv, SetSampler and the buffer overload are distinct calls
276
+ * on the resource-set description (Tr2ResourceSetAL.h:57-64).
277
+ *
278
+ * KIND ALONE DOES NOT SEPARATE A TEXTURE FROM A BUFFER. A structured buffer
279
+ * such as a bone palette is declared through an SRV, so it arrives as a
280
+ * "sampled-resource" exactly like a texture does. The binding's LAYOUT is
281
+ * what tells them apart, and the package already computed it - it is the
282
+ * same descriptor the bind-group layout is created from, so reading it here
283
+ * cannot disagree with what the pipeline was built to accept.
284
+ *
285
+ * @param {object} binding Declared binding record.
286
+ * @returns {Function|null} Source for this kind, or null when none was given.
287
287
  */
288
288
  _SourceFor(binding) {
289
289
  const layout = binding.layout;
@@ -292,19 +292,19 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
292
292
  return this._resolveStorageBuffer;
293
293
  }
294
294
 
295
- /**
296
- * The bytes for one declared constant buffer.
297
- *
298
- * Which buffer it is comes from its register, using Carbon's slot map
299
- * (Tr2RenderContextEnum.h:406, Tr2Renderer.cpp:38-43): b0 is the effect's own
300
- * parameters, b3 and b4 are the per-object blocks. Per-frame b1 and b2 belong
301
- * to the scene and are bound by whoever owns the frame, not per batch.
302
- *
303
- * @param {object} binding Declared binding record.
304
- * @param {object} material Trinity material.
305
- * @param {object} objectData Per-object data for this batch.
306
- * @param {number} passIndex Pass within the technique.
307
- * @returns {Promise<ArrayBufferView|null>} Bytes, or null when nothing supplies it.
295
+ /**
296
+ * The bytes for one declared constant buffer.
297
+ *
298
+ * Which buffer it is comes from its register, using Carbon's slot map
299
+ * (Tr2RenderContextEnum.h:406, Tr2Renderer.cpp:38-43): b0 is the effect's own
300
+ * parameters, b3 and b4 are the per-object blocks. Per-frame b1 and b2 belong
301
+ * to the scene and are bound by whoever owns the frame, not per batch.
302
+ *
303
+ * @param {object} binding Declared binding record.
304
+ * @param {object} material Trinity material.
305
+ * @param {object} objectData Per-object data for this batch.
306
+ * @param {number} passIndex Pass within the technique.
307
+ * @returns {Promise<ArrayBufferView|null>} Bytes, or null when nothing supplies it.
308
308
  */
309
309
  async _ConstantsFor(binding, material, objectData, passIndex) {
310
310
  const shader = material.GetShaderStateInterface?.();
@@ -318,7 +318,7 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
318
318
  technique: this._techniqueName,
319
319
  pass: passIndex
320
320
  });
321
- return layout?.size ? PackMaterialConstants(layout, material.GetValues?.() ?? {}) : null;
321
+ return layout?.size ? PackMaterialConstants(layout, material.GetValues()) : null;
322
322
  }
323
323
 
324
324
  // ASK THE RENDERER WHICH REGISTER IS WHICH. It owns the numbers
@@ -377,4 +377,4 @@ class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver {
377
377
  }
378
378
 
379
379
  export { CjsWebgpuTrinityBatchResolver };
380
- //# sourceMappingURL=trinityBatchResolver.js.map
380
+ //# sourceMappingURL=CjsWebgpuTrinityBatchResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsWebgpuTrinityBatchResolver.js","sources":["../../../../../src/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js"],"sourcesContent":["// The concrete resolver: a Trinity batch to WebGPU pipeline, geometry and\n// bindings.\n//\n// Carbon has no resolver class. This boundary stands in for what Carbon does\n// between a sorted batch and a draw call, and the mapping is one to one:\n//\n// ResolveMaterial <- Tr2Shader::ApplyAllStateForPass (Tr2Shader.cpp:157-166)\n// program handle + render states for THIS pass\n// ResolveGeometry <- SubmitGeometry (Tr2RenderContext.cpp:82-102)\n// vertex declaration, streams, index buffer, draw\n// ResolveBindings <- Tr2Material::ApplyMaterialDataForPass (Tr2Material.cpp:209-253)\n// plus Tr2PerObjectData::SetPerObjectDataToDevice\n//\n// WHY A PACKAGE AND NOT THE INTERNED BYTECODE. Carbon hands a stage's bytecode\n// to its abstraction layer, which builds the backend object\n// (Tr2EffectDescription.cpp:586). Ours cannot stop there: a WGSL pipeline needs\n// explicit bind-group layouts, which a stage blob does not carry and D3D never\n// had to describe. The container's own reader produces them, so the engine\n// reads the SAME BYTES the resource already holds - not a second fetch - and\n// the package is that read.\n//\n// The recipe is the mode's standard states with the pass's overlaid, exactly as\n// Carbon applies them (Tr2EffectStateManager.cpp:703-720). Reading the pass\n// alone would produce a pipeline missing most of its state.\nimport { CjsTrinityBatchResolver } from \"#trinity/core/batch/CjsTrinityBatchResolver\";\nimport { Tr2EffectStateManager } from \"#trinity/shader\";\nimport { Tr2PerObjectData } from \"#trinity/core/rawData/perObjectData/Tr2PerObjectData\";\nimport { resolveBindingPlan } from \"#trinityal/vertexLayoutMatch\";\nimport { CarbonVertexElements } from \"#trinity/core/vertex/vertexUsage\";\n\nimport { CjsWebgpuPackage } from \"../CjsWebgpuPackage.js\";\nimport { EFFECT_CONSTANTS, Tr2Renderer } from \"#trinity/core/Tr2Renderer\";\nimport { WebgpuGeometryOptions } from \"./geometryPlan.js\";\nimport { MaterialLayoutFromShader, PackMaterialConstants } from \"./materialConstants.js\";\n\n\nfunction fail(message)\n{\n const error = new Error(`CjsWebgpuTrinityBatchResolver: ${message}`);\n error.code = \"CJS_WEBGPU_RESOLVER_INVALID\";\n throw error;\n}\n\n\n\n/** Resolves Trinity batches against one WebGPU device. */\nexport class CjsWebgpuTrinityBatchResolver extends CjsTrinityBatchResolver\n{\n _webgpu;\n\n _createPackage;\n\n _techniqueName;\n\n _targets;\n\n _depthFormat;\n\n _resolvePerFrame;\n\n _resolveTexture;\n\n _resolveSampler;\n\n _resolveStorageBuffer;\n\n /** The renderer whose register map says which constant buffer is which. */\n _renderer;\n\n /** Effect resource to the package read from its own container bytes. */\n _packages = new WeakMap();\n\n /** Geometry source identity to realized device geometry. */\n _geometry = new Map();\n\n /**\n * @param {object} webgpu Canonical WebGPU device.\n * @param {object} options Composition.\n * @param {Function} [options.CreatePackage] Turns container bytes into a\n * package. Injected rather than imported: the engine must not reach into a\n * format's internals, and a caller that already holds a package can supply\n * it without owning a reader.\n * @param {Function} [options.read] The WebGPU format's `read`, a convenience\n * that supplies the default CreatePackage.\n * @param {Array<object>} options.targets Colour attachment formats of the\n * pass this resolver draws into. A pipeline must declare them and the\n * effect cannot know them; they belong to the frame.\n * @param {string|null} [options.depthFormat] Depth attachment format, or null\n * when the pass has none.\n * @param {string} [options.techniqueName] Carbon's DEFAULT_TECHNIQUE.\n * @param {Function} [options.ResolvePerFrame] Supplies the packed bytes for a\n * per-frame constant slot, which the scene owns.\n * @param {Function} [options.ResolveSampler] Supplies a device sampler for a\n * declared sampler binding.\n * @param {Function} [options.ResolveStorageBuffer] Supplies a storage buffer\n * binding, such as a bone palette.\n * @param {Function} [options.ResolveTexture] Supplies a device texture for a\n * named effect resource. Absent means this resolver draws only effects that\n * bind none, and says so rather than binding nothing.\n */\n constructor(webgpu, options = {})\n {\n super();\n\n if (!webgpu) fail(\"a WebGPU device is required\");\n const createPackage = options.CreatePackage\n ?? (typeof options.read === \"function\"\n ? bytes => CjsWebgpuPackage.fromBytes(bytes, { read: options.read })\n : null);\n\n if (typeof createPackage !== \"function\")\n {\n fail(\"options.CreatePackage or options.read is required to build a package\");\n }\n if (!Array.isArray(options.targets) || !options.targets.length)\n {\n fail(\"options.targets must name the pass's colour attachment formats\");\n }\n\n this._webgpu = webgpu;\n this._createPackage = createPackage;\n this._targets = options.targets;\n this._depthFormat = options.depthFormat === undefined ? \"depth24plus\" : options.depthFormat;\n this._techniqueName = options.techniqueName ?? \"Main\";\n this._resolvePerFrame = options.ResolvePerFrame ?? null;\n this._resolveTexture = options.ResolveTexture ?? null;\n this._resolveSampler = options.ResolveSampler ?? null;\n this._resolveStorageBuffer = options.ResolveStorageBuffer ?? null;\n\n // Defaulted rather than required: the register map is fixed, so a caller\n // with no renderer to hand gets the same answers. A composed one arrives\n // when the library owns the renderer.\n this._renderer = options.renderer ?? new Tr2Renderer();\n }\n\n /**\n * The reflected pass this batch draws, for a pass index.\n *\n * @param {object} material Trinity material.\n * @param {number} passIndex Pass within the technique.\n * @returns {object|null} Reflected pass.\n */\n _PassOf(material, passIndex)\n {\n const shader = material.GetShaderStateInterface();\n const techniqueIndex = shader?.GetTechniqueIndex?.(this._techniqueName) ?? -1;\n\n if (techniqueIndex < 0) return null;\n\n return shader.GetEffect?.()?.techniques?.[techniqueIndex]?.passes?.[passIndex] ?? null;\n }\n\n /**\n * The package for this material's effect, read once from the container bytes\n * the resource already holds.\n *\n * @param {object} material Trinity material.\n * @returns {object} Package.\n */\n _PackageFor(material)\n {\n const resource = material.GetEffectRes?.();\n\n if (!resource) fail(\"material has no effect resource to read a package from\");\n\n const cached = this._packages.get(resource);\n\n if (cached) return cached;\n\n const bytes = resource.GetContainerBytes?.();\n\n if (!bytes) fail(\"effect resource is not holding container bytes to read\");\n\n const built = this._createPackage(bytes);\n\n this._packages.set(resource, built);\n\n return built;\n }\n\n /**\n * Realizes a batch's geometry once and keeps it.\n *\n * Keyed on the geometry resource, mesh, LOD and the shader inputs it was\n * bound against, because the same bytes drawn by two shaders need two\n * layouts. Realizing per batch would repack every mesh every frame.\n *\n * @param {object} source Batch geometry source.\n * @param {object} pass Reflected pass supplying the vertex inputs.\n * @returns {Promise<object>} Device geometry.\n */\n async _GeometryFor(source, pass)\n {\n // Under `signature`, not on the stage input itself: the reflection groups a\n // stage's declared inputs with the rest of its signature. Reading the wrong\n // level yields an empty list, a binding plan that matches nothing, and a\n // geometry with no attributes - found against real containers, where every\n // effect reported no inputs at all.\n const inputs = pass?.stageInputs?.[0]?.signature?.pipelineInputs ?? [];\n const geometry = source?.geometry;\n\n if (!geometry) fail(\"batch geometry source carries no geometry resource\");\n\n const meshIndex = source.meshIndex ?? 0;\n const key = `${geometry.GetPath?.() ?? geometry.id ?? \"geometry\"}|${meshIndex}|`\n + inputs.map(input => `${input.usage}:${input.usageIndex}:${input.registerIndex}`).join(\",\");\n\n const cached = this._geometry.get(key);\n\n if (cached) return cached;\n\n const mesh = geometry.GetPayload?.()?.meshes?.[meshIndex] ?? null;\n\n if (!mesh) fail(`geometry has no mesh ${meshIndex} to realize`);\n\n const elements = CarbonVertexElements(geometry.GetMeshVertexElements?.(meshIndex));\n const plan = resolveBindingPlan(elements, inputs);\n const request = WebgpuGeometryOptions(mesh, plan.entries, {\n label: `${geometry.GetPath?.() ?? \"geometry\"}#${meshIndex}`\n });\n\n const realized = await this._webgpu.CreateGeometry(request);\n\n this._geometry.set(key, realized);\n\n return realized;\n }\n\n /** @inheritdoc */\n async ResolveMaterial(material, batch, context)\n {\n const passIndex = context?.passIndex ?? 0;\n const pass = this._PassOf(material, passIndex);\n\n if (!pass) fail(`material declares no pass ${passIndex} of technique ${this._techniqueName}`);\n\n const setup = Tr2EffectStateManager.resolveRenderStates(batch.renderingMode, pass.renderStates);\n\n if (!setup) fail(\"pass resolves to no render state\");\n\n const projected = setup.GetWebgpuRecipe({ depthFormat: this._depthFormat });\n\n // The geometry decides the vertex layout, and CreateDraw requires the\n // pipeline's layout to equal the geometry's exactly, so it is realized here\n // rather than left to ResolveGeometry - which reuses the same cache entry.\n const geometry = await this._GeometryFor(batch.geometrySource, pass);\n\n return {\n pipeline: this._PackageFor(material).GetPipeline(this._techniqueName, passIndex),\n recipe: {\n ...projected,\n vertex: { buffers: geometry.vertexBufferLayouts },\n fragment: { targets: this._targets.map(target => ({ ...target, blend: projected.blend ?? undefined })) }\n }\n };\n }\n\n /** @inheritdoc */\n async ResolveGeometry(source, batch, context)\n {\n const pass = this._PassOf(batch.material, context?.passIndex ?? 0);\n const geometry = await this._GeometryFor(source, pass);\n\n // The draw arguments are omitted deliberately: Tr2MeshBase already resolved\n // them onto the batch from the LOD's areas, and the dispatcher reads them\n // there. Supplying them again would be a second derivation of the same\n // range, and the two could disagree.\n return { geometry, indexed: geometry.indexed };\n }\n\n /** @inheritdoc */\n async ResolveBindings(batch, objectData, context)\n {\n const passIndex = context?.passIndex ?? 0;\n const material = batch.material;\n const pipeline = this._PackageFor(material).GetPipeline(this._techniqueName, passIndex);\n\n // BIND WHAT THE PIPELINE DECLARES. Inventing keys and hoping they match is\n // how this first failed against a real container: the device wanted\n // \"uniform-buffer:0:0@fragment\" and was handed \"cb0\". The binding record\n // carries its own identity, so there is nothing to guess.\n const uniformData = new Map();\n const resources = new Map();\n\n for (const group of pipeline?.bindGroups ?? [])\n {\n for (const binding of group.bindings ?? [])\n {\n const identity = binding.scopeIdentity\n ?? `${binding.resourceKind}:${binding.registerSpace}:${binding.registerIndex}`;\n\n if (binding.bindingKind === \"constantBuffer\" || binding.resourceKind === \"uniform-buffer\")\n {\n const value = await this._ConstantsFor(binding, material, objectData, passIndex);\n\n if (value) uniformData.set(identity, value);\n\n continue;\n }\n\n // A BINDING IS NOT ALWAYS A TEXTURE. A quad pass declares storage\n // buffers and samplers alongside its textures, and routing all three\n // to a texture source would hand a sampler request to something that\n // resolves texture paths.\n const source = this._SourceFor(binding);\n\n if (!source)\n {\n fail(\n `pass binds ${binding.name ?? identity} and no source was supplied for a `\n + `${binding.resourceKind}. An effect with resources cannot be drawn without `\n + \"one, and binding nothing would draw the wrong thing rather than fail.\"\n );\n }\n\n resources.set(identity, await source(binding.name, material, binding));\n }\n }\n\n return { uniformData, resources };\n }\n\n /**\n * The caller-supplied source for one declared binding, by kind.\n *\n * Kinds are kept apart because they are answered by different things: a\n * texture comes from a resource path, a sampler from authored state, a\n * storage buffer from whatever produced its contents. Carbon keeps the same\n * separation - SetSrv, SetSampler and the buffer overload are distinct calls\n * on the resource-set description (Tr2ResourceSetAL.h:57-64).\n *\n * KIND ALONE DOES NOT SEPARATE A TEXTURE FROM A BUFFER. A structured buffer\n * such as a bone palette is declared through an SRV, so it arrives as a\n * \"sampled-resource\" exactly like a texture does. The binding's LAYOUT is\n * what tells them apart, and the package already computed it - it is the\n * same descriptor the bind-group layout is created from, so reading it here\n * cannot disagree with what the pipeline was built to accept.\n *\n * @param {object} binding Declared binding record.\n * @returns {Function|null} Source for this kind, or null when none was given.\n */\n _SourceFor(binding)\n {\n const layout = binding.layout;\n\n if (layout?.sampler) return this._resolveSampler;\n if (layout?.texture) return this._resolveTexture;\n\n return this._resolveStorageBuffer;\n }\n\n /**\n * The bytes for one declared constant buffer.\n *\n * Which buffer it is comes from its register, using Carbon's slot map\n * (Tr2RenderContextEnum.h:406, Tr2Renderer.cpp:38-43): b0 is the effect's own\n * parameters, b3 and b4 are the per-object blocks. Per-frame b1 and b2 belong\n * to the scene and are bound by whoever owns the frame, not per batch.\n *\n * @param {object} binding Declared binding record.\n * @param {object} material Trinity material.\n * @param {object} objectData Per-object data for this batch.\n * @param {number} passIndex Pass within the technique.\n * @returns {Promise<ArrayBufferView|null>} Bytes, or null when nothing supplies it.\n */\n async _ConstantsFor(binding, material, objectData, passIndex)\n {\n const shader = material.GetShaderStateInterface?.();\n const pass = this._PassOf(material, passIndex);\n\n if (binding.registerIndex === EFFECT_CONSTANTS)\n {\n // b0, the effect's own constants. A pass with no pixel stage has none to\n // pack - a depth-only pass is the ordinary case - and that is an absence\n // rather than a failure.\n if (!pass?.stageInputs?.[1]?.exists) return null;\n\n const layout = MaterialLayoutFromShader(shader, {\n technique: this._techniqueName,\n pass: passIndex\n });\n\n return layout?.size ? PackMaterialConstants(layout, material.GetValues()) : null;\n }\n\n // ASK THE RENDERER WHICH REGISTER IS WHICH. It owns the numbers\n // (Tr2Renderer.cpp:38-43) and Carbon compares against them exactly like\n // this. b1 and b2 are PER FRAME, not per object, and letting anything past\n // b0 fall through to the per-object path filled the two frame slots with\n // object bytes - a wrong picture rather than a failure.\n const renderer = this._renderer;\n const register = binding.registerIndex;\n\n if (register === renderer.GetPerFrameVSStartRegister() || register === renderer.GetPerFramePSStartRegister())\n {\n if (!this._resolvePerFrame)\n {\n fail(\n `pass binds b${binding.registerIndex}, which is per-frame data owned by the`\n + \" scene, and no ResolvePerFrame was supplied. The scene holds it;\"\n + \" the resolver cannot invent it.\"\n );\n }\n\n return this._resolvePerFrame(binding.registerIndex, binding);\n }\n\n // Everything else Carbon assigns - b5 ray-traced vertex data, b6 the GUI's\n // per-object block - and b8, which is ours for emulated addressing. None has\n // a source here, and filling one with per-object bytes would draw a wrong\n // picture rather than fail.\n if (register !== renderer.GetPerObjectVSStartRegister() && register !== renderer.GetPerObjectPSStartRegister())\n {\n fail(\n `pass binds b${register}, and nothing here fills it. Sourced registers are `\n + `b${EFFECT_CONSTANTS} effect, b${renderer.GetPerFrameVSStartRegister()} and `\n + `b${renderer.GetPerFramePSStartRegister()} per frame, and `\n + `b${renderer.GetPerObjectVSStartRegister()} and `\n + `b${renderer.GetPerObjectPSStartRegister()} per object.`\n );\n }\n\n // b3 and b4, gated on the technique's stage mask the way Carbon gates\n // SetPerObjectDataToDevice.\n const techniqueIndex = shader?.GetTechniqueIndex?.(this._techniqueName) ?? -1;\n const mask = techniqueIndex < 0 ? 0 : (shader.GetShaderTypeMask?.(techniqueIndex) ?? 0);\n const records = Tr2PerObjectData.getConstantRecords(objectData, mask);\n\n if (!records.length) return null;\n\n // WHICH RECORD, NOT THE FIRST ONE. b3 is the per-object VERTEX block and b4\n // the pixel one. A renderable's GetPerObjectData returns a { vs, ps } pair,\n // so getConstantRecords yields two records, and taking [0] handed b4 the\n // vertex record's bytes - a wrong picture rather than a failure.\n //\n // A \"vs\" payload declares the whole non-pixel family, because those stages\n // share the per-object vertex register (Tr2PerObjectData.cpp:49-54).\n const wanted = register === renderer.GetPerObjectVSStartRegister()\n ? Tr2PerObjectData.VertexFamilyMask\n : Tr2PerObjectData.StageBits.ps;\n\n const record = records.find(candidate => (candidate.stageMask & wanted) !== 0);\n\n if (!record) return null;\n\n // READ THE BYTES; DO NOT ASK THE UPLOADER FOR THEM. CollectPerObjectUploads\n // is the upload path and deliberately skips a payload that is not dirty,\n // which is right for \"what changed since the last write\" and wrong for\n // \"what is bound on this draw\". Going through it meant a payload that had\n // settled bound nothing at all.\n return record.data;\n }\n\n /** Releases every geometry this resolver realized. */\n Destroy()\n {\n for (const geometry of this._geometry.values()) geometry.Destroy?.();\n\n this._geometry.clear();\n }\n}\n"],"names":["fail","message","error","Error","code","CjsWebgpuTrinityBatchResolver","CjsTrinityBatchResolver","_webgpu","_createPackage","_techniqueName","_targets","_depthFormat","_resolvePerFrame","_resolveTexture","_resolveSampler","_resolveStorageBuffer","_renderer","_packages","WeakMap","_geometry","Map","constructor","webgpu","options","createPackage","CreatePackage","read","bytes","CjsWebgpuPackage","fromBytes","Array","isArray","targets","length","depthFormat","undefined","techniqueName","ResolvePerFrame","ResolveTexture","ResolveSampler","ResolveStorageBuffer","renderer","Tr2Renderer","_PassOf","material","passIndex","shader","GetShaderStateInterface","techniqueIndex","GetTechniqueIndex","GetEffect","techniques","passes","_PackageFor","resource","GetEffectRes","cached","get","GetContainerBytes","built","set","_GeometryFor","source","pass","inputs","stageInputs","signature","pipelineInputs","geometry","meshIndex","key","GetPath","id","map","input","usage","usageIndex","registerIndex","join","mesh","GetPayload","meshes","elements","CarbonVertexElements","GetMeshVertexElements","plan","resolveBindingPlan","request","WebgpuGeometryOptions","entries","label","realized","CreateGeometry","ResolveMaterial","batch","context","setup","Tr2EffectStateManager","resolveRenderStates","renderingMode","renderStates","projected","GetWebgpuRecipe","geometrySource","pipeline","GetPipeline","recipe","vertex","buffers","vertexBufferLayouts","fragment","target","blend","ResolveGeometry","indexed","ResolveBindings","objectData","uniformData","resources","group","bindGroups","binding","bindings","identity","scopeIdentity","resourceKind","registerSpace","bindingKind","value","_ConstantsFor","_SourceFor","name","layout","sampler","texture","EFFECT_CONSTANTS","exists","MaterialLayoutFromShader","technique","size","PackMaterialConstants","GetValues","register","GetPerFrameVSStartRegister","GetPerFramePSStartRegister","GetPerObjectVSStartRegister","GetPerObjectPSStartRegister","mask","GetShaderTypeMask","records","Tr2PerObjectData","getConstantRecords","wanted","VertexFamilyMask","StageBits","ps","record","find","candidate","stageMask","data","Destroy","values","clear"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { CjsWebgpuTrinityBatchDispatcher } from './trinityBatchDispatcher.js';
1
+ import { CjsWebgpuTrinityBatchDispatcher } from './CjsWebgpuTrinityBatchDispatcher.js';
2
2
 
3
3
  function fail(message) {
4
4
  const error = new Error(`CjsWebgpuTrinityPassEncoder: ${message}`);
@@ -106,4 +106,4 @@ class CjsWebgpuTrinityPassEncoder {
106
106
  }
107
107
 
108
108
  export { CjsWebgpuTrinityPassEncoder };
109
- //# sourceMappingURL=trinityPassEncoder.js.map
109
+ //# sourceMappingURL=CjsWebgpuTrinityPassEncoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsWebgpuTrinityPassEncoder.js","sources":["../../../../../src/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js"],"sourcesContent":["import { CjsWebgpuTrinityBatchDispatcher } from \"./CjsWebgpuTrinityBatchDispatcher.js\";\n\n\nfunction fail(message)\n{\n const error = new Error(`CjsWebgpuTrinityPassEncoder: ${message}`);\n error.code = \"CJS_WEBGPU_TRINITY_PASS_INVALID\";\n throw error;\n}\n\nfunction normalizeSelection(selection, passIndex, selectionIndex)\n{\n if (!selection || typeof selection !== \"object\" || Array.isArray(selection))\n {\n fail(`pass ${passIndex} selection ${selectionIndex} must be an object`);\n }\n if (!selection.preparedBatchMap || typeof selection.preparedBatchMap !== \"object\"\n || Array.isArray(selection.preparedBatchMap))\n {\n fail(`pass ${passIndex} selection ${selectionIndex} requires preparedBatchMap`);\n }\n if (!Number.isInteger(selection.batchType) || selection.batchType < 0)\n {\n fail(`pass ${passIndex} selection ${selectionIndex} batchType must be a non-negative integer`);\n }\n return {\n preparedBatchMap: selection.preparedBatchMap,\n batchType: selection.batchType\n };\n}\n\nfunction normalizePass(entry, index)\n{\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry))\n {\n fail(`pass ${index} must be an object`);\n }\n if (!entry.descriptor || typeof entry.descriptor !== \"object\" || Array.isArray(entry.descriptor))\n {\n fail(`pass ${index} requires a render-pass descriptor`);\n }\n if (!Array.isArray(entry.selections))\n {\n fail(`pass ${index} selections must be an array`);\n }\n if (entry.configure !== undefined && typeof entry.configure !== \"function\")\n {\n fail(`pass ${index} configure must be a function when provided`);\n }\n return {\n descriptor: entry.descriptor,\n configure: entry.configure ?? null,\n selections: entry.selections.map(\n (selection, selectionIndex) => normalizeSelection(selection, index, selectionIndex)\n )\n };\n}\n\n/**\n * Internal encoder for caller-owned WebGPU render-pass plans over prepared\n * Trinity batch maps.\n *\n * Attachment lifetime, descriptors, pass order, batch-type order, technique\n * selection, command-buffer completion, and submission all remain external.\n */\nexport class CjsWebgpuTrinityPassEncoder\n{\n _dispatcher;\n\n /**\n * Creates an encoder over a CjsWebgpuTrinityBatchDispatcher-compatible\n * boundary.\n */\n constructor(dispatcher)\n {\n if (!(dispatcher instanceof CjsWebgpuTrinityBatchDispatcher))\n {\n fail(\"dispatcher must be a CjsWebgpuTrinityBatchDispatcher\");\n }\n this._dispatcher = dispatcher;\n }\n\n /**\n * Encodes caller-ordered pass descriptors and batch-map selections into an\n * existing GPUCommandEncoder, ending every begun pass even when work fails.\n * Returns the number of encoded selections.\n */\n Encode(commandEncoder, passes)\n {\n if (!commandEncoder || typeof commandEncoder.beginRenderPass !== \"function\")\n {\n fail(\"a GPUCommandEncoder-compatible boundary is required\");\n }\n if (!Array.isArray(passes)) fail(\"passes must be an array\");\n const plan = passes.map(normalizePass);\n let encodedSelections = 0;\n\n for (let passIndex = 0; passIndex < plan.length; passIndex += 1)\n {\n const entry = plan[passIndex];\n const pass = commandEncoder.beginRenderPass(entry.descriptor);\n if (!pass || typeof pass.end !== \"function\")\n {\n fail(`pass ${passIndex} did not return a render-pass encoder`);\n }\n\n let error = null;\n try\n {\n if (entry.configure)\n {\n const result = entry.configure(pass, passIndex);\n if (result && typeof result.then === \"function\")\n {\n fail(`pass ${passIndex} configure must be synchronous`);\n }\n }\n for (const selection of entry.selections)\n {\n this._dispatcher.EncodeBatchType(\n pass,\n selection.preparedBatchMap,\n selection.batchType\n );\n encodedSelections += 1;\n }\n }\n catch (caught)\n {\n error = caught;\n }\n try\n {\n pass.end();\n }\n catch (caught)\n {\n if (!error) error = caught;\n }\n if (error) throw error;\n }\n return encodedSelections;\n }\n}\n"],"names":["fail","message","error","Error","code","normalizeSelection","selection","passIndex","selectionIndex","Array","isArray","preparedBatchMap","Number","isInteger","batchType","normalizePass","entry","index","descriptor","selections","configure","undefined","map","CjsWebgpuTrinityPassEncoder","_dispatcher","constructor","dispatcher","CjsWebgpuTrinityBatchDispatcher","Encode","commandEncoder","passes","beginRenderPass","plan","encodedSelections","length","pass","end","result","then","EncodeBatchType","caught"],"mappings":"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"}
@@ -681,4 +681,4 @@ CjsSchema.define(CjsWebgpuWorkQueue, {
681
681
  });
682
682
 
683
683
  export { ApplyRenderPassHint, CjsWebgpuWorkQueue, EncoderType };
684
- //# sourceMappingURL=workQueue.js.map
684
+ //# sourceMappingURL=CjsWebgpuWorkQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CjsWebgpuWorkQueue.js","sources":["../../../../../src/trinityal/webgpu/core/CjsWebgpuWorkQueue.js"],"sourcesContent":["// Source: trinity/trinityal/metal/MetalWorkQueue.h\n// Source: trinity/trinityal/metal/MetalWorkQueue.mm\n//\n// MODELLED ON `MetalWorkQueue`, NOT A REPLICA OF IT - which is what the\n// `modelledOn` declaration below says, and why the parity check does not hold\n// this class to that class's surface. Metal's work queue declares 113 methods\n// to this file's 27, because it is the whole command recorder; comparing them\n// would report 101 absences as debt when the surface simply lives elsewhere\n// here.\n//\n// What this file took, and where the rest of Metal's work queue went:\n//\n// ENCODER LIFETIME -> here. BeginFrame/EndFrame, SetCurrentEncoder,\n// GetRenderEncoder/ReleaseEncoder, the pass\n// hint and its attachments, the pending\n// bindings a draw needs.\n// Blend, depth, stencil, cull, -> the PIPELINE. WebGPU has no per-state\n// fill, sample state setter; `Tr2RenderStateSetup.GetWebgpuRecipe`\n// projects the authored setup and\n// `CjsWebgpuPsoDescription` resolves it once.\n// SetTextures/SetSamplers/ -> `CjsWebgpuResourceSetAL` and the bind\n// SetBuffers/SetConstants groups the render context assembles.\n// Draw*/Dispatch* -> `CjsWebgpuRenderContextAL`'s draw verbs.\n// Blit, mipmaps, MSAA resolve, -> not ported, each recorded where it refuses.\n// visibility queries, parallel\n// encoding, the drawable blit\n//\n// The encoder the backend is currently writing into, and when it has to change.\n//\n// THIS IS A PORT, NOT A DESIGN. Carbon's command-encoder backend splits into a\n// render context that answers the abstraction layer's verbs and a WORK QUEUE\n// that owns the command buffer and the encoder lifetime - `Tr2RenderContextAL`\n// holds `m_workQueue` (`Tr2RenderContextMetal.h:299`). WebGPU has the same\n// shape as Metal: one command encoder per frame, render passes with fixed\n// attachments, and compute and copies that may not happen inside one. So this\n// carries Carbon's name and Carbon's responsibilities rather than a new noun.\n//\n// It replaces `framePlan.js`, which looks AHEAD over a recorded intent stream.\n// That look-ahead exists only because the planner is not the thing issuing the\n// calls - it reads them afterwards. A work queue is called verb by verb, in\n// order, so every decision is about the call in hand. Metal's\n// `SetCurrentEncoder` (`MetalWorkQueue.mm:840-900`) is lazy for that reason and\n// has no look-ahead anywhere.\n//\n// NOT PORTED, deliberately: the blit and acceleration-structure encoders, the\n// parallel render encoder, and the drawable blit. WebGPU takes copies on the\n// command encoder directly rather than through a blit encoder, it has no\n// parallel encoder, and ray tracing is absent from this backend as it is from\n// Carbon's stub. `MTLENCODERTYPE_BLIT` therefore has no counterpart here and\n// transfers are recorded against the command encoder itself.\n\nimport { CjsSchema } from \"#schema\";\nimport { Tr2LoadAction, Tr2StoreAction } from \"#consts/render-context\";\n\n\nfunction fail(message)\n{\n const error = new Error(`CjsWebgpuWorkQueue: ${message}`);\n error.code = \"CJS_WEBGPU_WORK_QUEUE_INVALID\";\n throw error;\n}\n\n\n/** Carbon's `MetalEncoderType`, less the encoders WebGPU does not have. */\nexport const EncoderType = Object.freeze({\n NONE: \"none\",\n RENDER: \"render\",\n COMPUTE: \"compute\"\n});\n\n\n/**\n * Owns the encoder lifetime for one frame, as Carbon's `MetalWorkQueue` does.\n *\n * DEVICE-FREE, for the reason Carbon's stub backend is: the rules are the part\n * worth testing, and they need no GPU. A caller applies the transitions this\n * reports to a real command encoder.\n */\nexport class CjsWebgpuWorkQueue\n{\n /** m_currentEncoderType */\n _currentEncoderType = EncoderType.NONE;\n\n /** m_pendingRenderPassHint / m_hasPendingRenderPassHint */\n _pendingRenderPassHint = null;\n\n /** Transitions since the last drain, in order. */\n _events = [];\n\n /** Render passes begun this frame. */\n _passCount = 0;\n\n /** Whether BeginFrame has run without a matching EndFrame. */\n _inFrame = false;\n\n /** m_currentRenderPassDescriptor.colorAttachments */\n _colorAttachments = [];\n\n /** m_currentRenderPassDescriptor.depthAttachment */\n _depthAttachment = null;\n\n /**\n * The encoder currently open.\n *\n * @returns {string} An `EncoderType`.\n */\n GetCurrentEncoderType()\n {\n return this._currentEncoderType;\n }\n\n /** Render passes begun this frame. @returns {number} */\n GetPassCount()\n {\n return this._passCount;\n }\n\n /** Whether a hint is waiting to be folded in. @returns {boolean} */\n HasPendingRenderPassHint()\n {\n return this._pendingRenderPassHint !== null;\n }\n\n /**\n * Opens the frame's command buffer. Carbon's `BeginFrame`.\n *\n * Returns its transitions like every other verb here, so a caller drains one\n * list per call and never carries events into the next one.\n *\n * @returns {object[]} The transitions this required.\n */\n BeginFrame()\n {\n if (this._inFrame) fail(\"BeginFrame without EndFrame\");\n\n this._inFrame = true;\n this._passCount = 0;\n // Nothing named last frame is wanted this frame until a verb names it.\n this._pending = { pipeline: null, vertexBuffers: [], indexBuffer: null, bindGroups: [] };\n this._events.push({ type: \"begin-frame\" });\n\n return this._Drain();\n }\n\n /**\n * Closes any encoder and commits. Carbon's `EndFrame` plus\n * `CommitCommandBuffer`.\n *\n * @returns {object[]} The transitions this required, in order.\n */\n EndFrame()\n {\n if (!this._inFrame) fail(\"EndFrame without BeginFrame\");\n\n if (this._pendingRenderPassHint) this._GetRenderEncoder();\n\n this._ReleaseEncoder();\n this._inFrame = false;\n this._events.push({ type: \"commit\" });\n\n return this._Drain();\n }\n\n /**\n * Declares what the next render pass does with its attachments.\n *\n * A SECOND HINT WHILE ONE IS PENDING OPENS AND IMMEDIATELY RELEASES A RENDER\n * ENCODER (`MetalWorkQueue.mm:3282-3291`). The first hint described a pass\n * that must still happen - its load and store actions are the point even when\n * nothing drew into it - so discarding it would lose a clear.\n *\n * @param {object[]} colors `Tr2ColorAttachment`s, in slot order.\n * @param {object} [depth] A `Tr2DepthAttachment`.\n */\n RenderPassHint(colors, depth = null)\n {\n if (!Array.isArray(colors)) fail(\"RenderPassHint takes an array of colour attachments\");\n\n if (this._pendingRenderPassHint)\n {\n this._GetRenderEncoder();\n this._ReleaseEncoder();\n }\n\n this._pendingRenderPassHint = { colors, depth };\n }\n\n /**\n * Ends the declared pass, so following work opens a new one.\n *\n * Carbon flushes rather than discards, for the reason above\n * (`MetalWorkQueue.mm:3293-3300`).\n *\n * @returns {object[]} The transitions this required.\n */\n EndRenderPassHint()\n {\n if (this._pendingRenderPassHint) this._GetRenderEncoder();\n\n this._ReleaseEncoder();\n\n return this._Drain();\n }\n\n /** Carbon's `EndCurrentRenderPass`. @returns {object[]} The transitions. */\n EndCurrentRenderPass()\n {\n if (this._currentEncoderType === EncoderType.RENDER) this._ReleaseEncoder();\n\n return this._Drain();\n }\n\n /**\n * Makes an encoder of the given type current, as `SetCurrentEncoder` does.\n *\n * @param {string} encoderType An `EncoderType` other than NONE.\n * @returns {object[]} The transitions this required, in order.\n */\n SetCurrentEncoder(encoderType)\n {\n if (!this._inFrame) fail(\"SetCurrentEncoder outside a frame\");\n if (encoderType === EncoderType.NONE) fail(\"SetCurrentEncoder needs a real encoder type\");\n\n // Carbon flushes a pending hint before any NON-render encoder, because the\n // declared pass must happen before the work that follows it\n // (`MetalWorkQueue.mm:851-855`).\n if (encoderType !== EncoderType.RENDER && this._pendingRenderPassHint)\n {\n this._GetRenderEncoder();\n this._ReleaseEncoder();\n }\n\n if (this._currentEncoderType === encoderType)\n {\n // A pending hint describes the NEXT pass, so an open render encoder is\n // still the wrong one to keep drawing into.\n if (encoderType !== EncoderType.RENDER || !this._pendingRenderPassHint) return this._Drain();\n }\n\n if (encoderType === EncoderType.RENDER)\n {\n this._GetRenderEncoder();\n\n return this._Drain();\n }\n\n this._ReleaseEncoder();\n this._currentEncoderType = encoderType;\n this._events.push({ type: \"open\", encoderType });\n\n return this._Drain();\n }\n\n /**\n * Attaches a colour target at one slot.\n *\n * THREE BEHAVIOURS, ALL CARBON'S (`MetalWorkQueue.mm:2000-2030`), and none of\n * them guessable:\n *\n * 1. **Attaching the texture already there is a no-op.** A redundant target\n * set is common - a step that re-binds what it inherited - and cutting a\n * pass for it would double the pass count for nothing.\n * 2. **A real change flushes outstanding work**, because the attachments of\n * an open pass are fixed and the next work needs a new encoder. Carbon's\n * comment says exactly this.\n * 3. **A newly attached texture defaults to LOAD and STORE**, not clear. The\n * caller has not said the previous contents are worthless, so discarding\n * them would lose whatever is already there.\n *\n * @param {object|null} texture The target, or null to detach.\n * @param {number} [index] The slot.\n * @param {number} [slice] The array slice or cube face.\n * @returns {object[]} The transitions this required.\n */\n SetRenderAttachments(texture, index = 0, slice = 0)\n {\n if (!Number.isInteger(index) || index < 0) fail(\"a render attachment needs a slot index\");\n\n const current = this._colorAttachments[index] ?? null;\n\n if (current?.texture === (texture ?? null)) return this._Drain();\n\n this._ReleaseEncoder();\n\n this._colorAttachments[index] = texture\n ? { texture, slice, loadOp: \"load\", storeOp: \"store\" }\n : null;\n\n return this._Drain();\n }\n\n /**\n * Attaches the depth-stencil target, with the same three behaviours.\n *\n * @param {object|null} texture The depth target, or null to detach.\n * @returns {object[]} The transitions this required.\n */\n SetDepthAttachment(texture)\n {\n if (this._depthAttachment?.texture === (texture ?? null)) return this._Drain();\n\n this._ReleaseEncoder();\n\n this._depthAttachment = texture ? { texture, loadOp: \"load\", storeOp: \"store\" } : null;\n\n return this._Drain();\n }\n\n /**\n * What is currently attached, for a caller building a pass descriptor.\n *\n * @returns {object} `{ colors, depth }`.\n */\n GetAttachments()\n {\n return {\n colors: this._colorAttachments.map(attachment => (attachment ? { ...attachment } : null)),\n depth: this._depthAttachment ? { ...this._depthAttachment } : null\n };\n }\n\n /**\n * Records an indexed draw, opening a render encoder if none is current.\n *\n * THE DRAW OPENS THE ENCODER, which is why this lives here rather than the\n * caller reaching for `SetCurrentEncoder` first. Carbon's\n * `MetalWorkQueue::DrawIndexedPrimitives` (`mm:2922-2945`) begins with\n * `GetRenderEncoder()` for exactly this reason: the abstraction layer's job\n * is to validate arguments and convert primitive counts, and the work\n * queue's job is to have somewhere to put the result.\n *\n * @param {number} indexCount Indices this draw reads.\n * @param {number} instanceCount Instances to draw.\n * @param {number} startIndex First index.\n * @param {number} baseVertex Value added to every index.\n * @param {number} startInstance First instance id.\n * @returns {object[]} The transitions this required, in order.\n */\n DrawIndexedPrimitives(indexCount, instanceCount, startIndex, baseVertex, startInstance)\n {\n this._RequireRenderEncoder();\n this._events.push({\n type: \"draw\",\n indexed: true,\n indexCount,\n instanceCount,\n startIndex,\n baseVertex,\n startInstance\n });\n\n if (this._renderPass)\n {\n this._EmitRenderEncoderState(true);\n this._renderPass.drawIndexed(indexCount, instanceCount, startIndex, baseVertex, startInstance);\n }\n\n return this._Drain();\n }\n\n // THE BINDINGS A DRAW NEEDS, HELD UNTIL THE DRAW. Metal's setters write\n // shadow state and a dirty bit (`MetalWorkQueue.mm:2570-2598`) and the\n // encoder is touched only from `EmitRenderEncoderState` inside the draw\n // (`:1750-1890`). These three do the same, and the live half below compares\n // against what the CURRENT encoder has already been told, which resets when\n // an encoder opens - a new pass starts with nothing bound.\n\n /** What the next draw must have bound. */\n _pending = { pipeline: null, vertexBuffers: [], indexBuffer: null, bindGroups: [] };\n\n /** What the open encoder has been told, reset per encoder. */\n _encoderState = { pipeline: null, vertexBuffers: [], indexBuffer: null, bindGroups: [] };\n\n /**\n * Names the bind group for one group index.\n *\n * @param {number} index The group index.\n * @param {object} bindGroup A `GPUBindGroup`.\n */\n SetBindGroup(index, bindGroup, dynamicOffsets = null)\n {\n this._pending.bindGroups[index] = { bindGroup, dynamicOffsets: dynamicOffsets?.length ? dynamicOffsets.slice() : null };\n }\n\n /**\n * Names the pipeline the next draw runs.\n *\n * @param {object} pipeline A `GPURenderPipeline`.\n */\n SetRenderPipeline(pipeline)\n {\n this._pending.pipeline = pipeline;\n }\n\n /**\n * Names a vertex buffer for one slot.\n *\n * @param {number} slot The vertex buffer slot.\n * @param {object} buffer A `GPUBuffer`.\n * @param {number} [offset] Byte offset into it.\n */\n SetVertexBuffer(slot, buffer, offset = 0)\n {\n this._pending.vertexBuffers[slot] = { buffer, offset };\n }\n\n /**\n * Names the index buffer.\n *\n * @param {object} buffer A `GPUBuffer`.\n * @param {string} format `\"uint16\"` or `\"uint32\"`.\n * @param {number} [offset] Byte offset into it.\n */\n SetIndexBuffer(buffer, format, offset = 0)\n {\n this._pending.indexBuffer = { buffer, format, offset };\n }\n\n /** Metal's `EmitRenderEncoderState`: bind what differs from the encoder's. */\n _EmitRenderEncoderState(indexed)\n {\n const pass = this._renderPass;\n const live = this._encoderState;\n const want = this._pending;\n\n if (want.pipeline && live.pipeline !== want.pipeline)\n {\n pass.setPipeline(want.pipeline);\n live.pipeline = want.pipeline;\n }\n\n want.bindGroups.forEach((entry, index) =>\n {\n if (!entry) return;\n\n const bound = live.bindGroups[index];\n\n // Metal re-sets only the OFFSET when the page is unchanged\n // (`setVertexBufferOffset:`); WebGPU has no such call, so a changed\n // offset re-sets the group with its offsets.\n if (bound && bound.bindGroup === entry.bindGroup && sameOffsets(bound.dynamicOffsets, entry.dynamicOffsets)) return;\n\n if (entry.dynamicOffsets) pass.setBindGroup(index, entry.bindGroup, entry.dynamicOffsets);\n else pass.setBindGroup(index, entry.bindGroup);\n\n live.bindGroups[index] = entry;\n });\n\n want.vertexBuffers.forEach((entry, slot) =>\n {\n if (!entry) return;\n\n const bound = live.vertexBuffers[slot];\n\n if (bound && bound.buffer === entry.buffer && bound.offset === entry.offset) return;\n\n pass.setVertexBuffer(slot, entry.buffer, entry.offset);\n live.vertexBuffers[slot] = entry;\n });\n\n if (!indexed || !want.indexBuffer) return;\n\n const bound = live.indexBuffer;\n const entry = want.indexBuffer;\n\n if (bound && bound.buffer === entry.buffer && bound.format === entry.format && bound.offset === entry.offset) return;\n\n pass.setIndexBuffer(entry.buffer, entry.format, entry.offset);\n live.indexBuffer = entry;\n }\n\n /**\n * Records a non-indexed draw, opening a render encoder if none is current.\n *\n * @param {number} vertexCount Vertices this draw reads.\n * @param {number} instanceCount Instances to draw.\n * @param {number} startVertex First vertex.\n * @param {number} startInstance First instance id.\n * @returns {object[]} The transitions this required, in order.\n */\n DrawPrimitives(vertexCount, instanceCount, startVertex, startInstance)\n {\n this._RequireRenderEncoder();\n this._events.push({\n type: \"draw\",\n indexed: false,\n vertexCount,\n instanceCount,\n startVertex,\n startInstance\n });\n\n if (this._renderPass)\n {\n this._EmitRenderEncoderState(false);\n this._renderPass.draw(vertexCount, instanceCount, startVertex, startInstance);\n }\n\n return this._Drain();\n }\n\n // THE DEVICE IS OPTIONAL AND THAT IS THE WHOLE DESIGN. Everything above is\n // the RULES - when an encoder opens, what a hint folds into it, when it has\n // to close - and those need no GPU, which is why they are testable and why\n // Carbon ships a stub backend at all. What follows lets a real command\n // encoder ride along with the rules rather than reimplement them.\n //\n // Without one this queue reports transitions and draws nothing, exactly as\n // before. With one, opening an encoder also calls `beginRenderPass` and\n // closing it calls `end`, so a caller can hand the live pass to the batch\n // dispatcher. That is what stops the queue being a second recording layer.\n\n /** The live command encoder, when a frame is being encoded for real. */\n _commandEncoder = null;\n\n /** Turns folded attachments into a `GPURenderPassDescriptor`. */\n _describePass = null;\n\n /** The open `GPURenderPassEncoder`, or null. */\n _renderPass = null;\n\n /**\n * Attaches a real command encoder for this frame.\n *\n * @param {object|null} commandEncoder A `GPUCommandEncoder`, or null to detach.\n * @param {Function} [describePass] Maps folded attachments to a pass\n * descriptor. IT IS CALLED WITH NULL WHEN NO HINT WAS DECLARED, which is\n * not the same as DONT_CARE - Carbon applies load and store actions only\n * when a hint is pending, and leaves the backend's own defaults alone\n * otherwise. A describePass that assumes an object will crash on the\n * first unhinted pass, which is most of them.\n * @returns {CjsWebgpuWorkQueue} This queue.\n */\n SetCommandEncoder(commandEncoder, describePass = null)\n {\n if (commandEncoder && typeof commandEncoder.beginRenderPass !== \"function\")\n {\n fail(\"a command encoder must be a GPUCommandEncoder\");\n }\n\n if (commandEncoder && typeof describePass !== \"function\")\n {\n fail(\"a command encoder needs a describePass that returns a render-pass descriptor\");\n }\n\n this._commandEncoder = commandEncoder ?? null;\n this._describePass = commandEncoder ? describePass : null;\n\n return this;\n }\n\n /**\n * The open render pass, if one is open and a device is attached.\n *\n * @returns {object|null} A `GPURenderPassEncoder`, or null.\n */\n GetRenderPass()\n {\n return this._renderPass;\n }\n\n /**\n * Opens a render pass if one is not already open, and returns it.\n *\n * This is the verb a draw path calls: Carbon's Metal backend asks for an\n * encoder at the moment it needs one and never before, so a frame that draws\n * nothing opens nothing.\n *\n * @returns {object|null} A `GPURenderPassEncoder`, or null with no device.\n */\n /**\n * Carbon's `GetRenderEncoder` (`MetalWorkQueue.mm:2922`): opens a render\n * encoder if none is current, BEFORE the draw verb asks whether it can draw.\n * Metal opens first and then tests `EmitRenderEncoderState()`, so a draw that\n * is then refused has still opened its pass - which is why a marker pushed\n * after a refused draw lands on a pass encoder.\n *\n * @returns {object[]} The transitions this required, in order.\n */\n GetRenderEncoder()\n {\n this._RequireRenderEncoder();\n\n return this._Drain();\n }\n\n /**\n * The open `GPURenderPassEncoder` for a caller that encodes on it directly.\n *\n * @returns {object|null} The pass, after forgetting what this queue had bound.\n */\n RequireRenderPass()\n {\n this._RequireRenderEncoder();\n\n // A caller that encodes on the pass directly binds what it likes, so what\n // this queue believes the encoder holds is no longer true.\n this._encoderState = { pipeline: null, vertexBuffers: [], indexBuffer: null, bindGroups: [] };\n\n return this._renderPass;\n }\n\n /** Carbon's `GetRenderEncoder`: the current one, or a new one. */\n _RequireRenderEncoder()\n {\n if (!this._inFrame) fail(\"a draw outside a frame\");\n\n if (this._currentEncoderType === EncoderType.RENDER && !this._pendingRenderPassHint) return;\n\n this._GetRenderEncoder();\n }\n\n /** Opens a render encoder, folding any pending hint into its descriptor. */\n _GetRenderEncoder()\n {\n this._ReleaseEncoder();\n\n const hint = this._pendingRenderPassHint;\n const attachments = ApplyRenderPassHint(hint);\n\n this._pendingRenderPassHint = null;\n this._passCount += 1;\n this._currentEncoderType = EncoderType.RENDER;\n this._events.push({ type: \"open\", encoderType: EncoderType.RENDER, attachments });\n\n if (this._commandEncoder)\n {\n this._renderPass = this._commandEncoder.beginRenderPass(this._describePass(attachments));\n this._encoderState = { pipeline: null, vertexBuffers: [], indexBuffer: null, bindGroups: [] };\n }\n }\n\n /** Carbon's `ReleaseEncoder( true )`. */\n _ReleaseEncoder()\n {\n if (this._currentEncoderType === EncoderType.NONE) return;\n\n // The pass ends BEFORE the close event, so a caller draining events after\n // a close can rely on the pass already being finished rather than racing it.\n if (this._renderPass)\n {\n this._renderPass.end();\n this._renderPass = null;\n }\n\n this._events.push({ type: \"close\", encoderType: this._currentEncoderType });\n this._currentEncoderType = EncoderType.NONE;\n }\n\n /** Takes the recorded events, leaving the queue's list empty. */\n _Drain()\n {\n const events = this._events;\n\n this._events = [];\n\n return events;\n }\n}\n\n\n/** Whether two dynamic-offset lists bind the same regions. */\nfunction sameOffsets(first, second)\n{\n if (first === second) return true;\n if (!first || !second || first.length !== second.length) return false;\n\n for (let index = 0; index < first.length; index += 1)\n {\n if (first[index] !== second[index]) return false;\n }\n\n return true;\n}\n\n\n/**\n * Turns a declared hint into load and store operations, as Carbon's\n * `ApplyRenderPassHint` writes them into its pass descriptor\n * (`MetalWorkQueue.mm:773-809`).\n *\n * NO HINT IS NOT DONT_CARE. Carbon only applies actions when a hint is pending\n * and otherwise leaves the descriptor as it was, so an absent hint returns null\n * and the caller keeps its own defaults rather than being told to discard.\n *\n * @param {object} [hint] A pending hint.\n * @returns {object|null} `{ colors, depth }` with `load`/`store` per attachment.\n */\nexport function ApplyRenderPassHint(hint)\n{\n if (!hint) return null;\n\n return {\n colors: hint.colors.map(Describe),\n depth: hint.depth ? Describe(hint.depth) : null\n };\n}\n\nfunction Describe(attachment)\n{\n return {\n loadOp: LoadOp(attachment.load),\n storeOp: attachment.store === Tr2StoreAction.STORE ? \"store\" : \"discard\",\n clearValue: attachment.clearColor ?? attachment.clearValue ?? 0\n };\n}\n\nfunction LoadOp(action)\n{\n if (action === Tr2LoadAction.CLEAR) return \"clear\";\n if (action === Tr2LoadAction.LOAD) return \"load\";\n\n // DONT_CARE has no WebGPU spelling - the API has no \"contents are undefined\"\n // load. `clear` is the honest mapping: `load` would promise to preserve\n // contents the caller has said it does not need, which costs a fetch on\n // exactly the tile-based hardware the hint exists for.\n return \"clear\";\n}\n\n\n// DECLARED AS A CALL, NOT A DECORATOR. The abstraction layer is imported\n// straight from source by its tests - `#trinityal/...` resolves to `src/` - and\n// raw Node cannot parse decorator syntax, so a decorator here breaks every test\n// that reaches this file without a build first. `CjsSchema.define` is the same\n// metadata through the door the schema already provides for exactly this, and\n// it keeps the layer free of the decorator chain it has never carried.\nCjsSchema.define(CjsWebgpuWorkQueue, { className: \"CjsWebgpuWorkQueue\", modelledOn: \"MetalWorkQueue\" });\n"],"names":["fail","message","error","Error","code","EncoderType","Object","freeze","NONE","RENDER","COMPUTE","CjsWebgpuWorkQueue","_currentEncoderType","_pendingRenderPassHint","_events","_passCount","_inFrame","_colorAttachments","_depthAttachment","GetCurrentEncoderType","GetPassCount","HasPendingRenderPassHint","BeginFrame","_pending","pipeline","vertexBuffers","indexBuffer","bindGroups","push","type","_Drain","EndFrame","_GetRenderEncoder","_ReleaseEncoder","RenderPassHint","colors","depth","Array","isArray","EndRenderPassHint","EndCurrentRenderPass","SetCurrentEncoder","encoderType","SetRenderAttachments","texture","index","slice","Number","isInteger","current","loadOp","storeOp","SetDepthAttachment","GetAttachments","map","attachment","DrawIndexedPrimitives","indexCount","instanceCount","startIndex","baseVertex","startInstance","_RequireRenderEncoder","indexed","_renderPass","_EmitRenderEncoderState","drawIndexed","_encoderState","SetBindGroup","bindGroup","dynamicOffsets","length","SetRenderPipeline","SetVertexBuffer","slot","buffer","offset","SetIndexBuffer","format","pass","live","want","setPipeline","forEach","entry","bound","sameOffsets","setBindGroup","setVertexBuffer","setIndexBuffer","DrawPrimitives","vertexCount","startVertex","draw","_commandEncoder","_describePass","SetCommandEncoder","commandEncoder","describePass","beginRenderPass","GetRenderPass","GetRenderEncoder","RequireRenderPass","hint","attachments","ApplyRenderPassHint","end","events","first","second","Describe","LoadOp","load","store","Tr2StoreAction","STORE","clearValue","clearColor","action","Tr2LoadAction","CLEAR","LOAD","CjsSchema","define","className","modelledOn"],"mappings":"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"}
@@ -1,13 +1,13 @@
1
- export { CjsWebgpuEncodeState } from './core/batchGroups.js';
2
- export { CjsWebgpuRenderTarget } from './core/renderTarget.js';
3
- export { CjsWebgpuTrinityBatchDispatcher } from './core/trinityBatchDispatcher.js';
4
- export { CjsWebgpuTrinityBatchResolver } from './core/trinityBatchResolver.js';
5
- export { CjsWebgpuTextureSource } from './core/textureSource.js';
6
- export { CjsWebgpuTrinityPassEncoder } from './core/trinityPassEncoder.js';
1
+ export { CjsWebgpuEncodeState } from './core/CjsWebgpuEncodeState.js';
2
+ export { CjsWebgpuRenderTarget } from './core/CjsWebgpuRenderTarget.js';
3
+ export { CjsWebgpuTrinityBatchDispatcher } from './core/CjsWebgpuTrinityBatchDispatcher.js';
4
+ export { CjsWebgpuTrinityBatchResolver } from './core/CjsWebgpuTrinityBatchResolver.js';
5
+ export { CjsWebgpuTextureSource } from './core/CjsWebgpuTextureSource.js';
6
+ export { CjsWebgpuTrinityPassEncoder } from './core/CjsWebgpuTrinityPassEncoder.js';
7
7
  export { CarbonSamplerDescriptor, EMULATED_ADDRESS_MODES, IsEmulatedAddressMode } from './core/samplerDescriptor.js';
8
- export { CjsWebgpuSamplerSource } from './core/samplerSource.js';
9
- export { CjsWebgpuPerFrameSource } from './core/perFrameSource.js';
10
- export { ApplyRenderPassHint, CjsWebgpuWorkQueue, EncoderType } from './core/workQueue.js';
8
+ export { CjsWebgpuSamplerSource } from './core/CjsWebgpuSamplerSource.js';
9
+ export { CjsWebgpuPerFrameSource } from './core/CjsWebgpuPerFrameSource.js';
10
+ export { ApplyRenderPassHint, CjsWebgpuWorkQueue, EncoderType } from './core/CjsWebgpuWorkQueue.js';
11
11
  export { CjsWebgpuRenderContextAL } from './CjsWebgpuRenderContextAL.js';
12
12
  export { CjsWebgpuBufferAL } from './CjsWebgpuBufferAL.js';
13
13
  export { CjsWebgpuConstantBufferAL } from './CjsWebgpuConstantBufferAL.js';
@@ -15,6 +15,7 @@ export { CjsWebgpuSamplerStateAL } from './CjsWebgpuSamplerStateAL.js';
15
15
  export { CjsWebgpuResourceSetAL } from './CjsWebgpuResourceSetAL.js';
16
16
  export { CjsWebgpuTextureAL } from './CjsWebgpuTextureAL.js';
17
17
  export { CjsWebgpuCapsAL, CjsWebgpuPlatformCaps } from './CjsWebgpuCapsAL.js';
18
- export { CjsWebgpuShaderAL, CjsWebgpuShaderProgramAL } from './CjsWebgpuShaderAL.js';
19
- export { CjsWebgpuPsoDescription } from './core/psoDescription.js';
18
+ export { CjsWebgpuShaderAL } from './CjsWebgpuShaderAL.js';
19
+ export { CjsWebgpuShaderProgramAL } from './CjsWebgpuShaderProgramAL.js';
20
+ export { CjsWebgpuPsoDescription } from './core/CjsWebgpuPsoDescription.js';
20
21
  //# sourceMappingURL=internal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"internal.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}