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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (935) hide show
  1. package/README.md +58 -125
  2. package/dist/audio/index.js +8 -1
  3. package/dist/audio/index.js.map +1 -1
  4. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js +84 -0
  5. package/dist/audio/trinity/audio/AudActionLog/AudActionLogCB.js.map +1 -0
  6. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js +14 -0
  7. package/dist/audio/trinity/audio/AudActionLog/AudActionRecord.js.map +1 -0
  8. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js +26 -0
  9. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordExecuteActionOnPlayingID.js.map +1 -0
  10. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js +27 -0
  11. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordPostEvent.js.map +1 -0
  12. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js +27 -0
  13. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetRTPC.js.map +1 -0
  14. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js +25 -0
  15. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetState.js.map +1 -0
  16. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js +26 -0
  17. package/dist/audio/trinity/audio/AudActionLog/AudActionRecordSetSwitch.js.map +1 -0
  18. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js +58 -0
  19. package/dist/audio/trinity/audio/AudActionLog/IAudActionLog.js.map +1 -0
  20. package/dist/audio/trinity/audio/AudManager.js +1 -1
  21. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  22. package/dist/audio/trinity/audio/{AudObstructionOcclusion.js → AudObstructionOcclusion/AudObstructionOcclusion.js} +8 -52
  23. package/dist/audio/trinity/audio/AudObstructionOcclusion/AudObstructionOcclusion.js.map +1 -0
  24. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js +17 -0
  25. package/dist/audio/trinity/audio/AudObstructionOcclusion/EmitterState.js.map +1 -0
  26. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js +46 -0
  27. package/dist/audio/trinity/audio/AudObstructionOcclusion/FadingValue.js.map +1 -0
  28. package/dist/audio/trinity/index.js +8 -1
  29. package/dist/audio/trinity/index.js.map +1 -1
  30. package/dist/character/CjsCharacterAppearanceConstruction.js +5 -0
  31. package/dist/character/CjsCharacterAppearanceConstruction.js.map +1 -1
  32. package/dist/character/CjsCharacterAppearanceManager.js +14 -0
  33. package/dist/character/CjsCharacterAppearanceManager.js.map +1 -1
  34. package/dist/character/CjsCharacterFoundationConstruction.js +5 -0
  35. package/dist/character/CjsCharacterFoundationConstruction.js.map +1 -1
  36. package/dist/character/CjsCharacterTexturePolicy.js +5 -0
  37. package/dist/character/CjsCharacterTexturePolicy.js.map +1 -1
  38. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js +17 -0
  39. package/dist/character/gles/CjsCharacterGlesAppearanceAL.js.map +1 -1
  40. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js +2 -0
  41. package/dist/character/gles/CjsCharacterGlesAtlasRenderer.js.map +1 -1
  42. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js +5 -0
  43. package/dist/character/gles/CjsCharacterGlesFoundationTranslator.js.map +1 -1
  44. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js +5 -0
  45. package/dist/character/gles/CjsCharacterGlesLegacyConstructionTranslator.js.map +1 -1
  46. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js +2 -0
  47. package/dist/character/gles/CjsCharacterGlesMorphDeformation.js.map +1 -1
  48. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js +5 -0
  49. package/dist/character/gles/CjsCharacterGlesPaletteCompatibility.js.map +1 -1
  50. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js +5 -0
  51. package/dist/character/gles/CjsCharacterGlesTriangleCoverage.js.map +1 -1
  52. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js +9 -0
  53. package/dist/character/webgl2/CjsCharacterWebgl2EffectRouter.js.map +1 -1
  54. package/dist/global/blue/CjsScriptCallback.js +142 -0
  55. package/dist/global/blue/CjsScriptCallback.js.map +1 -0
  56. package/dist/global/blue/index.js +2 -0
  57. package/dist/global/blue/index.js.map +1 -0
  58. package/dist/global/consts/renderContext/formats.js +51 -1
  59. package/dist/global/consts/renderContext/formats.js.map +1 -1
  60. package/dist/global/consts/renderContext/index.js +2 -2
  61. package/dist/global/consts/renderContext/renderStates.js +16 -1
  62. package/dist/global/consts/renderContext/renderStates.js.map +1 -1
  63. package/dist/global/contracts/index.js +0 -1
  64. package/dist/global/contracts/index.js.map +1 -1
  65. package/dist/global/index.js +4 -3
  66. package/dist/global/index.js.map +1 -1
  67. package/dist/global/math/index.js +2 -0
  68. package/dist/global/math/index.js.map +1 -1
  69. package/dist/global/math/mesh.js +70 -16
  70. package/dist/global/math/mesh.js.map +1 -1
  71. package/dist/global/math/noise.js +47 -68
  72. package/dist/global/math/noise.js.map +1 -1
  73. package/dist/global/math/pool.js +18 -3
  74. package/dist/global/math/pool.js.map +1 -1
  75. package/dist/global/math/random.js +52 -0
  76. package/dist/global/math/random.js.map +1 -0
  77. package/dist/global/math/tri3.js +18 -4
  78. package/dist/global/math/tri3.js.map +1 -1
  79. package/dist/global/schema/CjsSchema.js +20 -2
  80. package/dist/global/schema/CjsSchema.js.map +1 -1
  81. package/dist/global/schema/hydration.js +14 -0
  82. package/dist/global/schema/hydration.js.map +1 -1
  83. package/dist/global/utils/bytes.js +22 -4
  84. package/dist/global/utils/bytes.js.map +1 -1
  85. package/dist/global/utils/checksum.js +80 -0
  86. package/dist/global/utils/checksum.js.map +1 -0
  87. package/dist/global/utils/errors/CjsCancellationError.js +36 -0
  88. package/dist/global/utils/errors/CjsCancellationError.js.map +1 -0
  89. package/dist/global/utils/errors/CjsError.js +21 -52
  90. package/dist/global/utils/errors/CjsError.js.map +1 -1
  91. package/dist/global/utils/errors/abort.js +1 -1
  92. package/dist/global/utils/errors/abort.js.map +1 -1
  93. package/dist/global/utils/errors/index.js +2 -1
  94. package/dist/global/utils/errors/index.js.map +1 -1
  95. package/dist/global/utils/index.js +4 -2
  96. package/dist/global/utils/index.js.map +1 -1
  97. package/dist/index.js +95 -35
  98. package/dist/index.js.map +1 -1
  99. package/dist/input/Tr2MainWindow.js +7 -9
  100. package/dist/input/Tr2MainWindow.js.map +1 -1
  101. package/dist/resource/CjsResMan.js +33 -39
  102. package/dist/resource/CjsResMan.js.map +1 -1
  103. package/dist/resource/CjsResource.js +19 -5
  104. package/dist/resource/CjsResource.js.map +1 -1
  105. package/dist/resource/audio/AudioGeometryResData.js +22 -27
  106. package/dist/resource/audio/AudioGeometryResData.js.map +1 -1
  107. package/dist/resource/audio/CjsAudioRes.js +4 -5
  108. package/dist/resource/audio/CjsAudioRes.js.map +1 -1
  109. package/dist/resource/format/CjsBitReader.js +263 -0
  110. package/dist/resource/format/CjsBitReader.js.map +1 -0
  111. package/dist/resource/format/CjsByteReader.js +130 -125
  112. package/dist/resource/format/CjsByteReader.js.map +1 -1
  113. package/dist/resource/format/CjsFormat.js +11 -4
  114. package/dist/resource/format/CjsFormat.js.map +1 -1
  115. package/dist/resource/format/CjsFormatError.js +37 -1
  116. package/dist/resource/format/CjsFormatError.js.map +1 -1
  117. package/dist/resource/format/CjsResourceProbe.js +41 -37
  118. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  119. package/dist/resource/format/carbonRecordGuard.js +33 -0
  120. package/dist/resource/format/carbonRecordGuard.js.map +1 -0
  121. package/dist/resource/format/imageSignatures.js +202 -0
  122. package/dist/resource/format/imageSignatures.js.map +1 -0
  123. package/dist/resource/format/index.js +2 -1
  124. package/dist/resource/format/index.js.map +1 -1
  125. package/dist/resource/format/jsonPolicies.js +180 -0
  126. package/dist/resource/format/jsonPolicies.js.map +1 -0
  127. package/dist/resource/formats/black/core/helpers.js +18 -29
  128. package/dist/resource/formats/black/core/helpers.js.map +1 -1
  129. package/dist/resource/formats/bnk/CjsBnkFormat.js +4 -3
  130. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  131. package/dist/resource/formats/bnk/core/WwiseCursor.js +218 -0
  132. package/dist/resource/formats/bnk/core/WwiseCursor.js.map +1 -0
  133. package/dist/resource/formats/bnk/core/busNodes.js +2 -1
  134. package/dist/resource/formats/bnk/core/busNodes.js.map +1 -1
  135. package/dist/resource/formats/bnk/core/effectNodes.js +2 -1
  136. package/dist/resource/formats/bnk/core/effectNodes.js.map +1 -1
  137. package/dist/resource/formats/bnk/core/eventAction.js +15 -93
  138. package/dist/resource/formats/bnk/core/eventAction.js.map +1 -1
  139. package/dist/resource/formats/bnk/core/globalSettings.js +19 -94
  140. package/dist/resource/formats/bnk/core/globalSettings.js.map +1 -1
  141. package/dist/resource/formats/bnk/core/helpers.js +2 -48
  142. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/bnk/core/musicNodes.js +42 -134
  144. package/dist/resource/formats/bnk/core/musicNodes.js.map +1 -1
  145. package/dist/resource/formats/bnk/core/nodeBase.js +20 -111
  146. package/dist/resource/formats/bnk/core/nodeBase.js.map +1 -1
  147. package/dist/resource/formats/bnk/core/sfxNodes.js +2 -1
  148. package/dist/resource/formats/bnk/core/sfxNodes.js.map +1 -1
  149. package/dist/resource/formats/cmf/CjsCmfFormat.js +242 -228
  150. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  151. package/dist/resource/formats/cmf/core/binary.js +54 -60
  152. package/dist/resource/formats/cmf/core/binary.js.map +1 -1
  153. package/dist/resource/formats/dds/CjsDdsFormat.js +5 -3
  154. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  155. package/dist/resource/formats/dds/core/bc6h.js +16 -18
  156. package/dist/resource/formats/dds/core/bc6h.js.map +1 -1
  157. package/dist/resource/formats/dds/core/bc7.js +28 -24
  158. package/dist/resource/formats/dds/core/bc7.js.map +1 -1
  159. package/dist/resource/formats/dds/core/helpers.js +7 -133
  160. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  161. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +3 -2
  162. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  163. package/dist/resource/formats/dxbc/core/helpers.js +4 -32
  164. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  165. package/dist/resource/formats/fbx/CjsFbxFormat.js +11 -0
  166. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  167. package/dist/resource/formats/fbx/core/helpers.js +18 -12
  168. package/dist/resource/formats/fbx/core/helpers.js.map +1 -1
  169. package/dist/resource/formats/flac/CjsFlacFormat.js +4 -9
  170. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  171. package/dist/resource/formats/flac/core/helpers.js +1 -62
  172. package/dist/resource/formats/flac/core/helpers.js.map +1 -1
  173. package/dist/resource/formats/gif/CjsGifFormat.js +4 -9
  174. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  175. package/dist/resource/formats/gif/core/helpers.js +1 -63
  176. package/dist/resource/formats/gif/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/gltf/CjsGltfFormat.js +4 -3
  178. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  179. package/dist/resource/formats/gltf/core/helpers.js +3 -19
  180. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/gr2/CjsGr2Format.js +105 -92
  182. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  183. package/dist/resource/formats/gr2/core/container.js +1 -10
  184. package/dist/resource/formats/gr2/core/container.js.map +1 -1
  185. package/dist/resource/formats/gr2/core/helpers.js +24 -35
  186. package/dist/resource/formats/gr2/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/gr2/core/shared.js +193 -189
  188. package/dist/resource/formats/gr2/core/shared.js.map +1 -1
  189. package/dist/resource/formats/hlsl/CjsHlslFormat.js +4 -3
  190. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  191. package/dist/resource/formats/hlsl/core/helpers.js +1 -30
  192. package/dist/resource/formats/hlsl/core/helpers.js.map +1 -1
  193. package/dist/resource/formats/jpeg/CjsJpegFormat.js +5 -3
  194. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  195. package/dist/resource/formats/jpeg/core/helpers.js +7 -134
  196. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  197. package/dist/resource/formats/mp3/CjsMp3Format.js +4 -9
  198. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  199. package/dist/resource/formats/mp3/core/helpers.js +1 -64
  200. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  201. package/dist/resource/formats/mp4/CjsMp4Format.js +4 -9
  202. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  203. package/dist/resource/formats/mp4/core/helpers.js +1 -73
  204. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  205. package/dist/resource/formats/obj/CjsObjFormat.js +4 -3
  206. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  207. package/dist/resource/formats/obj/core/helpers.js +93 -115
  208. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  209. package/dist/resource/formats/ogg/CjsOggFormat.js +4 -3
  210. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  211. package/dist/resource/formats/ogg/core/helpers.js +1 -15
  212. package/dist/resource/formats/ogg/core/helpers.js.map +1 -1
  213. package/dist/resource/formats/ogg/core/vorbis.js +138 -144
  214. package/dist/resource/formats/ogg/core/vorbis.js.map +1 -1
  215. package/dist/resource/formats/pickle/CjsPickleFormat.js +83 -114
  216. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  217. package/dist/resource/formats/png/CjsPngFormat.js +5 -3
  218. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  219. package/dist/resource/formats/png/core/helpers.js +13 -152
  220. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  221. package/dist/resource/formats/png/core/writer.js +3 -27
  222. package/dist/resource/formats/png/core/writer.js.map +1 -1
  223. package/dist/resource/formats/red/core/helpers.js +19 -29
  224. package/dist/resource/formats/red/core/helpers.js.map +1 -1
  225. package/dist/resource/formats/stl/CjsStlFormat.js +158 -147
  226. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  227. package/dist/resource/formats/stl/core/helpers.js +44 -66
  228. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  229. package/dist/resource/formats/tga/CjsTgaFormat.js +5 -3
  230. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  231. package/dist/resource/formats/tga/core/helpers.js +7 -153
  232. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  233. package/dist/resource/formats/vta/CjsVtaFormat.js +4 -3
  234. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  235. package/dist/resource/formats/vta/core/helpers.js +1 -17
  236. package/dist/resource/formats/vta/core/helpers.js.map +1 -1
  237. package/dist/resource/formats/wav/CjsWavFormat.js +4 -3
  238. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  239. package/dist/resource/formats/wav/core/helpers.js +1 -15
  240. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  241. package/dist/resource/formats/webgl/CjsWebglFormat.js +4 -3
  242. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  243. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +69 -9
  244. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  245. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +12 -3
  246. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  247. package/dist/resource/formats/webgl/core/helpers.js +39 -68
  248. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  249. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +4 -3
  250. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  251. package/dist/resource/formats/webgpu/core/helpers.js +4 -30
  252. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  253. package/dist/resource/formats/webm/CjsWebmFormat.js +4 -9
  254. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  255. package/dist/resource/formats/webm/core/helpers.js +1 -73
  256. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  257. package/dist/resource/formats/webp/CjsWebpFormat.js +4 -9
  258. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  259. package/dist/resource/formats/webp/core/helpers.js +1 -62
  260. package/dist/resource/formats/webp/core/helpers.js.map +1 -1
  261. package/dist/resource/formats/wem/CjsWemFormat.js +4 -3
  262. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  263. package/dist/resource/formats/wem/core/bitStream.js +83 -106
  264. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  265. package/dist/resource/formats/wem/core/codebookLibrary.js +52 -52
  266. package/dist/resource/formats/wem/core/codebookLibrary.js.map +1 -1
  267. package/dist/resource/formats/wem/core/helpers.js +1 -15
  268. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  269. package/dist/resource/formats/wem/core/wemToOgg.js +67 -67
  270. package/dist/resource/formats/wem/core/wemToOgg.js.map +1 -1
  271. package/dist/resource/geometry/MeshDecalData.js +23 -25
  272. package/dist/resource/geometry/MeshDecalData.js.map +1 -1
  273. package/dist/resource/geometry/MeshDecalLodData.js +14 -23
  274. package/dist/resource/geometry/MeshDecalLodData.js.map +1 -1
  275. package/dist/resource/geometry/TriGeometryRes.js +299 -284
  276. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  277. package/dist/resource/geometry/TriGeometryResAreaData.js +30 -31
  278. package/dist/resource/geometry/TriGeometryResAreaData.js.map +1 -1
  279. package/dist/resource/geometry/TriGeometryResJointData.js +16 -24
  280. package/dist/resource/geometry/TriGeometryResJointData.js.map +1 -1
  281. package/dist/resource/geometry/TriGeometryResLodData.js +50 -41
  282. package/dist/resource/geometry/TriGeometryResLodData.js.map +1 -1
  283. package/dist/resource/geometry/TriGeometryResMeshData.js +32 -32
  284. package/dist/resource/geometry/TriGeometryResMeshData.js.map +1 -1
  285. package/dist/resource/geometry/TriGeometryResSkeletonData.js +14 -23
  286. package/dist/resource/geometry/TriGeometryResSkeletonData.js.map +1 -1
  287. package/dist/resource/geometry/TriJointBinding.js +16 -24
  288. package/dist/resource/geometry/TriJointBinding.js.map +1 -1
  289. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js +22 -27
  290. package/dist/resource/geometry/TriMorphTargetGeometryConstants.js.map +1 -1
  291. package/dist/resource/geometry/TriRtGeometryConstants.js +50 -41
  292. package/dist/resource/geometry/TriRtGeometryConstants.js.map +1 -1
  293. package/dist/resource/geometry/granny/GStateBindingCallbackData.js +12 -22
  294. package/dist/resource/geometry/granny/GStateBindingCallbackData.js.map +1 -1
  295. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +30 -31
  296. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  297. package/dist/resource/index.js +1 -1
  298. package/dist/resource/shader/reflection/Tr2EffectConstant.js +16 -17
  299. package/dist/resource/shader/reflection/Tr2EffectConstant.js.map +1 -1
  300. package/dist/resource/shader/reflection/Tr2EffectDescription.js +26 -28
  301. package/dist/resource/shader/reflection/Tr2EffectDescription.js.map +1 -1
  302. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +24 -25
  303. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  304. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js +21 -22
  305. package/dist/resource/shader/reflection/Tr2EffectParameterAnnotation.js.map +1 -1
  306. package/dist/resource/shader/reflection/Tr2EffectResource.js +25 -26
  307. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  308. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +69 -72
  309. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  310. package/dist/resource/shader/reflection/Tr2EffectTechnique.js +17 -18
  311. package/dist/resource/shader/reflection/Tr2EffectTechnique.js.map +1 -1
  312. package/dist/resource/shader/reflection/Tr2Pass.js +42 -43
  313. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  314. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js +26 -5
  315. package/dist/resource/shader/reflection/Tr2RenderStateSetup.js.map +1 -1
  316. package/dist/resource/shader/reflection/carbonRecordFields.js +87 -90
  317. package/dist/resource/shader/reflection/carbonRecordFields.js.map +1 -1
  318. package/dist/resource/shader/sampler/Tr2SamplerSetup.js +32 -34
  319. package/dist/resource/shader/sampler/Tr2SamplerSetup.js.map +1 -1
  320. package/dist/resource/texture/CjsTextureArrayRes.js +1 -6
  321. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +35 -27
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js +16 -24
  325. package/dist/resource/texture/Tr2TextureLodUpdateRequest.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePackChannel.js +16 -24
  327. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipeline.js +24 -20
  329. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineParams.js +14 -23
  331. package/dist/resource/texture/Tr2TexturePipelineParams.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +18 -25
  333. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +11 -16
  335. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  336. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +14 -23
  337. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  338. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +12 -22
  339. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  340. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +38 -26
  341. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  342. package/dist/resource/worker/CjsResManMainThreadLoader.js +2 -5
  343. package/dist/resource/worker/CjsResManMainThreadLoader.js.map +1 -1
  344. package/dist/resource/worker/CjsResManWorkerLoader.js +6 -7
  345. package/dist/resource/worker/CjsResManWorkerLoader.js.map +1 -1
  346. package/dist/resource/worker/protocol.js +18 -1
  347. package/dist/resource/worker/protocol.js.map +1 -1
  348. package/dist/sof/EveSOF.js +2 -222
  349. package/dist/sof/EveSOF.js.map +1 -1
  350. package/dist/sof/SofDocumentBuilder.js +205 -0
  351. package/dist/sof/SofDocumentBuilder.js.map +1 -0
  352. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js +16 -0
  353. package/dist/sof/faction/ErrSOFFactionColorSetTypeNotFound.js.map +1 -0
  354. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js +16 -0
  355. package/dist/sof/faction/ErrSOFFactionColorSetTypeUnknown.js.map +1 -0
  356. package/dist/sof/faction/EveSOFDataFactionColorSet.js +3 -27
  357. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  358. package/dist/sof/faction/index.js +3 -1
  359. package/dist/sof/faction/index.js.map +1 -1
  360. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js +18 -0
  361. package/dist/sof/generic/ErrSOFAreaShaderNotFound.js.map +1 -0
  362. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js +18 -0
  363. package/dist/sof/generic/ErrSOFDecalShaderNotFound.js.map +1 -0
  364. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js +21 -0
  365. package/dist/sof/generic/ErrSOFMaterialPrefixNotFound.js.map +1 -0
  366. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js +21 -0
  367. package/dist/sof/generic/ErrSOFPatternMaterialPrefixNotFound.js.map +1 -0
  368. package/dist/sof/generic/EveSOFDataGeneric.js +5 -69
  369. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  370. package/dist/sof/generic/index.js +5 -1
  371. package/dist/sof/generic/index.js.map +1 -1
  372. package/dist/sof/index.js +23 -7
  373. package/dist/sof/index.js.map +1 -1
  374. package/dist/sof/pattern/ErrSOFProjectionNotFound.js +20 -0
  375. package/dist/sof/pattern/ErrSOFProjectionNotFound.js.map +1 -0
  376. package/dist/sof/pattern/EveSOFDataPattern.js +2 -17
  377. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  378. package/dist/sof/pattern/index.js +2 -1
  379. package/dist/sof/pattern/index.js.map +1 -1
  380. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js +16 -0
  381. package/dist/sof/shared/ErrSOFAreaTypeNotFound.js.map +1 -0
  382. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js +16 -0
  383. package/dist/sof/shared/ErrSOFLogoSetTypeNotFound.js.map +1 -0
  384. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js +16 -0
  385. package/dist/sof/shared/ErrSOFLogoSetTypeUnknown.js.map +1 -0
  386. package/dist/sof/shared/EveSOFDataArea.js +2 -13
  387. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  388. package/dist/sof/shared/EveSOFDataLogoSet.js +3 -27
  389. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  390. package/dist/sof/shared/EveSOFDataParameter.js +2 -146
  391. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  392. package/dist/sof/shared/EveSOFDataParameterBool.js +40 -0
  393. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -0
  394. package/dist/sof/shared/EveSOFDataParameterColor.js +36 -0
  395. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -0
  396. package/dist/sof/shared/EveSOFDataParameterFloat.js +37 -0
  397. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -0
  398. package/dist/sof/shared/EveSOFDataParameterInt.js +37 -0
  399. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -0
  400. package/dist/sof/shared/EveSOFDataParameterVector2.js +37 -0
  401. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -0
  402. package/dist/sof/shared/EveSOFDataParameterVector3.js +37 -0
  403. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -0
  404. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js → EveSOFDataSpotLightAttachment.js} +1 -1
  405. package/dist/sof/shared/{EveSOFDataSpotlightAttachment.js.map → EveSOFDataSpotLightAttachment.js.map} +1 -1
  406. package/dist/sof/shared/index.js +13 -4
  407. package/dist/sof/shared/index.js.map +1 -1
  408. package/dist/sof/sofDocumentValues.js +33 -0
  409. package/dist/sof/sofDocumentValues.js.map +1 -0
  410. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +168 -0
  411. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -0
  412. package/dist/trinity/controllers/{ITr2Controller.js → ITr2Controller/ITr2Controller.js} +2 -134
  413. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -0
  414. package/dist/trinity/controllers/Tr2Controller.js +2 -1
  415. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  416. package/dist/trinity/controllers/Tr2ControllerReference.js +2 -1
  417. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  418. package/dist/trinity/controllers/action/ITr2ControllerAction.js +2 -1
  419. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  420. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +10 -9
  421. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  422. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js +26 -0
  423. package/dist/trinity/controllers/expression/CjsControllerExpressionCompileError.js.map +1 -0
  424. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js +24 -0
  425. package/dist/trinity/controllers/expression/CjsControllerExpressionEvaluateError.js.map +1 -0
  426. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js +387 -0
  427. package/dist/trinity/controllers/expression/CjsControllerExpressionParser.js.map +1 -0
  428. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js +4 -1011
  429. package/dist/trinity/controllers/expression/CjsControllerExpressionProgram.js.map +1 -1
  430. package/dist/trinity/controllers/expression/expressionRuntime.js +605 -0
  431. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -0
  432. package/dist/trinity/controllers/index.js +5 -2
  433. package/dist/trinity/controllers/index.js.map +1 -1
  434. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +2 -1
  435. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  436. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +2 -1
  437. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  438. package/dist/trinity/core/ITr2Updateable.js +2 -1
  439. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  440. package/dist/trinity/core/Tr2Blitter.js +6 -3
  441. package/dist/trinity/core/Tr2Blitter.js.map +1 -1
  442. package/dist/trinity/core/Tr2Denoiser.js +256 -0
  443. package/dist/trinity/core/Tr2Denoiser.js.map +1 -0
  444. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js +115 -0
  445. package/dist/trinity/core/Tr2GpuResourcePool/GpuResourceHandle.js.map +1 -0
  446. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js +79 -0
  447. package/dist/trinity/core/Tr2GpuResourcePool/TextureSize2D.js.map +1 -0
  448. package/dist/trinity/core/{Tr2GpuResourcePool.js → Tr2GpuResourcePool/Tr2GpuResourcePool.js} +63 -151
  449. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -0
  450. package/dist/trinity/core/{Tr2QuadRenderer.js → Tr2QuadRenderer/Tr2QuadRenderer.js} +8 -30
  451. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -0
  452. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +38 -0
  453. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -0
  454. package/dist/trinity/core/Tr2RenderUtils.js +20 -3
  455. package/dist/trinity/core/Tr2RenderUtils.js.map +1 -1
  456. package/dist/trinity/core/Tr2Renderer.js +146 -1
  457. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  458. package/dist/trinity/core/Tr2ShadowMap.js +135 -14
  459. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  460. package/dist/trinity/core/{Tr2TextureArray.js → Tr2TextureArray/Tr2TextureArray.js} +3 -58
  461. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -0
  462. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js +61 -0
  463. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArrayElement.js.map +1 -0
  464. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js +26 -0
  465. package/dist/trinity/core/batch/TriRenderBatch/DefaultKeyGenerator.js.map +1 -0
  466. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js +29 -0
  467. package/dist/trinity/core/batch/TriRenderBatch/EffectKeyGenerator.js.map +1 -0
  468. package/dist/trinity/core/batch/{ITriRenderBatchAccumulator.js → TriRenderBatch/ITriRenderBatchAccumulator.js} +30 -30
  469. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -0
  470. package/dist/trinity/core/batch/{Tr2RenderBatch.js → TriRenderBatch/Tr2RenderBatch.js} +81 -154
  471. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -0
  472. package/dist/trinity/core/batch/{TriRenderBatchAccumulator.js → TriRenderBatch/TriRenderBatchAccumulator.js} +7 -38
  473. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAccumulator.js.map +1 -0
  474. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js +61 -0
  475. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlock.js.map +1 -0
  476. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js +40 -0
  477. package/dist/trinity/core/batch/TriRenderBatch/TriRenderBatchAreaBlocksWithSharedMaterial.js.map +1 -0
  478. package/dist/trinity/core/batch/TriRenderBatchMap.js +6 -1
  479. package/dist/trinity/core/batch/TriRenderBatchMap.js.map +1 -1
  480. package/dist/trinity/core/context/Tr2RenderContext.js +75 -57
  481. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  482. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js +67 -0
  483. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityEvent.js.map +1 -0
  484. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js +50 -0
  485. package/dist/trinity/core/context/Tr2VisibilityResults/Tr2VisibilityResults.js.map +1 -0
  486. package/dist/trinity/core/device/Tr2DepthStencil.js +186 -13
  487. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  488. package/dist/trinity/core/device/{Tr2RingBuffer.js → Tr2RingBuffer/Tr2RingBuffer.js} +27 -79
  489. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -0
  490. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js +114 -0
  491. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBufferOffsets.js.map +1 -0
  492. package/dist/trinity/core/device/{Tr2SuballocatedBuffer.js → Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js} +5 -59
  493. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBuffer.js.map +1 -0
  494. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js +80 -0
  495. package/dist/trinity/core/device/Tr2SuballocatedBuffer/Tr2SuballocatedBufferAllocation.js.map +1 -0
  496. package/dist/trinity/core/index.js +42 -15
  497. package/dist/trinity/core/index.js.map +1 -1
  498. package/dist/trinity/core/lighting/Tr2LightManager.js +6 -1
  499. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  500. package/dist/trinity/core/mesh/{ITr2ImpostorSource.js → ITr2ImpostorSource/ITr2ImpostorSource.js} +6 -28
  501. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -0
  502. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js +32 -0
  503. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSourceImpostorHash.js.map +1 -0
  504. package/dist/trinity/core/mesh/{ITr2InstanceData.js → ITr2InstanceData/ITr2InstanceData.js} +5 -29
  505. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -0
  506. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js +33 -0
  507. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceDataInstanceData.js.map +1 -0
  508. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +2 -1
  509. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  510. package/dist/trinity/core/mesh/Tr2MeshBase.js +7 -1
  511. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  512. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +2 -1
  513. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  514. package/dist/trinity/core/mesh/TriGeometryResAllocations.js +6 -2
  515. package/dist/trinity/core/mesh/TriGeometryResAllocations.js.map +1 -1
  516. package/dist/trinity/core/rawData/CjsConstantLayout.js +196 -0
  517. package/dist/trinity/core/rawData/CjsConstantLayout.js.map +1 -0
  518. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js +8 -3
  519. package/dist/trinity/core/rawData/CjsPerFrameLayouts.js.map +1 -1
  520. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js +40 -732
  521. package/dist/trinity/core/rawData/CjsPerObjectLayouts.js.map +1 -1
  522. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js +34 -0
  523. package/dist/trinity/core/rawData/layouts/CjsEveBasicLayout.js.map +1 -0
  524. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js +69 -0
  525. package/dist/trinity/core/rawData/layouts/CjsEveBoosterSetLayout.js.map +1 -0
  526. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js +59 -0
  527. package/dist/trinity/core/rawData/layouts/CjsEveChildBoosterSetLayout.js.map +1 -0
  528. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js +37 -0
  529. package/dist/trinity/core/rawData/layouts/CjsEveChildBulletStormLayout.js.map +1 -0
  530. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js +44 -0
  531. package/dist/trinity/core/rawData/layouts/CjsEveChildSpherePinLayout.js.map +1 -0
  532. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js +31 -0
  533. package/dist/trinity/core/rawData/layouts/CjsEveLensflareLayout.js.map +1 -0
  534. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js +29 -0
  535. package/dist/trinity/core/rawData/layouts/CjsEveMissileWarheadLayout.js.map +1 -0
  536. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js +39 -0
  537. package/dist/trinity/core/rawData/layouts/CjsEvePerObjectLayout.js.map +1 -0
  538. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js +30 -0
  539. package/dist/trinity/core/rawData/layouts/CjsEveSceneStaticParticlesLayout.js.map +1 -0
  540. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js +78 -0
  541. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectDecalLayout.js.map +1 -0
  542. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js +169 -0
  543. package/dist/trinity/core/rawData/layouts/CjsEveSpaceObjectLayout.js.map +1 -0
  544. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js +107 -0
  545. package/dist/trinity/core/rawData/layouts/CjsEveSpacePerObjectLayout.js.map +1 -0
  546. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js +44 -0
  547. package/dist/trinity/core/rawData/layouts/CjsEveSpherePinLayout.js.map +1 -0
  548. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js +34 -0
  549. package/dist/trinity/core/rawData/layouts/CjsEveStretch2Layout.js.map +1 -0
  550. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js +82 -0
  551. package/dist/trinity/core/rawData/layouts/CjsEveTurretSetLayout.js.map +1 -0
  552. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js +42 -0
  553. package/dist/trinity/core/rawData/layouts/CjsTr2PerObjectLayout.js.map +1 -0
  554. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js +55 -0
  555. package/dist/trinity/core/rawData/perObjectData/EveBasicPerObjectData.js.map +1 -0
  556. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js +59 -0
  557. package/dist/trinity/core/rawData/perObjectData/EveBoosterSetPerObjectData.js.map +1 -0
  558. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js +59 -0
  559. package/dist/trinity/core/rawData/perObjectData/EveChildBoosterSetPerObjectData.js.map +1 -0
  560. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js +55 -0
  561. package/dist/trinity/core/rawData/perObjectData/EveChildBulletStormPerObjectData.js.map +1 -0
  562. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js +55 -0
  563. package/dist/trinity/core/rawData/perObjectData/EveChildSpherePinPerObjectData.js.map +1 -0
  564. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js +59 -0
  565. package/dist/trinity/core/rawData/perObjectData/EveDecalPerObjectData.js.map +1 -0
  566. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js +55 -0
  567. package/dist/trinity/core/rawData/perObjectData/EveLensflarePerObjectData.js.map +1 -0
  568. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js +55 -0
  569. package/dist/trinity/core/rawData/perObjectData/EveMissileWarheadPerObjectData.js.map +1 -0
  570. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js +55 -0
  571. package/dist/trinity/core/rawData/perObjectData/EveSceneStaticParticlesPerObjectData.js.map +1 -0
  572. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js +55 -0
  573. package/dist/trinity/core/rawData/perObjectData/EveSpherePinPerObjectData.js.map +1 -0
  574. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js +59 -0
  575. package/dist/trinity/core/rawData/perObjectData/EveTurretSetPerObjectData.js.map +1 -0
  576. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js +55 -0
  577. package/dist/trinity/core/rawData/perObjectData/StretchPerObjectData.js.map +1 -0
  578. package/dist/trinity/core/rawData/{Tr2PerObjectData.js → perObjectData/Tr2PerObjectData.js} +110 -62
  579. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -0
  580. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +104 -0
  581. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -0
  582. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +87 -0
  583. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -0
  584. package/dist/trinity/core/variable/TriVariable.js +83 -83
  585. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  586. package/dist/trinity/core/vertex/{Tr2VertexDefinition.js → Tr2VertexDefinition/Tr2VertexDefinition.js} +4 -20
  587. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -0
  588. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js +29 -0
  589. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinitionItem.js.map +1 -0
  590. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +116 -36
  591. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  592. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +50 -92
  593. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  594. package/dist/trinity/eve/EveModularObjectModifier.js +9 -5
  595. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  596. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +2 -1
  597. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  598. package/dist/trinity/eve/IEveSpaceObject2.js +2 -1
  599. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  600. package/dist/trinity/eve/IEveTransform.js +2 -1
  601. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  602. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +2 -2
  603. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  604. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +109 -133
  605. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  606. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +40 -0
  607. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -0
  608. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +1 -1
  609. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  610. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js +2 -14
  611. package/dist/trinity/eve/attachment/decal/DecalMeshCache.js.map +1 -1
  612. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js +18 -0
  613. package/dist/trinity/eve/attachment/decal/DecalMeshCacheMeshBuffers.js.map +1 -0
  614. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +1 -1
  615. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  616. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +1 -1
  617. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  618. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +1 -1
  619. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  620. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +2 -2
  621. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  622. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +1 -1
  623. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  624. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +4 -2
  625. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  626. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +143 -139
  627. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  628. package/dist/trinity/eve/camera/EveCamera.js +1 -1
  629. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  630. package/dist/trinity/eve/child/EveChildBoosterSet.js +12 -1
  631. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  632. package/dist/trinity/eve/child/EveChildCloud2.js +178 -151
  633. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  634. package/dist/trinity/eve/child/EveChildContainer.js +141 -141
  635. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  636. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +87 -0
  637. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -0
  638. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +46 -0
  639. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -0
  640. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +35 -0
  641. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -0
  642. package/dist/trinity/eve/child/{EveChildInstancedMeshes.js → EveChildInstancedMeshes/EveChildInstancedMeshes.js} +42 -163
  643. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -0
  644. package/dist/trinity/eve/child/EveChildMesh.js +218 -218
  645. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  646. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +53 -0
  647. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -0
  648. package/dist/trinity/eve/child/{EveChildPartData.js → EveChildPartData/EveChildPartDataPartData.js} +9 -45
  649. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -0
  650. package/dist/trinity/eve/child/EveChildParticleSystem.js +30 -29
  651. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  652. package/dist/trinity/eve/child/EveChildTransform.js +5 -0
  653. package/dist/trinity/eve/child/EveChildTransform.js.map +1 -1
  654. package/dist/trinity/eve/child/EveChildTurret.js +7 -0
  655. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  656. package/dist/trinity/eve/index.js +10 -4
  657. package/dist/trinity/eve/index.js.map +1 -1
  658. package/dist/trinity/eve/lights/Tr2Light.js +5 -0
  659. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  660. package/dist/trinity/eve/overlays/overlayBatches.js +6 -1
  661. package/dist/trinity/eve/overlays/overlayBatches.js.map +1 -1
  662. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +4 -4
  663. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  664. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +76 -71
  665. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  666. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +1 -1
  667. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  668. package/dist/trinity/eve/spaceObject/EveShip2.js +3 -3
  669. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  670. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +408 -407
  671. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  672. package/dist/trinity/eve/ui/EveTacticalOverlay.js +1 -1
  673. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  674. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +9 -9
  675. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  676. package/dist/trinity/eve/ui/lines/EveLineSet.js +27 -25
  677. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  678. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +3 -2
  679. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  680. package/dist/trinity/generated/index.js +0 -1
  681. package/dist/trinity/generated/index.js.map +1 -1
  682. package/dist/trinity/generated/trinityCore/index.js +0 -1
  683. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  684. package/dist/trinity/index.js +59 -23
  685. package/dist/trinity/index.js.map +1 -1
  686. package/dist/trinity/particle/{ITr2GenericEmitter.js → ITr2GenericEmitter/ITr2GenericEmitter.js} +4 -32
  687. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -0
  688. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js +36 -0
  689. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitterUpdateArguments.js.map +1 -0
  690. package/dist/trinity/particle/Tr2ParticleSystem.js +4 -2
  691. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  692. package/dist/trinity/particle/element/Tr2ParticleElementData.js +15 -4
  693. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  694. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +21 -20
  695. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  696. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +23 -22
  697. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  698. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +14 -13
  699. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  700. package/dist/trinity/particle/index.js +2 -1
  701. package/dist/trinity/particle/index.js.map +1 -1
  702. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +7 -1
  703. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  704. package/dist/trinity/shader/Tr2Effect.js +131 -58
  705. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  706. package/dist/trinity/shader/Tr2EffectStateManager.js +17 -5
  707. package/dist/trinity/shader/Tr2EffectStateManager.js.map +1 -1
  708. package/dist/trinity/shader/Tr2Material.js +21 -4
  709. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  710. package/dist/trinity/shader/material/Tr2EffectPassParameters.js +4 -1
  711. package/dist/trinity/shader/material/Tr2EffectPassParameters.js.map +1 -1
  712. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +2 -2
  713. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  714. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js +79 -0
  715. package/dist/trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js.map +1 -0
  716. package/dist/trinityal/{Tr2DeviceResourceAL.js → Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js} +77 -79
  717. package/dist/trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js.map +1 -0
  718. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js +24 -0
  719. package/dist/trinityal/Tr2DeviceResourceAL/Tr2DeviceResourceAL.js.map +1 -0
  720. package/dist/trinityal/Tr2DrawUPHelper.js +2 -1
  721. package/dist/trinityal/Tr2DrawUPHelper.js.map +1 -1
  722. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js +45 -0
  723. package/dist/trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js.map +1 -0
  724. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js +154 -0
  725. package/dist/trinityal/Tr2HalHelperStructures/Tr2SamplerDescription.js.map +1 -0
  726. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js +48 -0
  727. package/dist/trinityal/Tr2HalHelperStructures/Tr2SubresourceData.js.map +1 -0
  728. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js +75 -0
  729. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureCoordBox.js.map +1 -0
  730. package/dist/trinityal/{Tr2HalHelperStructures.js → Tr2HalHelperStructures/Tr2TextureSubresource.js} +11 -115
  731. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -0
  732. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js +51 -0
  733. package/dist/trinityal/Tr2HalHelperStructures/Tr2Viewport.js.map +1 -0
  734. package/dist/trinityal/{Tr2RenderPassAL.js → Tr2RenderPassAL/Tr2ColorAttachment.js} +5 -28
  735. package/dist/trinityal/Tr2RenderPassAL/Tr2ColorAttachment.js.map +1 -0
  736. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js +38 -0
  737. package/dist/trinityal/Tr2RenderPassAL/Tr2DepthAttachment.js.map +1 -0
  738. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js +80 -0
  739. package/dist/trinityal/Tr2ResourceSetAL/Tr2RegisterMapAL.js.map +1 -0
  740. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js +76 -0
  741. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetAL.js.map +1 -0
  742. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js +96 -0
  743. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -0
  744. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js +196 -0
  745. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetDescriptionAL.js.map +1 -0
  746. package/dist/trinityal/index.js +22 -9
  747. package/dist/trinityal/index.js.map +1 -1
  748. package/dist/trinityal/stub/Tr2BufferALStub.js +86 -141
  749. package/dist/trinityal/stub/Tr2BufferALStub.js.map +1 -1
  750. package/dist/trinityal/stub/Tr2CapsALStub.js +17 -0
  751. package/dist/trinityal/stub/Tr2CapsALStub.js.map +1 -1
  752. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js +57 -41
  753. package/dist/trinityal/stub/Tr2ConstantBufferALStub.js.map +1 -1
  754. package/dist/trinityal/stub/Tr2FenceALStub.js +18 -2
  755. package/dist/trinityal/stub/Tr2FenceALStub.js.map +1 -1
  756. package/dist/trinityal/stub/Tr2GpuTimerALStub.js +97 -0
  757. package/dist/trinityal/stub/Tr2GpuTimerALStub.js.map +1 -0
  758. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js +124 -0
  759. package/dist/trinityal/stub/Tr2OcclusionQueryALStub.js.map +1 -0
  760. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js +146 -0
  761. package/dist/trinityal/stub/Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js.map +1 -0
  762. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js +28 -0
  763. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2BindlessResourcesAL.js.map +1 -0
  764. package/dist/trinityal/stub/{Tr2RenderContextALStub.js → Tr2RenderContextALStub/Tr2RenderContextALStub.js} +70 -75
  765. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -0
  766. package/dist/trinityal/stub/Tr2SamplerStateALStub.js +47 -31
  767. package/dist/trinityal/stub/Tr2SamplerStateALStub.js.map +1 -1
  768. package/dist/trinityal/stub/Tr2ShaderALStub.js +61 -45
  769. package/dist/trinityal/stub/Tr2ShaderALStub.js.map +1 -1
  770. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js +51 -33
  771. package/dist/trinityal/stub/Tr2ShaderProgramALStub.js.map +1 -1
  772. package/dist/trinityal/stub/Tr2SwapChainALStub.js +61 -45
  773. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  774. package/dist/trinityal/stub/Tr2TextureALStub.js +188 -171
  775. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  776. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js +43 -27
  777. package/dist/trinityal/stub/Tr2VertexLayoutALStub.js.map +1 -1
  778. package/dist/trinityal/stub/{Tr2VideoAdapterInfoALStub.js → Tr2VideoAdapterInfoStub.js} +16 -1
  779. package/dist/trinityal/stub/Tr2VideoAdapterInfoStub.js.map +1 -0
  780. package/dist/trinityal/stub/index.js +8 -4
  781. package/dist/trinityal/stub/index.js.map +1 -1
  782. package/dist/trinityal/vertexLayoutMatch.js +2 -2
  783. package/dist/trinityal/vertexLayoutMatch.js.map +1 -1
  784. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js +105 -90
  785. package/dist/trinityal/webgpu/CjsWebgpuBufferAL.js.map +1 -1
  786. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js +17 -0
  787. package/dist/trinityal/webgpu/CjsWebgpuCapsAL.js.map +1 -1
  788. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js +15 -0
  789. package/dist/trinityal/webgpu/CjsWebgpuConstantBufferAL.js.map +1 -1
  790. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +2 -2
  791. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  792. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +900 -938
  793. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  794. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js +56 -60
  795. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  796. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js +16 -1
  797. package/dist/trinityal/webgpu/CjsWebgpuSamplerStateAL.js.map +1 -1
  798. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js +100 -379
  799. package/dist/trinityal/webgpu/CjsWebgpuShaderAL.js.map +1 -1
  800. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js +330 -0
  801. package/dist/trinityal/webgpu/CjsWebgpuShaderProgramAL.js.map +1 -0
  802. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +15 -0
  803. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  804. package/dist/trinityal/webgpu/core/{constantArena.js → CjsWebgpuConstantArena.js} +1 -1
  805. package/dist/trinityal/webgpu/core/CjsWebgpuConstantArena.js.map +1 -0
  806. package/dist/trinityal/webgpu/core/{batchGroups.js → CjsWebgpuEncodeState.js} +1 -1
  807. package/dist/trinityal/webgpu/core/CjsWebgpuEncodeState.js.map +1 -0
  808. package/dist/trinityal/webgpu/core/{perFrameSource.js → CjsWebgpuPerFrameSource.js} +1 -1
  809. package/dist/trinityal/webgpu/core/CjsWebgpuPerFrameSource.js.map +1 -0
  810. package/dist/trinityal/webgpu/core/{pipelineCache.js → CjsWebgpuPipelineCache.js} +1 -1
  811. package/dist/trinityal/webgpu/core/CjsWebgpuPipelineCache.js.map +1 -0
  812. package/dist/trinityal/webgpu/core/{psoDescription.js → CjsWebgpuPsoDescription.js} +2 -2
  813. package/dist/trinityal/webgpu/core/CjsWebgpuPsoDescription.js.map +1 -0
  814. package/dist/trinityal/webgpu/core/{renderTarget.js → CjsWebgpuRenderTarget.js} +1 -1
  815. package/dist/trinityal/webgpu/core/CjsWebgpuRenderTarget.js.map +1 -0
  816. package/dist/trinityal/webgpu/core/{samplerSource.js → CjsWebgpuSamplerSource.js} +1 -1
  817. package/dist/trinityal/webgpu/core/CjsWebgpuSamplerSource.js.map +1 -0
  818. package/dist/trinityal/webgpu/core/{textureSource.js → CjsWebgpuTextureSource.js} +1 -1
  819. package/dist/trinityal/webgpu/core/CjsWebgpuTextureSource.js.map +1 -0
  820. package/dist/trinityal/webgpu/core/{trinityBatchDispatcher.js → CjsWebgpuTrinityBatchDispatcher.js} +4 -4
  821. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchDispatcher.js.map +1 -0
  822. package/dist/trinityal/webgpu/core/{trinityBatchResolver.js → CjsWebgpuTrinityBatchResolver.js} +81 -81
  823. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityBatchResolver.js.map +1 -0
  824. package/dist/trinityal/webgpu/core/{trinityPassEncoder.js → CjsWebgpuTrinityPassEncoder.js} +2 -2
  825. package/dist/trinityal/webgpu/core/CjsWebgpuTrinityPassEncoder.js.map +1 -0
  826. package/dist/trinityal/webgpu/core/{workQueue.js → CjsWebgpuWorkQueue.js} +1 -1
  827. package/dist/trinityal/webgpu/core/CjsWebgpuWorkQueue.js.map +1 -0
  828. package/dist/trinityal/webgpu/internal.js +12 -11
  829. package/dist/trinityal/webgpu/internal.js.map +1 -1
  830. package/docs/audio/reference/classes/trinity.md +44 -34
  831. package/docs/character/architecture.md +276 -0
  832. package/docs/character/reference/character-appearance-plans.md +30 -66
  833. package/docs/character/reference/prepared-libraries.md +14 -30
  834. package/docs/global/reference/api.md +2 -1
  835. package/docs/global/reference/classes/README.md +53 -71
  836. package/docs/global/reference/classes/dropped.md +16 -0
  837. package/docs/resource/README.md +19 -15
  838. package/docs/resource/architecture.md +9 -2
  839. package/docs/resource/concepts/format-capabilities.md +124 -80
  840. package/docs/resource/concepts/shared-format-helpers.md +94 -0
  841. package/docs/resource/formats/README.md +230 -224
  842. package/docs/resource/formats/bitknit2.md +221 -0
  843. package/docs/resource/formats/carbon-effect-container.md +184 -269
  844. package/docs/resource/formats/gr2.md +6 -1
  845. package/docs/resource/formats/schemabound.md +28 -48
  846. package/docs/resource/formats/static.md +70 -97
  847. package/docs/resource/formats/webgl/carbon-constant-layouts.md +8 -8
  848. package/docs/resource/formats/webgl/decl-io.md +165 -256
  849. package/docs/resource/formats/webgl/memory-structured.md +64 -142
  850. package/docs/resource/formats/webgl/texture-sample.md +109 -138
  851. package/docs/resource/formats/webgpu/formats/carbon-webgpu.md +38 -69
  852. package/docs/resource/formats/webgpu/guides/effect-packaging.md +54 -116
  853. package/docs/resource/formats/webgpu/reference/api.md +64 -67
  854. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +158 -345
  855. package/docs/resource/reference/classes/core.md +256 -236
  856. package/docs/resource/reference/classes/formats.md +1668 -1672
  857. package/docs/resource/reference/workers.md +4 -2
  858. package/docs/sof/reference/classes/core.md +1 -1
  859. package/docs/sof/reference/classes/faction.md +2 -2
  860. package/docs/sof/reference/classes/generic.md +4 -4
  861. package/docs/sof/reference/classes/pattern.md +1 -1
  862. package/docs/sof/reference/classes/shared.md +10 -10
  863. package/docs/trinity/architecture.md +55 -44
  864. package/docs/trinity/concepts/generated-class-lifecycle.md +10 -15
  865. package/docs/trinity/reference/classes/curves-and-utilities.md +496 -506
  866. package/docs/trinity/reference/classes/dropped.md +0 -189
  867. package/docs/trinity/reference/classes/eve-runtime.md +8 -8
  868. package/docs/trinity/reference/classes/generated.md +0 -10
  869. package/docs/trinity/reference/classes/particle.md +2 -2
  870. package/docs/trinity/reference/classes/trinity-core.md +1554 -1256
  871. package/docs/trinity/reference/implementation-status.md +50 -75
  872. package/docs/trinity/reference/main-semantic-extraction.md +13 -17
  873. package/docs/trinityal/reference/classes/README.md +77 -27
  874. package/docs/trinityal/reference/classes/dropped.md +92 -0
  875. package/docs/trinityal/webgpu/README.md +3 -1
  876. package/docs/trinityal/webgpu/architecture.md +121 -228
  877. package/docs/trinityal/webgpu/reference/api.md +5 -5
  878. package/docs/trinityal/webgpu/reference/classes/README.md +13 -13
  879. package/format-notices/gr2/NOTICE +18 -12
  880. package/format-notices/gr2/THIRD-PARTY-NOTICES.md +5 -5
  881. package/package.json +4 -1
  882. package/dist/audio/trinity/audio/AudActionLog.js +0 -173
  883. package/dist/audio/trinity/audio/AudActionLog.js.map +0 -1
  884. package/dist/audio/trinity/audio/AudObstructionOcclusion.js.map +0 -1
  885. package/dist/global/contracts/CjsScriptCallback.js +0 -94
  886. package/dist/global/contracts/CjsScriptCallback.js.map +0 -1
  887. package/dist/trinity/controllers/ITr2Controller.js.map +0 -1
  888. package/dist/trinity/core/Tr2GpuResourcePool.js.map +0 -1
  889. package/dist/trinity/core/Tr2QuadRenderer.js.map +0 -1
  890. package/dist/trinity/core/Tr2TextureArray.js.map +0 -1
  891. package/dist/trinity/core/batch/ITriRenderBatchAccumulator.js.map +0 -1
  892. package/dist/trinity/core/batch/Tr2RenderBatch.js.map +0 -1
  893. package/dist/trinity/core/batch/TriRenderBatchAccumulator.js.map +0 -1
  894. package/dist/trinity/core/context/CjsShadowMapExecutor.js +0 -43
  895. package/dist/trinity/core/context/CjsShadowMapExecutor.js.map +0 -1
  896. package/dist/trinity/core/context/CjsVolumetricsExecutor.js +0 -64
  897. package/dist/trinity/core/context/CjsVolumetricsExecutor.js.map +0 -1
  898. package/dist/trinity/core/context/Tr2VisibilityResults.js +0 -109
  899. package/dist/trinity/core/context/Tr2VisibilityResults.js.map +0 -1
  900. package/dist/trinity/core/device/Tr2RingBuffer.js.map +0 -1
  901. package/dist/trinity/core/device/Tr2SuballocatedBuffer.js.map +0 -1
  902. package/dist/trinity/core/mesh/ITr2ImpostorSource.js.map +0 -1
  903. package/dist/trinity/core/mesh/ITr2InstanceData.js.map +0 -1
  904. package/dist/trinity/core/rawData/Tr2PerObjectData.js.map +0 -1
  905. package/dist/trinity/core/rawData/constantLayout.js +0 -175
  906. package/dist/trinity/core/rawData/constantLayout.js.map +0 -1
  907. package/dist/trinity/core/vertex/Tr2VertexDefinition.js.map +0 -1
  908. package/dist/trinity/eve/child/EveChildInstancedMeshes.js.map +0 -1
  909. package/dist/trinity/eve/child/EveChildPartData.js.map +0 -1
  910. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js +0 -47
  911. package/dist/trinity/generated/trinityCore/Tr2Denoiser.js.map +0 -1
  912. package/dist/trinity/particle/ITr2GenericEmitter.js.map +0 -1
  913. package/dist/trinityal/Tr2DeviceResourceAL.js.map +0 -1
  914. package/dist/trinityal/Tr2HalHelperStructures.js.map +0 -1
  915. package/dist/trinityal/Tr2RenderPassAL.js.map +0 -1
  916. package/dist/trinityal/Tr2ResourceSetAL.js +0 -419
  917. package/dist/trinityal/Tr2ResourceSetAL.js.map +0 -1
  918. package/dist/trinityal/Tr2SamplerDescription.js +0 -72
  919. package/dist/trinityal/Tr2SamplerDescription.js.map +0 -1
  920. package/dist/trinityal/stub/Tr2QueryALStub.js +0 -326
  921. package/dist/trinityal/stub/Tr2QueryALStub.js.map +0 -1
  922. package/dist/trinityal/stub/Tr2RenderContextALStub.js.map +0 -1
  923. package/dist/trinityal/stub/Tr2VideoAdapterInfoALStub.js.map +0 -1
  924. package/dist/trinityal/webgpu/core/batchGroups.js.map +0 -1
  925. package/dist/trinityal/webgpu/core/constantArena.js.map +0 -1
  926. package/dist/trinityal/webgpu/core/perFrameSource.js.map +0 -1
  927. package/dist/trinityal/webgpu/core/pipelineCache.js.map +0 -1
  928. package/dist/trinityal/webgpu/core/psoDescription.js.map +0 -1
  929. package/dist/trinityal/webgpu/core/renderTarget.js.map +0 -1
  930. package/dist/trinityal/webgpu/core/samplerSource.js.map +0 -1
  931. package/dist/trinityal/webgpu/core/textureSource.js.map +0 -1
  932. package/dist/trinityal/webgpu/core/trinityBatchDispatcher.js.map +0 -1
  933. package/dist/trinityal/webgpu/core/trinityBatchResolver.js.map +0 -1
  934. package/dist/trinityal/webgpu/core/trinityPassEncoder.js.map +0 -1
  935. package/dist/trinityal/webgpu/core/workQueue.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2TextureALStub.js","sources":["../../../../src/trinityal/stub/Tr2TextureALStub.js"],"sourcesContent":["// Source: trinity/trinityal/stub/Tr2TextureALStub.cpp\n// Source: trinity/trinityal/stub/Tr2TextureALStub.h\n// Source: trinity/trinityal/include/Tr2TextureAL.h\n//\n// The GPU-free texture, ported from the one Carbon already ships.\n//\n// WHY THIS IS WORTH TRANSCRIBING RATHER THAN SUMMARISING. Carbon's stub texture\n// refuses thirteen distinct combinations of description, GPU usage and CPU\n// usage before it will call itself created - multisampled with unordered\n// access, a cube with anything but six faces, a depth stencil with mips, a\n// volume texture the CPU can touch, and so on. Each of those is a rule a real\n// backend enforces too, and each one is a bug we would otherwise find on a GPU\n// months later, in a form that looks like a driver problem rather than like a\n// texture we should never have asked for.\n//\n// So the validation IS the port. The allocation behind it is real as well: a\n// map returns a genuine buffer of the right pitch, so a caller reading pixels\n// back headless reads the shape it would read on a device.\n//\n// THREE LANGUAGE DIFFERENCES.\n//\n// - Carbon has six `Create` overloads over one implementation; this takes the\n// implementation's arguments, with the optional ones in a description object.\n// - Carbon's map functions return the result and hand back the pointer and the\n// pitch through reference arguments. JavaScript has no reference arguments,\n// so they return `{ result, data, pitch }`.\n// - Carbon's impl-level `Destroy` only resets the fields, because the registry\n// entry goes when the C++ destructor runs. Ours must also unregister, so the\n// reset lives in a private helper that `Create` calls and `Destroy` calls the\n// base as well. See the head comment on `Tr2DeviceResourceAL.js`.\n//\n// TWO FAITHFUL EMPTINESSES, worth knowing before relying on them: Carbon's stub\n// implements `Describe` as a no-op and returns null from `GetName`, so a stub\n// texture contributes nothing to a device inventory. That is transcribed, not\n// overlooked - a backend that reports real names is a real backend.\n\nimport { Tr2ALMemoryType, Tr2BaseDeviceResourceAL } from \"../Tr2DeviceResourceAL.js\";\nimport { ALResult } from \"../ALResult.js\";\nimport { Tr2BitmapDimensions } from \"../Tr2BitmapDimensions.js\";\nimport { Crop, Tr2MsaaDesc, Tr2TextureSubresource } from \"../Tr2HalHelperStructures.js\";\nimport {\n IsCompressedFormat,\n HasBufferFlags,\n HasFlag,\n IsWritable,\n TextureType,\n Tr2CpuUsage,\n Tr2GpuUsage\n} from \"../../global/consts/renderContext/index.js\";\n\n\n/** Carbon's \"no descriptor heap index\", returned by both heap accessors. */\nconst NO_HEAP_INDEX = 0xffffffff;\n\n\n/**\n * A texture that validates like a real one and holds its pixels on the CPU.\n */\nexport class Tr2TextureALStub extends Tr2BaseDeviceResourceAL\n{\n /** m_desc */\n _desc = new Tr2BitmapDimensions();\n\n /** m_msaa */\n _msaa = new Tr2MsaaDesc();\n\n /** m_gpuUsage */\n _gpuUsage = Tr2GpuUsage.NONE;\n\n /** m_cpuUsage */\n _cpuUsage = Tr2CpuUsage.NONE;\n\n /** m_data - allocated on first map, released on unmap unless kept \"often\". */\n _data = null;\n\n /**\n * Creates the texture.\n *\n * Every refusal below is Carbon's, in Carbon's order\n * (`Tr2TextureALStub.cpp:18-95`).\n *\n * @param {Tr2BitmapDimensions} desc The texture description.\n * @param {object} options Creation options.\n * @param {number} [options.gpuUsage] A `Tr2GpuUsage` bit set.\n * @param {number} [options.cpuUsage] A `Tr2CpuUsage` bit set.\n * @param {Tr2MsaaDesc} [options.msaa] Multisample description.\n * @param {object[]} [options.initialData] Initial subresource data, if any.\n * @param {object} renderContext The context to create against.\n * @returns {number} An `ALResult` value.\n */\n Create(desc, options, renderContext)\n {\n this._Reset();\n\n const {\n gpuUsage = Tr2GpuUsage.NONE,\n cpuUsage = Tr2CpuUsage.NONE,\n msaa = new Tr2MsaaDesc(),\n initialData = null\n } = options;\n\n // A texture is not a buffer. Asking for one with vertex or index usage is\n // a mixed-up call, not a capability question.\n if (HasBufferFlags(gpuUsage)) return ALResult.E_INVALIDARG;\n\n if (!renderContext.IsValid()) return ALResult.E_FAIL;\n\n if (msaa.samples > 1)\n {\n // Multisampled resources cannot be written by a compute shader, cannot\n // be reached by the CPU, and only exist as 2D.\n if (HasFlag(gpuUsage, Tr2GpuUsage.UNORDERED_ACCESS)) return ALResult.E_INVALIDARG;\n\n if (cpuUsage !== Tr2CpuUsage.NONE) return ALResult.E_INVALIDARG;\n\n if (desc.GetType() !== TextureType.TEX_TYPE_2D) return ALResult.E_INVALIDARG;\n }\n\n if (desc.GetType() !== TextureType.TEX_TYPE_2D)\n {\n // A cube is exactly six faces; nothing else that is not 2D is an array.\n if (desc.GetType() === TextureType.TEX_TYPE_CUBE)\n {\n if (desc.GetArraySize() !== 6) return ALResult.E_INVALIDARG;\n }\n else if (desc.GetArraySize() > 1)\n {\n return ALResult.E_INVALIDARG;\n }\n }\n\n if (desc.GetType() !== TextureType.TEX_TYPE_2D && HasFlag(gpuUsage, Tr2GpuUsage.DEPTH_STENCIL))\n {\n return ALResult.E_INVALIDARG;\n }\n\n if (msaa.samples > 1 && desc.GetTrueMipCount() > 1) return ALResult.E_INVALIDARG;\n\n if (HasFlag(gpuUsage, Tr2GpuUsage.RENDER_TARGET) && HasFlag(cpuUsage, Tr2CpuUsage.WRITE))\n {\n return ALResult.E_INVALIDARG;\n }\n\n if (HasFlag(gpuUsage, Tr2GpuUsage.DEPTH_STENCIL) && cpuUsage !== Tr2CpuUsage.NONE)\n {\n return ALResult.E_INVALIDARG;\n }\n\n if (HasFlag(gpuUsage, Tr2GpuUsage.DEPTH_STENCIL) && desc.GetTrueMipCount() > 1)\n {\n return ALResult.E_INVALIDARG;\n }\n\n if (desc.GetType() === TextureType.TEX_TYPE_3D && cpuUsage !== Tr2CpuUsage.NONE)\n {\n return ALResult.E_INVALIDARG;\n }\n\n // THE LAST ONE IS THE USEFUL ONE. A texture nothing can ever write - not\n // the GPU, not the CPU - and that arrives with no pixels is a texture that\n // will sample black forever. Carbon refuses it at creation rather than\n // letting it draw nothing.\n if (!IsWritable(gpuUsage) && !HasFlag(cpuUsage, Tr2CpuUsage.WRITE) && !initialData)\n {\n return ALResult.E_INVALIDARG;\n }\n\n this._desc = desc;\n this._gpuUsage = gpuUsage;\n this._cpuUsage = cpuUsage;\n this._msaa = msaa;\n\n return ALResult.S_OK;\n }\n\n /**\n * Adopts a texture shared by another device.\n *\n * Carbon's stub refuses: sharing needs a real device on both sides.\n *\n * @returns {number} An `ALResult` value.\n */\n OpenShared()\n {\n return ALResult.E_FAIL;\n }\n\n /** Carbon's impl `Destroy`: clears the description without unregistering. */\n _Reset()\n {\n this._desc = new Tr2BitmapDimensions();\n this._msaa = new Tr2MsaaDesc();\n this._gpuUsage = Tr2GpuUsage.NONE;\n this._cpuUsage = Tr2CpuUsage.NONE;\n this._data = null;\n }\n\n /** Releases the texture and leaves the device-resource registry. */\n Destroy()\n {\n this._Reset();\n super.Destroy();\n }\n\n /**\n * Whether the texture holds anything.\n *\n * Carbon's test is the width, because a created texture always has one.\n *\n * @returns {boolean} True when created.\n */\n IsValid()\n {\n return this._desc.GetWidth() !== 0;\n }\n\n /**\n * Which memory class this texture occupies.\n *\n * @returns {number} A `Tr2ALMemoryType` value.\n */\n GetMemoryClass()\n {\n return Tr2ALMemoryType.AL_MEMORY_MANAGED;\n }\n\n /**\n * The texture description.\n *\n * @returns {Tr2BitmapDimensions} The description.\n */\n GetDesc()\n {\n return this._desc;\n }\n\n /**\n * The multisample description.\n *\n * @returns {Tr2MsaaDesc} The description.\n */\n GetMsaaDesc()\n {\n return this._msaa;\n }\n\n /**\n * The GPU usage this texture was created with.\n *\n * @returns {number} A `Tr2GpuUsage` bit set.\n */\n GetGpuUsage()\n {\n return this._gpuUsage;\n }\n\n /**\n * The CPU usage this texture was created with.\n *\n * @returns {number} A `Tr2CpuUsage` bit set.\n */\n GetCpuUsage()\n {\n return this._cpuUsage;\n }\n\n /**\n * Width of mip zero.\n *\n * @returns {number} Width in pixels.\n */\n GetWidth()\n {\n return this._desc.GetWidth();\n }\n\n /**\n * Height of mip zero.\n *\n * @returns {number} Height in pixels.\n */\n GetHeight()\n {\n return this._desc.GetHeight();\n }\n\n /**\n * Volume depth.\n *\n * @returns {number} Depth in slices.\n */\n GetDepth()\n {\n return this._desc.GetDepth();\n }\n\n /**\n * The declared mip count.\n *\n * @returns {number} Mip levels as declared.\n */\n GetMipCount()\n {\n return this._desc.GetMipCount();\n }\n\n /**\n * The mip count in effect.\n *\n * @returns {number} Mip levels.\n */\n GetTrueMipCount()\n {\n return this._desc.GetTrueMipCount();\n }\n\n /**\n * The pixel format.\n *\n * @returns {number} A `PixelFormat` value.\n */\n GetFormat()\n {\n return this._desc.GetFormat();\n }\n\n /**\n * The texture type.\n *\n * @returns {number} A `TextureType` value.\n */\n GetType()\n {\n return this._desc.GetType();\n }\n\n /**\n * Slices in the array.\n *\n * @returns {number} Array size.\n */\n GetArraySize()\n {\n return this._desc.GetArraySize();\n }\n\n /**\n * Bytes in one mip.\n *\n * @param {number} mip Mip level.\n * @returns {number} Size in bytes.\n */\n GetMipSize(mip)\n {\n return this._desc.GetMipSize(mip);\n }\n\n /**\n * Allocates and returns the storage for one subresource, for reading.\n *\n * The CPU-read check comes FIRST, before validity, because a texture that\n * was never created for reading is a caller mistake rather than a state\n * problem - which is why it answers `E_INVALIDCALL` and not `E_FAIL`.\n *\n * @param {Tr2TextureSubresource} region The subresource to map.\n * @param {boolean} synchronize Whether to wait for outstanding GPU work.\n * @param {object} renderContext The context to map against.\n * @returns {{result: number, data: Uint8Array|null, pitch: number}} The mapping.\n */\n MapForReading(region, synchronize, renderContext)\n {\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.READ)) return { result: ALResult.E_INVALIDCALL, data: null, pitch: 0 };\n\n if (!this.IsValid() || !renderContext.IsValid()) return { result: ALResult.E_FAIL, data: null, pitch: 0 };\n\n if (!region.IsValidForBitmap(this._desc)) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\n\n if (!region.IsSingleSubresource()) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\n\n return this._Allocate(region);\n }\n\n /** Releases a read mapping, keeping the buffer only for an \"often\" usage. */\n UnmapForReading()\n {\n this._ReleaseUnlessKept();\n }\n\n /**\n * Allocates and returns the storage for one subresource, for writing.\n *\n * @param {Tr2TextureSubresource} region The subresource to map.\n * @param {object} renderContext The context to map against.\n * @returns {{result: number, data: Uint8Array|null, pitch: number}} The mapping.\n */\n MapForWriting(region, renderContext)\n {\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE)) return { result: ALResult.E_INVALIDCALL, data: null, pitch: 0 };\n\n if (!this.IsValid() || !renderContext.IsValid()) return { result: ALResult.E_FAIL, data: null, pitch: 0 };\n\n if (!region.IsValidForBitmap(this._desc)) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\n\n if (!region.IsSingleSubresource()) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\n\n // A partial write into a block format would land mid-block, so Carbon\n // refuses a box on a compressed texture rather than rounding it.\n if (region.HasBox() && IsCompressedFormat(this._desc.GetFormat()))\n {\n return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\n }\n\n return this._Allocate(region);\n }\n\n /** Releases a write mapping, keeping the buffer only for an \"often\" usage. */\n UnmapForWriting()\n {\n this._ReleaseUnlessKept();\n }\n\n /** Sizes the CPU buffer to one mip of the region and hands it back. */\n _Allocate(region)\n {\n const pitch = this._desc.GetMipPitch(region.m_startMipLevel);\n const size = pitch * this._desc.GetMipHeight(region.m_startMipLevel);\n\n if (this._data === null || this._data.length !== size) this._data = new Uint8Array(size);\n\n // Carbon fails an allocation that came back empty; here that means a mip\n // whose pitch or height is zero, which is a region past the chain.\n if (this._data.length === 0) return { result: ALResult.E_FAIL, data: null, pitch: 0 };\n\n return { result: ALResult.S_OK, data: this._data, pitch };\n }\n\n /** Carbon keeps the buffer only when the usage says mapping is frequent. */\n _ReleaseUnlessKept()\n {\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.READ_OFTEN) && !HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE_OFTEN))\n {\n this._data = null;\n }\n }\n\n /**\n * Writes pixels into one subresource.\n *\n * A texture mapped often is written through a map, not through this, so\n * Carbon refuses `WRITE_OFTEN` here outright.\n *\n * @param {Tr2TextureSubresource} region The subresource to write.\n * @param {ArrayBufferView} source The pixels.\n * @param {number} pitch Bytes per row in the source.\n * @param {number} slicePitch Bytes per slice in the source.\n * @param {object} renderContext The context to write against.\n * @returns {number} An `ALResult` value.\n */\n UpdateSubresource(region, source, pitch, slicePitch, renderContext)\n {\n if (HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE_OFTEN)) return ALResult.E_INVALIDCALL;\n\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE) && !IsWritable(this._gpuUsage)) return ALResult.E_INVALIDCALL;\n\n if (!this.IsValid() || !renderContext.IsValid()) return ALResult.E_INVALIDCALL;\n\n if (!region.IsValidForBitmap(this._desc)) return ALResult.E_INVALIDARG;\n\n if (!region.IsSingleSubresource()) return ALResult.E_INVALIDARG;\n\n return ALResult.S_OK;\n }\n\n /**\n * Copies a region from another texture.\n *\n * A whole-to-whole copy short-circuits; anything else must survive `Crop`,\n * which is where a mismatched face count or an empty overlap is caught.\n *\n * @param {Tr2TextureSubresource} destSubresource The region to write.\n * @param {Tr2TextureALStub} source The texture to read.\n * @param {Tr2TextureSubresource} sourceSubresource The region to read.\n * @param {object} renderContext The context to copy against.\n * @returns {number} An `ALResult` value.\n */\n CopySubresourceRegion(destSubresource, source, sourceSubresource, renderContext)\n {\n if (!this.IsValid() || !renderContext.IsValid()) return ALResult.E_INVALIDCALL;\n\n if (!source.IsValid()) return ALResult.E_INVALIDARG;\n\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE) && !IsWritable(this._gpuUsage)) return ALResult.E_INVALIDCALL;\n\n if (destSubresource.IsSubresourceFull(this._desc) && sourceSubresource.IsSubresourceFull(source.GetDesc()))\n {\n return ALResult.S_OK;\n }\n\n // Crop mutates, so both regions are copied first - Carbon takes them by\n // value here and a caller's region must survive the call unchanged.\n const src = CopyRegion(sourceSubresource);\n const dst = CopyRegion(destSubresource);\n\n if (!Crop(src, source.GetDesc(), dst, this._desc)) return ALResult.E_FAIL;\n\n return ALResult.S_OK;\n }\n\n /**\n * Regenerates the mip chain.\n *\n * Only a texture that is both a render target and a shader resource can be\n * generated into, because that is how the hardware does it.\n *\n * @returns {number} An `ALResult` value.\n */\n GenerateMipMaps()\n {\n if (!HasFlag(this._gpuUsage, Tr2GpuUsage.RENDER_TARGET) || !HasFlag(this._gpuUsage, Tr2GpuUsage.SHADER_RESOURCE))\n {\n return ALResult.E_INVALIDCALL;\n }\n\n return ALResult.S_OK;\n }\n\n /**\n * Resolves a multisampled texture into a single-sampled one.\n *\n * With one sample there is nothing to resolve, so Carbon falls back to a\n * plain copy - and inherits that copy's validation with it.\n *\n * @param {Tr2TextureALStub} destination The texture to resolve into.\n * @param {object} renderContext The context to resolve against.\n * @returns {number} An `ALResult` value.\n */\n Resolve(destination, renderContext)\n {\n if (this._msaa.samples <= 1)\n {\n return destination.CopySubresourceRegion(\n new Tr2TextureSubresource(),\n this,\n new Tr2TextureSubresource(),\n renderContext\n );\n }\n\n if (!this.IsValid() || !renderContext.IsValid()) return ALResult.E_INVALIDCALL;\n\n if (!destination.IsValid()) return ALResult.E_INVALIDARG;\n\n if (!HasFlag(destination.GetCpuUsage(), Tr2CpuUsage.WRITE) && !IsWritable(destination.GetGpuUsage()))\n {\n return ALResult.E_INVALIDARG;\n }\n\n if (this._desc.GetWidth() !== destination.GetWidth() || this._desc.GetHeight() !== destination.GetHeight())\n {\n return ALResult.E_INVALIDARG;\n }\n\n if (this._desc.GetFormat() !== destination.GetFormat()) return ALResult.E_INVALIDARG;\n\n if (destination.GetMsaaDesc().samples > 1) return ALResult.E_INVALIDARG;\n\n return ALResult.S_OK;\n }\n\n /**\n * The handle another device could open this texture by.\n *\n * @returns {number} Always zero; the stub shares nothing.\n */\n GetSharedHandle()\n {\n return 0;\n }\n\n /**\n * Where the shader-resource view sits in the descriptor heap.\n *\n * @returns {number} Carbon's \"no index\".\n */\n GetSrvIndexInHeap()\n {\n return NO_HEAP_INDEX;\n }\n\n /**\n * Where the unordered-access view sits in the descriptor heap.\n *\n * @returns {number} Carbon's \"no index\".\n */\n GetUavIndexInHeap()\n {\n return NO_HEAP_INDEX;\n }\n\n /**\n * Names the texture for a debugger.\n *\n * @param {string} _name The name Carbon would attach; the stub discards it.\n * @returns {number} An `ALResult` value; the stub keeps no name.\n */\n SetName(_name)\n {\n return ALResult.S_OK;\n }\n\n /**\n * The debug name.\n *\n * @returns {null} Always null, as Carbon's stub returns.\n */\n GetName()\n {\n return null;\n }\n}\n\n\n/**\n * Copies a subresource region, so a call that crops does not alter its caller.\n *\n * @param {Tr2TextureSubresource} region The region to copy.\n * @returns {Tr2TextureSubresource} An independent copy.\n */\nexport function CopyRegion(region)\n{\n const copy = new Tr2TextureSubresource();\n\n copy.m_startFace = region.m_startFace;\n copy.m_endFace = region.m_endFace;\n copy.m_startMipLevel = region.m_startMipLevel;\n copy.m_endMipLevel = region.m_endMipLevel;\n copy.m_box.left = region.m_box.left;\n copy.m_box.top = region.m_box.top;\n copy.m_box.front = region.m_box.front;\n copy.m_box.right = region.m_box.right;\n copy.m_box.bottom = region.m_box.bottom;\n copy.m_box.back = region.m_box.back;\n\n return copy;\n}\n"],"names":["NO_HEAP_INDEX","Tr2TextureALStub","Tr2BaseDeviceResourceAL","_desc","Tr2BitmapDimensions","_msaa","Tr2MsaaDesc","_gpuUsage","Tr2GpuUsage","NONE","_cpuUsage","Tr2CpuUsage","_data","Create","desc","options","renderContext","_Reset","gpuUsage","cpuUsage","msaa","initialData","HasBufferFlags","ALResult","E_INVALIDARG","IsValid","E_FAIL","samples","HasFlag","UNORDERED_ACCESS","GetType","TextureType","TEX_TYPE_2D","TEX_TYPE_CUBE","GetArraySize","DEPTH_STENCIL","GetTrueMipCount","RENDER_TARGET","WRITE","TEX_TYPE_3D","IsWritable","S_OK","OpenShared","Destroy","GetWidth","GetMemoryClass","Tr2ALMemoryType","AL_MEMORY_MANAGED","GetDesc","GetMsaaDesc","GetGpuUsage","GetCpuUsage","GetHeight","GetDepth","GetMipCount","GetFormat","GetMipSize","mip","MapForReading","region","synchronize","READ","result","E_INVALIDCALL","data","pitch","IsValidForBitmap","IsSingleSubresource","_Allocate","UnmapForReading","_ReleaseUnlessKept","MapForWriting","HasBox","IsCompressedFormat","UnmapForWriting","GetMipPitch","m_startMipLevel","size","GetMipHeight","length","Uint8Array","READ_OFTEN","WRITE_OFTEN","UpdateSubresource","source","slicePitch","CopySubresourceRegion","destSubresource","sourceSubresource","IsSubresourceFull","src","CopyRegion","dst","Crop","GenerateMipMaps","SHADER_RESOURCE","Resolve","destination","Tr2TextureSubresource","GetSharedHandle","GetSrvIndexInHeap","GetUavIndexInHeap","SetName","_name","GetName","copy","m_startFace","m_endFace","m_endMipLevel","m_box","left","top","front","right","bottom","back"],"mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAiBA;AACA,MAAMA,aAAa,GAAG,UAAU;;AAGhC;AACA;AACA;AACO,MAAMC,gBAAgB,SAASC,uBAAuB,CAC7D;AACE;AACAC,EAAAA,KAAK,GAAG,IAAIC,mBAAmB,EAAE;;AAEjC;AACAC,EAAAA,KAAK,GAAG,IAAIC,WAAW,EAAE;;AAEzB;EACAC,SAAS,GAAGC,WAAW,CAACC,IAAI;;AAE5B;EACAC,SAAS,GAAGC,WAAW,CAACF,IAAI;;AAE5B;AACAG,EAAAA,KAAK,GAAG,IAAI;;AAEZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,MAAMA,CAACC,IAAI,EAAEC,OAAO,EAAEC,aAAa,EACnC;IACE,IAAI,CAACC,MAAM,EAAE;IAEb,MAAM;MACJC,QAAQ,GAAGV,WAAW,CAACC,IAAI;MAC3BU,QAAQ,GAAGR,WAAW,CAACF,IAAI;AAC3BW,MAAAA,IAAI,GAAG,IAAId,WAAW,EAAE;AACxBe,MAAAA,WAAW,GAAG;AAChB,KAAC,GAAGN,OAAO;;AAEX;AACA;IACA,IAAIO,cAAc,CAACJ,QAAQ,CAAC,EAAE,OAAOK,QAAQ,CAACC,YAAY;IAE1D,IAAI,CAACR,aAAa,CAACS,OAAO,EAAE,EAAE,OAAOF,QAAQ,CAACG,MAAM;AAEpD,IAAA,IAAIN,IAAI,CAACO,OAAO,GAAG,CAAC,EACpB;AACE;AACA;AACA,MAAA,IAAIC,OAAO,CAACV,QAAQ,EAAEV,WAAW,CAACqB,gBAAgB,CAAC,EAAE,OAAON,QAAQ,CAACC,YAAY;MAEjF,IAAIL,QAAQ,KAAKR,WAAW,CAACF,IAAI,EAAE,OAAOc,QAAQ,CAACC,YAAY;AAE/D,MAAA,IAAIV,IAAI,CAACgB,OAAO,EAAE,KAAKC,WAAW,CAACC,WAAW,EAAE,OAAOT,QAAQ,CAACC,YAAY;AAC9E,IAAA;IAEA,IAAIV,IAAI,CAACgB,OAAO,EAAE,KAAKC,WAAW,CAACC,WAAW,EAC9C;AACE;MACA,IAAIlB,IAAI,CAACgB,OAAO,EAAE,KAAKC,WAAW,CAACE,aAAa,EAChD;QACE,IAAInB,IAAI,CAACoB,YAAY,EAAE,KAAK,CAAC,EAAE,OAAOX,QAAQ,CAACC,YAAY;MAC7D,CAAC,MACI,IAAIV,IAAI,CAACoB,YAAY,EAAE,GAAG,CAAC,EAChC;QACE,OAAOX,QAAQ,CAACC,YAAY;AAC9B,MAAA;AACF,IAAA;AAEA,IAAA,IAAIV,IAAI,CAACgB,OAAO,EAAE,KAAKC,WAAW,CAACC,WAAW,IAAIJ,OAAO,CAACV,QAAQ,EAAEV,WAAW,CAAC2B,aAAa,CAAC,EAC9F;MACE,OAAOZ,QAAQ,CAACC,YAAY;AAC9B,IAAA;AAEA,IAAA,IAAIJ,IAAI,CAACO,OAAO,GAAG,CAAC,IAAIb,IAAI,CAACsB,eAAe,EAAE,GAAG,CAAC,EAAE,OAAOb,QAAQ,CAACC,YAAY;AAEhF,IAAA,IAAII,OAAO,CAACV,QAAQ,EAAEV,WAAW,CAAC6B,aAAa,CAAC,IAAIT,OAAO,CAACT,QAAQ,EAAER,WAAW,CAAC2B,KAAK,CAAC,EACxF;MACE,OAAOf,QAAQ,CAACC,YAAY;AAC9B,IAAA;AAEA,IAAA,IAAII,OAAO,CAACV,QAAQ,EAAEV,WAAW,CAAC2B,aAAa,CAAC,IAAIhB,QAAQ,KAAKR,WAAW,CAACF,IAAI,EACjF;MACE,OAAOc,QAAQ,CAACC,YAAY;AAC9B,IAAA;AAEA,IAAA,IAAII,OAAO,CAACV,QAAQ,EAAEV,WAAW,CAAC2B,aAAa,CAAC,IAAIrB,IAAI,CAACsB,eAAe,EAAE,GAAG,CAAC,EAC9E;MACE,OAAOb,QAAQ,CAACC,YAAY;AAC9B,IAAA;AAEA,IAAA,IAAIV,IAAI,CAACgB,OAAO,EAAE,KAAKC,WAAW,CAACQ,WAAW,IAAIpB,QAAQ,KAAKR,WAAW,CAACF,IAAI,EAC/E;MACE,OAAOc,QAAQ,CAACC,YAAY;AAC9B,IAAA;;AAEA;AACA;AACA;AACA;AACA,IAAA,IAAI,CAACgB,UAAU,CAACtB,QAAQ,CAAC,IAAI,CAACU,OAAO,CAACT,QAAQ,EAAER,WAAW,CAAC2B,KAAK,CAAC,IAAI,CAACjB,WAAW,EAClF;MACE,OAAOE,QAAQ,CAACC,YAAY;AAC9B,IAAA;IAEA,IAAI,CAACrB,KAAK,GAAGW,IAAI;IACjB,IAAI,CAACP,SAAS,GAAGW,QAAQ;IACzB,IAAI,CAACR,SAAS,GAAGS,QAAQ;IACzB,IAAI,CAACd,KAAK,GAAGe,IAAI;IAEjB,OAAOG,QAAQ,CAACkB,IAAI;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,UAAUA,GACV;IACE,OAAOnB,QAAQ,CAACG,MAAM;AACxB,EAAA;;AAEA;AACAT,EAAAA,MAAMA,GACN;AACE,IAAA,IAAI,CAACd,KAAK,GAAG,IAAIC,mBAAmB,EAAE;AACtC,IAAA,IAAI,CAACC,KAAK,GAAG,IAAIC,WAAW,EAAE;AAC9B,IAAA,IAAI,CAACC,SAAS,GAAGC,WAAW,CAACC,IAAI;AACjC,IAAA,IAAI,CAACC,SAAS,GAAGC,WAAW,CAACF,IAAI;IACjC,IAAI,CAACG,KAAK,GAAG,IAAI;AACnB,EAAA;;AAEA;AACA+B,EAAAA,OAAOA,GACP;IACE,IAAI,CAAC1B,MAAM,EAAE;IACb,KAAK,CAAC0B,OAAO,EAAE;AACjB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACElB,EAAAA,OAAOA,GACP;IACE,OAAO,IAAI,CAACtB,KAAK,CAACyC,QAAQ,EAAE,KAAK,CAAC;AACpC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,cAAcA,GACd;IACE,OAAOC,eAAe,CAACC,iBAAiB;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,OAAOA,GACP;IACE,OAAO,IAAI,CAAC7C,KAAK;AACnB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE8C,EAAAA,WAAWA,GACX;IACE,OAAO,IAAI,CAAC5C,KAAK;AACnB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE6C,EAAAA,WAAWA,GACX;IACE,OAAO,IAAI,CAAC3C,SAAS;AACvB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE4C,EAAAA,WAAWA,GACX;IACE,OAAO,IAAI,CAACzC,SAAS;AACvB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEkC,EAAAA,QAAQA,GACR;AACE,IAAA,OAAO,IAAI,CAACzC,KAAK,CAACyC,QAAQ,EAAE;AAC9B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEQ,EAAAA,SAASA,GACT;AACE,IAAA,OAAO,IAAI,CAACjD,KAAK,CAACiD,SAAS,EAAE;AAC/B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,QAAQA,GACR;AACE,IAAA,OAAO,IAAI,CAAClD,KAAK,CAACkD,QAAQ,EAAE;AAC9B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,WAAWA,GACX;AACE,IAAA,OAAO,IAAI,CAACnD,KAAK,CAACmD,WAAW,EAAE;AACjC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACElB,EAAAA,eAAeA,GACf;AACE,IAAA,OAAO,IAAI,CAACjC,KAAK,CAACiC,eAAe,EAAE;AACrC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEmB,EAAAA,SAASA,GACT;AACE,IAAA,OAAO,IAAI,CAACpD,KAAK,CAACoD,SAAS,EAAE;AAC/B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEzB,EAAAA,OAAOA,GACP;AACE,IAAA,OAAO,IAAI,CAAC3B,KAAK,CAAC2B,OAAO,EAAE;AAC7B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEI,EAAAA,YAAYA,GACZ;AACE,IAAA,OAAO,IAAI,CAAC/B,KAAK,CAAC+B,YAAY,EAAE;AAClC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEsB,UAAUA,CAACC,GAAG,EACd;AACE,IAAA,OAAO,IAAI,CAACtD,KAAK,CAACqD,UAAU,CAACC,GAAG,CAAC;AACnC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,aAAaA,CAACC,MAAM,EAAEC,WAAW,EAAE5C,aAAa,EAChD;AACE,IAAA,IAAI,CAACY,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAACkD,IAAI,CAAC,EAAE,OAAO;MAAEC,MAAM,EAAEvC,QAAQ,CAACwC,aAAa;AAAEC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;AAE/G,IAAA,IAAI,CAAC,IAAI,CAACxC,OAAO,EAAE,IAAI,CAACT,aAAa,CAACS,OAAO,EAAE,EAAE,OAAO;MAAEqC,MAAM,EAAEvC,QAAQ,CAACG,MAAM;AAAEsC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;IAEzG,IAAI,CAACN,MAAM,CAACO,gBAAgB,CAAC,IAAI,CAAC/D,KAAK,CAAC,EAAE,OAAO;MAAE2D,MAAM,EAAEvC,QAAQ,CAACC,YAAY;AAAEwC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;AAExG,IAAA,IAAI,CAACN,MAAM,CAACQ,mBAAmB,EAAE,EAAE,OAAO;MAAEL,MAAM,EAAEvC,QAAQ,CAACC,YAAY;AAAEwC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;AAEjG,IAAA,OAAO,IAAI,CAACG,SAAS,CAACT,MAAM,CAAC;AAC/B,EAAA;;AAEA;AACAU,EAAAA,eAAeA,GACf;IACE,IAAI,CAACC,kBAAkB,EAAE;AAC3B,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,aAAaA,CAACZ,MAAM,EAAE3C,aAAa,EACnC;AACE,IAAA,IAAI,CAACY,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAAC2B,KAAK,CAAC,EAAE,OAAO;MAAEwB,MAAM,EAAEvC,QAAQ,CAACwC,aAAa;AAAEC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;AAEhH,IAAA,IAAI,CAAC,IAAI,CAACxC,OAAO,EAAE,IAAI,CAACT,aAAa,CAACS,OAAO,EAAE,EAAE,OAAO;MAAEqC,MAAM,EAAEvC,QAAQ,CAACG,MAAM;AAAEsC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;IAEzG,IAAI,CAACN,MAAM,CAACO,gBAAgB,CAAC,IAAI,CAAC/D,KAAK,CAAC,EAAE,OAAO;MAAE2D,MAAM,EAAEvC,QAAQ,CAACC,YAAY;AAAEwC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;AAExG,IAAA,IAAI,CAACN,MAAM,CAACQ,mBAAmB,EAAE,EAAE,OAAO;MAAEL,MAAM,EAAEvC,QAAQ,CAACC,YAAY;AAAEwC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;;AAEjG;AACA;AACA,IAAA,IAAIN,MAAM,CAACa,MAAM,EAAE,IAAIC,kBAAkB,CAAC,IAAI,CAACtE,KAAK,CAACoD,SAAS,EAAE,CAAC,EACjE;MACE,OAAO;QAAEO,MAAM,EAAEvC,QAAQ,CAACC,YAAY;AAAEwC,QAAAA,IAAI,EAAE,IAAI;AAAEC,QAAAA,KAAK,EAAE;OAAG;AAChE,IAAA;AAEA,IAAA,OAAO,IAAI,CAACG,SAAS,CAACT,MAAM,CAAC;AAC/B,EAAA;;AAEA;AACAe,EAAAA,eAAeA,GACf;IACE,IAAI,CAACJ,kBAAkB,EAAE;AAC3B,EAAA;;AAEA;EACAF,SAASA,CAACT,MAAM,EAChB;IACE,MAAMM,KAAK,GAAG,IAAI,CAAC9D,KAAK,CAACwE,WAAW,CAAChB,MAAM,CAACiB,eAAe,CAAC;AAC5D,IAAA,MAAMC,IAAI,GAAGZ,KAAK,GAAG,IAAI,CAAC9D,KAAK,CAAC2E,YAAY,CAACnB,MAAM,CAACiB,eAAe,CAAC;IAEpE,IAAI,IAAI,CAAChE,KAAK,KAAK,IAAI,IAAI,IAAI,CAACA,KAAK,CAACmE,MAAM,KAAKF,IAAI,EAAE,IAAI,CAACjE,KAAK,GAAG,IAAIoE,UAAU,CAACH,IAAI,CAAC;;AAExF;AACA;IACA,IAAI,IAAI,CAACjE,KAAK,CAACmE,MAAM,KAAK,CAAC,EAAE,OAAO;MAAEjB,MAAM,EAAEvC,QAAQ,CAACG,MAAM;AAAEsC,MAAAA,IAAI,EAAE,IAAI;AAAEC,MAAAA,KAAK,EAAE;KAAG;IAErF,OAAO;MAAEH,MAAM,EAAEvC,QAAQ,CAACkB,IAAI;MAAEuB,IAAI,EAAE,IAAI,CAACpD,KAAK;AAAEqD,MAAAA;KAAO;AAC3D,EAAA;;AAEA;AACAK,EAAAA,kBAAkBA,GAClB;IACE,IAAI,CAAC1C,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAACsE,UAAU,CAAC,IAAI,CAACrD,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAACuE,WAAW,CAAC,EACzG;MACE,IAAI,CAACtE,KAAK,GAAG,IAAI;AACnB,IAAA;AACF,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEuE,iBAAiBA,CAACxB,MAAM,EAAEyB,MAAM,EAAEnB,KAAK,EAAEoB,UAAU,EAAErE,aAAa,EAClE;AACE,IAAA,IAAIY,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAACuE,WAAW,CAAC,EAAE,OAAO3D,QAAQ,CAACwC,aAAa;IAEnF,IAAI,CAACnC,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAAC2B,KAAK,CAAC,IAAI,CAACE,UAAU,CAAC,IAAI,CAACjC,SAAS,CAAC,EAAE,OAAOgB,QAAQ,CAACwC,aAAa;AAE7G,IAAA,IAAI,CAAC,IAAI,CAACtC,OAAO,EAAE,IAAI,CAACT,aAAa,CAACS,OAAO,EAAE,EAAE,OAAOF,QAAQ,CAACwC,aAAa;AAE9E,IAAA,IAAI,CAACJ,MAAM,CAACO,gBAAgB,CAAC,IAAI,CAAC/D,KAAK,CAAC,EAAE,OAAOoB,QAAQ,CAACC,YAAY;IAEtE,IAAI,CAACmC,MAAM,CAACQ,mBAAmB,EAAE,EAAE,OAAO5C,QAAQ,CAACC,YAAY;IAE/D,OAAOD,QAAQ,CAACkB,IAAI;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE6C,qBAAqBA,CAACC,eAAe,EAAEH,MAAM,EAAEI,iBAAiB,EAAExE,aAAa,EAC/E;AACE,IAAA,IAAI,CAAC,IAAI,CAACS,OAAO,EAAE,IAAI,CAACT,aAAa,CAACS,OAAO,EAAE,EAAE,OAAOF,QAAQ,CAACwC,aAAa;IAE9E,IAAI,CAACqB,MAAM,CAAC3D,OAAO,EAAE,EAAE,OAAOF,QAAQ,CAACC,YAAY;IAEnD,IAAI,CAACI,OAAO,CAAC,IAAI,CAAClB,SAAS,EAAEC,WAAW,CAAC2B,KAAK,CAAC,IAAI,CAACE,UAAU,CAAC,IAAI,CAACjC,SAAS,CAAC,EAAE,OAAOgB,QAAQ,CAACwC,aAAa;AAE7G,IAAA,IAAIwB,eAAe,CAACE,iBAAiB,CAAC,IAAI,CAACtF,KAAK,CAAC,IAAIqF,iBAAiB,CAACC,iBAAiB,CAACL,MAAM,CAACpC,OAAO,EAAE,CAAC,EAC1G;MACE,OAAOzB,QAAQ,CAACkB,IAAI;AACtB,IAAA;;AAEA;AACA;AACA,IAAA,MAAMiD,GAAG,GAAGC,UAAU,CAACH,iBAAiB,CAAC;AACzC,IAAA,MAAMI,GAAG,GAAGD,UAAU,CAACJ,eAAe,CAAC;IAEvC,IAAI,CAACM,IAAI,CAACH,GAAG,EAAEN,MAAM,CAACpC,OAAO,EAAE,EAAE4C,GAAG,EAAE,IAAI,CAACzF,KAAK,CAAC,EAAE,OAAOoB,QAAQ,CAACG,MAAM;IAEzE,OAAOH,QAAQ,CAACkB,IAAI;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACEqD,EAAAA,eAAeA,GACf;IACE,IAAI,CAAClE,OAAO,CAAC,IAAI,CAACrB,SAAS,EAAEC,WAAW,CAAC6B,aAAa,CAAC,IAAI,CAACT,OAAO,CAAC,IAAI,CAACrB,SAAS,EAAEC,WAAW,CAACuF,eAAe,CAAC,EAChH;MACE,OAAOxE,QAAQ,CAACwC,aAAa;AAC/B,IAAA;IAEA,OAAOxC,QAAQ,CAACkB,IAAI;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACEuD,EAAAA,OAAOA,CAACC,WAAW,EAAEjF,aAAa,EAClC;AACE,IAAA,IAAI,IAAI,CAACX,KAAK,CAACsB,OAAO,IAAI,CAAC,EAC3B;AACE,MAAA,OAAOsE,WAAW,CAACX,qBAAqB,CACtC,IAAIY,qBAAqB,EAAE,EAC3B,IAAI,EACJ,IAAIA,qBAAqB,EAAE,EAC3BlF,aACF,CAAC;AACH,IAAA;AAEA,IAAA,IAAI,CAAC,IAAI,CAACS,OAAO,EAAE,IAAI,CAACT,aAAa,CAACS,OAAO,EAAE,EAAE,OAAOF,QAAQ,CAACwC,aAAa;IAE9E,IAAI,CAACkC,WAAW,CAACxE,OAAO,EAAE,EAAE,OAAOF,QAAQ,CAACC,YAAY;IAExD,IAAI,CAACI,OAAO,CAACqE,WAAW,CAAC9C,WAAW,EAAE,EAAExC,WAAW,CAAC2B,KAAK,CAAC,IAAI,CAACE,UAAU,CAACyD,WAAW,CAAC/C,WAAW,EAAE,CAAC,EACpG;MACE,OAAO3B,QAAQ,CAACC,YAAY;AAC9B,IAAA;IAEA,IAAI,IAAI,CAACrB,KAAK,CAACyC,QAAQ,EAAE,KAAKqD,WAAW,CAACrD,QAAQ,EAAE,IAAI,IAAI,CAACzC,KAAK,CAACiD,SAAS,EAAE,KAAK6C,WAAW,CAAC7C,SAAS,EAAE,EAC1G;MACE,OAAO7B,QAAQ,CAACC,YAAY;AAC9B,IAAA;AAEA,IAAA,IAAI,IAAI,CAACrB,KAAK,CAACoD,SAAS,EAAE,KAAK0C,WAAW,CAAC1C,SAAS,EAAE,EAAE,OAAOhC,QAAQ,CAACC,YAAY;AAEpF,IAAA,IAAIyE,WAAW,CAAChD,WAAW,EAAE,CAACtB,OAAO,GAAG,CAAC,EAAE,OAAOJ,QAAQ,CAACC,YAAY;IAEvE,OAAOD,QAAQ,CAACkB,IAAI;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE0D,EAAAA,eAAeA,GACf;AACE,IAAA,OAAO,CAAC;AACV,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEC,EAAAA,iBAAiBA,GACjB;AACE,IAAA,OAAOpG,aAAa;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEqG,EAAAA,iBAAiBA,GACjB;AACE,IAAA,OAAOrG,aAAa;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEsG,OAAOA,CAACC,KAAK,EACb;IACE,OAAOhF,QAAQ,CAACkB,IAAI;AACtB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACE+D,EAAAA,OAAOA,GACP;AACE,IAAA,OAAO,IAAI;AACb,EAAA;AACF;;AAGA;AACA;AACA;AACA;AACA;AACA;AACO,SAASb,UAAUA,CAAChC,MAAM,EACjC;AACE,EAAA,MAAM8C,IAAI,GAAG,IAAIP,qBAAqB,EAAE;AAExCO,EAAAA,IAAI,CAACC,WAAW,GAAG/C,MAAM,CAAC+C,WAAW;AACrCD,EAAAA,IAAI,CAACE,SAAS,GAAGhD,MAAM,CAACgD,SAAS;AACjCF,EAAAA,IAAI,CAAC7B,eAAe,GAAGjB,MAAM,CAACiB,eAAe;AAC7C6B,EAAAA,IAAI,CAACG,aAAa,GAAGjD,MAAM,CAACiD,aAAa;EACzCH,IAAI,CAACI,KAAK,CAACC,IAAI,GAAGnD,MAAM,CAACkD,KAAK,CAACC,IAAI;EACnCL,IAAI,CAACI,KAAK,CAACE,GAAG,GAAGpD,MAAM,CAACkD,KAAK,CAACE,GAAG;EACjCN,IAAI,CAACI,KAAK,CAACG,KAAK,GAAGrD,MAAM,CAACkD,KAAK,CAACG,KAAK;EACrCP,IAAI,CAACI,KAAK,CAACI,KAAK,GAAGtD,MAAM,CAACkD,KAAK,CAACI,KAAK;EACrCR,IAAI,CAACI,KAAK,CAACK,MAAM,GAAGvD,MAAM,CAACkD,KAAK,CAACK,MAAM;EACvCT,IAAI,CAACI,KAAK,CAACM,IAAI,GAAGxD,MAAM,CAACkD,KAAK,CAACM,IAAI;AAEnC,EAAA,OAAOV,IAAI;AACb;;;;"}
