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

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 (1638) hide show
  1. package/NOTICE +5 -4
  2. package/dist/audio/generated/audio/AudEventKey.js +2 -2
  3. package/dist/audio/generated/audio/AudEventKey.js.map +1 -1
  4. package/dist/audio/generated/audio/AudSettings.js +2 -2
  5. package/dist/audio/generated/audio/AudSettings.js.map +1 -1
  6. package/dist/audio/index.js +1 -1
  7. package/dist/audio/trinity/audio/AudEmitter.js +4 -5
  8. package/dist/audio/trinity/audio/AudEmitter.js.map +1 -1
  9. package/dist/audio/trinity/audio/AudEventCurve.js +14 -14
  10. package/dist/audio/trinity/audio/AudEventCurve.js.map +1 -1
  11. package/dist/audio/trinity/audio/AudGameObjResource.js +13 -25
  12. package/dist/audio/trinity/audio/AudGameObjResource.js.map +1 -1
  13. package/dist/audio/trinity/audio/AudManager.js +2 -2
  14. package/dist/audio/trinity/audio/AudManager.js.map +1 -1
  15. package/dist/audio/trinity/audio/AudParameter.js +7 -11
  16. package/dist/audio/trinity/audio/AudParameter.js.map +1 -1
  17. package/dist/audio/trinity/audio/AudUIPlayer.js +2 -2
  18. package/dist/audio/trinity/audio/AudUIPlayer.js.map +1 -1
  19. package/dist/audio/trinity/audio/AudioCurveSetDriver.js +2 -2
  20. package/dist/audio/trinity/audio/AudioCurveSetDriver.js.map +1 -1
  21. package/dist/audio/trinity/audio/StretchAudio.js +2 -2
  22. package/dist/audio/trinity/audio/StretchAudio.js.map +1 -1
  23. package/dist/audio/trinity/index.js +1 -1
  24. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js +2 -2
  25. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchAuto.js.map +1 -1
  26. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js +2 -2
  27. package/dist/audio/trinity/trinityAudio/Tr2AudioStretchBase.js.map +1 -1
  28. package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js +1 -37
  29. package/dist/audio/trinity/trinityAudioApi/ITr2AudEmitter.js.map +1 -1
  30. package/dist/character/incarna/curves/Tr2ColorCurve.js +2 -2
  31. package/dist/character/incarna/curves/Tr2ColorCurve.js.map +1 -1
  32. package/dist/character/incarna/curves/Tr2ColorKey.js +2 -2
  33. package/dist/character/incarna/curves/Tr2ColorKey.js.map +1 -1
  34. package/dist/character/incarna/curves/Tr2ScalarCurve.js +2 -2
  35. package/dist/character/incarna/curves/Tr2ScalarCurve.js.map +1 -1
  36. package/dist/character/incarna/curves/Tr2ScalarKey.js +2 -2
  37. package/dist/character/incarna/curves/Tr2ScalarKey.js.map +1 -1
  38. package/dist/character/incarna/interior/Tr2InteriorCell.js +2 -2
  39. package/dist/character/incarna/interior/Tr2InteriorCell.js.map +1 -1
  40. package/dist/character/library/CjsCharacterLibrary.js +9 -16
  41. package/dist/character/library/CjsCharacterLibrary.js.map +1 -1
  42. package/dist/character/library/CjsCharacterLibraryDocuments.js +20 -4
  43. package/dist/character/library/CjsCharacterLibraryDocuments.js.map +1 -1
  44. package/dist/character/model/CjsCharacterRecord.js +2 -2
  45. package/dist/character/model/CjsCharacterRecord.js.map +1 -1
  46. package/dist/character/model/activity/CjsCharacterArchetype.js +2 -2
  47. package/dist/character/model/activity/CjsCharacterArchetype.js.map +1 -1
  48. package/dist/character/model/appearance/CjsCharacterColorLocation.js +2 -2
  49. package/dist/character/model/appearance/CjsCharacterColorLocation.js.map +1 -1
  50. package/dist/character/model/appearance/CjsCharacterColorName.js +2 -2
  51. package/dist/character/model/appearance/CjsCharacterColorName.js.map +1 -1
  52. package/dist/character/model/appearance/CjsCharacterColorSelection.js +2 -2
  53. package/dist/character/model/appearance/CjsCharacterColorSelection.js.map +1 -1
  54. package/dist/character/model/appearance/CjsCharacterSculptSelection.js +2 -2
  55. package/dist/character/model/appearance/CjsCharacterSculptSelection.js.map +1 -1
  56. package/dist/character/model/appearance/CjsCharacterSculptingLocation.js +2 -2
  57. package/dist/character/model/appearance/CjsCharacterSculptingLocation.js.map +1 -1
  58. package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js +2 -2
  59. package/dist/character/model/behavior/CjsCharacterAvatarBehavior.js.map +1 -1
  60. package/dist/character/model/catalog/CjsCharacterColorValue.js +2 -2
  61. package/dist/character/model/catalog/CjsCharacterColorValue.js.map +1 -1
  62. package/dist/character/model/catalog/CjsCharacterDefinition.js +2 -2
  63. package/dist/character/model/catalog/CjsCharacterDefinition.js.map +1 -1
  64. package/dist/character/model/catalog/CjsCharacterMaterialProfile.js +2 -2
  65. package/dist/character/model/catalog/CjsCharacterMaterialProfile.js.map +1 -1
  66. package/dist/character/model/catalog/CjsCharacterModifierReference.js +2 -2
  67. package/dist/character/model/catalog/CjsCharacterModifierReference.js.map +1 -1
  68. package/dist/character/model/catalog/CjsCharacterPartMetadata.js +2 -2
  69. package/dist/character/model/catalog/CjsCharacterPartMetadata.js.map +1 -1
  70. package/dist/character/model/catalog/CjsCharacterPartModelBundle.js +2 -2
  71. package/dist/character/model/catalog/CjsCharacterPartModelBundle.js.map +1 -1
  72. package/dist/character/model/catalog/CjsCharacterPartSource.js +2 -2
  73. package/dist/character/model/catalog/CjsCharacterPartSource.js.map +1 -1
  74. package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js +2 -2
  75. package/dist/character/model/catalog/CjsCharacterPartSourceVersion.js.map +1 -1
  76. package/dist/character/model/catalog/CjsCharacterPartType.js +2 -2
  77. package/dist/character/model/catalog/CjsCharacterPartType.js.map +1 -1
  78. package/dist/character/model/catalog/CjsCharacterProjectionProfile.js +2 -2
  79. package/dist/character/model/catalog/CjsCharacterProjectionProfile.js.map +1 -1
  80. package/dist/character/model/catalog/CjsCharacterRecipeEntry.js +2 -2
  81. package/dist/character/model/catalog/CjsCharacterRecipeEntry.js.map +1 -1
  82. package/dist/character/model/catalog/CjsCharacterRecipeProfile.js +2 -2
  83. package/dist/character/model/catalog/CjsCharacterRecipeProfile.js.map +1 -1
  84. package/dist/character/model/catalog/CjsCharacterTextureMetadata.js +2 -2
  85. package/dist/character/model/catalog/CjsCharacterTextureMetadata.js.map +1 -1
  86. package/dist/character/model/composition/CjsCharacterModifierLocation.js +2 -2
  87. package/dist/character/model/composition/CjsCharacterModifierLocation.js.map +1 -1
  88. package/dist/character/model/composition/CjsCharacterModifierSelection.js +2 -2
  89. package/dist/character/model/composition/CjsCharacterModifierSelection.js.map +1 -1
  90. package/dist/character/model/creation/CjsCharacterPaperdoll.js +2 -2
  91. package/dist/character/model/creation/CjsCharacterPaperdoll.js.map +1 -1
  92. package/dist/character/model/demographics/CjsCharacterAncestry.js +2 -2
  93. package/dist/character/model/demographics/CjsCharacterAncestry.js.map +1 -1
  94. package/dist/character/model/demographics/CjsCharacterBloodline.js +2 -2
  95. package/dist/character/model/demographics/CjsCharacterBloodline.js.map +1 -1
  96. package/dist/character/model/demographics/CjsCharacterRace.js +2 -2
  97. package/dist/character/model/demographics/CjsCharacterRace.js.map +1 -1
  98. package/dist/character/model/planning/CjsCharacterAppearanceBinding.js +2 -2
  99. package/dist/character/model/planning/CjsCharacterAppearanceBinding.js.map +1 -1
  100. package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js +2 -2
  101. package/dist/character/model/planning/CjsCharacterAppearanceColorSelection.js.map +1 -1
  102. package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js +2 -2
  103. package/dist/character/model/planning/CjsCharacterAppearanceDiagnostic.js.map +1 -1
  104. package/dist/character/model/planning/CjsCharacterAppearanceLayer.js +2 -2
  105. package/dist/character/model/planning/CjsCharacterAppearanceLayer.js.map +1 -1
  106. package/dist/character/model/planning/CjsCharacterAppearancePlan.js +2 -2
  107. package/dist/character/model/planning/CjsCharacterAppearancePlan.js.map +1 -1
  108. package/dist/character/model/planning/CjsCharacterAppearanceSelection.js +2 -2
  109. package/dist/character/model/planning/CjsCharacterAppearanceSelection.js.map +1 -1
  110. package/dist/character/model/planning/CjsCharacterBindingAlpha.js +2 -2
  111. package/dist/character/model/planning/CjsCharacterBindingAlpha.js.map +1 -1
  112. package/dist/character/model/planning/CjsCharacterCompositionInput.js +2 -2
  113. package/dist/character/model/planning/CjsCharacterCompositionInput.js.map +1 -1
  114. package/dist/character/model/planning/CjsCharacterCompositionPass.js +2 -2
  115. package/dist/character/model/planning/CjsCharacterCompositionPass.js.map +1 -1
  116. package/dist/character/model/planning/CjsCharacterCompositionTarget.js +2 -2
  117. package/dist/character/model/planning/CjsCharacterCompositionTarget.js.map +1 -1
  118. package/dist/character/model/planning/CjsCharacterCoverage.js +2 -2
  119. package/dist/character/model/planning/CjsCharacterCoverage.js.map +1 -1
  120. package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js +2 -2
  121. package/dist/character/model/planning/CjsCharacterMorphTargetWeight.js.map +1 -1
  122. package/dist/character/model/planning/CjsCharacterOrigin.js +2 -2
  123. package/dist/character/model/planning/CjsCharacterOrigin.js.map +1 -1
  124. package/dist/character/model/planning/CjsCharacterResolvedPart.js +2 -2
  125. package/dist/character/model/planning/CjsCharacterResolvedPart.js.map +1 -1
  126. package/dist/character/model/planning/CjsCharacterTextureAsset.js +2 -2
  127. package/dist/character/model/planning/CjsCharacterTextureAsset.js.map +1 -1
  128. package/dist/character/model/planning/CjsCharacterTextureChannel.js +2 -2
  129. package/dist/character/model/planning/CjsCharacterTextureChannel.js.map +1 -1
  130. package/dist/character/model/resources/CjsCharacterPortraitResource.js +2 -2
  131. package/dist/character/model/resources/CjsCharacterPortraitResource.js.map +1 -1
  132. package/dist/character/model/resources/CjsCharacterResource.js +2 -2
  133. package/dist/character/model/resources/CjsCharacterResource.js.map +1 -1
  134. package/dist/character/trinity/interior/Tr2IntSkinnedObject.js +6 -5
  135. package/dist/character/trinity/interior/Tr2IntSkinnedObject.js.map +1 -1
  136. package/dist/character/trinity/interior/Tr2InteriorLightSource.js +2 -2
  137. package/dist/character/trinity/interior/Tr2InteriorLightSource.js.map +1 -1
  138. package/dist/character/trinity/interior/Tr2InteriorPlaceable.js +4 -5
  139. package/dist/character/trinity/interior/Tr2InteriorPlaceable.js.map +1 -1
  140. package/dist/character/trinity/interior/Tr2InteriorScene.js +2 -2
  141. package/dist/character/trinity/interior/Tr2InteriorScene.js.map +1 -1
  142. package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js +2 -2
  143. package/dist/character/trinity/trinityCore/Tr2GStateAnimation.js.map +1 -1
  144. package/dist/character/trinity/trinityCore/Tr2GStateParameter.js +2 -2
  145. package/dist/character/trinity/trinityCore/Tr2GStateParameter.js.map +1 -1
  146. package/dist/character/trinity/trinityCore/Tr2Model.js +2 -2
  147. package/dist/character/trinity/trinityCore/Tr2Model.js.map +1 -1
  148. package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js +21 -10
  149. package/dist/character/trinity/trinityCore/Tr2SkinnedModel.js.map +1 -1
  150. package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js +64 -57
  151. package/dist/character/trinity/trinityCore/Tr2SkinnedObject.js.map +1 -1
  152. package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js +1 -1
  153. package/dist/character/trinity/trinityCore/Tr2SkinnedObjectLod.js.map +1 -1
  154. package/dist/character/trinity/wod/WodBakingScene.js +2 -2
  155. package/dist/character/trinity/wod/WodBakingScene.js.map +1 -1
  156. package/dist/core/CjsLibrary.js +32 -685
  157. package/dist/core/CjsLibrary.js.map +1 -1
  158. package/dist/core/index.js +1 -2
  159. package/dist/core/index.js.map +1 -1
  160. package/dist/global/blue/BeInfo.js +95 -0
  161. package/dist/global/blue/BeInfo.js.map +1 -0
  162. package/dist/global/blue/CcpDateTime.js +53 -0
  163. package/dist/global/blue/CcpDateTime.js.map +1 -0
  164. package/dist/global/blue/CcpTime.js +148 -0
  165. package/dist/global/blue/CcpTime.js.map +1 -0
  166. package/dist/global/blue/CjsBlueOS.js +301 -0
  167. package/dist/global/blue/CjsBlueOS.js.map +1 -0
  168. package/dist/global/blue/CjsBluePaths.js +97 -0
  169. package/dist/global/blue/CjsBluePaths.js.map +1 -0
  170. package/dist/global/blue/IBlueDynamicResourceConstructor.js +29 -0
  171. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -0
  172. package/dist/global/blue/IBlueEvents.js +34 -0
  173. package/dist/global/blue/IBlueEvents.js.map +1 -0
  174. package/dist/global/blue/IBlueOS.js +132 -0
  175. package/dist/global/blue/IBlueOS.js.map +1 -0
  176. package/dist/global/blue/IBluePaths.js +72 -0
  177. package/dist/global/blue/IBluePaths.js.map +1 -0
  178. package/dist/global/blue/IBlueResMan.js +93 -0
  179. package/dist/global/blue/IBlueResMan.js.map +1 -0
  180. package/dist/global/blue/IBlueResManNotifications.js +51 -0
  181. package/dist/global/blue/IBlueResManNotifications.js.map +1 -0
  182. package/dist/global/blue/ICatchupTicks.js +25 -0
  183. package/dist/global/blue/ICatchupTicks.js.map +1 -0
  184. package/dist/global/blue/IInitialize.js +47 -0
  185. package/dist/global/blue/IInitialize.js.map +1 -0
  186. package/dist/global/blue/IListNotify.js +44 -0
  187. package/dist/global/blue/IListNotify.js.map +1 -0
  188. package/dist/global/blue/INotify.js +65 -0
  189. package/dist/global/blue/INotify.js.map +1 -0
  190. package/dist/global/blue/ISimTimeRebaseNotify.js +28 -0
  191. package/dist/global/blue/ISimTimeRebaseNotify.js.map +1 -0
  192. package/dist/global/blue/IVariableTicker.js +24 -0
  193. package/dist/global/blue/IVariableTicker.js.map +1 -0
  194. package/dist/global/blue/blue.js +61 -0
  195. package/dist/global/blue/blue.js.map +1 -0
  196. package/dist/global/blue/enums/CjsBlueEnumRegistry.js +173 -0
  197. package/dist/global/blue/enums/CjsBlueEnumRegistry.js.map +1 -0
  198. package/dist/global/blue/index.js +19 -0
  199. package/dist/global/blue/index.js.map +1 -1
  200. package/dist/global/blue/registerTrinityEnums.js +43 -0
  201. package/dist/global/blue/registerTrinityEnums.js.map +1 -0
  202. package/dist/global/compose/abstract.js +81 -0
  203. package/dist/global/compose/abstract.js.map +1 -0
  204. package/dist/global/compose/interface.js +131 -26
  205. package/dist/global/compose/interface.js.map +1 -1
  206. package/dist/global/compose/notify.js +10 -1
  207. package/dist/global/compose/notify.js.map +1 -1
  208. package/dist/global/compose/values.js +116 -53
  209. package/dist/global/compose/values.js.map +1 -1
  210. package/dist/global/consts/blue.js +73 -0
  211. package/dist/global/consts/blue.js.map +1 -0
  212. package/dist/global/consts/graphics/index.js +1 -1
  213. package/dist/global/consts/graphics/trinityEnums.js +19 -7
  214. package/dist/global/consts/graphics/trinityEnums.js.map +1 -1
  215. package/dist/global/consts/index.js +2 -1
  216. package/dist/global/consts/index.js.map +1 -1
  217. package/dist/global/consts/trinity.js.map +1 -1
  218. package/dist/global/contracts/ITr2BoundingBox.js +1 -34
  219. package/dist/global/contracts/ITr2BoundingBox.js.map +1 -1
  220. package/dist/global/contracts/ITr2RenderNode.js +1 -27
  221. package/dist/global/contracts/ITr2RenderNode.js.map +1 -1
  222. package/dist/global/contracts/index.js +2 -4
  223. package/dist/global/contracts/index.js.map +1 -1
  224. package/dist/global/index.js +23 -5
  225. package/dist/global/index.js.map +1 -1
  226. package/dist/global/model/CjsModel.js +82 -99
  227. package/dist/global/model/CjsModel.js.map +1 -1
  228. package/dist/global/model/CjsModelState.js +0 -15
  229. package/dist/global/model/CjsModelState.js.map +1 -1
  230. package/dist/global/model/document/CjsDocumentHydrator.js +5 -1
  231. package/dist/global/model/document/CjsDocumentHydrator.js.map +1 -1
  232. package/dist/global/model/index.js +1 -1
  233. package/dist/global/schema/CjsSchema.js +275 -69
  234. package/dist/global/schema/CjsSchema.js.map +1 -1
  235. package/dist/global/schema/hydration.js +10 -8
  236. package/dist/global/schema/hydration.js.map +1 -1
  237. package/dist/global/schema/index.js +4 -3
  238. package/dist/global/schema/index.js.map +1 -1
  239. package/dist/global/schema/types/carbonTypes.js +1 -1
  240. package/dist/global/schema/types/carbonTypes.js.map +1 -1
  241. package/dist/global/utils/bytes.js +2 -0
  242. package/dist/global/utils/bytes.js.map +1 -1
  243. package/dist/global/utils/path.js +30 -1
  244. package/dist/global/utils/path.js.map +1 -1
  245. package/dist/index.js +59 -24
  246. package/dist/index.js.map +1 -1
  247. package/dist/resource/CjsResMan.js +206 -43
  248. package/dist/resource/CjsResMan.js.map +1 -1
  249. package/dist/resource/CjsResource.js +4 -1
  250. package/dist/resource/CjsResource.js.map +1 -1
  251. package/dist/resource/format/CjsBlueReader.js +8 -2
  252. package/dist/resource/format/CjsBlueReader.js.map +1 -1
  253. package/dist/resource/format/CjsResourceProbe.js +15 -16
  254. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  255. package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js +132 -75
  256. package/dist/resource/format/carbonEffect/carbonEffectResourceTransform.js.map +1 -1
  257. package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js +26 -0
  258. package/dist/resource/formats/black/core/CjsBlackPropertyReaders.js.map +1 -1
  259. package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js +2 -1
  260. package/dist/resource/formats/black/core/CjsBlackSchemaRegistry.js.map +1 -1
  261. package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js +4 -0
  262. package/dist/resource/formats/black/core/black-schema-v1-2026-09-19.json.js.map +1 -0
  263. package/dist/resource/formats/black/core/blackDefinitions.js +1 -1
  264. package/dist/resource/formats/black/core/blackDefinitions.js.map +1 -1
  265. package/dist/resource/formats/black/core/blackSchema.js +1 -1
  266. package/dist/resource/formats/dds/CjsDdsFormat.js +50 -1
  267. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  268. package/dist/resource/formats/dds/core/helpers.js +51 -5
  269. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  270. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js +94 -0
  271. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierGraphicIds.js.map +1 -0
  272. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js +189 -0
  273. package/dist/resource/formats/fsd/64/readers/CjsFsd64SchemaFrontierTypes.js.map +1 -0
  274. package/dist/resource/formats/fsd/64/readers/index.js +2 -0
  275. package/dist/resource/formats/fsd/64/readers/index.js.map +1 -1
  276. package/dist/resource/formats/hlsl/core/detailMapFamily.js +18 -92
  277. package/dist/resource/formats/hlsl/core/detailMapFamily.js.map +1 -1
  278. package/dist/resource/formats/hlsl/core/textureArrayFamilies.js +285 -0
  279. package/dist/resource/formats/hlsl/core/textureArrayFamilies.js.map +1 -0
  280. package/dist/resource/formats/pickle/CjsPickleFormat.js +34 -14
  281. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  282. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +60 -451
  283. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  284. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +407 -0
  285. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -0
  286. package/dist/resource/formats/pickle/core/pickleCommon.js +671 -0
  287. package/dist/resource/formats/pickle/core/pickleCommon.js.map +1 -0
  288. package/dist/resource/formats/red/core/blackDefinitions.js +1 -1
  289. package/dist/resource/formats/webgl/core/effectPackage.js +85 -7
  290. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  291. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +666 -565
  292. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  293. package/dist/resource/formats/webgl/core/glslBackendBodySet.js +4 -4
  294. package/dist/resource/formats/webgl/core/glslBackendBodySet.js.map +1 -1
  295. package/dist/resource/formats/webgl/core/helpers.js +2 -2
  296. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  297. package/dist/resource/geometry/TriGeometryRes.js +61 -7
  298. package/dist/resource/geometry/TriGeometryRes.js.map +1 -1
  299. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js +11 -11
  300. package/dist/resource/geometry/granny/Tr2GrannyIntersectionResult.js.map +1 -1
  301. package/dist/resource/index.js +11 -0
  302. package/dist/resource/index.js.map +1 -1
  303. package/dist/resource/shader/Tr2EffectRes.js +2 -3
  304. package/dist/resource/shader/Tr2EffectRes.js.map +1 -1
  305. package/dist/resource/shader/Tr2MaterialArea.js +3 -3
  306. package/dist/resource/shader/Tr2MaterialArea.js.map +1 -1
  307. package/dist/resource/shader/Tr2MaterialMesh.js +2 -2
  308. package/dist/resource/shader/Tr2MaterialMesh.js.map +1 -1
  309. package/dist/resource/shader/Tr2MaterialRes.js +3 -3
  310. package/dist/resource/shader/Tr2MaterialRes.js.map +1 -1
  311. package/dist/resource/shader/reflection/Tr2EffectLibrary.js +2 -2
  312. package/dist/resource/shader/reflection/Tr2EffectLibrary.js.map +1 -1
  313. package/dist/resource/shader/reflection/Tr2EffectStageInput.js +2 -2
  314. package/dist/resource/shader/reflection/Tr2EffectStageInput.js.map +1 -1
  315. package/dist/resource/shader/reflection/Tr2Pass.js +4 -4
  316. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  317. package/dist/resource/texture/CjsTextureArrayRes.js.map +1 -1
  318. package/dist/resource/texture/SolidColorTextureConstructor.js +46 -0
  319. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -0
  320. package/dist/resource/texture/Tr2ImageRes.js +3 -4
  321. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  322. package/dist/resource/texture/Tr2TextureLodManager.js +0 -1
  323. package/dist/resource/texture/Tr2TextureLodManager.js.map +1 -1
  324. package/dist/resource/texture/Tr2TexturePackChannel.js +4 -4
  325. package/dist/resource/texture/Tr2TexturePackChannel.js.map +1 -1
  326. package/dist/resource/texture/Tr2TexturePipeline.js +3 -4
  327. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  328. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +5 -5
  329. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  330. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +3 -3
  331. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  332. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +2 -2
  333. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  334. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +6 -6
  335. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  336. package/dist/resource/texture/TriTextureRes.js +65 -21
  337. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  338. package/dist/resource/texture/index.js +2 -0
  339. package/dist/resource/texture/index.js.map +1 -1
  340. package/dist/resource/texture/solidColorTexture.js +111 -0
  341. package/dist/resource/texture/solidColorTexture.js.map +1 -0
  342. package/dist/resource/video/AudioMetadata.js +41 -0
  343. package/dist/resource/video/AudioMetadata.js.map +1 -0
  344. package/dist/resource/video/IAudioSink.js +51 -0
  345. package/dist/resource/video/IAudioSink.js.map +1 -0
  346. package/dist/resource/video/IEncodedFrame.js +52 -0
  347. package/dist/resource/video/IEncodedFrame.js.map +1 -0
  348. package/dist/resource/video/IVideoContainerParser.js +70 -0
  349. package/dist/resource/video/IVideoContainerParser.js.map +1 -0
  350. package/dist/resource/video/IVideoDecoder.js +36 -0
  351. package/dist/resource/video/IVideoDecoder.js.map +1 -0
  352. package/dist/resource/video/PcmFrame.js +33 -0
  353. package/dist/resource/video/PcmFrame.js.map +1 -0
  354. package/dist/resource/video/VideoFrame.js +45 -0
  355. package/dist/resource/video/VideoFrame.js.map +1 -0
  356. package/dist/resource/video/VideoMetadata.js +34 -0
  357. package/dist/resource/video/VideoMetadata.js.map +1 -0
  358. package/dist/resource/video/enums.js +30 -0
  359. package/dist/resource/video/enums.js.map +1 -0
  360. package/dist/sof/EveSOF.js +176 -176
  361. package/dist/sof/EveSOF.js.map +1 -1
  362. package/dist/sof/EveSOFDNA.js +5 -1
  363. package/dist/sof/EveSOFDNA.js.map +1 -1
  364. package/dist/sof/EveSOFData.js +2 -2
  365. package/dist/sof/EveSOFData.js.map +1 -1
  366. package/dist/sof/faction/EveSOFDataFaction.js +2 -2
  367. package/dist/sof/faction/EveSOFDataFaction.js.map +1 -1
  368. package/dist/sof/faction/EveSOFDataFactionChild.js +2 -2
  369. package/dist/sof/faction/EveSOFDataFactionChild.js.map +1 -1
  370. package/dist/sof/faction/EveSOFDataFactionColorSet.js +189 -3
  371. package/dist/sof/faction/EveSOFDataFactionColorSet.js.map +1 -1
  372. package/dist/sof/faction/EveSOFDataFactionHullArea.js +2 -2
  373. package/dist/sof/faction/EveSOFDataFactionHullArea.js.map +1 -1
  374. package/dist/sof/faction/EveSOFDataFactionPlaneSet.js +2 -2
  375. package/dist/sof/faction/EveSOFDataFactionPlaneSet.js.map +1 -1
  376. package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js +2 -2
  377. package/dist/sof/faction/EveSOFDataFactionSpotlightSet.js.map +1 -1
  378. package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js +2 -2
  379. package/dist/sof/faction/EveSOFDataFactionVisibilityGroupSet.js.map +1 -1
  380. package/dist/sof/generic/EveSOFDataGeneric.js +234 -230
  381. package/dist/sof/generic/EveSOFDataGeneric.js.map +1 -1
  382. package/dist/sof/generic/EveSOFDataGenericDamage.js +2 -2
  383. package/dist/sof/generic/EveSOFDataGenericDamage.js.map +1 -1
  384. package/dist/sof/generic/EveSOFDataGenericDecalShader.js +2 -2
  385. package/dist/sof/generic/EveSOFDataGenericDecalShader.js.map +1 -1
  386. package/dist/sof/generic/EveSOFDataGenericHullCategory.js +27 -23
  387. package/dist/sof/generic/EveSOFDataGenericHullCategory.js.map +1 -1
  388. package/dist/sof/generic/EveSOFDataGenericHullDamage.js +2 -2
  389. package/dist/sof/generic/EveSOFDataGenericHullDamage.js.map +1 -1
  390. package/dist/sof/generic/EveSOFDataGenericShader.js +2 -2
  391. package/dist/sof/generic/EveSOFDataGenericShader.js.map +1 -1
  392. package/dist/sof/generic/EveSOFDataGenericString.js +2 -2
  393. package/dist/sof/generic/EveSOFDataGenericString.js.map +1 -1
  394. package/dist/sof/generic/EveSOFDataGenericSwarm.js +2 -2
  395. package/dist/sof/generic/EveSOFDataGenericSwarm.js.map +1 -1
  396. package/dist/sof/generic/EveSOFDataGenericVariant.js +2 -2
  397. package/dist/sof/generic/EveSOFDataGenericVariant.js.map +1 -1
  398. package/dist/sof/generic/EveSOFDataVisibilityGroup.js +2 -2
  399. package/dist/sof/generic/EveSOFDataVisibilityGroup.js.map +1 -1
  400. package/dist/sof/hull/EveSOFDataHull.js +56 -3
  401. package/dist/sof/hull/EveSOFDataHull.js.map +1 -1
  402. package/dist/sof/hull/EveSOFDataHullAnimation.js +2 -2
  403. package/dist/sof/hull/EveSOFDataHullAnimation.js.map +1 -1
  404. package/dist/sof/hull/EveSOFDataHullArea.js +58 -54
  405. package/dist/sof/hull/EveSOFDataHullArea.js.map +1 -1
  406. package/dist/sof/hull/EveSOFDataHullBanner.js +109 -3
  407. package/dist/sof/hull/EveSOFDataHullBanner.js.map +1 -1
  408. package/dist/sof/hull/EveSOFDataHullBannerLight.js +2 -2
  409. package/dist/sof/hull/EveSOFDataHullBannerLight.js.map +1 -1
  410. package/dist/sof/hull/EveSOFDataHullBannerSet.js +2 -2
  411. package/dist/sof/hull/EveSOFDataHullBannerSet.js.map +1 -1
  412. package/dist/sof/hull/EveSOFDataHullBannerSetItem.js +109 -3
  413. package/dist/sof/hull/EveSOFDataHullBannerSetItem.js.map +1 -1
  414. package/dist/sof/hull/EveSOFDataHullBooster.js +2 -2
  415. package/dist/sof/hull/EveSOFDataHullBooster.js.map +1 -1
  416. package/dist/sof/hull/EveSOFDataHullBoosterItem.js +2 -2
  417. package/dist/sof/hull/EveSOFDataHullBoosterItem.js.map +1 -1
  418. package/dist/sof/hull/EveSOFDataHullChild.js +55 -50
  419. package/dist/sof/hull/EveSOFDataHullChild.js.map +1 -1
  420. package/dist/sof/hull/EveSOFDataHullChildSet.js +2 -2
  421. package/dist/sof/hull/EveSOFDataHullChildSet.js.map +1 -1
  422. package/dist/sof/hull/EveSOFDataHullChildSetItem.js +51 -46
  423. package/dist/sof/hull/EveSOFDataHullChildSetItem.js.map +1 -1
  424. package/dist/sof/hull/EveSOFDataHullController.js +2 -2
  425. package/dist/sof/hull/EveSOFDataHullController.js.map +1 -1
  426. package/dist/sof/hull/EveSOFDataHullDecalSet.js +2 -2
  427. package/dist/sof/hull/EveSOFDataHullDecalSet.js.map +1 -1
  428. package/dist/sof/hull/EveSOFDataHullDecalSetItem.js +45 -3
  429. package/dist/sof/hull/EveSOFDataHullDecalSetItem.js.map +1 -1
  430. package/dist/sof/hull/EveSOFDataHullHazeSet.js +21 -3
  431. package/dist/sof/hull/EveSOFDataHullHazeSet.js.map +1 -1
  432. package/dist/sof/hull/EveSOFDataHullHazeSetItem.js +47 -43
  433. package/dist/sof/hull/EveSOFDataHullHazeSetItem.js.map +1 -1
  434. package/dist/sof/hull/EveSOFDataHullLightSet.js +2 -2
  435. package/dist/sof/hull/EveSOFDataHullLightSet.js.map +1 -1
  436. package/dist/sof/hull/EveSOFDataHullLightSetItem.js +4 -2
  437. package/dist/sof/hull/EveSOFDataHullLightSetItem.js.map +1 -1
  438. package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js +2 -2
  439. package/dist/sof/hull/EveSOFDataHullLightSetSpotLight.js.map +1 -1
  440. package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js +2 -2
  441. package/dist/sof/hull/EveSOFDataHullLightSetTexturedPointLight.js.map +1 -1
  442. package/dist/sof/hull/EveSOFDataHullLocator.js +2 -2
  443. package/dist/sof/hull/EveSOFDataHullLocator.js.map +1 -1
  444. package/dist/sof/hull/EveSOFDataHullLocatorSet.js +2 -2
  445. package/dist/sof/hull/EveSOFDataHullLocatorSet.js.map +1 -1
  446. package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js +2 -2
  447. package/dist/sof/hull/EveSOFDataHullLocatorSetGroup.js.map +1 -1
  448. package/dist/sof/hull/EveSOFDataHullPlaneSet.js +29 -3
  449. package/dist/sof/hull/EveSOFDataHullPlaneSet.js.map +1 -1
  450. package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js +81 -75
  451. package/dist/sof/hull/EveSOFDataHullPlaneSetItem.js.map +1 -1
  452. package/dist/sof/hull/EveSOFDataHullSoundEmitter.js +2 -2
  453. package/dist/sof/hull/EveSOFDataHullSoundEmitter.js.map +1 -1
  454. package/dist/sof/hull/EveSOFDataHullSpotlightSet.js +2 -2
  455. package/dist/sof/hull/EveSOFDataHullSpotlightSet.js.map +1 -1
  456. package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js +45 -41
  457. package/dist/sof/hull/EveSOFDataHullSpotlightSetItem.js.map +1 -1
  458. package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js +2 -2
  459. package/dist/sof/hull/EveSOFDataHullSpriteLineSet.js.map +1 -1
  460. package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js +70 -66
  461. package/dist/sof/hull/EveSOFDataHullSpriteLineSetItem.js.map +1 -1
  462. package/dist/sof/hull/EveSOFDataHullSpriteSet.js +2 -2
  463. package/dist/sof/hull/EveSOFDataHullSpriteSet.js.map +1 -1
  464. package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js +45 -41
  465. package/dist/sof/hull/EveSOFDataHullSpriteSetItem.js.map +1 -1
  466. package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js +2 -2
  467. package/dist/sof/hull/EveSOFDataMultiHullDecalIndexBuffers.js.map +1 -1
  468. package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js +2 -2
  469. package/dist/sof/layout/EveSOFDataDistributionDepletionCounter.js.map +1 -1
  470. package/dist/sof/layout/EveSOFDataHullExtensionBucket.js +2 -2
  471. package/dist/sof/layout/EveSOFDataHullExtensionBucket.js.map +1 -1
  472. package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js +2 -2
  473. package/dist/sof/layout/EveSOFDataHullExtensionPlacement.js.map +1 -1
  474. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js +2 -2
  475. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionDepletionCounter.js.map +1 -1
  476. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js +35 -3
  477. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionMapGraphicSettings.js.map +1 -1
  478. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js +2 -2
  479. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionParentMatch.js.map +1 -1
  480. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js +2 -2
  481. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionPlacement.js.map +1 -1
  482. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js +2 -2
  483. package/dist/sof/layout/EveSOFDataHullExtensionPlacementDistributionRandomChance.js.map +1 -1
  484. package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js +2 -2
  485. package/dist/sof/layout/EveSOFDataHullExtensionPlacementGroup.js.map +1 -1
  486. package/dist/sof/layout/EveSOFDataLayout.js +2 -2
  487. package/dist/sof/layout/EveSOFDataLayout.js.map +1 -1
  488. package/dist/sof/pattern/EveSOFDataPattern.js +2 -2
  489. package/dist/sof/pattern/EveSOFDataPattern.js.map +1 -1
  490. package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js +2 -2
  491. package/dist/sof/pattern/EveSOFDataPatternApplicationGroup.js.map +1 -1
  492. package/dist/sof/pattern/EveSOFDataPatternLayer.js +60 -3
  493. package/dist/sof/pattern/EveSOFDataPatternLayer.js.map +1 -1
  494. package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js +23 -3
  495. package/dist/sof/pattern/EveSOFDataPatternLayerProperties.js.map +1 -1
  496. package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js +2 -2
  497. package/dist/sof/pattern/EveSOFDataPatternMaterialOverride.js.map +1 -1
  498. package/dist/sof/pattern/EveSOFDataPatternPerHull.js +2 -2
  499. package/dist/sof/pattern/EveSOFDataPatternPerHull.js.map +1 -1
  500. package/dist/sof/pattern/EveSOFDataPatternTransform.js +2 -2
  501. package/dist/sof/pattern/EveSOFDataPatternTransform.js.map +1 -1
  502. package/dist/sof/race/EveSOFDataRace.js +46 -42
  503. package/dist/sof/race/EveSOFDataRace.js.map +1 -1
  504. package/dist/sof/race/EveSOFDataRaceDamage.js +2 -2
  505. package/dist/sof/race/EveSOFDataRaceDamage.js.map +1 -1
  506. package/dist/sof/shared/CjsExternalRef.js +2 -2
  507. package/dist/sof/shared/CjsExternalRef.js.map +1 -1
  508. package/dist/sof/shared/EveSOFDNADescriptor.js +2 -2
  509. package/dist/sof/shared/EveSOFDNADescriptor.js.map +1 -1
  510. package/dist/sof/shared/EveSOFDataArea.js +61 -3
  511. package/dist/sof/shared/EveSOFDataArea.js.map +1 -1
  512. package/dist/sof/shared/EveSOFDataAreaMaterial.js +4 -2
  513. package/dist/sof/shared/EveSOFDataAreaMaterial.js.map +1 -1
  514. package/dist/sof/shared/EveSOFDataBlinkType.js +48 -8
  515. package/dist/sof/shared/EveSOFDataBlinkType.js.map +1 -1
  516. package/dist/sof/shared/EveSOFDataBooster.js +2 -2
  517. package/dist/sof/shared/EveSOFDataBooster.js.map +1 -1
  518. package/dist/sof/shared/EveSOFDataBoosterShape.js +2 -2
  519. package/dist/sof/shared/EveSOFDataBoosterShape.js.map +1 -1
  520. package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js +2 -2
  521. package/dist/sof/shared/EveSOFDataDecalIndexBuffer.js.map +1 -1
  522. package/dist/sof/shared/EveSOFDataInstancedMesh.js +40 -3
  523. package/dist/sof/shared/EveSOFDataInstancedMesh.js.map +1 -1
  524. package/dist/sof/shared/EveSOFDataLogo.js +2 -2
  525. package/dist/sof/shared/EveSOFDataLogo.js.map +1 -1
  526. package/dist/sof/shared/EveSOFDataLogoSet.js +33 -3
  527. package/dist/sof/shared/EveSOFDataLogoSet.js.map +1 -1
  528. package/dist/sof/shared/EveSOFDataMaterial.js +2 -2
  529. package/dist/sof/shared/EveSOFDataMaterial.js.map +1 -1
  530. package/dist/sof/shared/EveSOFDataParameter.js +2 -2
  531. package/dist/sof/shared/EveSOFDataParameter.js.map +1 -1
  532. package/dist/sof/shared/EveSOFDataParameterBool.js +2 -2
  533. package/dist/sof/shared/EveSOFDataParameterBool.js.map +1 -1
  534. package/dist/sof/shared/EveSOFDataParameterColor.js +2 -2
  535. package/dist/sof/shared/EveSOFDataParameterColor.js.map +1 -1
  536. package/dist/sof/shared/EveSOFDataParameterFloat.js +2 -2
  537. package/dist/sof/shared/EveSOFDataParameterFloat.js.map +1 -1
  538. package/dist/sof/shared/EveSOFDataParameterInt.js +2 -2
  539. package/dist/sof/shared/EveSOFDataParameterInt.js.map +1 -1
  540. package/dist/sof/shared/EveSOFDataParameterVector2.js +2 -2
  541. package/dist/sof/shared/EveSOFDataParameterVector2.js.map +1 -1
  542. package/dist/sof/shared/EveSOFDataParameterVector3.js +2 -2
  543. package/dist/sof/shared/EveSOFDataParameterVector3.js.map +1 -1
  544. package/dist/sof/shared/EveSOFDataPointLightAttachment.js +2 -2
  545. package/dist/sof/shared/EveSOFDataPointLightAttachment.js.map +1 -1
  546. package/dist/sof/shared/EveSOFDataSpotLightAttachment.js +2 -2
  547. package/dist/sof/shared/EveSOFDataSpotLightAttachment.js.map +1 -1
  548. package/dist/sof/shared/EveSOFDataTexture.js +2 -2
  549. package/dist/sof/shared/EveSOFDataTexture.js.map +1 -1
  550. package/dist/sof/shared/EveSOFDataTransform.js +2 -2
  551. package/dist/sof/shared/EveSOFDataTransform.js.map +1 -1
  552. package/dist/sof/shared/EveSofDataMeshInstance.js +2 -2
  553. package/dist/sof/shared/EveSofDataMeshInstance.js.map +1 -1
  554. package/dist/sof/sofDocumentValues.js +9 -0
  555. package/dist/sof/sofDocumentValues.js.map +1 -1
  556. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js +2 -25
  557. package/dist/trinity/controllers/ITr2Controller/ITr2ActionController.js.map +1 -1
  558. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js +2 -72
  559. package/dist/trinity/controllers/ITr2Controller/ITr2Controller.js.map +1 -1
  560. package/dist/trinity/controllers/ITr2ControllerOwner.js +1 -36
  561. package/dist/trinity/controllers/ITr2ControllerOwner.js.map +1 -1
  562. package/dist/trinity/controllers/Tr2Controller.js +4 -5
  563. package/dist/trinity/controllers/Tr2Controller.js.map +1 -1
  564. package/dist/trinity/controllers/Tr2ControllerEventHandler.js +2 -2
  565. package/dist/trinity/controllers/Tr2ControllerEventHandler.js.map +1 -1
  566. package/dist/trinity/controllers/Tr2ControllerReference.js +9 -17
  567. package/dist/trinity/controllers/Tr2ControllerReference.js.map +1 -1
  568. package/dist/trinity/controllers/Tr2SyncToAnimation.js +4 -5
  569. package/dist/trinity/controllers/Tr2SyncToAnimation.js.map +1 -1
  570. package/dist/trinity/controllers/action/ITr2ControllerAction.js +1 -28
  571. package/dist/trinity/controllers/action/ITr2ControllerAction.js.map +1 -1
  572. package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js +9 -7
  573. package/dist/trinity/controllers/action/Tr2ActionAnimateCurveSet.js.map +1 -1
  574. package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js +11 -9
  575. package/dist/trinity/controllers/action/Tr2ActionAnimateValue.js.map +1 -1
  576. package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js +9 -7
  577. package/dist/trinity/controllers/action/Tr2ActionBindRTPC.js.map +1 -1
  578. package/dist/trinity/controllers/action/Tr2ActionCallback.js +4 -5
  579. package/dist/trinity/controllers/action/Tr2ActionCallback.js.map +1 -1
  580. package/dist/trinity/controllers/action/Tr2ActionChildEffect.js +4 -5
  581. package/dist/trinity/controllers/action/Tr2ActionChildEffect.js.map +1 -1
  582. package/dist/trinity/controllers/action/Tr2ActionOverlay.js +4 -5
  583. package/dist/trinity/controllers/action/Tr2ActionOverlay.js.map +1 -1
  584. package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js +4 -5
  585. package/dist/trinity/controllers/action/Tr2ActionPlayCurveSet.js.map +1 -1
  586. package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js +13 -9
  587. package/dist/trinity/controllers/action/Tr2ActionPlayMeshAnimation.js.map +1 -1
  588. package/dist/trinity/controllers/action/Tr2ActionPlaySound.js +4 -5
  589. package/dist/trinity/controllers/action/Tr2ActionPlaySound.js.map +1 -1
  590. package/dist/trinity/controllers/action/Tr2ActionPython.js +6 -6
  591. package/dist/trinity/controllers/action/Tr2ActionPython.js.map +1 -1
  592. package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js +4 -5
  593. package/dist/trinity/controllers/action/Tr2ActionResetClipSphereCenter.js.map +1 -1
  594. package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js +4 -5
  595. package/dist/trinity/controllers/action/Tr2ActionSetAttenuationScaling.js.map +1 -1
  596. package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js +4 -5
  597. package/dist/trinity/controllers/action/Tr2ActionSetAudioEmitterPrefix.js.map +1 -1
  598. package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js +4 -5
  599. package/dist/trinity/controllers/action/Tr2ActionSetAudioSwitch.js.map +1 -1
  600. package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js +8 -17
  601. package/dist/trinity/controllers/action/Tr2ActionSetExternalControllerVariable.js.map +1 -1
  602. package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js +4 -5
  603. package/dist/trinity/controllers/action/Tr2ActionSetShaderOption.js.map +1 -1
  604. package/dist/trinity/controllers/action/Tr2ActionSetValue.js +11 -9
  605. package/dist/trinity/controllers/action/Tr2ActionSetValue.js.map +1 -1
  606. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js +4 -5
  607. package/dist/trinity/controllers/action/Tr2ActionSpawnParticles.js.map +1 -1
  608. package/dist/trinity/controllers/contracts.js +27 -19
  609. package/dist/trinity/controllers/contracts.js.map +1 -1
  610. package/dist/trinity/controllers/expression/Tr2BindingPoint.js +6 -15
  611. package/dist/trinity/controllers/expression/Tr2BindingPoint.js.map +1 -1
  612. package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js +2 -2
  613. package/dist/trinity/controllers/expression/Tr2ControllerFloatVariable.js.map +1 -1
  614. package/dist/trinity/controllers/expression/expressionRuntime.js +136 -0
  615. package/dist/trinity/controllers/expression/expressionRuntime.js.map +1 -1
  616. package/dist/trinity/controllers/index.js +6 -6
  617. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js +1 -24
  618. package/dist/trinity/controllers/state/ITr2StateMachineStateFinalizer.js.map +1 -1
  619. package/dist/trinity/controllers/state/Tr2StateMachine.js +4 -6
  620. package/dist/trinity/controllers/state/Tr2StateMachine.js.map +1 -1
  621. package/dist/trinity/controllers/state/Tr2StateMachineState.js +6 -6
  622. package/dist/trinity/controllers/state/Tr2StateMachineState.js.map +1 -1
  623. package/dist/trinity/controllers/state/Tr2StateMachineTransition.js +12 -9
  624. package/dist/trinity/controllers/state/Tr2StateMachineTransition.js.map +1 -1
  625. package/dist/trinity/controllers/timeline/Tr2TimelineController.js +5 -6
  626. package/dist/trinity/controllers/timeline/Tr2TimelineController.js.map +1 -1
  627. package/dist/trinity/core/ITr2Renderable.js +1 -49
  628. package/dist/trinity/core/ITr2Renderable.js.map +1 -1
  629. package/dist/trinity/core/ITr2Updateable.js +1 -22
  630. package/dist/trinity/core/ITr2Updateable.js.map +1 -1
  631. package/dist/trinity/core/ITriReroutable.js +56 -0
  632. package/dist/trinity/core/ITriReroutable.js.map +1 -0
  633. package/dist/trinity/core/Tr2Denoiser.js +2 -2
  634. package/dist/trinity/core/Tr2Denoiser.js.map +1 -1
  635. package/dist/trinity/core/Tr2MaterialParameterStore.js +2 -2
  636. package/dist/trinity/core/Tr2MaterialParameterStore.js.map +1 -1
  637. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js +2 -2
  638. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRenderer.js.map +1 -1
  639. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js +1 -1
  640. package/dist/trinity/core/Tr2QuadRenderer/Tr2QuadRendererEffectRecord.js.map +1 -1
  641. package/dist/trinity/core/Tr2Renderer.js +161 -4
  642. package/dist/trinity/core/Tr2Renderer.js.map +1 -1
  643. package/dist/trinity/core/Tr2ShadowMap.js +3 -3
  644. package/dist/trinity/core/Tr2ShadowMap.js.map +1 -1
  645. package/dist/trinity/core/Tr2StreamingBitmapSaver.js +2 -2
  646. package/dist/trinity/core/Tr2StreamingBitmapSaver.js.map +1 -1
  647. package/dist/trinity/core/Tr2Transform.js +4 -5
  648. package/dist/trinity/core/Tr2Transform.js.map +1 -1
  649. package/dist/trinity/core/animation/Tr2GrannyAnimation.js +2 -2
  650. package/dist/trinity/core/animation/Tr2GrannyAnimation.js.map +1 -1
  651. package/dist/trinity/core/animation/Tr2TextureAnimation.js +2 -2
  652. package/dist/trinity/core/animation/Tr2TextureAnimation.js.map +1 -1
  653. package/dist/trinity/core/animation/TriRigidOrientation.js +2 -2
  654. package/dist/trinity/core/animation/TriRigidOrientation.js.map +1 -1
  655. package/dist/trinity/core/animation/TriTorque.js +2 -2
  656. package/dist/trinity/core/animation/TriTorque.js.map +1 -1
  657. package/dist/trinity/core/batch/CjsBatchManager.js +15 -50
  658. package/dist/trinity/core/batch/CjsBatchManager.js.map +1 -1
  659. package/dist/trinity/core/batch/TriRenderBatch/ITriRenderBatchAccumulator.js.map +1 -1
  660. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js +12 -14
  661. package/dist/trinity/core/batch/TriRenderBatch/Tr2RenderBatch.js.map +1 -1
  662. package/dist/trinity/core/binding/Tr2BindingVector3.js +2 -2
  663. package/dist/trinity/core/binding/Tr2BindingVector3.js.map +1 -1
  664. package/dist/trinity/core/binding/Tr2DynamicBinding.js +6 -20
  665. package/dist/trinity/core/binding/Tr2DynamicBinding.js.map +1 -1
  666. package/dist/trinity/core/binding/Tr2ExternalParameter.js +3 -6
  667. package/dist/trinity/core/binding/Tr2ExternalParameter.js.map +1 -1
  668. package/dist/trinity/core/binding/Tr2PyValueBinding.js +2 -2
  669. package/dist/trinity/core/binding/Tr2PyValueBinding.js.map +1 -1
  670. package/dist/trinity/core/binding/TriValueBinding.js +50 -24
  671. package/dist/trinity/core/binding/TriValueBinding.js.map +1 -1
  672. package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js +0 -6
  673. package/dist/trinity/core/context/CjsDirectTrinityStepExecutor.js.map +1 -1
  674. package/dist/trinity/core/context/CjsTrinityStepExecutor.js +7 -10
  675. package/dist/trinity/core/context/CjsTrinityStepExecutor.js.map +1 -1
  676. package/dist/trinity/core/context/Tr2RenderContext.js +74 -116
  677. package/dist/trinity/core/context/Tr2RenderContext.js.map +1 -1
  678. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  679. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  680. package/dist/trinity/core/device/Tr2GpuBuffer.js +2 -2
  681. package/dist/trinity/core/device/Tr2GpuBuffer.js.map +1 -1
  682. package/dist/trinity/core/device/Tr2RenderTarget.js +2 -2
  683. package/dist/trinity/core/device/Tr2RenderTarget.js.map +1 -1
  684. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +2 -2
  685. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js.map +1 -1
  686. package/dist/trinity/core/device/Tr2SwapChain.js +2 -2
  687. package/dist/trinity/core/device/Tr2SwapChain.js.map +1 -1
  688. package/dist/trinity/core/device/TriDevice.js +576 -37
  689. package/dist/trinity/core/device/TriDevice.js.map +1 -1
  690. package/dist/trinity/core/device/gTriDev.js +49 -0
  691. package/dist/trinity/core/device/gTriDev.js.map +1 -0
  692. package/dist/trinity/core/index.js +9 -5
  693. package/dist/trinity/core/index.js.map +1 -1
  694. package/dist/trinity/core/lighting/Tr2KelvinColor.js +2 -2
  695. package/dist/trinity/core/lighting/Tr2KelvinColor.js.map +1 -1
  696. package/dist/trinity/core/lighting/Tr2LightManager.js +7 -17
  697. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  698. package/dist/trinity/core/lighting/Tr2ShLightingManager.js +2 -2
  699. package/dist/trinity/core/lighting/Tr2ShLightingManager.js.map +1 -1
  700. package/dist/trinity/core/line/Tr2BoundingLineSet.js +2 -2
  701. package/dist/trinity/core/line/Tr2BoundingLineSet.js.map +1 -1
  702. package/dist/trinity/core/line/Tr2CurveLineSet.js +10 -7
  703. package/dist/trinity/core/line/Tr2CurveLineSet.js.map +1 -1
  704. package/dist/trinity/core/line/Tr2LineGraph.js +2 -2
  705. package/dist/trinity/core/line/Tr2LineGraph.js.map +1 -1
  706. package/dist/trinity/core/line/Tr2PrimitiveSet.js +4 -5
  707. package/dist/trinity/core/line/Tr2PrimitiveSet.js.map +1 -1
  708. package/dist/trinity/core/line/TriLineSet.js +2 -2
  709. package/dist/trinity/core/line/TriLineSet.js.map +1 -1
  710. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js +1 -37
  711. package/dist/trinity/core/mesh/ITr2ImpostorSource/ITr2ImpostorSource.js.map +1 -1
  712. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js +1 -34
  713. package/dist/trinity/core/mesh/ITr2InstanceData/ITr2InstanceData.js.map +1 -1
  714. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js +5 -6
  715. package/dist/trinity/core/mesh/Tr2DirectInstanceData.js.map +1 -1
  716. package/dist/trinity/core/mesh/Tr2InstancedMesh.js +2 -2
  717. package/dist/trinity/core/mesh/Tr2InstancedMesh.js.map +1 -1
  718. package/dist/trinity/core/mesh/Tr2Mesh.js +288 -183
  719. package/dist/trinity/core/mesh/Tr2Mesh.js.map +1 -1
  720. package/dist/trinity/core/mesh/Tr2MeshArea.js +32 -3
  721. package/dist/trinity/core/mesh/Tr2MeshArea.js.map +1 -1
  722. package/dist/trinity/core/mesh/Tr2MeshBase.js +58 -8
  723. package/dist/trinity/core/mesh/Tr2MeshBase.js.map +1 -1
  724. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js +141 -142
  725. package/dist/trinity/core/mesh/Tr2RuntimeInstanceData.js.map +1 -1
  726. package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js +2 -2
  727. package/dist/trinity/core/mesh/Tr2SerializedMorphAnimation.js.map +1 -1
  728. package/dist/trinity/core/procedural/GradientTextureConstructor.js +62 -0
  729. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -0
  730. package/dist/trinity/core/procedural/gradientTexture.js +196 -0
  731. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -0
  732. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectData.js.map +1 -1
  733. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js +5 -0
  734. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataPSBuffer.js.map +1 -1
  735. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js +2 -0
  736. package/dist/trinity/core/rawData/perObjectData/Tr2PerObjectDataStandard.js.map +1 -1
  737. package/dist/trinity/core/tool/Tr2ManipulationTool.js +2 -2
  738. package/dist/trinity/core/tool/Tr2ManipulationTool.js.map +1 -1
  739. package/dist/trinity/core/tool/Tr2RotationTool.js +2 -2
  740. package/dist/trinity/core/tool/Tr2RotationTool.js.map +1 -1
  741. package/dist/trinity/core/tool/Tr2ScalingTool.js +2 -2
  742. package/dist/trinity/core/tool/Tr2ScalingTool.js.map +1 -1
  743. package/dist/trinity/core/tool/Tr2TranslationTool.js +2 -2
  744. package/dist/trinity/core/tool/Tr2TranslationTool.js.map +1 -1
  745. package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js +2 -2
  746. package/dist/trinity/core/variable/Tr2ExpressionTermInfo.js.map +1 -1
  747. package/dist/trinity/core/variable/TriFloat.js +2 -2
  748. package/dist/trinity/core/variable/TriFloat.js.map +1 -1
  749. package/dist/trinity/core/variable/TriObserverLocal.js +2 -2
  750. package/dist/trinity/core/variable/TriObserverLocal.js.map +1 -1
  751. package/dist/trinity/core/variable/TriVariable.js +2 -2
  752. package/dist/trinity/core/variable/TriVariable.js.map +1 -1
  753. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js +2 -0
  754. package/dist/trinity/core/vertex/Tr2VertexDefinition/Tr2VertexDefinition.js.map +1 -1
  755. package/dist/trinity/core/view/TriProjection.js +2 -2
  756. package/dist/trinity/core/view/TriProjection.js.map +1 -1
  757. package/dist/trinity/core/view/TriRect.js +2 -2
  758. package/dist/trinity/core/view/TriRect.js.map +1 -1
  759. package/dist/trinity/core/view/TriView.js +2 -2
  760. package/dist/trinity/core/view/TriView.js.map +1 -1
  761. package/dist/trinity/core/view/TriViewport.js +2 -2
  762. package/dist/trinity/core/view/TriViewport.js.map +1 -1
  763. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +3 -3
  764. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  765. package/dist/trinity/curves/Tr2CurveSetRange.js +2 -2
  766. package/dist/trinity/curves/Tr2CurveSetRange.js.map +1 -1
  767. package/dist/trinity/curves/TriCurveSet.js +2 -2
  768. package/dist/trinity/curves/TriCurveSet.js.map +1 -1
  769. package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js +2 -2
  770. package/dist/trinity/curves/curve/Tr2BoneMatrixCurve.js.map +1 -1
  771. package/dist/trinity/curves/curve/Tr2CurveColor.js +2 -2
  772. package/dist/trinity/curves/curve/Tr2CurveColor.js.map +1 -1
  773. package/dist/trinity/curves/curve/Tr2CurveColorMixer.js +2 -2
  774. package/dist/trinity/curves/curve/Tr2CurveColorMixer.js.map +1 -1
  775. package/dist/trinity/curves/curve/Tr2CurveCombiner.js +3 -3
  776. package/dist/trinity/curves/curve/Tr2CurveCombiner.js.map +1 -1
  777. package/dist/trinity/curves/curve/Tr2CurveConstant.js +2 -2
  778. package/dist/trinity/curves/curve/Tr2CurveConstant.js.map +1 -1
  779. package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js +2 -2
  780. package/dist/trinity/curves/curve/Tr2CurveEulerRotation.js.map +1 -1
  781. package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js +2 -2
  782. package/dist/trinity/curves/curve/Tr2CurveEulerRotationExpression.js.map +1 -1
  783. package/dist/trinity/curves/curve/Tr2CurveQuaternion.js +3 -3
  784. package/dist/trinity/curves/curve/Tr2CurveQuaternion.js.map +1 -1
  785. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js +2 -2
  786. package/dist/trinity/curves/curve/Tr2CurveRandomAxisRotation.js.map +1 -1
  787. package/dist/trinity/curves/curve/Tr2CurveScalar.js +3 -3
  788. package/dist/trinity/curves/curve/Tr2CurveScalar.js.map +1 -1
  789. package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js +2 -2
  790. package/dist/trinity/curves/curve/Tr2CurveScalarExpression.js.map +1 -1
  791. package/dist/trinity/curves/curve/Tr2CurveVector2.js +2 -2
  792. package/dist/trinity/curves/curve/Tr2CurveVector2.js.map +1 -1
  793. package/dist/trinity/curves/curve/Tr2CurveVector3.js +2 -2
  794. package/dist/trinity/curves/curve/Tr2CurveVector3.js.map +1 -1
  795. package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js +2 -2
  796. package/dist/trinity/curves/curve/Tr2CurveVector3Expression.js.map +1 -1
  797. package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js +2 -2
  798. package/dist/trinity/curves/curve/Tr2CurveVector3Lerp.js.map +1 -1
  799. package/dist/trinity/curves/curve/Tr2DistanceTracker.js +5 -5
  800. package/dist/trinity/curves/curve/Tr2DistanceTracker.js.map +1 -1
  801. package/dist/trinity/curves/curve/Tr2FollowCurve.js +2 -2
  802. package/dist/trinity/curves/curve/Tr2FollowCurve.js.map +1 -1
  803. package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js +2 -2
  804. package/dist/trinity/curves/curve/Tr2QuaternionLerpCurve.js.map +1 -1
  805. package/dist/trinity/curves/curve/Tr2RotationAdapter.js +2 -2
  806. package/dist/trinity/curves/curve/Tr2RotationAdapter.js.map +1 -1
  807. package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js +2 -2
  808. package/dist/trinity/curves/curve/Tr2ScalarExprKeyCurve.js.map +1 -1
  809. package/dist/trinity/curves/curve/Tr2ScalarFader.js +2 -2
  810. package/dist/trinity/curves/curve/Tr2ScalarFader.js.map +1 -1
  811. package/dist/trinity/curves/curve/Tr2TranslationAdapter.js +2 -2
  812. package/dist/trinity/curves/curve/Tr2TranslationAdapter.js.map +1 -1
  813. package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js +2 -2
  814. package/dist/trinity/curves/curve/Tr2VectorFunctionModifier.js.map +1 -1
  815. package/dist/trinity/curves/curve/TriColorSequencer.js +18 -18
  816. package/dist/trinity/curves/curve/TriColorSequencer.js.map +1 -1
  817. package/dist/trinity/curves/curve/TriEventCurve.js +51 -51
  818. package/dist/trinity/curves/curve/TriEventCurve.js.map +1 -1
  819. package/dist/trinity/curves/curve/TriPerlinCurve.js +2 -2
  820. package/dist/trinity/curves/curve/TriPerlinCurve.js.map +1 -1
  821. package/dist/trinity/curves/curve/TriVectorSequencer.js +36 -36
  822. package/dist/trinity/curves/curve/TriVectorSequencer.js.map +1 -1
  823. package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js +2 -2
  824. package/dist/trinity/curves/key/Tr2CameraFollowCurveKey.js.map +1 -1
  825. package/dist/trinity/curves/key/Tr2MatrixKey.js +2 -2
  826. package/dist/trinity/curves/key/Tr2MatrixKey.js.map +1 -1
  827. package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js +2 -2
  828. package/dist/trinity/curves/key/Tr2ObjectFollowCurveKey.js.map +1 -1
  829. package/dist/trinity/curves/key/Tr2ScalarExprKey.js +28 -24
  830. package/dist/trinity/curves/key/Tr2ScalarExprKey.js.map +1 -1
  831. package/dist/trinity/curves/key/TriEventKey.js +2 -2
  832. package/dist/trinity/curves/key/TriEventKey.js.map +1 -1
  833. package/dist/trinity/curves/track/Tr2GrannyEventTrack.js +2 -2
  834. package/dist/trinity/curves/track/Tr2GrannyEventTrack.js.map +1 -1
  835. package/dist/trinity/curves/track/Tr2GrannyTrack.js +9 -4
  836. package/dist/trinity/curves/track/Tr2GrannyTrack.js.map +1 -1
  837. package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js +2 -2
  838. package/dist/trinity/curves/track/Tr2GrannyTransformTrack.js.map +1 -1
  839. package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js +2 -2
  840. package/dist/trinity/curves/track/Tr2GrannyVectorTrack.js.map +1 -1
  841. package/dist/trinity/eve/AudioGameObject.js +6 -8
  842. package/dist/trinity/eve/AudioGameObject.js.map +1 -1
  843. package/dist/trinity/eve/EveCustomMask.js +2 -2
  844. package/dist/trinity/eve/EveCustomMask.js.map +1 -1
  845. package/dist/trinity/eve/EveDistanceField.js +6 -4
  846. package/dist/trinity/eve/EveDistanceField.js.map +1 -1
  847. package/dist/trinity/eve/EveImpactOverlay.js +2 -2
  848. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  849. package/dist/trinity/eve/EveThrottleable.js +2 -2
  850. package/dist/trinity/eve/EveThrottleable.js.map +1 -1
  851. package/dist/trinity/eve/EveTriggerVolume.js +4 -5
  852. package/dist/trinity/eve/EveTriggerVolume.js.map +1 -1
  853. package/dist/trinity/eve/IEveInheritPropertiesOwner.js +1 -23
  854. package/dist/trinity/eve/IEveInheritPropertiesOwner.js.map +1 -1
  855. package/dist/trinity/eve/IEveSpaceObject2.js +1 -24
  856. package/dist/trinity/eve/IEveSpaceObject2.js.map +1 -1
  857. package/dist/trinity/eve/IEveTransform.js +1 -22
  858. package/dist/trinity/eve/IEveTransform.js.map +1 -1
  859. package/dist/trinity/eve/attachment/banner/EveBannerItem.js +2 -2
  860. package/dist/trinity/eve/attachment/banner/EveBannerItem.js.map +1 -1
  861. package/dist/trinity/eve/attachment/banner/EveBannerLight.js +2 -2
  862. package/dist/trinity/eve/attachment/banner/EveBannerLight.js.map +1 -1
  863. package/dist/trinity/eve/attachment/banner/EveBannerSet.js +20 -3
  864. package/dist/trinity/eve/attachment/banner/EveBannerSet.js.map +1 -1
  865. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js +127 -122
  866. package/dist/trinity/eve/attachment/booster/EveBoosterSet2.js.map +1 -1
  867. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js +5 -5
  868. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Item.js.map +1 -1
  869. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js +4 -5
  870. package/dist/trinity/eve/attachment/booster/EveBoosterSet2Renderable.js.map +1 -1
  871. package/dist/trinity/eve/attachment/booster/EveTrailsSet.js +4 -2
  872. package/dist/trinity/eve/attachment/booster/EveTrailsSet.js.map +1 -1
  873. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js +169 -155
  874. package/dist/trinity/eve/attachment/decal/EveSpaceObjectDecal.js.map +1 -1
  875. package/dist/trinity/eve/attachment/haze/EveHazeSet.js +3 -3
  876. package/dist/trinity/eve/attachment/haze/EveHazeSet.js.map +1 -1
  877. package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js +2 -2
  878. package/dist/trinity/eve/attachment/haze/EveHazeSetItem.js.map +1 -1
  879. package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js +2 -2
  880. package/dist/trinity/eve/attachment/haze/EveHazeSetLight.js.map +1 -1
  881. package/dist/trinity/eve/attachment/plane/EvePlaneLight.js +2 -2
  882. package/dist/trinity/eve/attachment/plane/EvePlaneLight.js.map +1 -1
  883. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js +10 -4
  884. package/dist/trinity/eve/attachment/plane/EvePlaneSet.js.map +1 -1
  885. package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js +3 -2
  886. package/dist/trinity/eve/attachment/plane/EvePlaneSetItem.js.map +1 -1
  887. package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js +2 -2
  888. package/dist/trinity/eve/attachment/spotlight/EveSpotlightLight.js.map +1 -1
  889. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js +3 -3
  890. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSet.js.map +1 -1
  891. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js +2 -2
  892. package/dist/trinity/eve/attachment/spotlight/EveSpotlightSetItem.js.map +1 -1
  893. package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js +2 -2
  894. package/dist/trinity/eve/attachment/sprite/EveSpriteLight.js.map +1 -1
  895. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js +4 -4
  896. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSet.js.map +1 -1
  897. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js +2 -2
  898. package/dist/trinity/eve/attachment/sprite/EveSpriteLineSetItem.js.map +1 -1
  899. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js +5 -5
  900. package/dist/trinity/eve/attachment/sprite/EveSpriteSet.js.map +1 -1
  901. package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js +2 -2
  902. package/dist/trinity/eve/attachment/sprite/EveSpriteSetItem.js.map +1 -1
  903. package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js +7 -4
  904. package/dist/trinity/eve/attachment/turrets/EveTurretFiringFX.js.map +1 -1
  905. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +177 -144
  906. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  907. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +2 -2
  908. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  909. package/dist/trinity/eve/camera/EveCamera.js +5 -11
  910. package/dist/trinity/eve/camera/EveCamera.js.map +1 -1
  911. package/dist/trinity/eve/child/EveChildAudio.js +4 -5
  912. package/dist/trinity/eve/child/EveChildAudio.js.map +1 -1
  913. package/dist/trinity/eve/child/EveChildBehaviorSystem.js +5 -6
  914. package/dist/trinity/eve/child/EveChildBehaviorSystem.js.map +1 -1
  915. package/dist/trinity/eve/child/EveChildBoosterSet.js +6 -6
  916. package/dist/trinity/eve/child/EveChildBoosterSet.js.map +1 -1
  917. package/dist/trinity/eve/child/EveChildBulletStorm.js +4 -5
  918. package/dist/trinity/eve/child/EveChildBulletStorm.js.map +1 -1
  919. package/dist/trinity/eve/child/EveChildCloud.js +5 -6
  920. package/dist/trinity/eve/child/EveChildCloud.js.map +1 -1
  921. package/dist/trinity/eve/child/EveChildCloud2.js +166 -166
  922. package/dist/trinity/eve/child/EveChildCloud2.js.map +1 -1
  923. package/dist/trinity/eve/child/EveChildContainer.js +235 -169
  924. package/dist/trinity/eve/child/EveChildContainer.js.map +1 -1
  925. package/dist/trinity/eve/child/EveChildEffectPropagator.js +9 -9
  926. package/dist/trinity/eve/child/EveChildEffectPropagator.js.map +1 -1
  927. package/dist/trinity/eve/child/EveChildExplosion.js +11 -7
  928. package/dist/trinity/eve/child/EveChildExplosion.js.map +1 -1
  929. package/dist/trinity/eve/child/EveChildFogVolume.js +2 -2
  930. package/dist/trinity/eve/child/EveChildFogVolume.js.map +1 -1
  931. package/dist/trinity/eve/child/EveChildInheritProperties.js +2 -2
  932. package/dist/trinity/eve/child/EveChildInheritProperties.js.map +1 -1
  933. package/dist/trinity/eve/child/EveChildInstanceContainer.js +2 -2
  934. package/dist/trinity/eve/child/EveChildInstanceContainer.js.map +1 -1
  935. package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js +11 -7
  936. package/dist/trinity/eve/child/EveChildInstanceMeshRenderer.js.map +1 -1
  937. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +2 -2
  938. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  939. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js +2 -2
  940. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshArea.js.map +1 -1
  941. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js +2 -2
  942. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshInstance.js.map +1 -1
  943. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +4 -5
  944. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  945. package/dist/trinity/eve/child/EveChildLightingOverride.js +4 -5
  946. package/dist/trinity/eve/child/EveChildLightingOverride.js.map +1 -1
  947. package/dist/trinity/eve/child/EveChildLineSet.js +4 -5
  948. package/dist/trinity/eve/child/EveChildLineSet.js.map +1 -1
  949. package/dist/trinity/eve/child/EveChildLink.js +2 -2
  950. package/dist/trinity/eve/child/EveChildLink.js.map +1 -1
  951. package/dist/trinity/eve/child/EveChildMesh.js +315 -229
  952. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  953. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js +2 -2
  954. package/dist/trinity/eve/child/EveChildPartData/EveChildPartData.js.map +1 -1
  955. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js +2 -2
  956. package/dist/trinity/eve/child/EveChildPartData/EveChildPartDataPartData.js.map +1 -1
  957. package/dist/trinity/eve/child/EveChildParticleSphere.js +4 -5
  958. package/dist/trinity/eve/child/EveChildParticleSphere.js.map +1 -1
  959. package/dist/trinity/eve/child/EveChildParticleSystem.js +36 -36
  960. package/dist/trinity/eve/child/EveChildParticleSystem.js.map +1 -1
  961. package/dist/trinity/eve/child/EveChildPlug.js +60 -14
  962. package/dist/trinity/eve/child/EveChildPlug.js.map +1 -1
  963. package/dist/trinity/eve/child/EveChildPostProcessVolume.js +2 -2
  964. package/dist/trinity/eve/child/EveChildPostProcessVolume.js.map +1 -1
  965. package/dist/trinity/eve/child/EveChildQuad.js +4 -5
  966. package/dist/trinity/eve/child/EveChildQuad.js.map +1 -1
  967. package/dist/trinity/eve/child/EveChildRef.js +2 -2
  968. package/dist/trinity/eve/child/EveChildRef.js.map +1 -1
  969. package/dist/trinity/eve/child/EveChildSocket.js +2 -2
  970. package/dist/trinity/eve/child/EveChildSocket.js.map +1 -1
  971. package/dist/trinity/eve/child/EveChildSpherePin.js +4 -4
  972. package/dist/trinity/eve/child/EveChildSpherePin.js.map +1 -1
  973. package/dist/trinity/eve/child/EveChildTurret.js +4 -4
  974. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  975. package/dist/trinity/eve/child/EveCloudVolumeBall.js +2 -2
  976. package/dist/trinity/eve/child/EveCloudVolumeBall.js.map +1 -1
  977. package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js +6 -6
  978. package/dist/trinity/eve/child/EveCloudVolumeTextureParameter.js.map +1 -1
  979. package/dist/trinity/eve/child/EveSpaceObjectChild.js +2 -2
  980. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  981. package/dist/trinity/eve/child/IEveLightingOverride.js +1 -23
  982. package/dist/trinity/eve/child/IEveLightingOverride.js.map +1 -1
  983. package/dist/trinity/eve/child/behaviors/Allign.js +2 -2
  984. package/dist/trinity/eve/child/behaviors/Allign.js.map +1 -1
  985. package/dist/trinity/eve/child/behaviors/ApproachGroup.js +2 -2
  986. package/dist/trinity/eve/child/behaviors/ApproachGroup.js.map +1 -1
  987. package/dist/trinity/eve/child/behaviors/BackAndForth.js +2 -2
  988. package/dist/trinity/eve/child/behaviors/BackAndForth.js.map +1 -1
  989. package/dist/trinity/eve/child/behaviors/BehaviorGroup.js +4 -4
  990. package/dist/trinity/eve/child/behaviors/BehaviorGroup.js.map +1 -1
  991. package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js +2 -2
  992. package/dist/trinity/eve/child/behaviors/BehaviorGroupBooster.js.map +1 -1
  993. package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js +2 -2
  994. package/dist/trinity/eve/child/behaviors/CollisionAvoidance.js.map +1 -1
  995. package/dist/trinity/eve/child/behaviors/DroneAvoidance.js +2 -2
  996. package/dist/trinity/eve/child/behaviors/DroneAvoidance.js.map +1 -1
  997. package/dist/trinity/eve/child/behaviors/FollowASpline.js +2 -2
  998. package/dist/trinity/eve/child/behaviors/FollowASpline.js.map +1 -1
  999. package/dist/trinity/eve/child/behaviors/Formation.js +2 -2
  1000. package/dist/trinity/eve/child/behaviors/Formation.js.map +1 -1
  1001. package/dist/trinity/eve/child/behaviors/InclusionVolume.js +2 -2
  1002. package/dist/trinity/eve/child/behaviors/InclusionVolume.js.map +1 -1
  1003. package/dist/trinity/eve/child/behaviors/Inertia.js +2 -2
  1004. package/dist/trinity/eve/child/behaviors/Inertia.js.map +1 -1
  1005. package/dist/trinity/eve/child/behaviors/PlayFX.js +2 -2
  1006. package/dist/trinity/eve/child/behaviors/PlayFX.js.map +1 -1
  1007. package/dist/trinity/eve/child/behaviors/SeekTarget.js +2 -2
  1008. package/dist/trinity/eve/child/behaviors/SeekTarget.js.map +1 -1
  1009. package/dist/trinity/eve/child/behaviors/SpawnDrones.js +2 -2
  1010. package/dist/trinity/eve/child/behaviors/SpawnDrones.js.map +1 -1
  1011. package/dist/trinity/eve/child/behaviors/Wander.js +2 -2
  1012. package/dist/trinity/eve/child/behaviors/Wander.js.map +1 -1
  1013. package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js +2 -2
  1014. package/dist/trinity/eve/child/behaviors/lifecycle/ProcessLifetime.js.map +1 -1
  1015. package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js +2 -2
  1016. package/dist/trinity/eve/child/behaviors/tunnels/SplineTunnelGroup.js.map +1 -1
  1017. package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js +8 -8
  1018. package/dist/trinity/eve/child/lineSetPaths/EveBezierCurve.js.map +1 -1
  1019. package/dist/trinity/eve/child/lineSetPaths/EveCircle.js +8 -8
  1020. package/dist/trinity/eve/child/lineSetPaths/EveCircle.js.map +1 -1
  1021. package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js +2 -2
  1022. package/dist/trinity/eve/child/lineSetPaths/EveLineChildContainer.js.map +1 -1
  1023. package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js +2 -2
  1024. package/dist/trinity/eve/child/modifiers/EveChildModifierAttachToBone.js.map +1 -1
  1025. package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js +2 -2
  1026. package/dist/trinity/eve/child/modifiers/EveChildModifierBillboard3D.js.map +1 -1
  1027. package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js +2 -2
  1028. package/dist/trinity/eve/child/modifiers/EveChildModifierSRT.js.map +1 -1
  1029. package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js +2 -2
  1030. package/dist/trinity/eve/child/modifiers/EveChildModifierStretch.js.map +1 -1
  1031. package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js +2 -2
  1032. package/dist/trinity/eve/child/modifiers/EveChildModifierTranslateWithCamera.js.map +1 -1
  1033. package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js +5 -6
  1034. package/dist/trinity/eve/child/procedural/EveChildProceduralContainer.js.map +1 -1
  1035. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js +3 -3
  1036. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMap.js.map +1 -1
  1037. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js +3 -3
  1038. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodAttributeMapParameter.js.map +1 -1
  1039. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js +2 -2
  1040. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCycling.js.map +1 -1
  1041. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js +3 -3
  1042. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodCyclingParameter.js.map +1 -1
  1043. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js +4 -4
  1044. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandom.js.map +1 -1
  1045. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js +4 -4
  1046. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodRandomParameter.js.map +1 -1
  1047. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js +4 -4
  1048. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholdParameter.js.map +1 -1
  1049. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js +4 -4
  1050. package/dist/trinity/eve/child/procedural/selection/EveProceduralMethodThresholds.js.map +1 -1
  1051. package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js +2 -2
  1052. package/dist/trinity/eve/distribution/EveBaseDistributionMethod.js.map +1 -1
  1053. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js +2 -2
  1054. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierProcessLifetime.js.map +1 -1
  1055. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js +2 -2
  1056. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierScaleBySpaceObjectParent.js.map +1 -1
  1057. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js +2 -2
  1058. package/dist/trinity/eve/distribution/attributeModifiers/EveDistributionModifierTransformOffset.js.map +1 -1
  1059. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js +2 -2
  1060. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorLocators.js.map +1 -1
  1061. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js +4 -4
  1062. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorParentLocators.js.map +1 -1
  1063. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js +2 -2
  1064. package/dist/trinity/eve/distribution/placement/EveDistributionPlacementGeneratorVolume.js.map +1 -1
  1065. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js +2 -2
  1066. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierLifeTimeOffset.js.map +1 -1
  1067. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js +2 -2
  1068. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomOffset.js.map +1 -1
  1069. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js +2 -2
  1070. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomRotation.js.map +1 -1
  1071. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js +2 -2
  1072. package/dist/trinity/eve/distribution/spawnModifiers/EveDistributionSpawnModifierRandomScale.js.map +1 -1
  1073. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js +2 -2
  1074. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerBurst.js.map +1 -1
  1075. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js +2 -2
  1076. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerControllerTrigger.js.map +1 -1
  1077. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js +2 -2
  1078. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerInterval.js.map +1 -1
  1079. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js +2 -2
  1080. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerPlane.js.map +1 -1
  1081. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js +2 -2
  1082. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSnake.js.map +1 -1
  1083. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js +2 -2
  1084. package/dist/trinity/eve/distribution/spawners/EveDistributionSpawnerTriggerSphere.js.map +1 -1
  1085. package/dist/trinity/eve/effect/lensflare/EveLensflare.js +4 -5
  1086. package/dist/trinity/eve/effect/lensflare/EveLensflare.js.map +1 -1
  1087. package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js +4 -5
  1088. package/dist/trinity/eve/effect/multiEffect/EveMultiEffect.js.map +1 -1
  1089. package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js +4 -4
  1090. package/dist/trinity/eve/effect/multiEffect/EveMultiEffectParameter.js.map +1 -1
  1091. package/dist/trinity/eve/index.js +4 -4
  1092. package/dist/trinity/eve/lights/Tr2FactionLight.js +5 -6
  1093. package/dist/trinity/eve/lights/Tr2FactionLight.js.map +1 -1
  1094. package/dist/trinity/eve/lights/Tr2Light.js +37 -9
  1095. package/dist/trinity/eve/lights/Tr2Light.js.map +1 -1
  1096. package/dist/trinity/eve/lights/Tr2PointLight.js +2 -2
  1097. package/dist/trinity/eve/lights/Tr2PointLight.js.map +1 -1
  1098. package/dist/trinity/eve/lights/Tr2SpotLight.js +2 -2
  1099. package/dist/trinity/eve/lights/Tr2SpotLight.js.map +1 -1
  1100. package/dist/trinity/eve/lights/Tr2TexturedPointLight.js +29 -31
  1101. package/dist/trinity/eve/lights/Tr2TexturedPointLight.js.map +1 -1
  1102. package/dist/trinity/eve/locator/EveLocator2.js +2 -2
  1103. package/dist/trinity/eve/locator/EveLocator2.js.map +1 -1
  1104. package/dist/trinity/eve/locator/EveLocatorSets.js +13 -4
  1105. package/dist/trinity/eve/locator/EveLocatorSets.js.map +1 -1
  1106. package/dist/trinity/eve/locator/Locator.js +2 -2
  1107. package/dist/trinity/eve/locator/Locator.js.map +1 -1
  1108. package/dist/trinity/eve/overlays/EveDamageOverlay.js +2 -2
  1109. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  1110. package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js +2 -2
  1111. package/dist/trinity/eve/overlays/EveMeshOverlayEffect.js.map +1 -1
  1112. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js +5 -6
  1113. package/dist/trinity/eve/particles/static/EveSceneStaticParticles.js.map +1 -1
  1114. package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js +4 -5
  1115. package/dist/trinity/eve/renderable/stretch/EveFiringEffectElementContainer.js.map +1 -1
  1116. package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js +2 -2
  1117. package/dist/trinity/eve/renderable/stretch/EveLocalPositionCurve.js.map +1 -1
  1118. package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js +2 -2
  1119. package/dist/trinity/eve/renderable/stretch/EveRemotePositionCurve.js.map +1 -1
  1120. package/dist/trinity/eve/renderable/stretch/EveStretch.js +6 -6
  1121. package/dist/trinity/eve/renderable/stretch/EveStretch.js.map +1 -1
  1122. package/dist/trinity/eve/renderable/stretch/EveStretch2.js +10 -8
  1123. package/dist/trinity/eve/renderable/stretch/EveStretch2.js.map +1 -1
  1124. package/dist/trinity/eve/renderable/stretch/EveStretch3.js +4 -5
  1125. package/dist/trinity/eve/renderable/stretch/EveStretch3.js.map +1 -1
  1126. package/dist/trinity/eve/scene/EveSpaceScene.js +2 -2
  1127. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  1128. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -2
  1129. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  1130. package/dist/trinity/eve/scene/components/EveComponentRegistry.js +3 -3
  1131. package/dist/trinity/eve/scene/components/EveComponentRegistry.js.map +1 -1
  1132. package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js +6 -7
  1133. package/dist/trinity/eve/smartLights/EveChildSmartLightSet.js.map +1 -1
  1134. package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js +2 -2
  1135. package/dist/trinity/eve/smartLights/EveSmartLightBaseGroup.js.map +1 -1
  1136. package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js +4 -8
  1137. package/dist/trinity/eve/smartLights/EveSmartLightColorShareGroup.js.map +1 -1
  1138. package/dist/trinity/eve/smartLights/EveSmartLightMesh.js +7 -4
  1139. package/dist/trinity/eve/smartLights/EveSmartLightMesh.js.map +1 -1
  1140. package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js +25 -15
  1141. package/dist/trinity/eve/smartLights/EveSmartLightPointLight.js.map +1 -1
  1142. package/dist/trinity/eve/smartLights/EveSmartLightQuad.js +4 -9
  1143. package/dist/trinity/eve/smartLights/EveSmartLightQuad.js.map +1 -1
  1144. package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js +2 -2
  1145. package/dist/trinity/eve/smartLights/EveSmartLightSpotLight.js.map +1 -1
  1146. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js +2 -3
  1147. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierBucket.js.map +1 -1
  1148. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js +2 -2
  1149. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierCameraDependency.js.map +1 -1
  1150. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js +2 -2
  1151. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierColor.js.map +1 -1
  1152. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js +10 -18
  1153. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierControllerVariableListener.js.map +1 -1
  1154. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js +2 -2
  1155. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierExpressionBucket.js.map +1 -1
  1156. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js +2 -2
  1157. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightAttributeModifierNoise.js.map +1 -1
  1158. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js +4 -9
  1159. package/dist/trinity/eve/smartLights/attributeModifiers/EveSmartLightBaseAttributeModifier.js.map +1 -1
  1160. package/dist/trinity/eve/socket/EveSocketParameterBool.js +2 -2
  1161. package/dist/trinity/eve/socket/EveSocketParameterBool.js.map +1 -1
  1162. package/dist/trinity/eve/socket/EveSocketParameterColor.js +2 -2
  1163. package/dist/trinity/eve/socket/EveSocketParameterColor.js.map +1 -1
  1164. package/dist/trinity/eve/socket/EveSocketParameterFloat.js +2 -2
  1165. package/dist/trinity/eve/socket/EveSocketParameterFloat.js.map +1 -1
  1166. package/dist/trinity/eve/socket/EveSocketParameterInt.js +2 -2
  1167. package/dist/trinity/eve/socket/EveSocketParameterInt.js.map +1 -1
  1168. package/dist/trinity/eve/socket/EveSocketParameterString.js +2 -2
  1169. package/dist/trinity/eve/socket/EveSocketParameterString.js.map +1 -1
  1170. package/dist/trinity/eve/socket/EveSocketParameterVector2.js +2 -2
  1171. package/dist/trinity/eve/socket/EveSocketParameterVector2.js.map +1 -1
  1172. package/dist/trinity/eve/socket/EveSocketParameterVector3.js +2 -2
  1173. package/dist/trinity/eve/socket/EveSocketParameterVector3.js.map +1 -1
  1174. package/dist/trinity/eve/socket/EveSocketParameterVector4.js +2 -2
  1175. package/dist/trinity/eve/socket/EveSocketParameterVector4.js.map +1 -1
  1176. package/dist/trinity/eve/spaceObject/EveEffectRoot2.js +20 -17
  1177. package/dist/trinity/eve/spaceObject/EveEffectRoot2.js.map +1 -1
  1178. package/dist/trinity/eve/spaceObject/EveMissile.js +2 -2
  1179. package/dist/trinity/eve/spaceObject/EveMissile.js.map +1 -1
  1180. package/dist/trinity/eve/spaceObject/EveMissileWarhead.js +2 -2
  1181. package/dist/trinity/eve/spaceObject/EveMissileWarhead.js.map +1 -1
  1182. package/dist/trinity/eve/spaceObject/EveMobile.js +2 -2
  1183. package/dist/trinity/eve/spaceObject/EveMobile.js.map +1 -1
  1184. package/dist/trinity/eve/spaceObject/EveRootTransform.js +2 -2
  1185. package/dist/trinity/eve/spaceObject/EveRootTransform.js.map +1 -1
  1186. package/dist/trinity/eve/spaceObject/EveShip2.js +2 -2
  1187. package/dist/trinity/eve/spaceObject/EveShip2.js.map +1 -1
  1188. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +539 -432
  1189. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  1190. package/dist/trinity/eve/spaceObject/EveTransform.js +7 -7
  1191. package/dist/trinity/eve/spaceObject/EveTransform.js.map +1 -1
  1192. package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js +44 -52
  1193. package/dist/trinity/eve/spaceObject/IEveSpaceObject2ParentData.js.map +1 -1
  1194. package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js +2 -2
  1195. package/dist/trinity/eve/spaceObject/fxAttributes/EveCameraFxAttributes.js.map +1 -1
  1196. package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js +2 -2
  1197. package/dist/trinity/eve/spaceObject/fxAttributes/EveSpaceObjectFxAttributes.js.map +1 -1
  1198. package/dist/trinity/eve/spaceObject/planet/EvePlanet.js +2 -2
  1199. package/dist/trinity/eve/spaceObject/planet/EvePlanet.js.map +1 -1
  1200. package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js +2 -2
  1201. package/dist/trinity/eve/spaceObject/swarm/EveSwarm.js.map +1 -1
  1202. package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js +7 -8
  1203. package/dist/trinity/eve/spaceObject/swarm/EveSwarmRenderable.js.map +1 -1
  1204. package/dist/trinity/eve/ui/EveConnector.js +2 -2
  1205. package/dist/trinity/eve/ui/EveConnector.js.map +1 -1
  1206. package/dist/trinity/eve/ui/EveEllipseDefinition.js +2 -2
  1207. package/dist/trinity/eve/ui/EveEllipseDefinition.js.map +1 -1
  1208. package/dist/trinity/eve/ui/EveEllipseSet.js +36 -6
  1209. package/dist/trinity/eve/ui/EveEllipseSet.js.map +1 -1
  1210. package/dist/trinity/eve/ui/EveLineContainer.js +4 -5
  1211. package/dist/trinity/eve/ui/EveLineContainer.js.map +1 -1
  1212. package/dist/trinity/eve/ui/EveProjectBracket.js +11 -3
  1213. package/dist/trinity/eve/ui/EveProjectBracket.js.map +1 -1
  1214. package/dist/trinity/eve/ui/EveSpherePin.js +6 -7
  1215. package/dist/trinity/eve/ui/EveSpherePin.js.map +1 -1
  1216. package/dist/trinity/eve/ui/EveSprite2dBracket.js +2 -2
  1217. package/dist/trinity/eve/ui/EveSprite2dBracket.js.map +1 -1
  1218. package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js +2 -2
  1219. package/dist/trinity/eve/ui/EveSprite2dBracketRenderer.js.map +1 -1
  1220. package/dist/trinity/eve/ui/EveTacticalOverlay.js +6 -24
  1221. package/dist/trinity/eve/ui/EveTacticalOverlay.js.map +1 -1
  1222. package/dist/trinity/eve/ui/EveUiObject.js +2 -2
  1223. package/dist/trinity/eve/ui/EveUiObject.js.map +1 -1
  1224. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js +4 -5
  1225. package/dist/trinity/eve/ui/lines/EveCurveLineSet.js.map +1 -1
  1226. package/dist/trinity/eve/ui/lines/EveLineSet.js +6 -7
  1227. package/dist/trinity/eve/ui/lines/EveLineSet.js.map +1 -1
  1228. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js +2 -2
  1229. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalOverlayTrackObject.js.map +1 -1
  1230. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js +8 -9
  1231. package/dist/trinity/eve/ui/tacticalOverlay/EveTacticalTrails.js.map +1 -1
  1232. package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js +2 -2
  1233. package/dist/trinity/eve/virtualCamera/EveVirtualCamera.js.map +1 -1
  1234. package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js +2 -2
  1235. package/dist/trinity/eve/virtualCamera/EveVirtualCameraSystem.js.map +1 -1
  1236. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js +2 -2
  1237. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatAdd.js.map +1 -1
  1238. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js +4 -4
  1239. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatBase.js.map +1 -1
  1240. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js +2 -2
  1241. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatDamping.js.map +1 -1
  1242. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js +2 -2
  1243. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatNoise.js.map +1 -1
  1244. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js +2 -2
  1245. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourFloatSet.js.map +1 -1
  1246. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js +4 -4
  1247. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Base.js.map +1 -1
  1248. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js +2 -2
  1249. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Damping.js.map +1 -1
  1250. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js +2 -2
  1251. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Inertia.js.map +1 -1
  1252. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js +2 -2
  1253. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveBetween.js.map +1 -1
  1254. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js +2 -2
  1255. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3MoveForward.js.map +1 -1
  1256. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js +2 -2
  1257. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Offset.js.map +1 -1
  1258. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js +2 -2
  1259. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Orbit.js.map +1 -1
  1260. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js +2 -2
  1261. package/dist/trinity/eve/virtualCamera/behaviour/EveVirtualCameraBehaviourVector3Shake.js.map +1 -1
  1262. package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js +2 -2
  1263. package/dist/trinity/eve/virtualCamera/transition/EveVirtualCameraTransitionLerp.js.map +1 -1
  1264. package/dist/trinity/eve/volume/EveBoxVolume.js +44 -44
  1265. package/dist/trinity/eve/volume/EveBoxVolume.js.map +1 -1
  1266. package/dist/trinity/eve/volume/EveEllipsoidVolume.js +2 -2
  1267. package/dist/trinity/eve/volume/EveEllipsoidVolume.js.map +1 -1
  1268. package/dist/trinity/eve/volume/EveSphereVolume.js +5 -6
  1269. package/dist/trinity/eve/volume/EveSphereVolume.js.map +1 -1
  1270. package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js +2 -2
  1271. package/dist/trinity/generated/eve/child/EveCloudEditableVolume.js.map +1 -1
  1272. package/dist/trinity/generated/eve/effect/EveOccluder.js +2 -2
  1273. package/dist/trinity/generated/eve/effect/EveOccluder.js.map +1 -1
  1274. package/dist/trinity/generated/eve/effect/EveStarfield.js +2 -2
  1275. package/dist/trinity/generated/eve/effect/EveStarfield.js.map +1 -1
  1276. package/dist/trinity/generated/font/Tr2FontManager.js +2 -2
  1277. package/dist/trinity/generated/font/Tr2FontManager.js.map +1 -1
  1278. package/dist/trinity/generated/font/Tr2FontMeasurer.js +2 -2
  1279. package/dist/trinity/generated/font/Tr2FontMeasurer.js.map +1 -1
  1280. package/dist/trinity/generated/font/Tr2SBitWrapper.js +2 -2
  1281. package/dist/trinity/generated/font/Tr2SBitWrapper.js.map +1 -1
  1282. package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js +2 -2
  1283. package/dist/trinity/generated/particle/Tr2GpuParticleSystem.js.map +1 -1
  1284. package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js +2 -2
  1285. package/dist/trinity/generated/raytracing/Tr2RaytracingManager.js.map +1 -1
  1286. package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js +2 -2
  1287. package/dist/trinity/generated/sprite2d/Tr2Sprite2d.js.map +1 -1
  1288. package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js +2 -2
  1289. package/dist/trinity/generated/sprite2d/Tr2Sprite2dArc.js.map +1 -1
  1290. package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js +2 -2
  1291. package/dist/trinity/generated/sprite2d/Tr2Sprite2dContainer.js.map +1 -1
  1292. package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js +2 -2
  1293. package/dist/trinity/generated/sprite2d/Tr2Sprite2dFrame.js.map +1 -1
  1294. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js +2 -2
  1295. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLayer.js.map +1 -1
  1296. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js +2 -2
  1297. package/dist/trinity/generated/sprite2d/Tr2Sprite2dLine.js.map +1 -1
  1298. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js +2 -2
  1299. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretch.js.map +1 -1
  1300. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js +2 -2
  1301. package/dist/trinity/generated/sprite2d/Tr2Sprite2dStretchVertical.js.map +1 -1
  1302. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js +2 -2
  1303. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTextObject.js.map +1 -1
  1304. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js +2 -2
  1305. package/dist/trinity/generated/sprite2d/Tr2Sprite2dTexture.js.map +1 -1
  1306. package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js +2 -2
  1307. package/dist/trinity/generated/sprite2d/Tr2SpriteObject.js.map +1 -1
  1308. package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js +2 -2
  1309. package/dist/trinity/generated/trinityCore/Tr2AtlasTexture.js.map +1 -1
  1310. package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js +2 -2
  1311. package/dist/trinity/generated/trinityCore/Tr2GpuStructuredBuffer.js.map +1 -1
  1312. package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js +2 -2
  1313. package/dist/trinity/generated/trinityCore/Tr2GrannyPrimitiveSet.js.map +1 -1
  1314. package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js +2 -2
  1315. package/dist/trinity/generated/trinityCore/Tr2HostBitmap.js.map +1 -1
  1316. package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js +2 -2
  1317. package/dist/trinity/generated/trinityCore/Tr2ImpostorManager.js.map +1 -1
  1318. package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js +2 -2
  1319. package/dist/trinity/generated/trinityCore/Tr2PrimitiveScene.js.map +1 -1
  1320. package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js +2 -2
  1321. package/dist/trinity/generated/trinityCore/Tr2PrimitiveText.js.map +1 -1
  1322. package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js +2 -2
  1323. package/dist/trinity/generated/trinityCore/Tr2ReflectionProbe.js.map +1 -1
  1324. package/dist/trinity/generated/trinityCore/Tr2SSSSS.js +2 -2
  1325. package/dist/trinity/generated/trinityCore/Tr2SSSSS.js.map +1 -1
  1326. package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js +2 -2
  1327. package/dist/trinity/generated/trinityCore/Tr2TextureAtlas.js.map +1 -1
  1328. package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js +2 -2
  1329. package/dist/trinity/generated/trinityCore/Tr2TextureAtlasMan.js.map +1 -1
  1330. package/dist/trinity/index.js +23 -16
  1331. package/dist/trinity/index.js.map +1 -1
  1332. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js +1 -31
  1333. package/dist/trinity/particle/ITr2GenericEmitter/ITr2GenericEmitter.js.map +1 -1
  1334. package/dist/trinity/particle/Tr2ParticleSystem.js +51 -52
  1335. package/dist/trinity/particle/Tr2ParticleSystem.js.map +1 -1
  1336. package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js +2 -2
  1337. package/dist/trinity/particle/attribute/Tr2CapsuleShapeAttributeGenerator.js.map +1 -1
  1338. package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js +2 -2
  1339. package/dist/trinity/particle/attribute/Tr2ConsecutiveIntegerAttributeGenerator.js.map +1 -1
  1340. package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js +2 -2
  1341. package/dist/trinity/particle/attribute/Tr2RandomDirectionAttributeGenerator.js.map +1 -1
  1342. package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js +2 -2
  1343. package/dist/trinity/particle/attribute/Tr2RandomIntegerAttributeGenerator.js.map +1 -1
  1344. package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js +2 -2
  1345. package/dist/trinity/particle/attribute/Tr2RandomUniformAttributeGenerator.js.map +1 -1
  1346. package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js +2 -2
  1347. package/dist/trinity/particle/attribute/Tr2SphereShapeAttributeGenerator.js.map +1 -1
  1348. package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js +2 -2
  1349. package/dist/trinity/particle/constraint/Tr2ElementBlendConstraint.js.map +1 -1
  1350. package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js +13 -3
  1351. package/dist/trinity/particle/constraint/Tr2PlaneConstraint.js.map +1 -1
  1352. package/dist/trinity/particle/constraint/Tr2SphereConstraint.js +2 -2
  1353. package/dist/trinity/particle/constraint/Tr2SphereConstraint.js.map +1 -1
  1354. package/dist/trinity/particle/element/Tr2ParticleElementData.js +22 -8
  1355. package/dist/trinity/particle/element/Tr2ParticleElementData.js.map +1 -1
  1356. package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js +13 -25
  1357. package/dist/trinity/particle/element/Tr2ParticleElementDeclaration.js.map +1 -1
  1358. package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js +38 -3
  1359. package/dist/trinity/particle/element/Tr2ParticleElementDeclarationName.js.map +1 -1
  1360. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js +26 -27
  1361. package/dist/trinity/particle/emitter/Tr2DynamicEmitter.js.map +1 -1
  1362. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +4 -5
  1363. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  1364. package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js +2 -2
  1365. package/dist/trinity/particle/emitter/Tr2GpuUniqueEmitter.js.map +1 -1
  1366. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js +17 -18
  1367. package/dist/trinity/particle/emitter/Tr2StaticEmitter.js.map +1 -1
  1368. package/dist/trinity/particle/force/Tr2ForceSphereVolume.js +2 -2
  1369. package/dist/trinity/particle/force/Tr2ForceSphereVolume.js.map +1 -1
  1370. package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js +2 -2
  1371. package/dist/trinity/particle/force/Tr2ParticleAttractorForce.js.map +1 -1
  1372. package/dist/trinity/particle/force/Tr2ParticleDirectForce.js +2 -2
  1373. package/dist/trinity/particle/force/Tr2ParticleDirectForce.js.map +1 -1
  1374. package/dist/trinity/particle/force/Tr2ParticleDragForce.js +2 -2
  1375. package/dist/trinity/particle/force/Tr2ParticleDragForce.js.map +1 -1
  1376. package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js +2 -2
  1377. package/dist/trinity/particle/force/Tr2ParticleFluidDragForce.js.map +1 -1
  1378. package/dist/trinity/particle/force/Tr2ParticleSpring.js +2 -2
  1379. package/dist/trinity/particle/force/Tr2ParticleSpring.js.map +1 -1
  1380. package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js +2 -2
  1381. package/dist/trinity/particle/force/Tr2ParticleTurbulenceForce.js.map +1 -1
  1382. package/dist/trinity/particle/force/Tr2ParticleVortexForce.js +2 -2
  1383. package/dist/trinity/particle/force/Tr2ParticleVortexForce.js.map +1 -1
  1384. package/dist/trinity/particle/index.js +1 -1
  1385. package/dist/trinity/postProcess/Tr2PostProcess.js +2 -2
  1386. package/dist/trinity/postProcess/Tr2PostProcess.js.map +1 -1
  1387. package/dist/trinity/postProcess/Tr2PostProcess2.js +2 -2
  1388. package/dist/trinity/postProcess/Tr2PostProcess2.js.map +1 -1
  1389. package/dist/trinity/postProcess/Tr2PostProcessAttributes.js +2 -2
  1390. package/dist/trinity/postProcess/Tr2PostProcessAttributes.js.map +1 -1
  1391. package/dist/trinity/postProcess/Tr2PostProcessRenderer.js +4 -4
  1392. package/dist/trinity/postProcess/Tr2PostProcessRenderer.js.map +1 -1
  1393. package/dist/trinity/postProcess/Tr2SSAO.js +4 -4
  1394. package/dist/trinity/postProcess/Tr2SSAO.js.map +1 -1
  1395. package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js +2 -2
  1396. package/dist/trinity/postProcess/effect/Tr2PPBloomEffect.js.map +1 -1
  1397. package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js +2 -2
  1398. package/dist/trinity/postProcess/effect/Tr2PPColorCorrectionEffect.js.map +1 -1
  1399. package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js +2 -2
  1400. package/dist/trinity/postProcess/effect/Tr2PPDepthOfFieldEffect.js.map +1 -1
  1401. package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js +2 -2
  1402. package/dist/trinity/postProcess/effect/Tr2PPDesaturateEffect.js.map +1 -1
  1403. package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js +2 -2
  1404. package/dist/trinity/postProcess/effect/Tr2PPDynamicExposureEffect.js.map +1 -1
  1405. package/dist/trinity/postProcess/effect/Tr2PPEffect.js +2 -2
  1406. package/dist/trinity/postProcess/effect/Tr2PPEffect.js.map +1 -1
  1407. package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js +2 -2
  1408. package/dist/trinity/postProcess/effect/Tr2PPFadeEffect.js.map +1 -1
  1409. package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js +2 -2
  1410. package/dist/trinity/postProcess/effect/Tr2PPFilmGrainEffect.js.map +1 -1
  1411. package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js +2 -2
  1412. package/dist/trinity/postProcess/effect/Tr2PPFogEffect.js.map +1 -1
  1413. package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js +2 -2
  1414. package/dist/trinity/postProcess/effect/Tr2PPGenericEffect.js.map +1 -1
  1415. package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js +2 -2
  1416. package/dist/trinity/postProcess/effect/Tr2PPGodRaysEffect.js.map +1 -1
  1417. package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js +2 -2
  1418. package/dist/trinity/postProcess/effect/Tr2PPLutEffect.js.map +1 -1
  1419. package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js +2 -2
  1420. package/dist/trinity/postProcess/effect/Tr2PPSignalLossEffect.js.map +1 -1
  1421. package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js +2 -2
  1422. package/dist/trinity/postProcess/effect/Tr2PPTaaEffect.js.map +1 -1
  1423. package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js +2 -2
  1424. package/dist/trinity/postProcess/effect/Tr2PPTonemappingEffect.js.map +1 -1
  1425. package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js +2 -2
  1426. package/dist/trinity/postProcess/effect/Tr2PPVignetteEffect.js.map +1 -1
  1427. package/dist/trinity/renderJob/Tr2RenderJobs.js +5 -5
  1428. package/dist/trinity/renderJob/Tr2RenderJobs.js.map +1 -1
  1429. package/dist/trinity/renderJob/TriRenderJob.js +4 -4
  1430. package/dist/trinity/renderJob/TriRenderJob.js.map +1 -1
  1431. package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js +4 -5
  1432. package/dist/trinity/renderJob/node/Tr2RenderNodeEffect.js.map +1 -1
  1433. package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js +4 -5
  1434. package/dist/trinity/renderJob/node/Tr2RenderNodeSprite2dScene.js.map +1 -1
  1435. package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js +2 -2
  1436. package/dist/trinity/renderJob/step/Tr2StepExecuteRenderNode.js.map +1 -1
  1437. package/dist/trinity/renderJob/step/TriRenderStep.js +2 -2
  1438. package/dist/trinity/renderJob/step/TriRenderStep.js.map +1 -1
  1439. package/dist/trinity/renderJob/step/TriStepClear.js +2 -2
  1440. package/dist/trinity/renderJob/step/TriStepClear.js.map +1 -1
  1441. package/dist/trinity/renderJob/step/TriStepClearUav.js +2 -2
  1442. package/dist/trinity/renderJob/step/TriStepClearUav.js.map +1 -1
  1443. package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js +2 -2
  1444. package/dist/trinity/renderJob/step/TriStepCopyRenderTarget.js.map +1 -1
  1445. package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js +2 -2
  1446. package/dist/trinity/renderJob/step/TriStepEnableWireframeMode.js.map +1 -1
  1447. package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js +2 -2
  1448. package/dist/trinity/renderJob/step/TriStepFilterVisibilityResults.js.map +1 -1
  1449. package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js +2 -2
  1450. package/dist/trinity/renderJob/step/TriStepGenerateMipMaps.js.map +1 -1
  1451. package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js +2 -2
  1452. package/dist/trinity/renderJob/step/TriStepPopRenderTarget.js.map +1 -1
  1453. package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js +2 -2
  1454. package/dist/trinity/renderJob/step/TriStepPresentSwapChain.js.map +1 -1
  1455. package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js +2 -2
  1456. package/dist/trinity/renderJob/step/TriStepPushDepthStencil.js.map +1 -1
  1457. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js +2 -2
  1458. package/dist/trinity/renderJob/step/TriStepPushRenderTarget.js.map +1 -1
  1459. package/dist/trinity/renderJob/step/TriStepRenderAtlas.js +2 -2
  1460. package/dist/trinity/renderJob/step/TriStepRenderAtlas.js.map +1 -1
  1461. package/dist/trinity/renderJob/step/TriStepRenderDebug.js +2 -2
  1462. package/dist/trinity/renderJob/step/TriStepRenderDebug.js.map +1 -1
  1463. package/dist/trinity/renderJob/step/TriStepRenderEffect.js +2 -2
  1464. package/dist/trinity/renderJob/step/TriStepRenderEffect.js.map +1 -1
  1465. package/dist/trinity/renderJob/step/TriStepRenderFps.js +2 -2
  1466. package/dist/trinity/renderJob/step/TriStepRenderFps.js.map +1 -1
  1467. package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js +2 -2
  1468. package/dist/trinity/renderJob/step/TriStepRenderLineGraph.js.map +1 -1
  1469. package/dist/trinity/renderJob/step/TriStepRenderObject.js +2 -2
  1470. package/dist/trinity/renderJob/step/TriStepRenderObject.js.map +1 -1
  1471. package/dist/trinity/renderJob/step/TriStepRenderPass.js +2 -2
  1472. package/dist/trinity/renderJob/step/TriStepRenderPass.js.map +1 -1
  1473. package/dist/trinity/renderJob/step/TriStepRenderScene.js +2 -2
  1474. package/dist/trinity/renderJob/step/TriStepRenderScene.js.map +1 -1
  1475. package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js +2 -2
  1476. package/dist/trinity/renderJob/step/TriStepRenderSceneDebug.js.map +1 -1
  1477. package/dist/trinity/renderJob/step/TriStepRenderTexture.js +2 -2
  1478. package/dist/trinity/renderJob/step/TriStepRenderTexture.js.map +1 -1
  1479. package/dist/trinity/renderJob/step/TriStepResolve.js +2 -2
  1480. package/dist/trinity/renderJob/step/TriStepResolve.js.map +1 -1
  1481. package/dist/trinity/renderJob/step/TriStepRunComputeShader.js +2 -2
  1482. package/dist/trinity/renderJob/step/TriStepRunComputeShader.js.map +1 -1
  1483. package/dist/trinity/renderJob/step/TriStepRunJob.js +2 -2
  1484. package/dist/trinity/renderJob/step/TriStepRunJob.js.map +1 -1
  1485. package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js +2 -2
  1486. package/dist/trinity/renderJob/step/TriStepSetDebugRenderer.js.map +1 -1
  1487. package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js +2 -2
  1488. package/dist/trinity/renderJob/step/TriStepSetDepthStencil.js.map +1 -1
  1489. package/dist/trinity/renderJob/step/TriStepSetProjection.js +2 -2
  1490. package/dist/trinity/renderJob/step/TriStepSetProjection.js.map +1 -1
  1491. package/dist/trinity/renderJob/step/TriStepSetRenderState.js +2 -2
  1492. package/dist/trinity/renderJob/step/TriStepSetRenderState.js.map +1 -1
  1493. package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js +2 -2
  1494. package/dist/trinity/renderJob/step/TriStepSetRenderTarget.js.map +1 -1
  1495. package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js +2 -2
  1496. package/dist/trinity/renderJob/step/TriStepSetStdRndStates.js.map +1 -1
  1497. package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js +2 -2
  1498. package/dist/trinity/renderJob/step/TriStepSetUpscalingContextID.js.map +1 -1
  1499. package/dist/trinity/renderJob/step/TriStepSetVariableStore.js +2 -2
  1500. package/dist/trinity/renderJob/step/TriStepSetVariableStore.js.map +1 -1
  1501. package/dist/trinity/renderJob/step/TriStepSetView.js +2 -2
  1502. package/dist/trinity/renderJob/step/TriStepSetView.js.map +1 -1
  1503. package/dist/trinity/renderJob/step/TriStepSetViewport.js +2 -2
  1504. package/dist/trinity/renderJob/step/TriStepSetViewport.js.map +1 -1
  1505. package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js +2 -2
  1506. package/dist/trinity/renderJob/step/TriStepSetVisualizationMode.js.map +1 -1
  1507. package/dist/trinity/renderJob/step/TriStepTestBlocking.js +2 -2
  1508. package/dist/trinity/renderJob/step/TriStepTestBlocking.js.map +1 -1
  1509. package/dist/trinity/renderJob/step/TriStepToggleCubemap.js +2 -2
  1510. package/dist/trinity/renderJob/step/TriStepToggleCubemap.js.map +1 -1
  1511. package/dist/trinity/renderJob/step/TriStepUpdate.js +2 -2
  1512. package/dist/trinity/renderJob/step/TriStepUpdate.js.map +1 -1
  1513. package/dist/trinity/shader/Tr2DataTextureManager.js +9 -9
  1514. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  1515. package/dist/trinity/shader/Tr2Effect.js +370 -347
  1516. package/dist/trinity/shader/Tr2Effect.js.map +1 -1
  1517. package/dist/trinity/shader/Tr2Material.js +5 -5
  1518. package/dist/trinity/shader/Tr2Material.js.map +1 -1
  1519. package/dist/trinity/shader/Tr2ShaderBuffer.js +3 -4
  1520. package/dist/trinity/shader/Tr2ShaderBuffer.js.map +1 -1
  1521. package/dist/trinity/shader/index.js +3 -0
  1522. package/dist/trinity/shader/index.js.map +1 -1
  1523. package/dist/trinity/shader/parameter/CjsParameter.js +202 -185
  1524. package/dist/trinity/shader/parameter/CjsParameter.js.map +1 -1
  1525. package/dist/trinity/shader/parameter/CjsVectorParameter.js +2 -2
  1526. package/dist/trinity/shader/parameter/CjsVectorParameter.js.map +1 -1
  1527. package/dist/trinity/shader/parameter/ITriEffectParameter.js +56 -0
  1528. package/dist/trinity/shader/parameter/ITriEffectParameter.js.map +1 -0
  1529. package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js +31 -0
  1530. package/dist/trinity/shader/parameter/ITriEffectResourceParameter.js.map +1 -0
  1531. package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js +43 -0
  1532. package/dist/trinity/shader/parameter/ITriEffectTextureParameter.js.map +1 -0
  1533. package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js +17 -5
  1534. package/dist/trinity/shader/parameter/Tr2ConstantEffectParameter.js.map +1 -1
  1535. package/dist/trinity/shader/parameter/Tr2FloatParameter.js +46 -45
  1536. package/dist/trinity/shader/parameter/Tr2FloatParameter.js.map +1 -1
  1537. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js +14 -12
  1538. package/dist/trinity/shader/parameter/Tr2GeometryBufferParameter.js.map +1 -1
  1539. package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js +33 -32
  1540. package/dist/trinity/shader/parameter/Tr2Matrix4Parameter.js.map +1 -1
  1541. package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js +11 -10
  1542. package/dist/trinity/shader/parameter/Tr2RuntimeTextureParameter.js.map +1 -1
  1543. package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js +55 -53
  1544. package/dist/trinity/shader/parameter/Tr2TextureAnimationParameter.js.map +1 -1
  1545. package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js +49 -48
  1546. package/dist/trinity/shader/parameter/Tr2Vector2Parameter.js.map +1 -1
  1547. package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js +52 -51
  1548. package/dist/trinity/shader/parameter/Tr2Vector3Parameter.js.map +1 -1
  1549. package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js +56 -55
  1550. package/dist/trinity/shader/parameter/Tr2Vector4Parameter.js.map +1 -1
  1551. package/dist/trinity/shader/parameter/TriFloatArrayParameter.js +8 -8
  1552. package/dist/trinity/shader/parameter/TriFloatArrayParameter.js.map +1 -1
  1553. package/dist/trinity/shader/parameter/TriTextureParameter.js +27 -22
  1554. package/dist/trinity/shader/parameter/TriTextureParameter.js.map +1 -1
  1555. package/dist/trinity/shader/parameter/TriTransformParameter.js +27 -27
  1556. package/dist/trinity/shader/parameter/TriTransformParameter.js.map +1 -1
  1557. package/dist/trinity/shader/parameter/TriVariableParameter.js +53 -54
  1558. package/dist/trinity/shader/parameter/TriVariableParameter.js.map +1 -1
  1559. package/dist/trinity/shader/parameter/TriVector4.js +2 -2
  1560. package/dist/trinity/shader/parameter/TriVector4.js.map +1 -1
  1561. package/dist/trinity/shader/reflection/Tr2ShaderOption.js +4 -2
  1562. package/dist/trinity/shader/reflection/Tr2ShaderOption.js.map +1 -1
  1563. package/dist/trinity/shader/sampler/Tr2SamplerOverride.js +11 -2
  1564. package/dist/trinity/shader/sampler/Tr2SamplerOverride.js.map +1 -1
  1565. package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js +2 -2
  1566. package/dist/trinity/sprite2d/Tr2Sprite2dContainerBase.js.map +1 -1
  1567. package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js +2 -2
  1568. package/dist/trinity/sprite2d/Tr2Sprite2dLineTrace.js.map +1 -1
  1569. package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js +2 -2
  1570. package/dist/trinity/sprite2d/Tr2Sprite2dLineTraceVertex.js.map +1 -1
  1571. package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js +8 -9
  1572. package/dist/trinity/sprite2d/Tr2Sprite2dPickingMask.js.map +1 -1
  1573. package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js +2 -2
  1574. package/dist/trinity/sprite2d/Tr2Sprite2dPolygon.js.map +1 -1
  1575. package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js +2 -2
  1576. package/dist/trinity/sprite2d/Tr2Sprite2dRenderJob.js.map +1 -1
  1577. package/dist/trinity/sprite2d/Tr2Sprite2dScene.js +4 -4
  1578. package/dist/trinity/sprite2d/Tr2Sprite2dScene.js.map +1 -1
  1579. package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js +2 -2
  1580. package/dist/trinity/sprite2d/Tr2Sprite2dTransform.js.map +1 -1
  1581. package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js +2 -2
  1582. package/dist/trinity/sprite2d/Tr2Sprite2dTriangle.js.map +1 -1
  1583. package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js +2 -2
  1584. package/dist/trinity/sprite2d/Tr2SpriteObjectBase.js.map +1 -1
  1585. package/dist/trinity/ui/Tr2PresentParameters.js +2 -2
  1586. package/dist/trinity/ui/Tr2PresentParameters.js.map +1 -1
  1587. package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js +3 -3
  1588. package/dist/trinity/ui/Tr2ProjectBoundingBoxBracket.js.map +1 -1
  1589. package/dist/trinityal/Tr2ResourceSetAL/Tr2ResourceSetALStub.js.map +1 -1
  1590. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  1591. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  1592. package/dist/trinityal/webgpu/CjsWebgpuResourceSetAL.js.map +1 -1
  1593. package/docs/core/README.md +38 -38
  1594. package/docs/core/architecture.md +6 -5
  1595. package/docs/core/reference/api.md +0 -10
  1596. package/docs/core/reference/classes/README.md +57 -67
  1597. package/docs/global/architecture.md +1 -3
  1598. package/docs/global/blue-enums.md +115 -0
  1599. package/docs/global/concepts/model-lifecycle.md +177 -182
  1600. package/docs/global/core-types/README.md +394 -317
  1601. package/docs/global/reference/api.md +2 -2
  1602. package/docs/global/reference/classes/README.md +355 -205
  1603. package/docs/global/reference/classes/dropped.md +40 -0
  1604. package/docs/resource/architecture.md +152 -112
  1605. package/docs/resource/concepts/resource-lifecycle.md +21 -15
  1606. package/docs/resource/formats/geometry-interchange.md +50 -0
  1607. package/docs/resource/formats/pickle.md +126 -100
  1608. package/docs/resource/formats/provenance.md +15 -9
  1609. package/docs/resource/formats/webgl/carbon-constant-layouts.md +98 -232
  1610. package/docs/resource/formats/webgl/decl-io.md +241 -397
  1611. package/docs/resource/formats/webgl/memory-structured.md +91 -128
  1612. package/docs/resource/formats/webgl/texture-sample.md +306 -469
  1613. package/docs/resource/formats/webgpu/reference/wgsl-compatibility.md +278 -530
  1614. package/docs/resource/reference/classes/README.md +3 -1
  1615. package/docs/resource/reference/classes/dropped.md +21 -1
  1616. package/docs/resource/reference/classes/formats.md +33 -0
  1617. package/docs/resource/reference/classes/texture.md +11 -1
  1618. package/docs/resource/reference/classes/video.md +92 -0
  1619. package/docs/resource/reference/events.md +10 -9
  1620. package/docs/resource/reference/motherlode-cache.md +24 -11
  1621. package/docs/resource/reference/queues.md +30 -1
  1622. package/docs/trinity/README.md +5 -5
  1623. package/docs/trinity/architecture.md +355 -344
  1624. package/docs/trinity/concepts/eve-runtime-behavior.md +1 -1
  1625. package/docs/trinity/reference/api.md +19 -7
  1626. package/docs/trinity/reference/classes/dropped.md +2 -11
  1627. package/docs/trinity/reference/classes/eve-runtime.md +1 -1
  1628. package/docs/trinity/reference/classes/trinity-core.md +1672 -1622
  1629. package/docs/trinity/reference/implementation-status.md +92 -92
  1630. package/package.json +2 -1
  1631. package/dist/core/CjsFrameDriver.js +0 -109
  1632. package/dist/core/CjsFrameDriver.js.map +0 -1
  1633. package/dist/global/contracts/CjsFrameLifecycle.js +0 -49
  1634. package/dist/global/contracts/CjsFrameLifecycle.js.map +0 -1
  1635. package/dist/global/contracts/CjsInstancedMeshManager.js +0 -58
  1636. package/dist/global/contracts/CjsInstancedMeshManager.js.map +0 -1
  1637. package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js +0 -4
  1638. package/dist/resource/formats/black/core/black-schema-v1-2026-07-23.json.js.map +0 -1
@@ -2,27 +2,26 @@ import { CjsDxbcFormat } from '../../../dxbc/CjsDxbcFormat.js';
2
2
  import { WebglReadError } from '../errors.js';
3
3
  import { DxbcGlslOperandFormatter } from './DxbcGlslOperandFormatter.js';
4
4
  import { DxbcGlslHelperRegistry } from './DxbcGlslHelpers.js';
5
- import { DETAIL_MAP_ARRAY_NAME } from '../../../hlsl/core/detailMapFamily.js';
6
5
 
7
6
  const COMPONENTS = ["x", "y", "z", "w"];
8
7
 
9
- /**
10
- * Map-style compute lowering caps simultaneous UAV writes to this many
11
- * fragment color outputs. WebGL2 only guarantees `MAX_DRAW_BUFFERS >= 4`
12
- * (real implementations commonly expose up to 8); a compute kernel that
13
- * writes more UAVs than fit in one draw call's attachment set (e.g. a
14
- * hierarchical mip-chain "Pack" pass writing 16 mip levels per dispatch)
15
- * cannot become a single map-style fragment pass at all.
8
+ /**
9
+ * Map-style compute lowering caps simultaneous UAV writes to this many
10
+ * fragment color outputs. WebGL2 only guarantees `MAX_DRAW_BUFFERS >= 4`
11
+ * (real implementations commonly expose up to 8); a compute kernel that
12
+ * writes more UAVs than fit in one draw call's attachment set (e.g. a
13
+ * hierarchical mip-chain "Pack" pass writing 16 mip levels per dispatch)
14
+ * cannot become a single map-style fragment pass at all.
16
15
  */