1
+ {"version":3,"file":"Tr2TextureALStub.js","sources":["../../../../src/trinityal/stub/Tr2TextureALStub.js"],"sourcesContent":["// Source: trinity/trinityal/stub/Tr2TextureALStub.cpp\r\n// Source: trinity/trinityal/stub/Tr2TextureALStub.h\r\n// Source: trinity/trinityal/include/Tr2TextureAL.h\r\n//\r\n// The GPU-free texture, ported from the one Carbon already ships.\r\n//\r\n// WHY THIS IS WORTH TRANSCRIBING RATHER THAN SUMMARISING. Carbon's stub texture\r\n// refuses thirteen distinct combinations of description, GPU usage and CPU\r\n// usage before it will call itself created - multisampled with unordered\r\n// access, a cube with anything but six faces, a depth stencil with mips, a\r\n// volume texture the CPU can touch, and so on. Each of those is a rule a real\r\n// backend enforces too, and each one is a bug we would otherwise find on a GPU\r\n// months later, in a form that looks like a driver problem rather than like a\r\n// texture we should never have asked for.\r\n//\r\n// So the validation IS the port. The allocation behind it is real as well: a\r\n// map returns a genuine buffer of the right pitch, so a caller reading pixels\r\n// back headless reads the shape it would read on a device.\r\n//\r\n// THREE LANGUAGE DIFFERENCES.\r\n//\r\n// - Carbon has six `Create` overloads over one implementation; this takes the\r\n// implementation's arguments, with the optional ones in a description object.\r\n// - Carbon's map functions return the result and hand back the pointer and the\r\n// pitch through reference arguments. JavaScript has no reference arguments,\r\n// so they return `{ result, data, pitch }`.\r\n// - Carbon's impl-level `Destroy` only resets the fields, because the registry\r\n// entry goes when the C++ destructor runs. Ours must also unregister, so the\r\n// reset lives in a private helper that `Create` calls and `Destroy` calls the\r\n// base as well. See the head comment on `Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js`.\r\n//\r\n// TWO FAITHFUL EMPTINESSES, worth knowing before relying on them: Carbon's stub\r\n// implements `Describe` as a no-op and returns null from `GetName`, so a stub\r\n// texture contributes nothing to a device inventory. That is transcribed, not\r\n// overlooked - a backend that reports real names is a real backend.\r\n\r\nimport { CjsSchema } from \"#schema\";\r\nimport { Tr2ALMemoryType, Tr2DeviceResourceAL } from \"../Tr2DeviceResourceAL/index.js\";\r\nimport { ALResult } from \"../ALResult.js\";\r\nimport { Tr2BitmapDimensions } from \"../Tr2BitmapDimensions.js\";\r\nimport { Crop, Tr2MsaaDesc, Tr2TextureSubresource } from \"../Tr2HalHelperStructures/index.js\";\r\nimport {\r\n IsCompressedFormat,\r\n HasBufferFlags,\r\n HasFlag,\r\n IsWritable,\r\n TextureType,\r\n Tr2CpuUsage,\r\n Tr2GpuUsage\r\n} from \"../../global/consts/renderContext/index.js\";\r\n\r\n\r\n/** Carbon's \"no descriptor heap index\", returned by both heap accessors. */\r\nconst NO_HEAP_INDEX = 0xffffffff;\r\n\r\n\r\n/**\r\n * A texture that validates like a real one and holds its pixels on the CPU.\r\n */\r\nexport class Tr2TextureALStub extends Tr2DeviceResourceAL\r\n{\r\n /** m_desc */\r\n _desc = new Tr2BitmapDimensions();\r\n\r\n /** m_msaa */\r\n _msaa = new Tr2MsaaDesc();\r\n\r\n /** m_gpuUsage */\r\n _gpuUsage = Tr2GpuUsage.NONE;\r\n\r\n /** m_cpuUsage */\r\n _cpuUsage = Tr2CpuUsage.NONE;\r\n\r\n /** m_data - allocated on first map, released on unmap unless kept \"often\". */\r\n _data = null;\r\n\r\n /**\r\n * Creates the texture.\r\n *\r\n * Every refusal below is Carbon's, in Carbon's order\r\n * (`Tr2TextureALStub.cpp:18-95`).\r\n *\r\n * @param {Tr2BitmapDimensions} desc The texture description.\r\n * @param {object} options Creation options.\r\n * @param {number} [options.gpuUsage] A `Tr2GpuUsage` bit set.\r\n * @param {number} [options.cpuUsage] A `Tr2CpuUsage` bit set.\r\n * @param {Tr2MsaaDesc} [options.msaa] Multisample description.\r\n * @param {object[]} [options.initialData] Initial subresource data, if any.\r\n * @param {object} renderContext The context to create against.\r\n * @returns {number} An `ALResult` value.\r\n */\r\n Create(desc, options, renderContext)\r\n {\r\n this._Reset();\r\n\r\n const {\r\n gpuUsage = Tr2GpuUsage.NONE,\r\n cpuUsage = Tr2CpuUsage.NONE,\r\n msaa = new Tr2MsaaDesc(),\r\n initialData = null\r\n } = options;\r\n\r\n // A texture is not a buffer. Asking for one with vertex or index usage is\r\n // a mixed-up call, not a capability question.\r\n if (HasBufferFlags(gpuUsage)) return ALResult.E_INVALIDARG;\r\n\r\n if (!renderContext.IsValid()) return ALResult.E_FAIL;\r\n\r\n if (msaa.samples > 1)\r\n {\r\n // Multisampled resources cannot be written by a compute shader, cannot\r\n // be reached by the CPU, and only exist as 2D.\r\n if (HasFlag(gpuUsage, Tr2GpuUsage.UNORDERED_ACCESS)) return ALResult.E_INVALIDARG;\r\n\r\n if (cpuUsage !== Tr2CpuUsage.NONE) return ALResult.E_INVALIDARG;\r\n\r\n if (desc.GetType() !== TextureType.TEX_TYPE_2D) return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (desc.GetType() !== TextureType.TEX_TYPE_2D)\r\n {\r\n // A cube is exactly six faces; nothing else that is not 2D is an array.\r\n if (desc.GetType() === TextureType.TEX_TYPE_CUBE)\r\n {\r\n if (desc.GetArraySize() !== 6) return ALResult.E_INVALIDARG;\r\n }\r\n else if (desc.GetArraySize() > 1)\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n }\r\n\r\n if (desc.GetType() !== TextureType.TEX_TYPE_2D && HasFlag(gpuUsage, Tr2GpuUsage.DEPTH_STENCIL))\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (msaa.samples > 1 && desc.GetTrueMipCount() > 1) return ALResult.E_INVALIDARG;\r\n\r\n if (HasFlag(gpuUsage, Tr2GpuUsage.RENDER_TARGET) && HasFlag(cpuUsage, Tr2CpuUsage.WRITE))\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (HasFlag(gpuUsage, Tr2GpuUsage.DEPTH_STENCIL) && cpuUsage !== Tr2CpuUsage.NONE)\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (HasFlag(gpuUsage, Tr2GpuUsage.DEPTH_STENCIL) && desc.GetTrueMipCount() > 1)\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (desc.GetType() === TextureType.TEX_TYPE_3D && cpuUsage !== Tr2CpuUsage.NONE)\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n // THE LAST ONE IS THE USEFUL ONE. A texture nothing can ever write - not\r\n // the GPU, not the CPU - and that arrives with no pixels is a texture that\r\n // will sample black forever. Carbon refuses it at creation rather than\r\n // letting it draw nothing.\r\n if (!IsWritable(gpuUsage) && !HasFlag(cpuUsage, Tr2CpuUsage.WRITE) && !initialData)\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n this._desc = desc;\r\n this._gpuUsage = gpuUsage;\r\n this._cpuUsage = cpuUsage;\r\n this._msaa = msaa;\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /**\r\n * Adopts a texture shared by another device.\r\n *\r\n * Carbon's stub refuses: sharing needs a real device on both sides.\r\n *\r\n * @returns {number} An `ALResult` value.\r\n */\r\n OpenShared()\r\n {\r\n return ALResult.E_FAIL;\r\n }\r\n\r\n /** Carbon's impl `Destroy`: clears the description without unregistering. */\r\n _Reset()\r\n {\r\n this._desc = new Tr2BitmapDimensions();\r\n this._msaa = new Tr2MsaaDesc();\r\n this._gpuUsage = Tr2GpuUsage.NONE;\r\n this._cpuUsage = Tr2CpuUsage.NONE;\r\n this._data = null;\r\n }\r\n\r\n /** Releases the texture and leaves the device-resource registry. */\r\n Destroy()\r\n {\r\n this._Reset();\r\n super.Destroy();\r\n }\r\n\r\n /**\r\n * Whether the texture holds anything.\r\n *\r\n * Carbon's test is the width, because a created texture always has one.\r\n *\r\n * @returns {boolean} True when created.\r\n */\r\n IsValid()\r\n {\r\n return this._desc.GetWidth() !== 0;\r\n }\r\n\r\n /**\r\n * Which memory class this texture occupies.\r\n *\r\n * @returns {number} A `Tr2ALMemoryType` value.\r\n */\r\n GetMemoryClass()\r\n {\r\n return Tr2ALMemoryType.AL_MEMORY_MANAGED;\r\n }\r\n\r\n /**\r\n * The texture description.\r\n *\r\n * @returns {Tr2BitmapDimensions} The description.\r\n */\r\n GetDesc()\r\n {\r\n return this._desc;\r\n }\r\n\r\n /**\r\n * The multisample description.\r\n *\r\n * @returns {Tr2MsaaDesc} The description.\r\n */\r\n GetMsaaDesc()\r\n {\r\n return this._msaa;\r\n }\r\n\r\n /**\r\n * The GPU usage this texture was created with.\r\n *\r\n * @returns {number} A `Tr2GpuUsage` bit set.\r\n */\r\n GetGpuUsage()\r\n {\r\n return this._gpuUsage;\r\n }\r\n\r\n /**\r\n * The CPU usage this texture was created with.\r\n *\r\n * @returns {number} A `Tr2CpuUsage` bit set.\r\n */\r\n GetCpuUsage()\r\n {\r\n return this._cpuUsage;\r\n }\r\n\r\n /**\r\n * Width of mip zero.\r\n *\r\n * @returns {number} Width in pixels.\r\n */\r\n GetWidth()\r\n {\r\n return this._desc.GetWidth();\r\n }\r\n\r\n /**\r\n * Height of mip zero.\r\n *\r\n * @returns {number} Height in pixels.\r\n */\r\n GetHeight()\r\n {\r\n return this._desc.GetHeight();\r\n }\r\n\r\n /**\r\n * Volume depth.\r\n *\r\n * @returns {number} Depth in slices.\r\n */\r\n GetDepth()\r\n {\r\n return this._desc.GetDepth();\r\n }\r\n\r\n /**\r\n * The declared mip count.\r\n *\r\n * @returns {number} Mip levels as declared.\r\n */\r\n GetMipCount()\r\n {\r\n return this._desc.GetMipCount();\r\n }\r\n\r\n /**\r\n * The mip count in effect.\r\n *\r\n * @returns {number} Mip levels.\r\n */\r\n GetTrueMipCount()\r\n {\r\n return this._desc.GetTrueMipCount();\r\n }\r\n\r\n /**\r\n * The pixel format.\r\n *\r\n * @returns {number} A `PixelFormat` value.\r\n */\r\n GetFormat()\r\n {\r\n return this._desc.GetFormat();\r\n }\r\n\r\n /**\r\n * The texture type.\r\n *\r\n * @returns {number} A `TextureType` value.\r\n */\r\n GetType()\r\n {\r\n return this._desc.GetType();\r\n }\r\n\r\n /**\r\n * Slices in the array.\r\n *\r\n * @returns {number} Array size.\r\n */\r\n GetArraySize()\r\n {\r\n return this._desc.GetArraySize();\r\n }\r\n\r\n /**\r\n * Bytes in one mip.\r\n *\r\n * @param {number} mip Mip level.\r\n * @returns {number} Size in bytes.\r\n */\r\n GetMipSize(mip)\r\n {\r\n return this._desc.GetMipSize(mip);\r\n }\r\n\r\n /**\r\n * Allocates and returns the storage for one subresource, for reading.\r\n *\r\n * The CPU-read check comes FIRST, before validity, because a texture that\r\n * was never created for reading is a caller mistake rather than a state\r\n * problem - which is why it answers `E_INVALIDCALL` and not `E_FAIL`.\r\n *\r\n * @param {Tr2TextureSubresource} region The subresource to map.\r\n * @param {boolean} synchronize Whether to wait for outstanding GPU work.\r\n * @param {object} renderContext The context to map against.\r\n * @returns {{result: number, data: Uint8Array|null, pitch: number}} The mapping.\r\n */\r\n MapForReading(region, synchronize, renderContext)\r\n {\r\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.READ)) return { result: ALResult.E_INVALIDCALL, data: null, pitch: 0 };\r\n\r\n if (!this.IsValid() || !renderContext.IsValid()) return { result: ALResult.E_FAIL, data: null, pitch: 0 };\r\n\r\n if (!region.IsValidForBitmap(this._desc)) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\r\n\r\n if (!region.IsSingleSubresource()) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\r\n\r\n return this._Allocate(region);\r\n }\r\n\r\n /** Releases a read mapping, keeping the buffer only for an \"often\" usage. */\r\n UnmapForReading()\r\n {\r\n this._ReleaseUnlessKept();\r\n }\r\n\r\n /**\r\n * Allocates and returns the storage for one subresource, for writing.\r\n *\r\n * @param {Tr2TextureSubresource} region The subresource to map.\r\n * @param {object} renderContext The context to map against.\r\n * @returns {{result: number, data: Uint8Array|null, pitch: number}} The mapping.\r\n */\r\n MapForWriting(region, renderContext)\r\n {\r\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE)) return { result: ALResult.E_INVALIDCALL, data: null, pitch: 0 };\r\n\r\n if (!this.IsValid() || !renderContext.IsValid()) return { result: ALResult.E_FAIL, data: null, pitch: 0 };\r\n\r\n if (!region.IsValidForBitmap(this._desc)) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\r\n\r\n if (!region.IsSingleSubresource()) return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\r\n\r\n // A partial write into a block format would land mid-block, so Carbon\r\n // refuses a box on a compressed texture rather than rounding it.\r\n if (region.HasBox() && IsCompressedFormat(this._desc.GetFormat()))\r\n {\r\n return { result: ALResult.E_INVALIDARG, data: null, pitch: 0 };\r\n }\r\n\r\n return this._Allocate(region);\r\n }\r\n\r\n /** Releases a write mapping, keeping the buffer only for an \"often\" usage. */\r\n UnmapForWriting()\r\n {\r\n this._ReleaseUnlessKept();\r\n }\r\n\r\n /** Sizes the CPU buffer to one mip of the region and hands it back. */\r\n _Allocate(region)\r\n {\r\n const pitch = this._desc.GetMipPitch(region.m_startMipLevel);\r\n const size = pitch * this._desc.GetMipHeight(region.m_startMipLevel);\r\n\r\n if (this._data === null || this._data.length !== size) this._data = new Uint8Array(size);\r\n\r\n // Carbon fails an allocation that came back empty; here that means a mip\r\n // whose pitch or height is zero, which is a region past the chain.\r\n if (this._data.length === 0) return { result: ALResult.E_FAIL, data: null, pitch: 0 };\r\n\r\n return { result: ALResult.S_OK, data: this._data, pitch };\r\n }\r\n\r\n /** Carbon keeps the buffer only when the usage says mapping is frequent. */\r\n _ReleaseUnlessKept()\r\n {\r\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.READ_OFTEN) && !HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE_OFTEN))\r\n {\r\n this._data = null;\r\n }\r\n }\r\n\r\n /**\r\n * Writes pixels into one subresource.\r\n *\r\n * A texture mapped often is written through a map, not through this, so\r\n * Carbon refuses `WRITE_OFTEN` here outright.\r\n *\r\n * @param {Tr2TextureSubresource} region The subresource to write.\r\n * @param {ArrayBufferView} source The pixels.\r\n * @param {number} pitch Bytes per row in the source.\r\n * @param {number} slicePitch Bytes per slice in the source.\r\n * @param {object} renderContext The context to write against.\r\n * @returns {number} An `ALResult` value.\r\n */\r\n UpdateSubresource(region, source, pitch, slicePitch, renderContext)\r\n {\r\n if (HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE_OFTEN)) return ALResult.E_INVALIDCALL;\r\n\r\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE) && !IsWritable(this._gpuUsage)) return ALResult.E_INVALIDCALL;\r\n\r\n if (!this.IsValid() || !renderContext.IsValid()) return ALResult.E_INVALIDCALL;\r\n\r\n if (!region.IsValidForBitmap(this._desc)) return ALResult.E_INVALIDARG;\r\n\r\n if (!region.IsSingleSubresource()) return ALResult.E_INVALIDARG;\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /**\r\n * Copies a region from another texture.\r\n *\r\n * A whole-to-whole copy short-circuits; anything else must survive `Crop`,\r\n * which is where a mismatched face count or an empty overlap is caught.\r\n *\r\n * @param {Tr2TextureSubresource} destSubresource The region to write.\r\n * @param {Tr2TextureALStub} source The texture to read.\r\n * @param {Tr2TextureSubresource} sourceSubresource The region to read.\r\n * @param {object} renderContext The context to copy against.\r\n * @returns {number} An `ALResult` value.\r\n */\r\n CopySubresourceRegion(destSubresource, source, sourceSubresource, renderContext)\r\n {\r\n if (!this.IsValid() || !renderContext.IsValid()) return ALResult.E_INVALIDCALL;\r\n\r\n if (!source.IsValid()) return ALResult.E_INVALIDARG;\r\n\r\n if (!HasFlag(this._cpuUsage, Tr2CpuUsage.WRITE) && !IsWritable(this._gpuUsage)) return ALResult.E_INVALIDCALL;\r\n\r\n if (destSubresource.IsSubresourceFull(this._desc) && sourceSubresource.IsSubresourceFull(source.GetDesc()))\r\n {\r\n return ALResult.S_OK;\r\n }\r\n\r\n // Crop mutates, so both regions are copied first - Carbon takes them by\r\n // value here and a caller's region must survive the call unchanged.\r\n const src = CopyRegion(sourceSubresource);\r\n const dst = CopyRegion(destSubresource);\r\n\r\n if (!Crop(src, source.GetDesc(), dst, this._desc)) return ALResult.E_FAIL;\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /**\r\n * Regenerates the mip chain.\r\n *\r\n * Only a texture that is both a render target and a shader resource can be\r\n * generated into, because that is how the hardware does it.\r\n *\r\n * @returns {number} An `ALResult` value.\r\n */\r\n GenerateMipMaps()\r\n {\r\n if (!HasFlag(this._gpuUsage, Tr2GpuUsage.RENDER_TARGET) || !HasFlag(this._gpuUsage, Tr2GpuUsage.SHADER_RESOURCE))\r\n {\r\n return ALResult.E_INVALIDCALL;\r\n }\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /**\r\n * Resolves a multisampled texture into a single-sampled one.\r\n *\r\n * With one sample there is nothing to resolve, so Carbon falls back to a\r\n * plain copy - and inherits that copy's validation with it.\r\n *\r\n * @param {Tr2TextureALStub} destination The texture to resolve into.\r\n * @param {object} renderContext The context to resolve against.\r\n * @returns {number} An `ALResult` value.\r\n */\r\n Resolve(destination, renderContext)\r\n {\r\n if (this._msaa.samples <= 1)\r\n {\r\n return destination.CopySubresourceRegion(\r\n new Tr2TextureSubresource(),\r\n this,\r\n new Tr2TextureSubresource(),\r\n renderContext\r\n );\r\n }\r\n\r\n if (!this.IsValid() || !renderContext.IsValid()) return ALResult.E_INVALIDCALL;\r\n\r\n if (!destination.IsValid()) return ALResult.E_INVALIDARG;\r\n\r\n if (!HasFlag(destination.GetCpuUsage(), Tr2CpuUsage.WRITE) && !IsWritable(destination.GetGpuUsage()))\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (this._desc.GetWidth() !== destination.GetWidth() || this._desc.GetHeight() !== destination.GetHeight())\r\n {\r\n return ALResult.E_INVALIDARG;\r\n }\r\n\r\n if (this._desc.GetFormat() !== destination.GetFormat()) return ALResult.E_INVALIDARG;\r\n\r\n if (destination.GetMsaaDesc().samples > 1) return ALResult.E_INVALIDARG;\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /**\r\n * The handle another device could open this texture by.\r\n *\r\n * @returns {number} Always zero; the stub shares nothing.\r\n */\r\n GetSharedHandle()\r\n {\r\n return 0;\r\n }\r\n\r\n /**\r\n * Where the shader-resource view sits in the descriptor heap.\r\n *\r\n * @returns {number} Carbon's \"no index\".\r\n */\r\n GetSrvIndexInHeap()\r\n {\r\n return NO_HEAP_INDEX;\r\n }\r\n\r\n /**\r\n * Where the unordered-access view sits in the descriptor heap.\r\n *\r\n * @returns {number} Carbon's \"no index\".\r\n */\r\n GetUavIndexInHeap()\r\n {\r\n return NO_HEAP_INDEX;\r\n }\r\n\r\n /**\r\n * Names the texture for a debugger.\r\n *\r\n * @param {string} _name The name Carbon would attach; the stub discards it.\r\n * @returns {number} An `ALResult` value; the stub keeps no name.\r\n */\r\n SetName(_name)\r\n {\r\n return ALResult.S_OK;\r\n }\r\n\r\n /**\r\n * The debug name.\r\n *\r\n * @returns {null} Always null, as Carbon's stub returns.\r\n */\r\n GetName()\r\n {\r\n return null;\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Copies a subresource region, so a call that crops does not alter its caller.\r\n *\r\n * @param {Tr2TextureSubresource} region The region to copy.\r\n * @returns {Tr2TextureSubresource} An independent copy.\r\n */\r\nexport function CopyRegion(region)\r\n{\r\n const copy = new Tr2TextureSubresource();\r\n\r\n copy.m_startFace = region.m_startFace;\r\n copy.m_endFace = region.m_endFace;\r\n copy.m_startMipLevel = region.m_startMipLevel;\r\n copy.m_endMipLevel = region.m_endMipLevel;\r\n copy.m_box.left = region.m_box.left;\r\n copy.m_box.top = region.m_box.top;\r\n copy.m_box.front = region.m_box.front;\r\n copy.m_box.right = region.m_box.right;\r\n copy.m_box.bottom = region.m_box.bottom;\r\n copy.m_box.back = region.m_box.back;\r\n\r\n return copy;\r\n}\r\n\r\n// DECLARED AS A CALL, NOT A DECORATOR, for the reason recorded in\r\n// Tr2BitmapDimensions.js: the layer is imported straight from source by its\r\n// tests and raw Node cannot parse decorator syntax.\r\n//\r\n// The donor is NAMED rather than left to be derived from this class's name.\r\n// Carbon calls every backend's class the same thing and carries the backend in\r\n// the FILE name, because only one backend compiles at a time; we ship them\r\n// together, so the backend moves onto the class name. That divergence is the\r\n// author's to declare, never a checker's to guess.\r\nCjsSchema.define(Tr2TextureALStub, { className: \"Tr2TextureALStub\", carbon: \"Tr2TextureAL\" });\r\n"],"names":["NO_HEAP_INDEX","Tr2TextureALStub","Tr2DeviceResourceAL","_desc","Tr2BitmapDimensions","_msaa","Tr2MsaaDesc","_gpuUsage","Tr2GpuUsage","NONE","_cpuUsage","Tr2CpuUsage","_data","Create","desc","options","renderContext","_Reset","gpuUsage","cpuUsage","msaa","initialData","HasBufferFlags","ALResult","E_INVALIDARG","IsValid","E_FAIL","samples","HasFlag","UNORDERED_ACCESS","GetType","TextureType","TEX_TYPE_2D","TEX_TYPE_CUBE","GetArraySize","DEPTH_STENCIL","GetTrueMipCount","RENDER_TARGET","WRITE","TEX_TYPE_3D","IsWritable","S_OK","OpenShared","Destroy","GetWidth","GetMemoryClass","Tr2ALMemoryType","AL_MEMORY_MANAGED","GetDesc","GetMsaaDesc","GetGpuUsage","GetCpuUsage","GetHeight","GetDepth","GetMipCount","GetFormat","GetMipSize","mip","MapForReading","region","synchronize","READ","result","E_INVALIDCALL","data","pitch","IsValidForBitmap","IsSingleSubresource","_Allocate","UnmapForReading","_ReleaseUnlessKept","MapForWriting","HasBox","IsCompressedFormat","UnmapForWriting","GetMipPitch","m_startMipLevel","size","GetMipHeight","length","Uint8Array","READ_OFTEN","WRITE_OFTEN","UpdateSubresource","source","slicePitch","CopySubresourceRegion","destSubresource","sourceSubresource","IsSubresourceFull","src","CopyRegion","dst","Crop","GenerateMipMaps","SHADER_RESOURCE","Resolve","destination","Tr2TextureSubresource","GetSharedHandle","GetSrvIndexInHeap","GetUavIndexInHeap","SetName","_name","GetName","copy","m_startFace","m_endFace","m_endMipLevel","m_box","left","top","front","right","bottom","back","CjsSchema","define","className","carbon"],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import { Tr2BaseDeviceResourceAL, Tr2ALMemoryType } from '../Tr2DeviceResourceAL.js';
1
+ import { CjsSchema } from '#schema';
2
+ import { Tr2ALMemoryType } from '../Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js';
3
+ import { Tr2DeviceResourceAL } from '../Tr2DeviceResourceAL/Tr2DeviceResourceAL.js';
2
4
  import { ALResult } from '../ALResult.js';
3
5
 
4
6
  // Source: trinity/trinityal/stub/Tr2VertexLayoutALStub.cpp
@@ -22,19 +24,19 @@ import { ALResult } from '../ALResult.js';
22
24
  // Carbon's behaviour, not a different one.
23
25
 
24
26
 
25
- /**
26
- * An accepted vertex definition.
27
+ /**
28
+ * An accepted vertex definition.
27
29
  */
28
- class Tr2VertexLayoutALStub extends Tr2BaseDeviceResourceAL {
30
+ class Tr2VertexLayoutALStub extends Tr2DeviceResourceAL {
29
31
  /** m_definition */
30
32
  _definition = null;
31
33
 
32
- /**
33
- * Creates the layout.
34
- *
35
- * @param {object[]} definition The vertex element list.
36
- * @param {object} renderContext The context to create against.
37
- * @returns {number} An `ALResult` value.
34
+ /**
35
+ * Creates the layout.
36
+ *
37
+ * @param {object[]} definition The vertex element list.
38
+ * @param {object} renderContext The context to create against.
39
+ * @returns {number} An `ALResult` value.
38
40
  */
39
41
  Create(definition, renderContext) {
40
42
  if (!renderContext.IsValid()) return ALResult.E_FAIL;
@@ -49,43 +51,57 @@ class Tr2VertexLayoutALStub extends Tr2BaseDeviceResourceAL {
49
51
  super.Destroy();
50
52
  }
51
53
 
52
- /**
53
- * Whether a definition was stored.
54
- *
55
- * @returns {boolean} True once created.
54
+ /**
55
+ * Whether a definition was stored.
56
+ *
57
+ * @returns {boolean} True once created.
56
58
  */
57
59
  IsValid() {
58
60
  return this._definition !== null;
59
61
  }
60
62
 
61
- /**
62
- * The stored vertex element list.
63
- *
64
- * @returns {object[]|null} The elements, or null before creation.
63
+ /**
64
+ * The stored vertex element list.
65
+ *
66
+ * @returns {object[]|null} The elements, or null before creation.
65
67
  */
66
68
  GetDefinition() {
67
69
  return this._definition;
68
70
  }
69
71
 
70
- /**
71
- * Which memory class this layout occupies.
72
- *
73
- * @returns {number} A `Tr2ALMemoryType` value.
72
+ /**
73
+ * Which memory class this layout occupies.
74
+ *
75
+ * @returns {number} A `Tr2ALMemoryType` value.
74
76
  */
75
77
  GetMemoryClass() {
76
78
  return Tr2ALMemoryType.AL_MEMORY_MANAGED;
77
79
  }
78
80
 
79
- /**
80
- * Names the layout for a debugger.
81
- *
82
- * @param {string} _name The name Carbon would attach; the stub discards it.
83
- * @returns {number} An `ALResult` value; the stub keeps no name.
81
+ /**
82
+ * Names the layout for a debugger.
83
+ *
84
+ * @param {string} _name The name Carbon would attach; the stub discards it.
85
+ * @returns {number} An `ALResult` value; the stub keeps no name.
84
86
  */
85
87
  SetName(_name) {
86
88
  return ALResult.S_OK;
87
89
  }
88
90
  }
89
91
 
92
+ // DECLARED AS A CALL, NOT A DECORATOR, for the reason recorded in
93
+ // Tr2BitmapDimensions.js: the layer is imported straight from source by its
94
+ // tests and raw Node cannot parse decorator syntax.
95
+ //
96
+ // The donor is NAMED rather than left to be derived from this class's name.
97
+ // Carbon calls every backend's class the same thing and carries the backend in
98
+ // the FILE name, because only one backend compiles at a time; we ship them
99
+ // together, so the backend moves onto the class name. That divergence is the
100
+ // author's to declare, never a checker's to guess.
101
+ CjsSchema.define(Tr2VertexLayoutALStub, {
102
+ className: "Tr2VertexLayoutALStub",
103
+ carbon: "Tr2VertexLayoutAL"
104
+ });
105
+
90
106
  export { Tr2VertexLayoutALStub };
91
107
  //# sourceMappingURL=Tr2VertexLayoutALStub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2VertexLayoutALStub.js","sources":["../../../../src/trinityal/stub/Tr2VertexLayoutALStub.js"],"sourcesContent":["// Source: trinity/trinityal/stub/Tr2VertexLayoutALStub.cpp\n// Source: trinity/trinityal/stub/Tr2VertexLayoutALStub.h\n//\n// The input layout: a vertex definition the backend has accepted.\n//\n// Carbon's stub keeps a copy of the definition and validates one thing - that\n// it has elements. An empty definition is a layout that matches no shader\n// input, so it fails rather than binding nothing.\n//\n// ONE PORT NOTE. Since 2026-09-06 the runtime's `Tr2VertexDefinition` is the\n// real Carbon class (m_items plus the per-stream offset ledger), and the\n// intern table lives where Carbon keeps it, on `Tr2EffectStateManager`\n// (s_vertexLayoutMap). What reaches this stub may still be a plain element\n// array where a payload owns one; `Create` accepts either.\n//\n// AND ONE CARBON ODDITY, transcribed: the definition is stored BEFORE the empty\n// check, so a stub layout that failed still reports itself valid. Left as it\n// stands rather than quietly reordered - a caller that ignores the result gets\n// Carbon's behaviour, not a different one.\n\nimport { Tr2ALMemoryType, Tr2BaseDeviceResourceAL } from \"../Tr2DeviceResourceAL.js\";\nimport { ALResult } from \"../ALResult.js\";\n\n\n/**\n * An accepted vertex definition.\n */\nexport class Tr2VertexLayoutALStub extends Tr2BaseDeviceResourceAL\n{\n /** m_definition */\n _definition = null;\n\n /**\n * Creates the layout.\n *\n * @param {object[]} definition The vertex element list.\n * @param {object} renderContext The context to create against.\n * @returns {number} An `ALResult` value.\n */\n Create(definition, renderContext)\n {\n if (!renderContext.IsValid()) return ALResult.E_FAIL;\n\n this._definition = (definition?.items ?? definition).slice();\n\n if (this._definition.length === 0) return ALResult.E_FAIL;\n\n return ALResult.S_OK;\n }\n\n /** Releases the definition and leaves the device-resource registry. */\n Destroy()\n {\n this._definition = null;\n super.Destroy();\n }\n\n /**\n * Whether a definition was stored.\n *\n * @returns {boolean} True once created.\n */\n IsValid()\n {\n return this._definition !== null;\n }\n\n /**\n * The stored vertex element list.\n *\n * @returns {object[]|null} The elements, or null before creation.\n */\n GetDefinition()\n {\n return this._definition;\n }\n\n /**\n * Which memory class this layout occupies.\n *\n * @returns {number} A `Tr2ALMemoryType` value.\n */\n GetMemoryClass()\n {\n return Tr2ALMemoryType.AL_MEMORY_MANAGED;\n }\n\n /**\n * Names the layout for a debugger.\n *\n * @param {string} _name The name Carbon would attach; the stub discards it.\n * @returns {number} An `ALResult` value; the stub keeps no name.\n */\n SetName(_name)\n {\n return ALResult.S_OK;\n }\n}\n"],"names":["Tr2VertexLayoutALStub","Tr2BaseDeviceResourceAL","_definition","Create","definition","renderContext","IsValid","ALResult","E_FAIL","items","slice","length","S_OK","Destroy","GetDefinition","GetMemoryClass","Tr2ALMemoryType","AL_MEMORY_MANAGED","SetName","_name"],"mappings":";;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAMA;AACA;AACA;AACO,MAAMA,qBAAqB,SAASC,uBAAuB,CAClE;AACE;AACAC,EAAAA,WAAW,GAAG,IAAI;;AAElB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,MAAMA,CAACC,UAAU,EAAEC,aAAa,EAChC;IACE,IAAI,CAACA,aAAa,CAACC,OAAO,EAAE,EAAE,OAAOC,QAAQ,CAACC,MAAM;AAEpD,IAAA,IAAI,CAACN,WAAW,GAAG,CAACE,UAAU,EAAEK,KAAK,IAAIL,UAAU,EAAEM,KAAK,EAAE;IAE5D,IAAI,IAAI,CAACR,WAAW,CAACS,MAAM,KAAK,CAAC,EAAE,OAAOJ,QAAQ,CAACC,MAAM;IAEzD,OAAOD,QAAQ,CAACK,IAAI;AACtB,EAAA;;AAEA;AACAC,EAAAA,OAAOA,GACP;IACE,IAAI,CAACX,WAAW,GAAG,IAAI;IACvB,KAAK,CAACW,OAAO,EAAE;AACjB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEP,EAAAA,OAAOA,GACP;AACE,IAAA,OAAO,IAAI,CAACJ,WAAW,KAAK,IAAI;AAClC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEY,EAAAA,aAAaA,GACb;IACE,OAAO,IAAI,CAACZ,WAAW;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEa,EAAAA,cAAcA,GACd;IACE,OAAOC,eAAe,CAACC,iBAAiB;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,OAAOA,CAACC,KAAK,EACb;IACE,OAAOZ,QAAQ,CAACK,IAAI;AACtB,EAAA;AACF;;;;"}
1
+ {"version":3,"file":"Tr2VertexLayoutALStub.js","sources":["../../../../src/trinityal/stub/Tr2VertexLayoutALStub.js"],"sourcesContent":["// Source: trinity/trinityal/stub/Tr2VertexLayoutALStub.cpp\r\n// Source: trinity/trinityal/stub/Tr2VertexLayoutALStub.h\r\n//\r\n// The input layout: a vertex definition the backend has accepted.\r\n//\r\n// Carbon's stub keeps a copy of the definition and validates one thing - that\r\n// it has elements. An empty definition is a layout that matches no shader\r\n// input, so it fails rather than binding nothing.\r\n//\r\n// ONE PORT NOTE. Since 2026-09-06 the runtime's `Tr2VertexDefinition` is the\r\n// real Carbon class (m_items plus the per-stream offset ledger), and the\r\n// intern table lives where Carbon keeps it, on `Tr2EffectStateManager`\r\n// (s_vertexLayoutMap). What reaches this stub may still be a plain element\r\n// array where a payload owns one; `Create` accepts either.\r\n//\r\n// AND ONE CARBON ODDITY, transcribed: the definition is stored BEFORE the empty\r\n// check, so a stub layout that failed still reports itself valid. Left as it\r\n// stands rather than quietly reordered - a caller that ignores the result gets\r\n// Carbon's behaviour, not a different one.\r\n\r\nimport { CjsSchema } from \"#schema\";\r\nimport { Tr2ALMemoryType, Tr2DeviceResourceAL } from \"../Tr2DeviceResourceAL/index.js\";\r\nimport { ALResult } from \"../ALResult.js\";\r\n\r\n\r\n/**\r\n * An accepted vertex definition.\r\n */\r\nexport class Tr2VertexLayoutALStub extends Tr2DeviceResourceAL\r\n{\r\n /** m_definition */\r\n _definition = null;\r\n\r\n /**\r\n * Creates the layout.\r\n *\r\n * @param {object[]} definition The vertex element list.\r\n * @param {object} renderContext The context to create against.\r\n * @returns {number} An `ALResult` value.\r\n */\r\n Create(definition, renderContext)\r\n {\r\n if (!renderContext.IsValid()) return ALResult.E_FAIL;\r\n\r\n this._definition = (definition?.items ?? definition).slice();\r\n\r\n if (this._definition.length === 0) return ALResult.E_FAIL;\r\n\r\n return ALResult.S_OK;\r\n }\r\n\r\n /** Releases the definition and leaves the device-resource registry. */\r\n Destroy()\r\n {\r\n this._definition = null;\r\n super.Destroy();\r\n }\r\n\r\n /**\r\n * Whether a definition was stored.\r\n *\r\n * @returns {boolean} True once created.\r\n */\r\n IsValid()\r\n {\r\n return this._definition !== null;\r\n }\r\n\r\n /**\r\n * The stored vertex element list.\r\n *\r\n * @returns {object[]|null} The elements, or null before creation.\r\n */\r\n GetDefinition()\r\n {\r\n return this._definition;\r\n }\r\n\r\n /**\r\n * Which memory class this layout occupies.\r\n *\r\n * @returns {number} A `Tr2ALMemoryType` value.\r\n */\r\n GetMemoryClass()\r\n {\r\n return Tr2ALMemoryType.AL_MEMORY_MANAGED;\r\n }\r\n\r\n /**\r\n * Names the layout for a debugger.\r\n *\r\n * @param {string} _name The name Carbon would attach; the stub discards it.\r\n * @returns {number} An `ALResult` value; the stub keeps no name.\r\n */\r\n SetName(_name)\r\n {\r\n return ALResult.S_OK;\r\n }\r\n}\r\n\r\n// DECLARED AS A CALL, NOT A DECORATOR, for the reason recorded in\r\n// Tr2BitmapDimensions.js: the layer is imported straight from source by its\r\n// tests and raw Node cannot parse decorator syntax.\r\n//\r\n// The donor is NAMED rather than left to be derived from this class's name.\r\n// Carbon calls every backend's class the same thing and carries the backend in\r\n// the FILE name, because only one backend compiles at a time; we ship them\r\n// together, so the backend moves onto the class name. That divergence is the\r\n// author's to declare, never a checker's to guess.\r\nCjsSchema.define(Tr2VertexLayoutALStub, { className: \"Tr2VertexLayoutALStub\", carbon: \"Tr2VertexLayoutAL\" });\r\n"],"names":["Tr2VertexLayoutALStub","Tr2DeviceResourceAL","_definition","Create","definition","renderContext","IsValid","ALResult","E_FAIL","items","slice","length","S_OK","Destroy","GetDefinition","GetMemoryClass","Tr2ALMemoryType","AL_MEMORY_MANAGED","SetName","_name","CjsSchema","define","className","carbon"],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAOA;AACA;AACA;AACO,MAAMA,qBAAqB,SAASC,mBAAmB,CAC9D;AACE;AACAC,EAAAA,WAAW,GAAG,IAAI;;AAElB;AACF;AACA;AACA;AACA;AACA;AACA;AACEC,EAAAA,MAAMA,CAACC,UAAU,EAAEC,aAAa,EAChC;IACE,IAAI,CAACA,aAAa,CAACC,OAAO,EAAE,EAAE,OAAOC,QAAQ,CAACC,MAAM;AAEpD,IAAA,IAAI,CAACN,WAAW,GAAG,CAACE,UAAU,EAAEK,KAAK,IAAIL,UAAU,EAAEM,KAAK,EAAE;IAE5D,IAAI,IAAI,CAACR,WAAW,CAACS,MAAM,KAAK,CAAC,EAAE,OAAOJ,QAAQ,CAACC,MAAM;IAEzD,OAAOD,QAAQ,CAACK,IAAI;AACtB,EAAA;;AAEA;AACAC,EAAAA,OAAOA,GACP;IACE,IAAI,CAACX,WAAW,GAAG,IAAI;IACvB,KAAK,CAACW,OAAO,EAAE;AACjB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEP,EAAAA,OAAOA,GACP;AACE,IAAA,OAAO,IAAI,CAACJ,WAAW,KAAK,IAAI;AAClC,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEY,EAAAA,aAAaA,GACb;IACE,OAAO,IAAI,CAACZ,WAAW;AACzB,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACEa,EAAAA,cAAcA,GACd;IACE,OAAOC,eAAe,CAACC,iBAAiB;AAC1C,EAAA;;AAEA;AACF;AACA;AACA;AACA;AACA;EACEC,OAAOA,CAACC,KAAK,EACb;IACE,OAAOZ,QAAQ,CAACK,IAAI;AACtB,EAAA;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAQ,SAAS,CAACC,MAAM,CAACrB,qBAAqB,EAAE;AAAEsB,EAAAA,SAAS,EAAE,uBAAuB;AAAEC,EAAAA,MAAM,EAAE;AAAoB,CAAC,CAAC;;;;"}
@@ -1,3 +1,4 @@
1
+ import { CjsSchema } from '#schema';
1
2
  import { PixelFormat } from '../../global/consts/renderContext/formats.js';
2
3
  import '../../global/consts/renderContext/pipeline.js';
3
4
  import { ALResult } from '../ALResult.js';
@@ -210,5 +211,19 @@ class Tr2VideoAdapterInfoStub {
210
211
  }
211
212
  }
212
213
 
214
+ // DECLARED AS A CALL, NOT A DECORATOR, for the reason recorded in
215
+ // Tr2BitmapDimensions.js: the layer is imported straight from source by its
216
+ // tests and raw Node cannot parse decorator syntax.
217
+ //
218
+ // The donor is NAMED rather than left to be derived from this class's name.
219
+ // Carbon calls every backend's class the same thing and carries the backend in
220
+ // the FILE name, because only one backend compiles at a time; we ship them
221
+ // together, so the backend moves onto the class name. That divergence is the
222
+ // author's to declare, never a checker's to guess.
223
+ CjsSchema.define(Tr2VideoAdapterInfoStub, {
224
+ className: "Tr2VideoAdapterInfoStub",
225
+ carbon: "Tr2VideoAdapterInfo"
226
+ });
227
+
213
228
  export { DEFAULT_ADAPTER, Tr2VideoAdapterInfoStub };
214
- //# sourceMappingURL=Tr2VideoAdapterInfoALStub.js.map
229
+ //# sourceMappingURL=Tr2VideoAdapterInfoStub.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2VideoAdapterInfoStub.js","sources":["../../../../src/trinityal/stub/Tr2VideoAdapterInfoStub.js"],"sourcesContent":["// Source: trinity/trinityal/stub/Tr2VideoAdapterInfoALStub.cpp\n// Source: trinity/trinityal/stub/Tr2VideoAdapterInfoALStub.h\n//\n// What adapters exist, what they are called, and what display modes they offer.\n//\n// ALL STATIC, as Carbon has it: adapter enumeration happens before any device\n// exists, so there is nothing to be an instance of.\n//\n// CARBON'S STUB ANSWERS WITH A PLAUSIBLE FICTION rather than refusing, and the\n// values are transcribed rather than rounded off - one adapter called \"stub\",\n// a 800x600 current mode, one available mode of 1920x1200, a 16384 maximum\n// texture width, and every format supported. A caller that branches on adapter\n// capability therefore takes its normal path instead of an error path that real\n// hardware would never take.\n//\n// THE ODD CONSTANTS ARE CARBON'S AND ARE KEPT. The driver version\n// 2533352100662421 and revision 163 look like noise; they are what the stub\n// reports, and a port that tidied them would be inventing. The single available\n// mode is also deliberately NOT the current mode - 1920x1200 against 800x600 -\n// so a caller that confuses the two is caught.\n//\n// A BROWSER HAS NO ADAPTER ENUMERATION. WebGPU exposes one adapter through\n// `requestAdapter` with no list and no display modes, so a real backend here\n// answers a subset of this. That is a reason to keep the interface, not to skip\n// it: the shape of the question is what the consumer already asks.\n\nimport { CjsSchema } from \"#schema\";\nimport { PixelFormat } from \"../../global/consts/renderContext/index.js\";\nimport { ALResult } from \"../ALResult.js\";\n\n\n/** Carbon's `DEFAULT_ADAPTER`. */\nexport const DEFAULT_ADAPTER = 0;\n\n/** Carbon's display-mode scaling and scanline \"unspecified\". */\nconst UNSPECIFIED = 0;\n\n\n/**\n * Adapter and display-mode enumeration.\n */\nexport class Tr2VideoAdapterInfoStub\n{\n /**\n * How many adapters exist.\n *\n * @returns {object} `{ result, count }`.\n */\n static GetAdapterCount()\n {\n return { result: ALResult.S_OK, count: 1 };\n }\n\n /**\n * What one adapter is.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @returns {object} `{ result, info }`.\n */\n static GetAdapterInfo(_adapterIndex = DEFAULT_ADAPTER)\n {\n return {\n result: ALResult.S_OK,\n info: {\n driver: \"stub\",\n description: \"Not an actual adapter.\",\n deviceName: \"stub\",\n driverVersion: 2533352100662421,\n vendorID: 0,\n deviceID: 0,\n subSystemID: 0,\n revision: 163,\n deviceIdentifier: { data1: 0, data2: 0, data3: 0, data4: [ 0, 0, 0, 0, 0, 0, 0, 0 ] }\n }\n };\n }\n\n /**\n * The monitor an adapter drives.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @returns {object} `{ result, monitor }`; there is no monitor.\n */\n static GetAdapterMonitor(_adapterIndex = DEFAULT_ADAPTER)\n {\n return { result: ALResult.S_OK, monitor: null };\n }\n\n /**\n * The mode an adapter is currently in.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @returns {object} `{ result, mode }`.\n */\n static GetAdapterDisplayMode(_adapterIndex = DEFAULT_ADAPTER)\n {\n return {\n result: ALResult.S_OK,\n mode: {\n format: PixelFormat.PIXEL_FORMAT_B8G8R8A8_UNORM,\n width: 800,\n height: 600,\n refreshRateNumerator: 1,\n refreshRateDenominator: 1,\n scaling: UNSPECIFIED,\n scanlineOrdering: UNSPECIFIED\n }\n };\n }\n\n /**\n * How many modes an adapter offers for a back-buffer format.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @param {number} [_backBufferFormat] A `PixelFormat`.\n * @returns {object} `{ result, count }`.\n */\n static GetAdapterModeCount(_adapterIndex = DEFAULT_ADAPTER, _backBufferFormat = 0)\n {\n return { result: ALResult.S_OK, count: 1 };\n }\n\n /**\n * One available mode.\n *\n * DELIBERATELY NOT THE CURRENT MODE. Carbon's stub reports 1920x1200 here\n * against the 800x600 it reports as current, which catches a caller that\n * treats the two as interchangeable.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @param {number} [_backBufferFormat] A `PixelFormat`.\n * @param {number} [_modeIndex] Which mode.\n * @returns {object} `{ result, mode }`.\n */\n static GetAdapterMode(_adapterIndex = DEFAULT_ADAPTER, _backBufferFormat = 0, _modeIndex = 0)\n {\n return {\n result: ALResult.S_OK,\n mode: {\n format: PixelFormat.PIXEL_FORMAT_B8G8R8X8_UNORM,\n width: 1920,\n height: 1200,\n refreshRateNumerator: 1,\n refreshRateDenominator: 59,\n scaling: UNSPECIFIED,\n scanlineOrdering: UNSPECIFIED\n }\n };\n }\n\n /**\n * The widest texture an adapter can hold.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @returns {object} `{ result, maxWidth }`.\n */\n static GetAdapterMaxTextureWidth(_adapterIndex = DEFAULT_ADAPTER)\n {\n return { result: ALResult.S_OK, maxWidth: 16384 };\n }\n\n /**\n * Whether a format can be a back buffer.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @param {number} [_format] A `PixelFormat`.\n * @returns {boolean} True; the stub supports everything.\n */\n static SupportsBackBufferFormat(_adapterIndex = DEFAULT_ADAPTER, _format = 0)\n {\n return true;\n }\n\n /**\n * Whether a format can be a render target.\n *\n * @param {number} [_adapterIndex] Which adapter.\n * @param {number} [_format] A `PixelFormat`.\n * @returns {boolean} True; the stub supports everything.\n */\n static SupportsRenderTargetFormat(_adapterIndex = DEFAULT_ADAPTER, _format = 0)\n {\n return true;\n }\n\n /**\n * Whether two adapter indices name different adapters.\n *\n * @param {number} adapter1 One index.\n * @param {number} adapter2 The other.\n * @returns {boolean} Whether they differ.\n */\n static AreAdaptersDifferent(adapter1, adapter2)\n {\n return adapter1 !== adapter2;\n }\n\n /**\n * Re-reads adapter data after a device change.\n *\n * @returns {number} An `ALResult`.\n */\n static RefreshData()\n {\n return ALResult.S_OK;\n }\n}\n\n// DECLARED AS A CALL, NOT A DECORATOR, for the reason recorded in\n// Tr2BitmapDimensions.js: the layer is imported straight from source by its\n// tests and raw Node cannot parse decorator syntax.\n//\n// The donor is NAMED rather than left to be derived from this class's name.\n// Carbon calls every backend's class the same thing and carries the backend in\n// the FILE name, because only one backend compiles at a time; we ship them\n// together, so the backend moves onto the class name. That divergence is the\n// author's to declare, never a checker's to guess.\nCjsSchema.define(Tr2VideoAdapterInfoStub, { className: \"Tr2VideoAdapterInfoStub\", carbon: \"Tr2VideoAdapterInfo\" });\n"],"names":["DEFAULT_ADAPTER","UNSPECIFIED","Tr2VideoAdapterInfoStub","GetAdapterCount","result","ALResult","S_OK","count","GetAdapterInfo","_adapterIndex","info","driver","description","deviceName","driverVersion","vendorID","deviceID","subSystemID","revision","deviceIdentifier","data1","data2","data3","data4","GetAdapterMonitor","monitor","GetAdapterDisplayMode","mode","format","PixelFormat","PIXEL_FORMAT_B8G8R8A8_UNORM","width","height","refreshRateNumerator","refreshRateDenominator","scaling","scanlineOrdering","GetAdapterModeCount","_backBufferFormat","GetAdapterMode","_modeIndex","PIXEL_FORMAT_B8G8R8X8_UNORM","GetAdapterMaxTextureWidth","maxWidth","SupportsBackBufferFormat","_format","SupportsRenderTargetFormat","AreAdaptersDifferent","adapter1","adapter2","RefreshData","CjsSchema","define","className","carbon"],"mappings":"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"}
@@ -1,14 +1,18 @@
1
- export { Tr2BufferALStub, Tr2BufferDescriptionAL } from './Tr2BufferALStub.js';
1
+ export { Tr2BufferALStub } from './Tr2BufferALStub.js';
2
2
  export { Tr2CapsALStub, Tr2StubPlatformCaps } from './Tr2CapsALStub.js';
3
3
  export { Tr2ConstantBufferALStub, Tr2ConstantUsageAL } from './Tr2ConstantBufferALStub.js';
4
4
  export { Tr2FenceALStub } from './Tr2FenceALStub.js';
5
- export { OcclusionWaitMode, Tr2GpuTimerALStub, Tr2OcclusionQueryALStub, Tr2PipelineStatsQueryALStub } from './Tr2QueryALStub.js';
6
- export { Tr2BindlessResourcesAL, Tr2RenderContextALStub } from './Tr2RenderContextALStub.js';
5
+ export { OcclusionWaitMode, Tr2OcclusionQueryALStub } from './Tr2OcclusionQueryALStub.js';
6
+ export { Tr2GpuTimerALStub } from './Tr2GpuTimerALStub.js';
7
+ export { Tr2PipelineStatsQueryALStub } from './Tr2PipelineStatsQueryALStub/Tr2PipelineStatsQueryALStub.js';
8
+ export { Tr2BindlessResourcesAL } from './Tr2RenderContextALStub/Tr2BindlessResourcesAL.js';
9
+ export { Tr2RenderContextALStub } from './Tr2RenderContextALStub/Tr2RenderContextALStub.js';
7
10
  export { Tr2SamplerStateALStub } from './Tr2SamplerStateALStub.js';
8
11
  export { Tr2ShaderALStub } from './Tr2ShaderALStub.js';
9
12
  export { Tr2ShaderProgramALStub } from './Tr2ShaderProgramALStub.js';
10
13
  export { Tr2SwapChainALStub } from './Tr2SwapChainALStub.js';
11
14
  export { CopyRegion, Tr2TextureALStub } from './Tr2TextureALStub.js';
12
15
  export { Tr2VertexLayoutALStub } from './Tr2VertexLayoutALStub.js';
13
- export { DEFAULT_ADAPTER, Tr2VideoAdapterInfoStub } from './Tr2VideoAdapterInfoALStub.js';
16
+ export { DEFAULT_ADAPTER, Tr2VideoAdapterInfoStub } from './Tr2VideoAdapterInfoStub.js';
17
+ export { Tr2BufferDescriptionAL } from '../Tr2BufferAL/Tr2BufferDescriptionAL.js';
14
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -42,7 +42,7 @@ const FALLBACK_INPUT_TYPE = "FLOAT";
42
42
  /**
43
43
  * The mesh element serving a shader input, or null when the mesh has none.
44
44
  *
45
- * @param {object[]|import("../vertex/Tr2VertexDefinition.js").Tr2VertexDefinition} elementsOrDefinition
45
+ * @param {object[]|import("../vertex/Tr2VertexDefinition/index.js").Tr2VertexDefinition} elementsOrDefinition
46
46
  * @param {object} input A shader pipeline input with `usage` and `usageIndex`.
47
47
  * @returns {object|null} The matching element.
48
48
  */
@@ -70,7 +70,7 @@ function findInputElement(elementsOrDefinition, input) {
70
70
  * Each entry carries the input, the mesh element serving it or null, and the
71
71
  * fallback scalar type an engine substitutes when there is none.
72
72
  *
73
- * @param {object[]|import("../vertex/Tr2VertexDefinition.js").Tr2VertexDefinition} elements
73
+ * @param {object[]|import("../vertex/Tr2VertexDefinition/index.js").Tr2VertexDefinition} elements
74
74
  * @param {object[]} pipelineInputs The vertex shader's declared inputs.
75
75
  * @returns {{ entries: object[], unmatched: number, complete: boolean }}
76
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"vertexLayoutMatch.js","sources":["../../../src/trinityal/vertexLayoutMatch.js"],"sourcesContent":["// Source: trinity/trinityal/dx11/Tr2VertexLayoutALDx11.cpp:144-155 (FindInputElement)\n// trinity/trinityal/dx11/Tr2VertexLayoutALDx11.cpp:157-226 (SetLayout's match,\n// fabricate-on-miss and per-shader cache)\n//\n// THE ELEMENT MATCH IS THE VERTEX-LAYOUT AL'S. Carbon's shared Tr2VertexLayoutAL\n// (trinityal/src) is only the PIMPL wrapper; each backend implements the walk\n// over a vertex shader's declared pipeline inputs itself, looking every input up\n// in the mesh's element list. It lived under Tr2VertexDefinition's name in this\n// runtime until 2026-09-06, which was naming debt: the definition owns its items\n// and ledger, the AL owns what a shader does with them.\n//\n// Carbon and ccpwgl arrived at this algorithm independently - Carbon walks the\n// shader's inputs and looks each one up, ccpwgl merge-joins two sorted element\n// lists - which is good evidence it is the right one. Both match on SEMANTIC AND\n// INDEX ONLY: neither compares data type, format, offset or stream. A float3\n// POSITION0 in the mesh satisfies a float4 POSITION0 in the shader, and the\n// hardware converts.\n//\n// The plan this produces is renderer-neutral, because the two references\n// legitimately differ on what to do with a shader input the mesh cannot supply:\n//\n// - Carbon's DX11 path FABRICATES an element so CreateInputLayout still\n// succeeds - format derived from the shader's declared scalar type, offset\n// zero, and a hardcoded input slot (cpp:179-207).\n// - ccpwgl DISABLES the attribute array and sets a constant zero vec4.\n//\n// Both are \"supply nothing for this input\"; only the mechanism differs. So the\n// plan reports the input as unmatched and carries the fallback type the engine\n// needs, and each engine applies its own mechanism. Deciding here would bake a\n// backend assumption into graph state.\n\n\n/** The scalar type an unmatched input falls back to when it declares none\n * (Carbon's `default:` format case, Tr2VertexLayoutALDx11.cpp:190-192). */\nexport const FALLBACK_INPUT_TYPE = \"FLOAT\";\n\n// Carbon FindInputElement (Tr2VertexLayoutALDx11.cpp:144-155):\n// element.usageIndex == input.SemanticIndex\n// && semanticNames[element.usage] == input.SemanticName\n// Nothing else participates. ccpwgl's CompareDeclarationElements and FindUsage\n// compare the same two fields and no others.\n\n/**\n * The mesh element serving a shader input, or null when the mesh has none.\n *\n * @param {object[]|import(\"../vertex/Tr2VertexDefinition.js\").Tr2VertexDefinition} elementsOrDefinition\n * @param {object} input A shader pipeline input with `usage` and `usageIndex`.\n * @returns {object|null} The matching element.\n */\nexport function findInputElement(elementsOrDefinition, input)\n{\n const elements = elementsOrDefinition?.items ?? elementsOrDefinition;\n if (!elements) return null;\n\n for (const element of elements)\n {\n if (element.usageIndex === input.usageIndex && element.usage === input.usage) return element;\n }\n\n return null;\n}\n\n// The resolved plan. Keyed on (declaration handle, shader input signature),\n// which is precisely Carbon's DX11 cache key: an ID3D11InputLayout per\n// (declaration, vertex-shader pipeline-input hash) pair, created lazily and\n// reused across every draw of that pair (Tr2VertexLayoutALDx11.cpp:157-226).\n// A WebGL engine caches the same plan as a VAO.\n\n/**\n * Resolves a mesh's element list against a vertex shader's declared pipeline\n * inputs, returning one entry per SHADER INPUT in the shader's own order -\n * the shader's inputs are the requirement, and a mesh element no shader reads\n * is simply absent from the plan.\n *\n * Each entry carries the input, the mesh element serving it or null, and the\n * fallback scalar type an engine substitutes when there is none.\n *\n * @param {object[]|import(\"../vertex/Tr2VertexDefinition.js\").Tr2VertexDefinition} elements\n * @param {object[]} pipelineInputs The vertex shader's declared inputs.\n * @returns {{ entries: object[], unmatched: number, complete: boolean }}\n */\nexport function resolveBindingPlan(elements, pipelineInputs)\n{\n const inputs = pipelineInputs ?? [];\n const entries = [];\n let unmatched = 0;\n\n for (const input of inputs)\n {\n const element = findInputElement(elements, input);\n\n if (!element) unmatched++;\n\n entries.push({\n usage: input.usage,\n usageIndex: input.usageIndex,\n registerIndex: input.registerIndex,\n element,\n // Carbon picks the fabricated element's format from the input's own\n // declared scalar type (Tr2VertexLayoutALDx11.cpp:179-195).\n fallbackType: element ? null : (input.type ?? FALLBACK_INPUT_TYPE)\n });\n }\n\n return { entries, unmatched, complete: unmatched === 0 };\n}\n"],"names":["FALLBACK_INPUT_TYPE","findInputElement","elementsOrDefinition","input","elements","items","element","usageIndex","usage","resolveBindingPlan","pipelineInputs","inputs","entries","unmatched","push","registerIndex","fallbackType","type","complete"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACO,MAAMA,mBAAmB,GAAG;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,oBAAoB,EAAEC,KAAK,EAC5D;AACE,EAAA,MAAMC,QAAQ,GAAGF,oBAAoB,EAAEG,KAAK,IAAIH,oBAAoB;AACpE,EAAA,IAAI,CAACE,QAAQ,EAAE,OAAO,IAAI;AAE1B,EAAA,KAAK,MAAME,OAAO,IAAIF,QAAQ,EAC9B;AACE,IAAA,IAAIE,OAAO,CAACC,UAAU,KAAKJ,KAAK,CAACI,UAAU,IAAID,OAAO,CAACE,KAAK,KAAKL,KAAK,CAACK,KAAK,EAAE,OAAOF,OAAO;AAC9F,EAAA;AAEA,EAAA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAACL,QAAQ,EAAEM,cAAc,EAC3D;AACE,EAAA,MAAMC,MAAM,GAAGD,cAAc,IAAI,EAAE;EACnC,MAAME,OAAO,GAAG,EAAE;EAClB,IAAIC,SAAS,GAAG,CAAC;AAEjB,EAAA,KAAK,MAAMV,KAAK,IAAIQ,MAAM,EAC1B;AACE,IAAA,MAAML,OAAO,GAAGL,gBAAgB,CAACG,QAAQ,EAAED,KAAK,CAAC;AAEjD,IAAA,IAAI,CAACG,OAAO,EAAEO,SAAS,EAAE;IAEzBD,OAAO,CAACE,IAAI,CAAC;MACXN,KAAK,EAAEL,KAAK,CAACK,KAAK;MAClBD,UAAU,EAAEJ,KAAK,CAACI,UAAU;MAC5BQ,aAAa,EAAEZ,KAAK,CAACY,aAAa;MAClCT,OAAO;AACP;AACA;MACAU,YAAY,EAAEV,OAAO,GAAG,IAAI,GAAIH,KAAK,CAACc,IAAI,IAAIjB;AAChD,KAAC,CAAC;AACJ,EAAA;EAEA,OAAO;IAAEY,OAAO;IAAEC,SAAS;IAAEK,QAAQ,EAAEL,SAAS,KAAK;GAAG;AAC1D;;;;"}
1
+ {"version":3,"file":"vertexLayoutMatch.js","sources":["../../../src/trinityal/vertexLayoutMatch.js"],"sourcesContent":["// Source: trinity/trinityal/dx11/Tr2VertexLayoutALDx11.cpp:144-155 (FindInputElement)\n// trinity/trinityal/dx11/Tr2VertexLayoutALDx11.cpp:157-226 (SetLayout's match,\n// fabricate-on-miss and per-shader cache)\n//\n// THE ELEMENT MATCH IS THE VERTEX-LAYOUT AL'S. Carbon's shared Tr2VertexLayoutAL\n// (trinityal/src) is only the PIMPL wrapper; each backend implements the walk\n// over a vertex shader's declared pipeline inputs itself, looking every input up\n// in the mesh's element list. It lived under Tr2VertexDefinition's name in this\n// runtime until 2026-09-06, which was naming debt: the definition owns its items\n// and ledger, the AL owns what a shader does with them.\n//\n// Carbon and ccpwgl arrived at this algorithm independently - Carbon walks the\n// shader's inputs and looks each one up, ccpwgl merge-joins two sorted element\n// lists - which is good evidence it is the right one. Both match on SEMANTIC AND\n// INDEX ONLY: neither compares data type, format, offset or stream. A float3\n// POSITION0 in the mesh satisfies a float4 POSITION0 in the shader, and the\n// hardware converts.\n//\n// The plan this produces is renderer-neutral, because the two references\n// legitimately differ on what to do with a shader input the mesh cannot supply:\n//\n// - Carbon's DX11 path FABRICATES an element so CreateInputLayout still\n// succeeds - format derived from the shader's declared scalar type, offset\n// zero, and a hardcoded input slot (cpp:179-207).\n// - ccpwgl DISABLES the attribute array and sets a constant zero vec4.\n//\n// Both are \"supply nothing for this input\"; only the mechanism differs. So the\n// plan reports the input as unmatched and carries the fallback type the engine\n// needs, and each engine applies its own mechanism. Deciding here would bake a\n// backend assumption into graph state.\n\n\n/** The scalar type an unmatched input falls back to when it declares none\n * (Carbon's `default:` format case, Tr2VertexLayoutALDx11.cpp:190-192). */\nexport const FALLBACK_INPUT_TYPE = \"FLOAT\";\n\n// Carbon FindInputElement (Tr2VertexLayoutALDx11.cpp:144-155):\n// element.usageIndex == input.SemanticIndex\n// && semanticNames[element.usage] == input.SemanticName\n// Nothing else participates. ccpwgl's CompareDeclarationElements and FindUsage\n// compare the same two fields and no others.\n\n/**\n * The mesh element serving a shader input, or null when the mesh has none.\n *\n * @param {object[]|import(\"../vertex/Tr2VertexDefinition/index.js\").Tr2VertexDefinition} elementsOrDefinition\n * @param {object} input A shader pipeline input with `usage` and `usageIndex`.\n * @returns {object|null} The matching element.\n */\nexport function findInputElement(elementsOrDefinition, input)\n{\n const elements = elementsOrDefinition?.items ?? elementsOrDefinition;\n if (!elements) return null;\n\n for (const element of elements)\n {\n if (element.usageIndex === input.usageIndex && element.usage === input.usage) return element;\n }\n\n return null;\n}\n\n// The resolved plan. Keyed on (declaration handle, shader input signature),\n// which is precisely Carbon's DX11 cache key: an ID3D11InputLayout per\n// (declaration, vertex-shader pipeline-input hash) pair, created lazily and\n// reused across every draw of that pair (Tr2VertexLayoutALDx11.cpp:157-226).\n// A WebGL engine caches the same plan as a VAO.\n\n/**\n * Resolves a mesh's element list against a vertex shader's declared pipeline\n * inputs, returning one entry per SHADER INPUT in the shader's own order -\n * the shader's inputs are the requirement, and a mesh element no shader reads\n * is simply absent from the plan.\n *\n * Each entry carries the input, the mesh element serving it or null, and the\n * fallback scalar type an engine substitutes when there is none.\n *\n * @param {object[]|import(\"../vertex/Tr2VertexDefinition/index.js\").Tr2VertexDefinition} elements\n * @param {object[]} pipelineInputs The vertex shader's declared inputs.\n * @returns {{ entries: object[], unmatched: number, complete: boolean }}\n */\nexport function resolveBindingPlan(elements, pipelineInputs)\n{\n const inputs = pipelineInputs ?? [];\n const entries = [];\n let unmatched = 0;\n\n for (const input of inputs)\n {\n const element = findInputElement(elements, input);\n\n if (!element) unmatched++;\n\n entries.push({\n usage: input.usage,\n usageIndex: input.usageIndex,\n registerIndex: input.registerIndex,\n element,\n // Carbon picks the fabricated element's format from the input's own\n // declared scalar type (Tr2VertexLayoutALDx11.cpp:179-195).\n fallbackType: element ? null : (input.type ?? FALLBACK_INPUT_TYPE)\n });\n }\n\n return { entries, unmatched, complete: unmatched === 0 };\n}\n"],"names":["FALLBACK_INPUT_TYPE","findInputElement","elementsOrDefinition","input","elements","items","element","usageIndex","usage","resolveBindingPlan","pipelineInputs","inputs","entries","unmatched","push","registerIndex","fallbackType","type","complete"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACO,MAAMA,mBAAmB,GAAG;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,gBAAgBA,CAACC,oBAAoB,EAAEC,KAAK,EAC5D;AACE,EAAA,MAAMC,QAAQ,GAAGF,oBAAoB,EAAEG,KAAK,IAAIH,oBAAoB;AACpE,EAAA,IAAI,CAACE,QAAQ,EAAE,OAAO,IAAI;AAE1B,EAAA,KAAK,MAAME,OAAO,IAAIF,QAAQ,EAC9B;AACE,IAAA,IAAIE,OAAO,CAACC,UAAU,KAAKJ,KAAK,CAACI,UAAU,IAAID,OAAO,CAACE,KAAK,KAAKL,KAAK,CAACK,KAAK,EAAE,OAAOF,OAAO;AAC9F,EAAA;AAEA,EAAA,OAAO,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,kBAAkBA,CAACL,QAAQ,EAAEM,cAAc,EAC3D;AACE,EAAA,MAAMC,MAAM,GAAGD,cAAc,IAAI,EAAE;EACnC,MAAME,OAAO,GAAG,EAAE;EAClB,IAAIC,SAAS,GAAG,CAAC;AAEjB,EAAA,KAAK,MAAMV,KAAK,IAAIQ,MAAM,EAC1B;AACE,IAAA,MAAML,OAAO,GAAGL,gBAAgB,CAACG,QAAQ,EAAED,KAAK,CAAC;AAEjD,IAAA,IAAI,CAACG,OAAO,EAAEO,SAAS,EAAE;IAEzBD,OAAO,CAACE,IAAI,CAAC;MACXN,KAAK,EAAEL,KAAK,CAACK,KAAK;MAClBD,UAAU,EAAEJ,KAAK,CAACI,UAAU;MAC5BQ,aAAa,EAAEZ,KAAK,CAACY,aAAa;MAClCT,OAAO;AACP;AACA;MACAU,YAAY,EAAEV,OAAO,GAAG,IAAI,GAAIH,KAAK,CAACc,IAAI,IAAIjB;AAChD,KAAC,CAAC;AACJ,EAAA;EAEA,OAAO;IAAEY,OAAO;IAAEC,SAAS;IAAEK,QAAQ,EAAEL,SAAS,KAAK;GAAG;AAC1D;;;;"}