17
16
  const MAX_MAP_STYLE_UAV_OUTPUTS = 8;
18
17
 
19
- /**
20
- * GLSL sampler type per DXBC resource-dimension id (float return types; the
21
- * stripped-RDEF corpus reflects everything as float).
18
+ /**
19
+ * GLSL sampler type per DXBC resource-dimension id (float return types; the
20
+ * stripped-RDEF corpus reflects everything as float).
22
21
  */
23
- /**
24
- * DXBC resource dimension for a cube map. Emulated addressing refuses it: a
25
- * cube coordinate is a direction, so a [0,1] range test is meaningless there.
22
+ /**
23
+ * DXBC resource dimension for a cube map. Emulated addressing refuses it: a
24
+ * cube coordinate is a direction, so a [0,1] range test is meaningless there.
26
25
  */
27
26
  const CUBE_DIMENSION = 6;
28
27
  const SAMPLER_TYPE_BY_DIMENSION = {
@@ -33,11 +32,11 @@ const SAMPLER_TYPE_BY_DIMENSION = {
33
32
  8: "sampler2DArray"
34
33
  };
35
34
 
36
- /**
37
- * Shadow-sampler type per WebGL2-supported DXBC resource dimension.
38
- * Comparison sampling changes both the call signature and the uniform type;
39
- * keeping this separate from the ordinary sampler table guarantees shaders
40
- * without comparison opcodes retain their existing declarations verbatim.
35
+ /**
36
+ * Shadow-sampler type per WebGL2-supported DXBC resource dimension.
37
+ * Comparison sampling changes both the call signature and the uniform type;
38
+ * keeping this separate from the ordinary sampler table guarantees shaders
39
+ * without comparison opcodes retain their existing declarations verbatim.
41
40
  */
42
41
  const SHADOW_SAMPLER_TYPE_BY_DIMENSION = {
43
42
  3: "sampler2DShadow",
@@ -47,19 +46,19 @@ const SHADOW_SAMPLER_TYPE_BY_DIMENSION = {
47
46
  const COMPARISON_SAMPLE_OPCODES = new Set(["sample_c", "sample_c_lz"]);
48
47
  const NON_COMPARISON_TEXTURE_OPCODES = new Set(["sample", "sample_l", "sample_b", "sample_d", "gather4", "gather4_po", "ld", "ld_ms", "lod"]);
49
48
 
50
- /**
51
- * Filtered-sample coordinate mask per resource dimension
52
- * (HLSLcc `TranslateTexCoord`, toGLSLInstruction.cpp:985-1031).
49
+ /**
50
+ * Filtered-sample coordinate mask per resource dimension
51
+ * (HLSLcc `TranslateTexCoord`, toGLSLInstruction.cpp:985-1031).
53
52
  */
54
- /**
55
- * GLSL symbol for the merged detail-map array.
56
- *
57
- * Derived, not spelled out. The family owns the name and it has been renamed
58
- * once already (`DetailMapArray` -> `DetailArrayMap`); a second literal is a
59
- * second place for the next rename to miss, which is exactly what the writer's
60
- * `outputName` comment warns about. Only the GLSL sampler prefix is local.
53
+ /**
54
+ * GLSL symbol for the merged detail-map array.
55
+ *
56
+ * Derived, not spelled out. The family owns the name and it has been renamed
57
+ * once already (`DetailMapArray` -> `DetailArrayMap`); a second literal is a
58
+ * second place for the next rename to miss, which is exactly what the writer's
59
+ * `outputName` comment warns about. Only the GLSL sampler prefix is local.
61
60
  */
62
- const DETAIL_MAP_ARRAY_SYMBOL = `s${DETAIL_MAP_ARRAY_NAME}`;
61
+
63
62
  const COORD_MASK_BY_DIMENSION = {
64
63
  2: "x",
65
64
  3: "xy",
@@ -70,32 +69,32 @@ const COORD_MASK_BY_DIMENSION = {
70
69
  10: "xyzw"
71
70
  };
72
71
 
73
- /**
74
- * DXBC -> GLSL ES 3.00 emitter for vertex and pixel stages.
75
- *
76
- * Implements the lowering rules in `docs/dxbc-lowering/*.md`, which pin every
77
- * template to HLSLcc's `toGLSLInstruction.cpp`/`toGLSLDeclaration.cpp`.
78
- * Registers are stored as float vec4s with bitcasts at use sites, comparison
79
- * results are 0xFFFFFFFF/0 masks (never bools), and register-stable symbols
80
- * (`cb#.data[]`, `t#`, `in_SEMANTIC#`, `vs_SEMANTIC#`) form the ABI surface.
81
- *
82
- * Emitter-wide policy: Adreno-3xx driver hygiene from HLSLcc (per-component
83
- * bitwise splits, `op_not`, `uint(0)` literals, `uvecN()` ctor wraps) is NOT
84
- * ported; the target is ANGLE-backed WebGL2 and the plain spec-legal forms
85
- * are emitted instead.
72
+ /**
73
+ * DXBC -> GLSL ES 3.00 emitter for vertex and pixel stages.
74
+ *
75
+ * Implements the lowering rules in `docs/dxbc-lowering/*.md`, which pin every
76
+ * template to HLSLcc's `toGLSLInstruction.cpp`/`toGLSLDeclaration.cpp`.
77
+ * Registers are stored as float vec4s with bitcasts at use sites, comparison
78
+ * results are 0xFFFFFFFF/0 masks (never bools), and register-stable symbols
79
+ * (`cb#.data[]`, `t#`, `in_SEMANTIC#`, `vs_SEMANTIC#`) form the ABI surface.
80
+ *
81
+ * Emitter-wide policy: Adreno-3xx driver hygiene from HLSLcc (per-component
82
+ * bitwise splits, `op_not`, `uint(0)` literals, `uvecN()` ctor wraps) is NOT
83
+ * ported; the target is ANGLE-backed WebGL2 and the plain spec-legal forms
84
+ * are emitted instead.
86
85
  */
87
86
  class DxbcGlslEmitter {
88
- /**
89
- * @param {object} [options] Emitter options.
90
- * @param {object} [options.profile] Target-runtime profile overrides.
91
- * @param {"array"|"std140"} [options.profile.constantBufferStyle] `uniform vec4 cbN[]`
92
- * arrays for ccpwgl's uniform4fv path, or std140 blocks.
93
- * @param {Object.<number,number>} [options.profile.pixelConstantBufferRemap] Pixel-stage
94
- * cb slot renames (ccpwgl keeps PS effect constants at cb7).
95
- * @param {function(number,string):string} [options.profile.samplerName] Texture uniform
96
- * naming per register and stage.
97
- * @param {number} [options.profile.vertexStructuredCapacity] Element capacity for
98
- * vertex-stage structured-buffer UBOs (bones; Carbon max is 69 joints).
87
+ /**
88
+ * @param {object} [options] Emitter options.
89
+ * @param {object} [options.profile] Target-runtime profile overrides.
90
+ * @param {"array"|"std140"} [options.profile.constantBufferStyle] `uniform vec4 cbN[]`
91
+ * arrays for ccpwgl's uniform4fv path, or std140 blocks.
92
+ * @param {Object.<number,number>} [options.profile.pixelConstantBufferRemap] Pixel-stage
93
+ * cb slot renames (ccpwgl keeps PS effect constants at cb7).
94
+ * @param {function(number,string):string} [options.profile.samplerName] Texture uniform
95
+ * naming per register and stage.
96
+ * @param {number} [options.profile.vertexStructuredCapacity] Element capacity for
97
+ * vertex-stage structured-buffer UBOs (bones; Carbon max is 69 joints).
99
98
  */
100
99
  constructor(options = {}) {
101
100
  this.helpers = new DxbcGlslHelperRegistry();
@@ -134,6 +133,11 @@ class DxbcGlslEmitter {
134
133
  // into one array binding frees two texture units on shaders that
135
134
  // sit exactly on WebGL2's 16-unit limit.
136
135
  detailMapArrayRegisters: [],
136
+ // Every family to merge, as { family, outputName, registers } in
137
+ // layer order. The key above is the detail family's older spelling
138
+ // and is still honoured; this one carries the rest - Frontier's
139
+ // roughness, atlas and dirt families among them.
140
+ textureArrayFamilies: [],
137
141
  // Which end of the source clip range is NEAR, and therefore which
138
142
  // form the depth-range fixup takes.
139
143
  //
@@ -197,11 +201,11 @@ class DxbcGlslEmitter {
197
201
  }
198
202
  }
199
203
 
200
- /**
201
- * Registers the GLSL helper functions this emitter's lowerings can require.
202
- * GLSL ES 3.00 has no `bitfieldExtract`/`bitfieldInsert`/`bitCount`/
203
- * `textureGather` (all ES 3.10+), so `ibfe`/`ubfe`/`bfi`/`countbits`/
204
- * `gather4` lower to these hand-written equivalents instead.
204
+ /**
205
+ * Registers the GLSL helper functions this emitter's lowerings can require.
206
+ * GLSL ES 3.00 has no `bitfieldExtract`/`bitfieldInsert`/`bitCount`/
207
+ * `textureGather` (all ES 3.10+), so `ibfe`/`ubfe`/`bfi`/`countbits`/
208
+ * `gather4` lower to these hand-written equivalents instead.
205
209
  */
206
210
  _defineHelpers() {
207
211
  // Texture address modes WebGL2 cannot express, emulated in the shader.
@@ -287,16 +291,16 @@ class DxbcGlslEmitter {
287
291
  });
288
292
  }
289
293
 
290
- /**
291
- * Translates one DXBC stage into GLSL ES 3.00 source.
292
- *
293
- * @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes DXBC container bytes.
294
- * @param {object} [options] Emit options.
295
- * @param {string} [options.source] Source name used in error details.
296
- * @returns {{source:string,stageName:string,inputs:object[],outputs:object[],bindings:object[],warnings:string[],computeFragment:(object|undefined)}}
297
- * GLSL text plus the IO contract the packaging layer records; compute
298
- * stages add a `computeFragment` host contract (thread group,
299
- * dispatch-origin uniform, per-output UAV slice routing).
294
+ /**
295
+ * Translates one DXBC stage into GLSL ES 3.00 source.
296
+ *
297
+ * @param {ArrayBuffer|ArrayBufferView|Uint8Array} bytes DXBC container bytes.
298
+ * @param {object} [options] Emit options.
299
+ * @param {string} [options.source] Source name used in error details.
300
+ * @returns {{source:string,stageName:string,inputs:object[],outputs:object[],bindings:object[],warnings:string[],computeFragment:(object|undefined)}}
301
+ * GLSL text plus the IO contract the packaging layer records; compute
302
+ * stages add a `computeFragment` host contract (thread group,
303
+ * dispatch-origin uniform, per-output UAV slice routing).
300
304
  */
301
305
  Emit(bytes, options = {}) {
302
306
  const sourceName = options.source || "memory";
@@ -354,8 +358,10 @@ class DxbcGlslEmitter {
354
358
  neutralResources: new Set(this.profile.neutralResourceRegisters || []),
355
359
  // Resource register -> array layer for the merged detail maps, and
356
360
  // whether the one shared array declaration has been emitted yet.
357
- detailMapArrayLayers: new Map((this.profile.detailMapArrayRegisters || []).map((register, layer) => [register, layer])),
358
- detailMapArrayDeclared: false,
361
+ // Resource register -> the array it was merged into and its layer
362
+ // within it, and which array declarations have been emitted.
363
+ textureArrayLayers: this._textureArrayLayerMap(),
364
+ declaredTextureArrays: new Set(),
359
365
  inputMasks: new Map(),
360
366
  outputMasks: new Map(),
361
367
  bindings: [],
@@ -403,7 +409,13 @@ class DxbcGlslEmitter {
403
409
  // them in float storage: a vertex-id corner index `r0.x = uintBitsToFloat(id & 3u)`
404
410
  // reads back 0 for ids 1..3, collapsing every quad (plane sets, the sprite
405
411
  // pool). Packed-light shaders need the same companions for their words.
406
- state.integerTemps = !!state.lightPackedTexture || state.decoder.instructions.some(instruction => (instruction.opcodeName === "dcl_input_sgv" || instruction.opcodeName === "dcl_input_ps_sgv") && (instruction.declaration?.systemValueName === "vertex_id" || instruction.declaration?.systemValueName === "instance_id"));
412
+ //
413
+ // Integer vertex inputs arrive as float VALUES (see _declareVertexInput);
414
+ // a move into a temporary must value-convert into the companion, or a later
415
+ // `floatBitsToInt(r#)` reads the bits of 3.0 instead of 3 (the haze-set box
416
+ // corner index, TEXCOORD7).
417
+ const integerVertexInputRegisters = new Set(program.programTypeName !== "vertex" ? [] : (raw.inputSignature?.elements || []).filter(element => element.componentTypeName === "uint32" || element.componentTypeName === "int32").map(element => element.registerIndex));
418
+ state.integerTemps = !!state.lightPackedTexture || state.decoder.instructions.some(instruction => (instruction.opcodeName === "dcl_input_sgv" || instruction.opcodeName === "dcl_input_ps_sgv") && (instruction.declaration?.systemValueName === "vertex_id" || instruction.declaration?.systemValueName === "instance_id") || (instruction.opcodeName === "mov" || instruction.opcodeName === "movc") && instruction.operands[0]?.type === 0 && instruction.operands.slice(1).some(operand => operand.type === 1 && integerVertexInputRegisters.has(operand.registerIndex)));
407
419
  state.formatter = new DxbcGlslOperandFormatter({
408
420
  // Populated during vertex-input declaration (the declaration loop
409
421
  // runs before any body emission, so the map is complete before the
@@ -494,10 +506,10 @@ class DxbcGlslEmitter {
494
506
  return result;
495
507
  }
496
508
 
497
- /**
498
- * Normalizes the optional local-light constant-buffer lowering profile.
499
- *
500
- * @returns {object|null} Normalized profile, or null when disabled.
509
+ /**
510
+ * Normalizes the optional local-light constant-buffer lowering profile.
511
+ *
512
+ * @returns {object|null} Normalized profile, or null when disabled.
501
513
  */
502
514
  _normalizeLightConstantBufferProfile() {
503
515
  const profile = this.profile.lightConstantBuffer;
@@ -516,27 +528,27 @@ class DxbcGlslEmitter {
516
528
  };
517
529
  }
518
530
 
519
- /**
520
- * Finds resources used by comparison-sample instructions before resource
521
- * declarations are emitted, so those declarations can use shadow sampler
522
- * types. A single GLSL uniform cannot be both a shadow and ordinary sampler;
523
- * reject that shape explicitly instead of producing invalid GLSL.
524
- *
525
- * The same walk records the t#/s# pairing for EVERY sampled resource, not
526
- * only the comparison ones. D3D carries sampler state on a shared sampler
527
- * object and pairs it with a texture at the sample site; GLSL merges the two
528
- * into one uniform, so that pairing is the only place the pairing exists once
529
- * the shader is translated. Dropping it forces a consumer to guess, and the
530
- * available guess - "the sampler whose register equals the texture's" - is
531
- * numeric coincidence: with two pattern samplers declared, `NormalMap` at t3
532
- * collides with the clamp sampler at s3 and every hull's normal map is read
533
- * clamped instead of wrapped.
534
- *
535
- * @param {object} decoder Decoded DXBC instruction stream.
536
- * @param {string} sourceName Source name used in error details.
537
- * @returns {{comparison:Map<number,Set<number>>,paired:Map<number,Set<number>>}}
538
- * Resource register -> sampler registers, for comparison sampling and for
539
- * all sampling respectively.
531
+ /**
532
+ * Finds resources used by comparison-sample instructions before resource
533
+ * declarations are emitted, so those declarations can use shadow sampler
534
+ * types. A single GLSL uniform cannot be both a shadow and ordinary sampler;
535
+ * reject that shape explicitly instead of producing invalid GLSL.
536
+ *
537
+ * The same walk records the t#/s# pairing for EVERY sampled resource, not
538
+ * only the comparison ones. D3D carries sampler state on a shared sampler
539
+ * object and pairs it with a texture at the sample site; GLSL merges the two
540
+ * into one uniform, so that pairing is the only place the pairing exists once
541
+ * the shader is translated. Dropping it forces a consumer to guess, and the
542
+ * available guess - "the sampler whose register equals the texture's" - is
543
+ * numeric coincidence: with two pattern samplers declared, `NormalMap` at t3
544
+ * collides with the clamp sampler at s3 and every hull's normal map is read
545
+ * clamped instead of wrapped.
546
+ *
547
+ * @param {object} decoder Decoded DXBC instruction stream.
548
+ * @param {string} sourceName Source name used in error details.
549
+ * @returns {{comparison:Map<number,Set<number>>,paired:Map<number,Set<number>>}}
550
+ * Resource register -> sampler registers, for comparison sampling and for
551
+ * all sampling respectively.
540
552
  */
541
553
  _analyzeComparisonResources(decoder, sourceName) {
542
554
  const comparisonResources = new Map();
@@ -578,27 +590,27 @@ class DxbcGlslEmitter {
578
590
  };
579
591
  }
580
592
 
581
- /**
582
- * Normalizes the emulated-addressing profile.
583
- *
584
- * Keyed by RESOURCE register, not sampler register, because that is what
585
- * every layer we touch keys on: GL stores wrap state on the texture object,
586
- * ccpwgl keys overrides by texture name, and the emitted GLSL declares one
587
- * sampler uniform per resource. Only D3D treats the mode as a property of a
588
- * shared sampler - in `decalv5` five textures share one bordered sampler and
589
- * each can resolve to a different mode, which a sampler-keyed scheme cannot
590
- * represent.
591
- *
592
- * It arrives as a profile option because it CANNOT be discovered here: DXBC
593
- * carries no sampler state, which lives in the Carbon container wrapping it.
594
- * The caller also chooses the SUPERSET - listing a texture whose container
595
- * mode needs no emulation is deliberate and cheap, because the runtime mode
596
- * decides, and it is what lets an override correct a container that is wrong.
597
- *
598
- * Shape: `{ bufferRegister, textures: [{ registerIndex, borderColor }] }`.
599
- *
600
- * @returns {{bufferRegister:number, textures:Map<number,{color:number[]}>}|null}
601
- * Null when disabled.
593
+ /**
594
+ * Normalizes the emulated-addressing profile.
595
+ *
596
+ * Keyed by RESOURCE register, not sampler register, because that is what
597
+ * every layer we touch keys on: GL stores wrap state on the texture object,
598
+ * ccpwgl keys overrides by texture name, and the emitted GLSL declares one
599
+ * sampler uniform per resource. Only D3D treats the mode as a property of a
600
+ * shared sampler - in `decalv5` five textures share one bordered sampler and
601
+ * each can resolve to a different mode, which a sampler-keyed scheme cannot
602
+ * represent.
603
+ *
604
+ * It arrives as a profile option because it CANNOT be discovered here: DXBC
605
+ * carries no sampler state, which lives in the Carbon container wrapping it.
606
+ * The caller also chooses the SUPERSET - listing a texture whose container
607
+ * mode needs no emulation is deliberate and cheap, because the runtime mode
608
+ * decides, and it is what lets an override correct a container that is wrong.
609
+ *
610
+ * Shape: `{ bufferRegister, textures: [{ registerIndex, borderColor }] }`.
611
+ *
612
+ * @returns {{bufferRegister:number, textures:Map<number,{color:number[]}>}|null}
613
+ * Null when disabled.
602
614
  */
603
615
  _normalizeEmulatedAddressingProfile() {
604
616
  const value = this.profile.emulatedAddressing;
@@ -673,19 +685,19 @@ class DxbcGlslEmitter {
673
685
  };
674
686
  }
675
687
 
676
- /**
677
- * Applies emulated address modes to one sample.
678
- *
679
- * Emits nothing for a texture the caller did not list, so a shader with no
680
- * emulated addressing is byte-identical to one emitted without the profile.
681
- *
682
- * @param {object} state Emit state.
683
- * @param {object} instruction Decoded texture instruction.
684
- * @param {string} call The GLSL sample expression built so far.
685
- * @param {string} coord The coordinate expression passed to that sample.
686
- * @param {string} coordMask Component mask of the coordinate.
687
- * @returns {string} The sample expression, addressed when the caller listed it.
688
- * @private
688
+ /**
689
+ * Applies emulated address modes to one sample.
690
+ *
691
+ * Emits nothing for a texture the caller did not list, so a shader with no
692
+ * emulated addressing is byte-identical to one emitted without the profile.
693
+ *
694
+ * @param {object} state Emit state.
695
+ * @param {object} instruction Decoded texture instruction.
696
+ * @param {string} call The GLSL sample expression built so far.
697
+ * @param {string} coord The coordinate expression passed to that sample.
698
+ * @param {string} coordMask Component mask of the coordinate.
699
+ * @returns {string} The sample expression, addressed when the caller listed it.
700
+ * @private
689
701
  */
690
702
  _applyEmulatedAddressing(state, instruction, call, coord, coordMask) {
691
703
  const profile = state.emulatedAddressing;
@@ -748,18 +760,18 @@ class DxbcGlslEmitter {
748
760
  return `${borderHelper}(${rewritten}, ${addressedCoord}, ${modes}, vec4(${color}))`;
749
761
  }
750
762
 
751
- /**
752
- * Declares the emulated-addressing constant buffer, once per shader.
753
- *
754
- * Sized to the highest listed resource register so the array stays compact,
755
- * the way Carbon emitters declare compact `cb` arrays. The register is
756
- * caller-chosen and defaults to 8: shipped effects declare only cb0-4, 6 and
757
- * 7, and ccpwgl already resolves `cb0`..`cb15` by name, so 8 needs no new
758
- * binding table.
759
- *
760
- * @param {object} state Emit state.
761
- * @returns {string} The buffer's GLSL name.
762
- * @private
763
+ /**
764
+ * Declares the emulated-addressing constant buffer, once per shader.
765
+ *
766
+ * Sized to the highest listed resource register so the array stays compact,
767
+ * the way Carbon emitters declare compact `cb` arrays. The register is
768
+ * caller-chosen and defaults to 8: shipped effects declare only cb0-4, 6 and
769
+ * 7, and ccpwgl already resolves `cb0`..`cb15` by name, so 8 needs no new
770
+ * binding table.
771
+ *
772
+ * @param {object} state Emit state.
773
+ * @returns {string} The buffer's GLSL name.
774
+ * @private
763
775
  */
764
776
  _ensureAddressBuffer(state) {
765
777
  const {
@@ -820,10 +832,10 @@ class DxbcGlslEmitter {
820
832
  return name;
821
833
  }
822
834
 
823
- /**
824
- * Normalizes the optional packed local-light texture lowering profile.
825
- *
826
- * @returns {object|null} Normalized profile, or null when disabled.
835
+ /**
836
+ * Normalizes the optional packed local-light texture lowering profile.
837
+ *
838
+ * @returns {object|null} Normalized profile, or null when disabled.
827
839
  */
828
840
  _normalizeLightPackedTextureProfile() {
829
841
  const profile = this.profile.lightPackedTexture;
@@ -841,12 +853,12 @@ class DxbcGlslEmitter {
841
853
  };
842
854
  }
843
855
 
844
- /**
845
- * Declares the packed local-light texture ABI used to replace the
846
- * LightIndexBuffer/LightBuffer/LightProfileArray trio with one RGBA32UI
847
- * data texture.
848
- *
849
- * @param {object} state Emit state.
856
+ /**
857
+ * Declares the packed local-light texture ABI used to replace the
858
+ * LightIndexBuffer/LightBuffer/LightProfileArray trio with one RGBA32UI
859
+ * data texture.
860
+ *
861
+ * @param {object} state Emit state.
850
862
  */
851
863
  _ensureLightPackedTexture(state) {
852
864
  const profile = state.lightPackedTexture;
@@ -868,9 +880,9 @@ class DxbcGlslEmitter {
868
880
  });
869
881
  }
870
882
 
871
- /**
872
- * Emits our packed profile helpers only when a sample uses them.
873
- * @param {object} state Emit state.
883
+ /**
884
+ * Emits our packed profile helpers only when a sample uses them.
885
+ * @param {object} state Emit state.
874
886
  */
875
887
  _ensureLightProfileHelpers(state) {
876
888
  if (state.lightProfileHelpersDeclared) return;
@@ -885,11 +897,11 @@ class DxbcGlslEmitter {
885
897
  }
886
898
  }
887
899
 
888
- /**
889
- * Declares the local-light constant-buffer ABI used to replace the two
890
- * tiled-light structured buffers without consuming sampler units.
891
- *
892
- * @param {object} state Emit state.
900
+ /**
901
+ * Declares the local-light constant-buffer ABI used to replace the two
902
+ * tiled-light structured buffers without consuming sampler units.
903
+ *
904
+ * @param {object} state Emit state.
893
905
  */
894
906
  _ensureLightConstantBuffer(state) {
895
907
  const profile = state.lightConstantBuffer;
@@ -912,15 +924,15 @@ class DxbcGlslEmitter {
912
924
  });
913
925
  }
914
926
 
915
- /**
916
- * Rejects compute shaders that need real compute-pipeline features (shared
917
- * memory, barriers, atomics, raw/structured/typed UAV reads) instead of the
918
- * "map-style" thread-per-fragment shape this emitter lowers. The message
919
- * intentionally contains "not supported" so packaging's kill-list
920
- * classifier regex (`/not supported|No GLSL lowering|unimplementable/i`)
921
- * routes these to the exclusion list rather than the failure list.
922
- *
923
- * @param {object} state Emit state.
927
+ /**
928
+ * Rejects compute shaders that need real compute-pipeline features (shared
929
+ * memory, barriers, atomics, raw/structured/typed UAV reads) instead of the
930
+ * "map-style" thread-per-fragment shape this emitter lowers. The message
931
+ * intentionally contains "not supported" so packaging's kill-list
932
+ * classifier regex (`/not supported|No GLSL lowering|unimplementable/i`)
933
+ * routes these to the exclusion list rather than the failure list.
934
+ *
935
+ * @param {object} state Emit state.
924
936
  */
925
937
  _assertMapStyleCompute(state) {
926
938
  for (const instruction of state.decoder.instructions) {
@@ -936,26 +948,26 @@ class DxbcGlslEmitter {
936
948
  }
937
949
  }
938
950
 
939
- /**
940
- * Pre-scans a map-style compute shader's `store_uav_typed` instructions and
941
- * builds a per-UAV slice plan before any declaration is emitted.
942
- *
943
- * Straight-line constant propagation only: the address registers ASSAO-style
944
- * Prepare passes build are `mov rX.<c>, l(k)` immediates, so the tracker
945
- * records the last constant written to each temp component and treats every
946
- * other write as dynamic. Each stored-to UAV register resolves to either
947
- * `{ kind: "single" }` (at most one store; the array-slice coordinate, when
948
- * present, is dropped — the host attaches the target layer via
949
- * `framebufferTextureLayer`) or `{ kind: "multiSlice", slices, sliceByOffset }`
950
- * (several stores at statically distinct texture2darray slices, each routed
951
- * to its own fragment output — the host attaches those layers as sequential
952
- * color attachments).
953
- *
954
- * Anything outside those two shapes cannot become one fragment pass, so the
955
- * throw messages deliberately contain "not supported" for packaging's
956
- * kill-list classifier (see `_assertMapStyleCompute`).
957
- *
958
- * @param {object} state Emit state.
951
+ /**
952
+ * Pre-scans a map-style compute shader's `store_uav_typed` instructions and
953
+ * builds a per-UAV slice plan before any declaration is emitted.
954
+ *
955
+ * Straight-line constant propagation only: the address registers ASSAO-style
956
+ * Prepare passes build are `mov rX.<c>, l(k)` immediates, so the tracker
957
+ * records the last constant written to each temp component and treats every
958
+ * other write as dynamic. Each stored-to UAV register resolves to either
959
+ * `{ kind: "single" }` (at most one store; the array-slice coordinate, when
960
+ * present, is dropped — the host attaches the target layer via
961
+ * `framebufferTextureLayer`) or `{ kind: "multiSlice", slices, sliceByOffset }`
962
+ * (several stores at statically distinct texture2darray slices, each routed
963
+ * to its own fragment output — the host attaches those layers as sequential
964
+ * color attachments).
965
+ *
966
+ * Anything outside those two shapes cannot become one fragment pass, so the
967
+ * throw messages deliberately contain "not supported" for packaging's
968
+ * kill-list classifier (see `_assertMapStyleCompute`).
969
+ *
970
+ * @param {object} state Emit state.
959
971
  */
960
972
  _analyzeUavStores(state) {
961
973
  for (const instruction of state.decoder.instructions) {
@@ -1028,16 +1040,16 @@ class DxbcGlslEmitter {
1028
1040
  }
1029
1041
  }
1030
1042
 
1031
- /**
1032
- * Updates the per-temp-component constant tracker for one instruction:
1033
- * `mov rX.<mask>, l(...)` records each written component's immediate dword,
1034
- * and any other write to a temp component invalidates it. Destination
1035
- * operands are exactly the mask-selection temp operands (DXBC sources
1036
- * always read through swizzle/select1), so this also handles multi-
1037
- * destination opcodes like `sincos` and `udiv` conservatively.
1038
- *
1039
- * @param {object} instruction Decoded non-declaration instruction.
1040
- * @param {Map<string, number>} constantTemps Constant tracker keyed `<register>.<component>`.
1043
+ /**
1044
+ * Updates the per-temp-component constant tracker for one instruction:
1045
+ * `mov rX.<mask>, l(...)` records each written component's immediate dword,
1046
+ * and any other write to a temp component invalidates it. Destination
1047
+ * operands are exactly the mask-selection temp operands (DXBC sources
1048
+ * always read through swizzle/select1), so this also handles multi-
1049
+ * destination opcodes like `sincos` and `udiv` conservatively.
1050
+ *
1051
+ * @param {object} instruction Decoded non-declaration instruction.
1052
+ * @param {Map<string, number>} constantTemps Constant tracker keyed `<register>.<component>`.
1041
1053
  */
1042
1054
  _trackTempConstants(instruction, constantTemps) {
1043
1055
  const source = instruction.operands[1];
@@ -1056,13 +1068,13 @@ class DxbcGlslEmitter {
1056
1068
  }
1057
1069
  }
1058
1070
 
1059
- /**
1060
- * Resolves the array-slice (z) component of a `store_uav_typed` address
1061
- * operand to a compile-time constant, or null when it is dynamic.
1062
- *
1063
- * @param {object} addressOperand Decoded address operand.
1064
- * @param {Map<string, number>} constantTemps Constant tracker keyed `<register>.<component>`.
1065
- * @returns {number|null} Constant slice index, or null.
1071
+ /**
1072
+ * Resolves the array-slice (z) component of a `store_uav_typed` address
1073
+ * operand to a compile-time constant, or null when it is dynamic.
1074
+ *
1075
+ * @param {object} addressOperand Decoded address operand.
1076
+ * @param {Map<string, number>} constantTemps Constant tracker keyed `<register>.<component>`.
1077
+ * @returns {number|null} Constant slice index, or null.
1066
1078
  */
1067
1079
  _resolveSliceConstant(addressOperand, constantTemps) {
1068
1080
  if (addressOperand.type === 4) {
@@ -1077,14 +1089,14 @@ class DxbcGlslEmitter {
1077
1089
  return constantTemps.has(key) ? constantTemps.get(key) : null;
1078
1090
  }
1079
1091
 
1080
- /**
1081
- * Allocates the next map-style UAV fragment-output location, enforcing the
1082
- * `MAX_MAP_STYLE_UAV_OUTPUTS` attachment budget across single-output UAVs
1083
- * and per-slice multi-output UAVs alike.
1084
- *
1085
- * @param {object} state Emit state.
1086
- * @param {number} register UAV register index (error detail only).
1087
- * @returns {number} Allocated output location.
1092
+ /**
1093
+ * Allocates the next map-style UAV fragment-output location, enforcing the
1094
+ * `MAX_MAP_STYLE_UAV_OUTPUTS` attachment budget across single-output UAVs
1095
+ * and per-slice multi-output UAVs alike.
1096
+ *
1097
+ * @param {object} state Emit state.
1098
+ * @param {number} register UAV register index (error detail only).
1099
+ * @returns {number} Allocated output location.
1088
1100
  */
1089
1101
  _allocateUavOutputLocation(state, register) {
1090
1102
  const location = state.uavOutputCount;
@@ -1103,12 +1115,12 @@ class DxbcGlslEmitter {
1103
1115
  // Declarations
1104
1116
  // ------------------------------------------------------------------
1105
1117
 
1106
- /**
1107
- * Emits one decoded DXBC declaration into the GLSL interface and manifest.
1108
- *
1109
- * @param {object} state Mutable emission state.
1110
- * @param {object} instruction Decoded DXBC declaration instruction.
1111
- * @private
1118
+ /**
1119
+ * Emits one decoded DXBC declaration into the GLSL interface and manifest.
1120
+ *
1121
+ * @param {object} state Mutable emission state.
1122
+ * @param {object} instruction Decoded DXBC declaration instruction.
1123
+ * @private
1112
1124
  */
1113
1125
  _emitDeclaration(state, instruction) {
1114
1126
  const declaration = instruction.declaration;
@@ -1205,8 +1217,8 @@ class DxbcGlslEmitter {
1205
1217
  dimensionName: declaration.resourceDimensionName
1206
1218
  });
1207
1219
  }
1208
- if (state.detailMapArrayLayers.has(register)) {
1209
- this._declareDetailArrayMap(state, register, declaration, comparisonSamplers);
1220
+ if (state.textureArrayLayers.has(register)) {
1221
+ this._declareTextureArrayMap(state, register, declaration, comparisonSamplers);
1210
1222
  break;
1211
1223
  }
1212
1224
  const name = this.profile.samplerName(register, state.stageName);
@@ -1405,24 +1417,24 @@ class DxbcGlslEmitter {
1405
1417
  }
1406
1418
  }
1407
1419
 
1408
- /**
1409
- * Finds the signature element assigned to a register.
1410
- *
1411
- * @param {object|null} signature Decoded DXBC signature.
1412
- * @param {number} registerIndex Register index.
1413
- * @returns {object|null} Matching signature element.
1414
- * @private
1420
+ /**
1421
+ * Finds the signature element assigned to a register.
1422
+ *
1423
+ * @param {object|null} signature Decoded DXBC signature.
1424
+ * @param {number} registerIndex Register index.
1425
+ * @returns {object|null} Matching signature element.
1426
+ * @private
1415
1427
  */
1416
1428
  _signatureElement(signature, registerIndex) {
1417
1429
  return signature?.elements.find(element => element.registerIndex === registerIndex) || null;
1418
1430
  }
1419
1431
 
1420
- /**
1421
- * Declares one vertex input using its Carbon semantic identity.
1422
- *
1423
- * @param {object} state Mutable emission state.
1424
- * @param {object} instruction Decoded input declaration.
1425
- * @private
1432
+ /**
1433
+ * Declares one vertex input using its Carbon semantic identity.
1434
+ *
1435
+ * @param {object} state Mutable emission state.
1436
+ * @param {object} instruction Decoded input declaration.
1437
+ * @private
1426
1438
  */
1427
1439
  _declareVertexInput(state, instruction) {
1428
1440
  const register = instruction.declaration.registerIndex;
@@ -1464,12 +1476,12 @@ class DxbcGlslEmitter {
1464
1476
  });
1465
1477
  }
1466
1478
 
1467
- /**
1468
- * Declares one pixel-stage varying or system input.
1469
- *
1470
- * @param {object} state Mutable emission state.
1471
- * @param {object} instruction Decoded input declaration.
1472
- * @private
1479
+ /**
1480
+ * Declares one pixel-stage varying or system input.
1481
+ *
1482
+ * @param {object} state Mutable emission state.
1483
+ * @param {object} instruction Decoded input declaration.
1484
+ * @private
1473
1485
  */
1474
1486
  _declarePixelInput(state, instruction) {
1475
1487
  const register = instruction.declaration.registerIndex;
@@ -1509,12 +1521,12 @@ class DxbcGlslEmitter {
1509
1521
  });
1510
1522
  }
1511
1523
 
1512
- /**
1513
- * Maps a supported system-generated input to its GLSL expression.
1514
- *
1515
- * @param {object} state Mutable emission state.
1516
- * @param {object} instruction Decoded system-input declaration.
1517
- * @private
1524
+ /**
1525
+ * Maps a supported system-generated input to its GLSL expression.
1526
+ *
1527
+ * @param {object} state Mutable emission state.
1528
+ * @param {object} instruction Decoded system-input declaration.
1529
+ * @private
1518
1530
  */
1519
1531
  _declareSystemInput(state, instruction) {
1520
1532
  const declaration = instruction.declaration;
@@ -1539,16 +1551,16 @@ class DxbcGlslEmitter {
1539
1551
  }
1540
1552
  }
1541
1553
 
1542
- /**
1543
- * Records which compute pseudo-input(s) a `dcl_input` declaration exposes.
1544
- * The actual GLSL (uniform + derived locals) is emitted once, after every
1545
- * declaration has been seen, by `_emitComputeInputPrelude` — `dcl_input`
1546
- * for a thread-id kind can appear before or after `dcl_thread_group` in the
1547
- * bytecode stream, and the flattened/group-id forms need the workgroup
1548
- * size regardless of declaration order.
1549
- *
1550
- * @param {object} state Emit state.
1551
- * @param {object} instruction `dcl_input` instruction with a thread-id-kind operand.
1554
+ /**
1555
+ * Records which compute pseudo-input(s) a `dcl_input` declaration exposes.
1556
+ * The actual GLSL (uniform + derived locals) is emitted once, after every
1557
+ * declaration has been seen, by `_emitComputeInputPrelude` — `dcl_input`
1558
+ * for a thread-id kind can appear before or after `dcl_thread_group` in the
1559
+ * bytecode stream, and the flattened/group-id forms need the workgroup
1560
+ * size regardless of declaration order.
1561
+ *
1562
+ * @param {object} state Emit state.
1563
+ * @param {object} instruction `dcl_input` instruction with a thread-id-kind operand.
1552
1564
  */
1553
1565
  _declareComputeInput(state, instruction) {
1554
1566
  const kind = instruction.declaration.operandTypeName;
@@ -1573,13 +1585,13 @@ class DxbcGlslEmitter {
1573
1585
  }
1574
1586
  }
1575
1587
 
1576
- /**
1577
- * Emits the shared `gl_FragCoord`-derived thread-id prelude for map-style
1578
- * compute shaders: a `cjsDispatchOrigin` uniform (so a dispatch can be
1579
- * tiled across more than one draw/viewport), then only the intermediate
1580
- * and final locals this shader actually declared inputs for.
1581
- *
1582
- * @param {object} state Emit state.
1588
+ /**
1589
+ * Emits the shared `gl_FragCoord`-derived thread-id prelude for map-style
1590
+ * compute shaders: a `cjsDispatchOrigin` uniform (so a dispatch can be
1591
+ * tiled across more than one draw/viewport), then only the intermediate
1592
+ * and final locals this shader actually declared inputs for.
1593
+ *
1594
+ * @param {object} state Emit state.
1583
1595
  */
1584
1596
  _emitComputeInputPrelude(state) {
1585
1597
  const used = state.computeInputsUsed;
@@ -1614,12 +1626,12 @@ class DxbcGlslEmitter {
1614
1626
  }
1615
1627
  }
1616
1628
 
1617
- /**
1618
- * Reads the workgroup size recorded by `dcl_thread_group`, required to
1619
- * split the flat thread id back into group id / id-in-group components.
1620
- *
1621
- * @param {object} state Emit state.
1622
- * @returns {[number,number,number]} Workgroup size.
1629
+ /**
1630
+ * Reads the workgroup size recorded by `dcl_thread_group`, required to
1631
+ * split the flat thread id back into group id / id-in-group components.
1632
+ *
1633
+ * @param {object} state Emit state.
1634
+ * @returns {[number,number,number]} Workgroup size.
1623
1635
  */
1624
1636
  _threadGroupSizeOrThrow(state) {
1625
1637
  if (!Array.isArray(state.threadGroup)) {
@@ -1630,12 +1642,12 @@ class DxbcGlslEmitter {
1630
1642
  return state.threadGroup;
1631
1643
  }
1632
1644
 
1633
- /**
1634
- * Declares one stage output and records its backend identity.
1635
- *
1636
- * @param {object} state Mutable emission state.
1637
- * @param {object} instruction Decoded output declaration.
1638
- * @private
1645
+ /**
1646
+ * Declares one stage output and records its backend identity.
1647
+ *
1648
+ * @param {object} state Mutable emission state.
1649
+ * @param {object} instruction Decoded output declaration.
1650
+ * @private
1639
1651
  */
1640
1652
  _declareOutput(state, instruction) {
1641
1653
  const declaration = instruction.declaration;
@@ -1693,12 +1705,12 @@ class DxbcGlslEmitter {
1693
1705
  }
1694
1706
  }
1695
1707
 
1696
- /**
1697
- * Materializes an immediate constant-buffer declaration.
1698
- *
1699
- * @param {object} state Mutable emission state.
1700
- * @param {object} instruction Decoded custom-data declaration.
1701
- * @private
1708
+ /**
1709
+ * Materializes an immediate constant-buffer declaration.
1710
+ *
1711
+ * @param {object} state Mutable emission state.
1712
+ * @param {object} instruction Decoded custom-data declaration.
1713
+ * @private
1702
1714
  */
1703
1715
  _declareImmediateConstantBuffer(state, instruction) {
1704
1716
  const rows = instruction.customData?.immediateConstantBuffer;
@@ -1709,11 +1721,11 @@ class DxbcGlslEmitter {
1709
1721
  state.declarationLines.push(`const vec4 ${state.icbName}[${rows.length}] = vec4[${rows.length}](`, ...literals.map((literal, index) => ` ${literal}${index < literals.length - 1 ? "," : ""}`), ");");
1710
1722
  }
1711
1723
 
1712
- /**
1713
- * Initializes paired vertex outputs that the source shader does not write.
1714
- *
1715
- * @param {object} state Mutable emission state.
1716
- * @private
1724
+ /**
1725
+ * Initializes paired vertex outputs that the source shader does not write.
1726
+ *
1727
+ * @param {object} state Mutable emission state.
1728
+ * @private
1717
1729
  */
1718
1730
  _zeroFillUnwrittenOutputs(state) {
1719
1731
  const written = new Set();
@@ -1738,12 +1750,12 @@ class DxbcGlslEmitter {
1738
1750
  // Instructions
1739
1751
  // ------------------------------------------------------------------
1740
1752
 
1741
- /**
1742
- * Dispatches one decoded instruction to its GLSL lowering rule.
1743
- *
1744
- * @param {object} state Mutable emission state.
1745
- * @param {object} instruction Decoded DXBC instruction.
1746
- * @private
1753
+ /**
1754
+ * Dispatches one decoded instruction to its GLSL lowering rule.
1755
+ *
1756
+ * @param {object} state Mutable emission state.
1757
+ * @param {object} instruction Decoded DXBC instruction.
1758
+ * @private
1747
1759
  */
1748
1760
  _emitInstruction(state, instruction) {
1749
1761
  const lower = DxbcGlslEmitter.LOWERINGS[instruction.opcodeName];
@@ -1757,12 +1769,12 @@ class DxbcGlslEmitter {
1757
1769
  lower.call(this, state, instruction);
1758
1770
  }
1759
1771
 
1760
- /**
1761
- * Appends one correctly indented line to the emitted function body.
1762
- *
1763
- * @param {object} state Mutable emission state.
1764
- * @param {string} text GLSL source line.
1765
- * @private
1772
+ /**
1773
+ * Appends one correctly indented line to the emitted function body.
1774
+ *
1775
+ * @param {object} state Mutable emission state.
1776
+ * @param {string} text GLSL source line.
1777
+ * @private
1766
1778
  */
1767
1779
  _line(state, text) {
1768
1780
  // Packed uint words (and small integer results) must survive float
@@ -1809,12 +1821,12 @@ class DxbcGlslEmitter {
1809
1821
  state.bodyLines.push(`${" ".repeat(state.indent)}${text}`);
1810
1822
  }
1811
1823
 
1812
- /**
1813
- * Counts the active components in a DXBC mask.
1814
- *
1815
- * @param {number} mask DXBC component bit mask.
1816
- * @returns {number} Active component count.
1817
- * @private
1824
+ /**
1825
+ * Counts the active components in a DXBC mask.
1826
+ *
1827
+ * @param {number} mask DXBC component bit mask.
1828
+ * @returns {number} Active component count.
1829
+ * @private
1818
1830
  */
1819
1831
  _maskWidth(mask) {
1820
1832
  let width = 0;
@@ -1824,51 +1836,51 @@ class DxbcGlslEmitter {
1824
1836
  return width || 4;
1825
1837
  }
1826
1838
 
1827
- /**
1828
- * Converts a DXBC component bit mask to GLSL swizzle characters.
1829
- *
1830
- * @param {number} mask DXBC component bit mask.
1831
- * @returns {string} GLSL component string.
1832
- * @private
1839
+ /**
1840
+ * Converts a DXBC component bit mask to GLSL swizzle characters.
1841
+ *
1842
+ * @param {number} mask DXBC component bit mask.
1843
+ * @returns {string} GLSL component string.
1844
+ * @private
1833
1845
  */
1834
1846
  _maskChars(mask) {
1835
1847
  return COMPONENTS.filter((_, bit) => mask & 1 << bit).join("") || "xyzw";
1836
1848
  }
1837
1849
 
1838
- /**
1839
- * Builds the lvalue text for one register-space destination component,
1840
- * remapped into the target variable's declared component space.
1850
+ /**
1851
+ * Builds the lvalue text for one register-space destination component,
1852
+ * remapped into the target variable's declared component space.
1841
1853
  */
1842
1854
  _destComponentRef(state, destOperand, target, component) {
1843
1855
  const remapped = state.formatter.remapComponents(destOperand, component);
1844
1856
  return `${target.ref}${remapped ? `.${remapped}` : ""}`;
1845
1857
  }
1846
1858
 
1847
- /**
1848
- * Formats a resolved destination reference and optional mask.
1849
- *
1850
- * @param {object} target Resolved destination.
1851
- * @returns {string} GLSL lvalue text.
1852
- * @private
1859
+ /**
1860
+ * Formats a resolved destination reference and optional mask.
1861
+ *
1862
+ * @param {object} target Resolved destination.
1863
+ * @returns {string} GLSL lvalue text.
1864
+ * @private
1853
1865
  */
1854
1866
  _destText(target) {
1855
1867
  return `${target.ref}${target.mask ? `.${target.mask}` : ""}`;
1856
1868
  }
1857
1869
 
1858
- /**
1859
- * Selects the GLSL floating scalar or vector type for a width.
1860
- *
1861
- * @param {number} width Component width.
1862
- * @returns {string} GLSL type name.
1863
- * @private
1870
+ /**
1871
+ * Selects the GLSL floating scalar or vector type for a width.
1872
+ *
1873
+ * @param {number} width Component width.
1874
+ * @returns {string} GLSL type name.
1875
+ * @private
1864
1876
  */
1865
1877
  _vecType(width) {
1866
1878
  return width === 1 ? "float" : `vec${width}`;
1867
1879
  }
1868
1880
 
1869
- /**
1870
- * Reads a source at the destination mask's width, wrapping in a matching
1871
- * constructor so intrinsic arguments always type-check exactly.
1881
+ /**
1882
+ * Reads a source at the destination mask's width, wrapping in a matching
1883
+ * constructor so intrinsic arguments always type-check exactly.
1872
1884
  */
1873
1885
  _vecArg(state, operand, destMask, as = "float") {
1874
1886
  const expression = state.formatter.sourceExpression(operand, {
@@ -1886,14 +1898,14 @@ class DxbcGlslEmitter {
1886
1898
  return `${ctor}(${expression})`;
1887
1899
  }
1888
1900
 
1889
- /**
1890
- * Resolves a destination operand and its register-space component mask.
1891
- *
1892
- * @param {object} state Mutable emission state.
1893
- * @param {object} instruction Decoded DXBC instruction.
1894
- * @param {number} [operandIndex=0] Destination operand index.
1895
- * @returns {{target: object|null, mask: string}} Destination and mask.
1896
- * @private
1901
+ /**
1902
+ * Resolves a destination operand and its register-space component mask.
1903
+ *
1904
+ * @param {object} state Mutable emission state.
1905
+ * @param {object} instruction Decoded DXBC instruction.
1906
+ * @param {number} [operandIndex=0] Destination operand index.
1907
+ * @returns {{target: object|null, mask: string}} Destination and mask.
1908
+ * @private
1897
1909
  */
1898
1910
  _destMask(state, instruction, operandIndex = 0) {
1899
1911
  const target = state.formatter.destination(instruction.operands[operandIndex]);
@@ -1906,25 +1918,25 @@ class DxbcGlslEmitter {
1906
1918
  };
1907
1919
  }
1908
1920
 
1909
- /**
1910
- * Tests whether an operand produces one scalar component.
1911
- *
1912
- * @param {object} operand Decoded DXBC operand.
1913
- * @returns {boolean} True when the source is scalar.
1914
- * @private
1921
+ /**
1922
+ * Tests whether an operand produces one scalar component.
1923
+ *
1924
+ * @param {object} operand Decoded DXBC operand.
1925
+ * @returns {boolean} True when the source is scalar.
1926
+ * @private
1915
1927
  */
1916
1928
  _isScalarSource(operand) {
1917
1929
  return operand.selectionModeName === "select1" || operand.type === 4 && operand.componentCount === 1 || operand.componentCount === 1;
1918
1930
  }
1919
1931
 
1920
- /**
1921
- * Emits an assignment and applies instruction saturation when required.
1922
- *
1923
- * @param {object} state Mutable emission state.
1924
- * @param {object} instruction Decoded DXBC instruction.
1925
- * @param {string} valueExpression GLSL right-hand expression.
1926
- * @param {object} [options={}] Assignment formatting options.
1927
- * @private
1932
+ /**
1933
+ * Emits an assignment and applies instruction saturation when required.
1934
+ *
1935
+ * @param {object} state Mutable emission state.
1936
+ * @param {object} instruction Decoded DXBC instruction.
1937
+ * @param {string} valueExpression GLSL right-hand expression.
1938
+ * @param {object} [options={}] Assignment formatting options.
1939
+ * @private
1928
1940
  */
1929
1941
  _assign(state, instruction, valueExpression, options = {}) {
1930
1942
  const statement = state.formatter.assignment(instruction.operands[0], valueExpression, options);
@@ -1940,13 +1952,13 @@ class DxbcGlslEmitter {
1940
1952
  }
1941
1953
  }
1942
1954
 
1943
- /**
1944
- * Emits a width-correct floating binary infix operation.
1945
- *
1946
- * @param {object} state Mutable emission state.
1947
- * @param {object} instruction Decoded DXBC instruction.
1948
- * @param {string} operator GLSL infix operator.
1949
- * @private
1955
+ /**
1956
+ * Emits a width-correct floating binary infix operation.
1957
+ *
1958
+ * @param {object} state Mutable emission state.
1959
+ * @param {object} instruction Decoded DXBC instruction.
1960
+ * @param {string} operator GLSL infix operator.
1961
+ * @private
1950
1962
  */
1951
1963
  _infixBinary(state, instruction, operator) {
1952
1964
  const {
@@ -1962,15 +1974,15 @@ class DxbcGlslEmitter {
1962
1974
  this._assignWidened(state, instruction, mask, `${a} ${operator} ${b}`, width === 1);
1963
1975
  }
1964
1976
 
1965
- /**
1966
- * Widens a scalar result when assigning it to a vector destination.
1967
- *
1968
- * @param {object} state Mutable emission state.
1969
- * @param {object} instruction Decoded DXBC instruction.
1970
- * @param {string} mask Destination component mask.
1971
- * @param {string} expression GLSL expression.
1972
- * @param {boolean} rhsIsScalar Whether the expression is scalar.
1973
- * @private
1977
+ /**
1978
+ * Widens a scalar result when assigning it to a vector destination.
1979
+ *
1980
+ * @param {object} state Mutable emission state.
1981
+ * @param {object} instruction Decoded DXBC instruction.
1982
+ * @param {string} mask Destination component mask.
1983
+ * @param {string} expression GLSL expression.
1984
+ * @param {boolean} rhsIsScalar Whether the expression is scalar.
1985
+ * @private
1974
1986
  */
1975
1987
  _assignWidened(state, instruction, mask, expression, rhsIsScalar) {
1976
1988
  const value = rhsIsScalar && mask.length > 1 ? `vec${mask.length}(${expression})` : expression;
@@ -1979,13 +1991,13 @@ class DxbcGlslEmitter {
1979
1991
  });
1980
1992
  }
1981
1993
 
1982
- /**
1983
- * Emits a unary GLSL intrinsic with destination-width handling.
1984
- *
1985
- * @param {object} state Mutable emission state.
1986
- * @param {object} instruction Decoded DXBC instruction.
1987
- * @param {string} glslName GLSL intrinsic name.
1988
- * @private
1994
+ /**
1995
+ * Emits a unary GLSL intrinsic with destination-width handling.
1996
+ *
1997
+ * @param {object} state Mutable emission state.
1998
+ * @param {object} instruction Decoded DXBC instruction.
1999
+ * @param {string} glslName GLSL intrinsic name.
2000
+ * @private
1989
2001
  */
1990
2002
  _helperUnary(state, instruction, glslName) {
1991
2003
  const {
@@ -1997,13 +2009,13 @@ class DxbcGlslEmitter {
1997
2009
  this._assignWidened(state, instruction, mask, `${glslName}(${src})`, state.formatter.expressionWidth(instruction.operands[1], mask) === 1);
1998
2010
  }
1999
2011
 
2000
- /**
2001
- * Emits a binary GLSL intrinsic with width-matched arguments.
2002
- *
2003
- * @param {object} state Mutable emission state.
2004
- * @param {object} instruction Decoded DXBC instruction.
2005
- * @param {string} glslName GLSL intrinsic name.
2006
- * @private
2012
+ /**
2013
+ * Emits a binary GLSL intrinsic with width-matched arguments.
2014
+ *
2015
+ * @param {object} state Mutable emission state.
2016
+ * @param {object} instruction Decoded DXBC instruction.
2017
+ * @param {string} glslName GLSL intrinsic name.
2018
+ * @private
2007
2019
  */
2008
2020
  _helperBinary(state, instruction, glslName) {
2009
2021
  const {
@@ -2016,13 +2028,13 @@ class DxbcGlslEmitter {
2016
2028
  });
2017
2029
  }
2018
2030
 
2019
- /**
2020
- * Emits a dot product and replicates its scalar result when necessary.
2021
- *
2022
- * @param {object} state Mutable emission state.
2023
- * @param {object} instruction Decoded DXBC instruction.
2024
- * @param {string} sourceMask Source component mask.
2025
- * @private
2031
+ /**
2032
+ * Emits a dot product and replicates its scalar result when necessary.
2033
+ *
2034
+ * @param {object} state Mutable emission state.
2035
+ * @param {object} instruction Decoded DXBC instruction.
2036
+ * @param {string} sourceMask Source component mask.
2037
+ * @private
2026
2038
  */
2027
2039
  _dotProduct(state, instruction, sourceMask) {
2028
2040
  const {
@@ -2036,16 +2048,16 @@ class DxbcGlslEmitter {
2036
2048
  });
2037
2049
  }
2038
2050
 
2039
- /**
2040
- * Emits scalar or vector comparison bits in the float register model.
2041
- *
2042
- * @param {object} state Mutable emission state.
2043
- * @param {object} instruction Decoded DXBC instruction.
2044
- * @param {object} options Comparison options.
2045
- * @param {string} options.intrinsic GLSL vector comparison intrinsic.
2046
- * @param {string} options.operator GLSL scalar comparison operator.
2047
- * @param {"float"|"int"|"uint"} options.as Operand interpretation.
2048
- * @private
2051
+ /**
2052
+ * Emits scalar or vector comparison bits in the float register model.
2053
+ *
2054
+ * @param {object} state Mutable emission state.
2055
+ * @param {object} instruction Decoded DXBC instruction.
2056
+ * @param {object} options Comparison options.
2057
+ * @param {string} options.intrinsic GLSL vector comparison intrinsic.
2058
+ * @param {string} options.operator GLSL scalar comparison operator.
2059
+ * @param {"float"|"int"|"uint"} options.as Operand interpretation.
2060
+ * @private
2049
2061
  */
2050
2062
  _comparison(state, instruction, {
2051
2063
  intrinsic,
@@ -2072,13 +2084,13 @@ class DxbcGlslEmitter {
2072
2084
  this._assign(state, instruction, `uintBitsToFloat(uvec${mask.length}(${intrinsic}(${a}, ${b})) * 0xFFFFFFFFu)`);
2073
2085
  }
2074
2086
 
2075
- /**
2076
- * Emits an unsigned bitwise operation through register bitcasts.
2077
- *
2078
- * @param {object} state Mutable emission state.
2079
- * @param {object} instruction Decoded DXBC instruction.
2080
- * @param {string} operator GLSL bitwise operator.
2081
- * @private
2087
+ /**
2088
+ * Emits an unsigned bitwise operation through register bitcasts.
2089
+ *
2090
+ * @param {object} state Mutable emission state.
2091
+ * @param {object} instruction Decoded DXBC instruction.
2092
+ * @param {string} operator GLSL bitwise operator.
2093
+ * @private
2082
2094
  */
2083
2095
  _bitwiseBinary(state, instruction, operator) {
2084
2096
  const {
@@ -2089,14 +2101,14 @@ class DxbcGlslEmitter {
2089
2101
  this._assign(state, instruction, `uintBitsToFloat(${a} ${operator} ${b})`);
2090
2102
  }
2091
2103
 
2092
- /**
2093
- * Emits a signed or unsigned integer binary operation through bitcasts.
2094
- *
2095
- * @param {object} state Mutable emission state.
2096
- * @param {object} instruction Decoded DXBC instruction.
2097
- * @param {string} operator GLSL integer operator.
2098
- * @param {"int"|"uint"} [as="int"] Integer interpretation.
2099
- * @private
2104
+ /**
2105
+ * Emits a signed or unsigned integer binary operation through bitcasts.
2106
+ *
2107
+ * @param {object} state Mutable emission state.
2108
+ * @param {object} instruction Decoded DXBC instruction.
2109
+ * @param {string} operator GLSL integer operator.
2110
+ * @param {"int"|"uint"} [as="int"] Integer interpretation.
2111
+ * @private
2100
2112
  */
2101
2113
  _intBinary(state, instruction, operator, as = "int") {
2102
2114
  const {
@@ -2108,13 +2120,13 @@ class DxbcGlslEmitter {
2108
2120
  this._assign(state, instruction, `${wrap}(${a} ${operator} ${b})`);
2109
2121
  }
2110
2122
 
2111
- /**
2112
- * Formats the DXBC zero or nonzero control-flow condition.
2113
- *
2114
- * @param {object} state Mutable emission state.
2115
- * @param {object} instruction Decoded DXBC instruction.
2116
- * @returns {string} GLSL boolean expression.
2117
- * @private
2123
+ /**
2124
+ * Formats the DXBC zero or nonzero control-flow condition.
2125
+ *
2126
+ * @param {object} state Mutable emission state.
2127
+ * @param {object} instruction Decoded DXBC instruction.
2128
+ * @returns {string} GLSL boolean expression.
2129
+ * @private
2118
2130
  */
2119
2131
  _condition(state, instruction) {
2120
2132
  const scalar = state.formatter.sourceExpression(instruction.operands[0], {
@@ -2125,12 +2137,12 @@ class DxbcGlslEmitter {
2125
2137
  return `${scalar} ${test} 0u`;
2126
2138
  }
2127
2139
 
2128
- /**
2129
- * Emits component-wise conditional moves without aliasing destinations.
2130
- *
2131
- * @param {object} state Mutable emission state.
2132
- * @param {object} instruction Decoded DXBC instruction.
2133
- * @private
2140
+ /**
2141
+ * Emits component-wise conditional moves without aliasing destinations.
2142
+ *
2143
+ * @param {object} state Mutable emission state.
2144
+ * @param {object} instruction Decoded DXBC instruction.
2145
+ * @private
2134
2146
  */
2135
2147
  _movc(state, instruction) {
2136
2148
  const destOperand = instruction.operands[0];
@@ -2175,12 +2187,12 @@ class DxbcGlslEmitter {
2175
2187
  }
2176
2188
  }
2177
2189
 
2178
- /**
2179
- * Emits the paired sine and cosine destinations in alias-safe order.
2180
- *
2181
- * @param {object} state Mutable emission state.
2182
- * @param {object} instruction Decoded DXBC instruction.
2183
- * @private
2190
+ /**
2191
+ * Emits the paired sine and cosine destinations in alias-safe order.
2192
+ *
2193
+ * @param {object} state Mutable emission state.
2194
+ * @param {object} instruction Decoded DXBC instruction.
2195
+ * @private
2184
2196
  */
2185
2197
  _sincos(state, instruction) {
2186
2198
  const [sinDest, cosDest, angle] = instruction.operands;
@@ -2208,23 +2220,23 @@ class DxbcGlslEmitter {
2208
2220
  }
2209
2221
  }
2210
2222
 
2211
- /**
2212
- * Declares the merged detail-map array, once, on the first member seen.
2213
- *
2214
- * Each member keeps its own entry in `resourceNames` pointing at the shared
2215
- * array, so every existing reference site resolves to it without knowing a
2216
- * merge happened. The declared dimension deliberately stays 2D: the layer is
2217
- * appended to the coordinate at each sample site rather than read out of the
2218
- * shader's own operand, which has no third component to give.
2219
- *
2220
- * @param {object} state Mutable emission state.
2221
- * @param {number} register Resource register being declared.
2222
- * @param {object} declaration Decoded resource declaration.
2223
- * @param {Set<number>|null} comparisonSamplers Comparison samplers, when any.
2224
- * @private
2223
+ /**
2224
+ * Declares one merged array, once per family, on its first member seen.
2225
+ *
2226
+ * Each member keeps its own entry in `resourceNames` pointing at the shared
2227
+ * array, so every existing reference site resolves to it without knowing a
2228
+ * merge happened. The declared dimension deliberately stays 2D: the layer is
2229
+ * appended to the coordinate at each sample site rather than read out of the
2230
+ * shader's own operand, which has no third component to give.
2231
+ *
2232
+ * @param {object} state Mutable emission state.
2233
+ * @param {number} register Resource register being declared.
2234
+ * @param {object} declaration Decoded resource declaration.
2235
+ * @param {Set<number>|null} comparisonSamplers Comparison samplers, when any.
2236
+ * @private
2225
2237
  */
2226
- _declareDetailArrayMap(state, register, declaration, comparisonSamplers) {
2227
- // A comparison-sampled or non-2D detail map is not the family the
2238
+ _declareTextureArrayMap(state, register, declaration, comparisonSamplers) {
2239
+ // A comparison-sampled or non-2D member is not the family the
2228
2240
  // recogniser promised, so refuse rather than emit a wrong declaration.
2229
2241
  if (comparisonSamplers || declaration.resourceDimension !== 3) {
2230
2242
  throw new WebglReadError("Detail-map array merging requires plain 2D textures without comparison sampling", {
@@ -2233,77 +2245,149 @@ class DxbcGlslEmitter {
2233
2245
  dimensionName: declaration.resourceDimensionName
2234
2246
  });
2235
2247
  }
2248
+ const merged = state.textureArrayLayers.get(register);
2249
+ const symbol = merged.symbol;
2250
+ const members = [...state.textureArrayLayers].filter(([, entry]) => entry.symbol === symbol).map(([memberRegister]) => memberRegister);
2236
2251
  state.resourceDimensions.set(register, declaration.resourceDimension);
2237
- state.resourceNames.set(register, DETAIL_MAP_ARRAY_SYMBOL);
2238
- if (state.detailMapArrayDeclared) return;
2239
- state.detailMapArrayDeclared = true;
2252
+ state.resourceNames.set(register, symbol);
2253
+ if (state.declaredTextureArrays.has(symbol)) return;
2254
+ state.declaredTextureArrays.add(symbol);
2240
2255
 
2241
2256
  // One GL uniform now stands for every merged layer, so it can carry only
2242
2257
  // one sampler state. Union the layers' pairings: if they disagree the
2243
2258
  // merge itself was invalid, and the packaging layer is where that is
2244
2259
  // detectable, because only it holds the sampler values to compare.
2245
- const merged = new Set();
2246
- for (const layerRegister of state.detailMapArrayLayers.keys()) {
2247
- for (const sampler of state.pairedSamplers.get(layerRegister) ?? []) merged.add(sampler);
2260
+ const pairings = new Set();
2261
+ for (const layerRegister of members) {
2262
+ for (const sampler of state.pairedSamplers.get(layerRegister) ?? []) pairings.add(sampler);
2248
2263
  }
2249
- state.declarationLines.push(`uniform mediump sampler2DArray ${DETAIL_MAP_ARRAY_SYMBOL};`);
2264
+
2265
+ // A packing family stays a plain 2D texture - its members are channels
2266
+ // of one texel, not layers of one stack - so the declaration, the
2267
+ // sampler type and the coordinate all stay 2D.
2268
+ const packing = merged.kind === "pack";
2269
+ const samplerTypeName = packing ? "sampler2D" : "sampler2DArray";
2270
+ state.declarationLines.push(`uniform mediump ${samplerTypeName} ${symbol};`);
2250
2271
  state.bindings.push({
2251
2272
  kind: "resource",
2252
2273
  registerIndex: register,
2253
- name: DETAIL_MAP_ARRAY_SYMBOL,
2254
- samplerType: "sampler2DArray",
2255
- dimensionName: "texture2darray",
2256
- arrayLayerCount: state.detailMapArrayLayers.size,
2257
- mergedFrom: [...state.detailMapArrayLayers.keys()],
2258
- ...(merged.size ? {
2259
- pairedSamplerRegisters: [...merged].sort((a, b) => a - b)
2274
+ name: symbol,
2275
+ samplerType: samplerTypeName,
2276
+ dimensionName: packing ? "texture2d" : "texture2darray",
2277
+ ...(packing ? {
2278
+ packedChannelCount: members.length
2279
+ } : {
2280
+ arrayLayerCount: members.length
2281
+ }),
2282
+ mergedFrom: members,
2283
+ mergedFamily: merged.family,
2284
+ ...(pairings.size ? {
2285
+ pairedSamplerRegisters: [...pairings].sort((a, b) => a - b)
2260
2286
  } : {})
2261
2287
  });
2262
2288
  }
2263
2289
 
2264
- /**
2265
- * Returns the array layer a texture operand maps to, when it was merged.
2266
- *
2267
- * @param {object} state Mutable emission state.
2268
- * @param {object} texOperand Texture resource operand.
2269
- * @returns {number|null} Layer index, or null when the register was not merged.
2270
- * @private
2290
+ /**
2291
+ * Builds the register -> merged array map from the profile.
2292
+ *
2293
+ * Two spellings, one meaning: `detailMapArrayRegisters` is the detail
2294
+ * family's original key, and `textureArrayFamilies` carries any family
2295
+ * including that one. A caller may pass either.
2296
+ *
2297
+ * @returns {Map<number, object>} register -> { symbol, layer, family }
2298
+ * @private
2299
+ */
2300
+ _textureArrayLayerMap() {
2301
+ const map = new Map();
2302
+ const families = [...(this.profile.detailMapArrayRegisters?.length ? [{
2303
+ family: "detail-map-array",
2304
+ outputName: "DetailArrayMap",
2305
+ registers: this.profile.detailMapArrayRegisters
2306
+ }] : []), ...(this.profile.textureArrayFamilies || [])];
2307
+ for (const entry of families) {
2308
+ const symbol = `s${entry.outputName}`;
2309
+ const kind = entry.kind ?? "array";
2310
+ for (const [layer, register] of (entry.registers || []).entries()) {
2311
+ map.set(register, {
2312
+ symbol,
2313
+ layer,
2314
+ kind,
2315
+ // For a packing family the member's position IS its channel.
2316
+ // Nothing else decides it, which is why the family table's
2317
+ // parameter order is the one authority for both ends.
2318
+ channel: kind === "pack" ? "xyzw"[layer] : null,
2319
+ family: entry.family,
2320
+ outputName: entry.outputName
2321
+ });
2322
+ }
2323
+ }
2324
+ return map;
2325
+ }
2326
+
2327
+ /**
2328
+ * Returns the array layer a texture operand maps to, when it was merged.
2329
+ *
2330
+ * @param {object} state Mutable emission state.
2331
+ * @param {object} texOperand Texture resource operand.
2332
+ * @returns {number|null} Layer index, or null when the register was not merged.
2333
+ * @private
2334
+ */
2335
+ _textureArrayLayer(state, texOperand) {
2336
+ const merged = state.textureArrayLayers.get(texOperand.registerIndex);
2337
+
2338
+ // A packed member has no layer: its coordinate is unchanged and the
2339
+ // redirect happens on the RESULT, in `_mergedChannel`.
2340
+ return merged === undefined || merged.kind === "pack" ? null : merged.layer;
2341
+ }
2342
+
2343
+ /**
2344
+ * Returns the packed channel a texture operand reads, when it was packed.
2345
+ *
2346
+ * The member's whole sampled value becomes that one channel broadcast, which
2347
+ * is faithful precisely because the premise of a packing family is that the
2348
+ * map is consumed for a single scalar. A member read for more than that is
2349
+ * not a packing candidate and the family table is where that is decided.
2350
+ *
2351
+ * @param {object} state Mutable emission state.
2352
+ * @param {object} texOperand Texture resource operand.
2353
+ * @returns {string|null} Channel letter, or null when not packed.
2354
+ * @private
2271
2355
  */
2272
- _detailMapArrayLayer(state, texOperand) {
2273
- const layer = state.detailMapArrayLayers.get(texOperand.registerIndex);
2274
- return layer === undefined ? null : layer;
2275
- }
2276
-
2277
- /**
2278
- * Refuses an operation that cannot be redirected at an array layer.
2279
- *
2280
- * Recognising the detail family proves the resources are mergeable; it does
2281
- * not prove every *use* is. A texel fetch or a size query against a merged
2282
- * register would silently mean something different once the register became
2283
- * one layer of an array, so those fail the build instead.
2284
- *
2285
- * @param {object} state Mutable emission state.
2286
- * @param {object} instruction Decoded DXBC instruction.
2287
- * @param {object} texOperand Texture resource operand.
2288
- * @private
2356
+ _mergedChannel(state, texOperand) {
2357
+ const merged = state.textureArrayLayers.get(texOperand.registerIndex);
2358
+ return merged === undefined || merged.kind !== "pack" ? null : merged.channel;
2359
+ }
2360
+
2361
+ /**
2362
+ * Refuses an operation that cannot be redirected at an array layer.
2363
+ *
2364
+ * Recognising the detail family proves the resources are mergeable; it does
2365
+ * not prove every *use* is. A texel fetch or a size query against a merged
2366
+ * register would silently mean something different once the register became
2367
+ * one layer of an array, so those fail the build instead.
2368
+ *
2369
+ * @param {object} state Mutable emission state.
2370
+ * @param {object} instruction Decoded DXBC instruction.
2371
+ * @param {object} texOperand Texture resource operand.
2372
+ * @private
2289
2373
  */
2290
2374
  _rejectDetailArrayMapUse(state, instruction, texOperand) {
2291
- if (!state.detailMapArrayLayers.has(texOperand.registerIndex)) return;
2292
- throw new WebglReadError(`Detail map merged into an array is used by ${instruction.opcodeName}, ` + "which this emitter cannot redirect at an array layer", {
2375
+ if (!state.textureArrayLayers.has(texOperand.registerIndex)) return;
2376
+ throw new WebglReadError(`${state.textureArrayLayers.get(texOperand.registerIndex).outputName} layer is used by ` + `${instruction.opcodeName}, which this emitter cannot redirect at an array layer`, {
2293
2377
  source: state.sourceName,
2294
2378
  register: texOperand.registerIndex,
2295
2379
  opcodeName: instruction.opcodeName
2296
2380
  });
2297
2381
  }
2298
2382
 
2299
- /**
2300
- * Resolves and validates the declared dimension of a texture operand.
2301
- *
2302
- * @param {object} state Mutable emission state.
2303
- * @param {object} instruction Decoded DXBC instruction.
2304
- * @param {object} texOperand Texture resource operand.
2305
- * @returns {number} DXBC resource-dimension code.
2306
- * @private
2383
+ /**
2384
+ * Resolves and validates the declared dimension of a texture operand.
2385
+ *
2386
+ * @param {object} state Mutable emission state.
2387
+ * @param {object} instruction Decoded DXBC instruction.
2388
+ * @param {object} texOperand Texture resource operand.
2389
+ * @returns {number} DXBC resource-dimension code.
2390
+ * @private
2307
2391
  */
2308
2392
  _resourceDimension(state, instruction, texOperand) {
2309
2393
  const dimension = state.resourceDimensions.get(texOperand.registerIndex);
@@ -2317,18 +2401,18 @@ class DxbcGlslEmitter {
2317
2401
  return dimension;
2318
2402
  }
2319
2403
 
2320
- /**
2321
- * Emits a regular, LOD, bias, gradient, or comparison texture sample.
2322
- *
2323
- * @param {object} state Mutable emission state.
2324
- * @param {object} instruction Decoded DXBC texture instruction.
2325
- * @param {object} [options={}] Sampling-mode operand indexes.
2326
- * @param {number|null} [options.lodOperandIndex=null] Explicit LOD operand.
2327
- * @param {number|null} [options.biasOperandIndex=null] LOD bias operand.
2328
- * @param {number[]|null} [options.gradOperandIndexes=null] Gradient operands.
2329
- * @param {number|null} [options.comparisonRefOperandIndex=null] Comparison reference operand.
2330
- * @param {boolean} [options.forceLodZero=false] Whether to force the LOD-zero adaptation.
2331
- * @private
2404
+ /**
2405
+ * Emits a regular, LOD, bias, gradient, or comparison texture sample.
2406
+ *
2407
+ * @param {object} state Mutable emission state.
2408
+ * @param {object} instruction Decoded DXBC texture instruction.
2409
+ * @param {object} [options={}] Sampling-mode operand indexes.
2410
+ * @param {number|null} [options.lodOperandIndex=null] Explicit LOD operand.
2411
+ * @param {number|null} [options.biasOperandIndex=null] LOD bias operand.
2412
+ * @param {number[]|null} [options.gradOperandIndexes=null] Gradient operands.
2413
+ * @param {number|null} [options.comparisonRefOperandIndex=null] Comparison reference operand.
2414
+ * @param {boolean} [options.forceLodZero=false] Whether to force the LOD-zero adaptation.
2415
+ * @private
2332
2416
  */
2333
2417
  _textureSample(state, instruction, {
2334
2418
  lodOperandIndex = null,
@@ -2405,11 +2489,11 @@ class DxbcGlslEmitter {
2405
2489
  }
2406
2490
  const dimension = this._resourceDimension(state, instruction, texOperand);
2407
2491
  const coordMask = COORD_MASK_BY_DIMENSION[dimension];
2408
- const detailLayer = this._detailMapArrayLayer(state, texOperand);
2492
+ const arrayLayer = this._textureArrayLayer(state, texOperand);
2409
2493
  const baseCoord = this._vecArg(state, coordOperand, coordMask);
2410
2494
  // A merged detail map keeps its 2D coordinate and gains the layer as a
2411
2495
  // literal third component; the register it came from is the layer.
2412
- const coord = detailLayer === null ? baseCoord : `vec3(${baseCoord}, ${detailLayer}.0)`;
2496
+ const coord = arrayLayer === null ? baseCoord : `vec3(${baseCoord}, ${arrayLayer}.0)`;
2413
2497
  const texName = state.formatter.registerReference(texOperand);
2414
2498
  const returnSwizzle = [...mask].map(component => texOperand.swizzle ? texOperand.swizzle["xyzw".indexOf(component)] : component).join("");
2415
2499
  if (comparisonRefOperandIndex !== null) {
@@ -2459,17 +2543,24 @@ class DxbcGlslEmitter {
2459
2543
  call = `texture(${texName}, ${coord})`;
2460
2544
  }
2461
2545
  call = this._applyEmulatedAddressing(state, instruction, call, coord, coordMask);
2546
+
2547
+ // A packed member's texel carries three other maps' scalars in its other
2548
+ // channels, so the value has to be reduced to its own before the
2549
+ // instruction's swizzle runs - otherwise a read of .y would silently
2550
+ // return a neighbouring map.
2551
+ const packedChannel = this._mergedChannel(state, texOperand);
2552
+ if (packedChannel !== null) call = `vec4((${call}).${packedChannel})`;
2462
2553
  this._assign(state, instruction, `${call}.${returnSwizzle}`, {
2463
2554
  saturate: instruction.saturate
2464
2555
  });
2465
2556
  }
2466
2557
 
2467
- /**
2468
- * Emits an integer-coordinate texel fetch for a declared resource.
2469
- *
2470
- * @param {object} state Mutable emission state.
2471
- * @param {object} instruction Decoded DXBC load instruction.
2472
- * @private
2558
+ /**
2559
+ * Emits an integer-coordinate texel fetch for a declared resource.
2560
+ *
2561
+ * @param {object} state Mutable emission state.
2562
+ * @param {object} instruction Decoded DXBC load instruction.
2563
+ * @private
2473
2564
  */
2474
2565
  _texelFetch(state, instruction) {
2475
2566
  const {
@@ -2505,9 +2596,9 @@ class DxbcGlslEmitter {
2505
2596
  }
2506
2597
  }
2507
2598
 
2508
- /**
2509
- * Per-opcode lowering table. Every rule cites its family spec in
2510
- * `docs/dxbc-lowering/`; templates are HLSLcc-derived, see each doc.
2599
+ /**
2600
+ * Per-opcode lowering table. Every rule cites its family spec in
2601
+ * `docs/dxbc-lowering/`; templates are HLSLcc-derived, see each doc.
2511
2602
  */
2512
2603
  DxbcGlslEmitter.LOWERINGS = {
2513
2604
  // --- float-alu ---
@@ -3088,11 +3179,11 @@ DxbcGlslEmitter.LOWERINGS = {
3088
3179
  }
3089
3180
  };
3090
3181
 
3091
- /**
3092
- * `ld_structured` lowering. Vertex UBO path reads `name.data[row]` vec4 rows;
3093
- * pixel data-texture path reads RGBA32UI texels (4 dwords per texel, fixed
3094
- * 2048-texel row width). 16-byte-aligned reads use one static channel per
3095
- * component; unaligned reads fall back to per-dword dynamic addressing.
3182
+ /**
3183
+ * `ld_structured` lowering. Vertex UBO path reads `name.data[row]` vec4 rows;
3184
+ * pixel data-texture path reads RGBA32UI texels (4 dwords per texel, fixed
3185
+ * 2048-texel row width). 16-byte-aligned reads use one static channel per
3186
+ * component; unaligned reads fall back to per-dword dynamic addressing.
3096
3187
  */
3097
3188
  DxbcGlslEmitter.prototype._ldStructured = function _ldStructured(state, instruction) {
3098
3189
  const target = state.formatter.destination(instruction.operands[0]);
@@ -3201,10 +3292,10 @@ DxbcGlslEmitter.prototype._ldStructured = function _ldStructured(state, instruct
3201
3292
  }
3202
3293
  };
3203
3294
 
3204
- /**
3205
- * `resinfo` lowering: width/height/depth via textureSize per live destination
3206
- * component; the 4th (mip-count) channel has no WebGL2 equivalent and throws
3207
- * only when a shader actually reads it.
3295
+ /**
3296
+ * `resinfo` lowering: width/height/depth via textureSize per live destination
3297
+ * component; the 4th (mip-count) channel has no WebGL2 equivalent and throws
3298
+ * only when a shader actually reads it.
3208
3299
  */
3209
3300
  DxbcGlslEmitter.prototype._resinfo = function _resinfo(state, instruction) {
3210
3301
  const {
@@ -3248,8 +3339,8 @@ DxbcGlslEmitter.prototype._resinfo = function _resinfo(state, instruction) {
3248
3339
  }
3249
3340
  };
3250
3341
 
3251
- /**
3252
- * Shared int/uint min-max lowering used by imax/imin/umax/umin.
3342
+ /**
3343
+ * Shared int/uint min-max lowering used by imax/imin/umax/umin.
3253
3344
  */
3254
3345
  DxbcGlslEmitter.prototype._intMinMax = function _intMinMax(state, instruction, fn, as) {
3255
3346
  const {
@@ -3261,16 +3352,16 @@ DxbcGlslEmitter.prototype._intMinMax = function _intMinMax(state, instruction, f
3261
3352
  this._assign(state, instruction, `${wrap}(${fn}(${a}, ${b}))`);
3262
3353
  };
3263
3354
 
3264
- /**
3265
- * `gather4` lowering: fetches one channel from each of the four texels a
3266
- * bilinear sample would blend, via the `hlslcc_textureGather4Emulated` /
3267
- * `hlslcc_textureGather4ArrayEmulated` helpers (GLSL ES 3.00 has no
3268
- * `textureGather`). Only 2D and 2D-array resources are supported — the
3269
- * dimensions the AO/blur/FSR/CAS map-style corpus this lowering targets is
3270
- * known to use (ASSAO gathers from its deinterleaved texture2darray slices).
3271
- *
3272
- * @param {object} state Emit state.
3273
- * @param {object} instruction `gather4` instruction.
3355
+ /**
3356
+ * `gather4` lowering: fetches one channel from each of the four texels a
3357
+ * bilinear sample would blend, via the `hlslcc_textureGather4Emulated` /
3358
+ * `hlslcc_textureGather4ArrayEmulated` helpers (GLSL ES 3.00 has no
3359
+ * `textureGather`). Only 2D and 2D-array resources are supported — the
3360
+ * dimensions the AO/blur/FSR/CAS map-style corpus this lowering targets is
3361
+ * known to use (ASSAO gathers from its deinterleaved texture2darray slices).
3362
+ *
3363
+ * @param {object} state Emit state.
3364
+ * @param {object} instruction `gather4` instruction.
3274
3365
  */
3275
3366
  DxbcGlslEmitter.prototype._gather4 = function _gather4(state, instruction) {
3276
3367
  const {
@@ -3290,11 +3381,21 @@ DxbcGlslEmitter.prototype._gather4 = function _gather4(state, instruction) {
3290
3381
  // A merged detail map is declared 2D but sampled through an array, so the
3291
3382
  // array helper and the layered coordinate are selected by the merge rather
3292
3383
  // than by the declared dimension.
3293
- const detailLayer = this._detailMapArrayLayer(state, texOperand);
3294
- const asArray = dimension === 8 || detailLayer !== null;
3384
+ // Gather returns four neighbouring texels of ONE channel; for a packed
3385
+ // member that channel is the pack's, not the map's, and no swizzle after
3386
+ // the fact recovers it. Refuse rather than emit something plausible.
3387
+ if (this._mergedChannel(state, texOperand) !== null) {
3388
+ throw new WebglReadError(`${state.textureArrayLayers.get(texOperand.registerIndex).outputName} channel is used by ` + `${instruction.opcodeName}, which this emitter cannot redirect at a packed channel`, {
3389
+ source: state.sourceName,
3390
+ register: texOperand.registerIndex,
3391
+ opcodeName: instruction.opcodeName
3392
+ });
3393
+ }
3394
+ const arrayLayer = this._textureArrayLayer(state, texOperand);
3395
+ const asArray = dimension === 8 || arrayLayer !== null;
3295
3396
  const helper = this.helpers.require(asArray ? "hlslcc_textureGather4ArrayEmulated" : "hlslcc_textureGather4Emulated");
3296
3397
  const baseCoord = this._vecArg(state, coordOperand, dimension === 8 ? "xyz" : "xy");
3297
- const coord = detailLayer === null ? baseCoord : `vec3(${baseCoord}, ${detailLayer}.0)`;
3398
+ const coord = arrayLayer === null ? baseCoord : `vec3(${baseCoord}, ${arrayLayer}.0)`;
3298
3399
  const texName = state.formatter.registerReference(texOperand);
3299
3400
  const channelLetter = this._gather4Channel(samplerOperand);
3300
3401
  const channelIndex = "xyzw".indexOf(channelLetter);
@@ -3304,13 +3405,13 @@ DxbcGlslEmitter.prototype._gather4 = function _gather4(state, instruction) {
3304
3405
  });
3305
3406
  };
3306
3407
 
3307
- /**
3308
- * Reads the gathered-channel selector `gather4`/`gather4_po` carry on their
3309
- * sampler operand (a 1-component swizzle; red/`x` is the default when no
3310
- * selection is encoded).
3311
- *
3312
- * @param {object} operand Decoded sampler operand.
3313
- * @returns {string} Channel letter (`x`/`y`/`z`/`w`).
3408
+ /**
3409
+ * Reads the gathered-channel selector `gather4`/`gather4_po` carry on their
3410
+ * sampler operand (a 1-component swizzle; red/`x` is the default when no
3411
+ * selection is encoded).
3412
+ *
3413
+ * @param {object} operand Decoded sampler operand.
3414
+ * @returns {string} Channel letter (`x`/`y`/`z`/`w`).
3314
3415
  */
3315
3416
  DxbcGlslEmitter.prototype._gather4Channel = function _gather4Channel(operand) {
3316
3417
  if (operand.selectionModeName === "select1" && operand.selected) {
@@ -3322,22 +3423,22 @@ DxbcGlslEmitter.prototype._gather4Channel = function _gather4Channel(operand) {
3322
3423
  return "x";
3323
3424
  };
3324
3425
 
3325
- /**
3326
- * Assembles the final GLSL text.
3426
+ /**
3427
+ * Assembles the final GLSL text.
3327
3428
  */
3328
- /**
3329
- * The depth-range fixup emitted at the end of a vertex stage, by source range.
3330
- *
3331
- * Both entries map their range onto GL NDC [-1, 1] and both compose to the
3332
- * identity with a projection of the matching form, so an unbiased vertex is
3333
- * unchanged either way. See `profile.depthRange`.
3334
- * @type {Object.<string,string>}
3429
+ /**
3430
+ * The depth-range fixup emitted at the end of a vertex stage, by source range.
3431
+ *
3432
+ * Both entries map their range onto GL NDC [-1, 1] and both compose to the
3433
+ * identity with a projection of the matching form, so an unbiased vertex is
3434
+ * unchanged either way. See `profile.depthRange`.
3435
+ * @type {Object.<string,string>}
3335
3436
  */
3336
- /**
3337
- * The clip-space Y flip uniform and tail emitted when `profile.clipYFlip` is set.
3338
- * Name and statements match CCP's shipped gles2 vertex bodies exactly, so a
3339
- * consumer drives translated and legacy stages through the one uniform.
3340
- * @type {string}
3437
+ /**
3438
+ * The clip-space Y flip uniform and tail emitted when `profile.clipYFlip` is set.
3439
+ * Name and statements match CCP's shipped gles2 vertex bodies exactly, so a
3440
+ * consumer drives translated and legacy stages through the one uniform.
3441
+ * @type {string}
3341
3442
  */
3342
3443
  const CLIP_Y_FLIP_UNIFORM = "ssyf";
3343
3444