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

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 (384) hide show
  1. package/dist/global/blue/BlueClasses.js +200 -0
  2. package/dist/global/blue/BlueClasses.js.map +1 -0
  3. package/dist/global/blue/IBlueClasses.js +79 -0
  4. package/dist/global/blue/IBlueClasses.js.map +1 -0
  5. package/dist/global/blue/IBlueDynamicResourceConstructor.js +16 -0
  6. package/dist/global/blue/IBlueDynamicResourceConstructor.js.map +1 -1
  7. package/dist/global/blue/blue.js +8 -2
  8. package/dist/global/blue/blue.js.map +1 -1
  9. package/dist/global/blue/index.js +2 -0
  10. package/dist/global/blue/index.js.map +1 -1
  11. package/dist/global/consts/index.js +0 -1
  12. package/dist/global/consts/index.js.map +1 -1
  13. package/dist/global/consts/renderContext/formats.js +26 -25
  14. package/dist/global/consts/renderContext/formats.js.map +1 -1
  15. package/dist/{trinityal/Tr2BitmapDimensions.js → global/imageio/BitmapDimensions.js} +19 -15
  16. package/dist/global/imageio/BitmapDimensions.js.map +1 -0
  17. package/dist/global/imageio/Cutout.js +28 -0
  18. package/dist/global/imageio/Cutout.js.map +1 -0
  19. package/dist/global/imageio/HostBitmap.js +1106 -0
  20. package/dist/global/imageio/HostBitmap.js.map +1 -0
  21. package/dist/global/imageio/ImageIOResult.js +99 -0
  22. package/dist/global/imageio/ImageIOResult.js.map +1 -0
  23. package/dist/global/imageio/ImageUtility.js +205 -0
  24. package/dist/global/imageio/ImageUtility.js.map +1 -0
  25. package/dist/global/imageio/LoadParameters.js +86 -0
  26. package/dist/global/imageio/LoadParameters.js.map +1 -0
  27. package/dist/global/imageio/Metadata.js +22 -0
  28. package/dist/global/imageio/Metadata.js.map +1 -0
  29. package/dist/global/imageio/index.js +8 -0
  30. package/dist/global/{consts/webgpu → imageio}/index.js.map +1 -1
  31. package/dist/global/index.js +2 -1
  32. package/dist/global/index.js.map +1 -1
  33. package/dist/global/math/color.js +1 -1
  34. package/dist/global/math/color.js.map +1 -1
  35. package/dist/global/schema/CjsSchema.js +8 -0
  36. package/dist/global/schema/CjsSchema.js.map +1 -1
  37. package/dist/index.js +12 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/resource/CjsResMan.js +47 -7
  40. package/dist/resource/CjsResMan.js.map +1 -1
  41. package/dist/resource/Tr2LightProfileRes.js +37 -0
  42. package/dist/resource/Tr2LightProfileRes.js.map +1 -1
  43. package/dist/resource/format/CjsByteWriter.js +46 -46
  44. package/dist/resource/format/CjsByteWriter.js.map +1 -1
  45. package/dist/resource/format/CjsFormat.js +7 -8
  46. package/dist/resource/format/CjsFormat.js.map +1 -1
  47. package/dist/resource/format/CjsFormatStore.js +8 -8
  48. package/dist/resource/format/CjsFormatStore.js.map +1 -1
  49. package/dist/resource/format/CjsGeometryFormat.js +114 -0
  50. package/dist/resource/format/CjsGeometryFormat.js.map +1 -0
  51. package/dist/resource/format/CjsImageFormat.js +282 -0
  52. package/dist/resource/format/CjsImageFormat.js.map +1 -0
  53. package/dist/resource/format/CjsResourceProbe.js +12 -48
  54. package/dist/resource/format/CjsResourceProbe.js.map +1 -1
  55. package/dist/resource/format/CjsStringTable.js +37 -37
  56. package/dist/resource/format/CjsStringTable.js.map +1 -1
  57. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js +10 -10
  58. package/dist/resource/format/carbonEffect/CjsCarbonEffectReader.js.map +1 -1
  59. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js +37 -37
  60. package/dist/resource/format/carbonEffect/CjsCarbonEffectWriter.js.map +1 -1
  61. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js +35 -7
  62. package/dist/resource/format/carbonEffect/carbonEffectBackendBlock.js.map +1 -1
  63. package/dist/resource/format/index.js +3 -1
  64. package/dist/resource/format/index.js.map +1 -1
  65. package/dist/resource/formats/black/CjsBlackFormat.js +130 -137
  66. package/dist/resource/formats/black/CjsBlackFormat.js.map +1 -1
  67. package/dist/resource/formats/bnk/CjsBnkFormat.js +12 -19
  68. package/dist/resource/formats/bnk/CjsBnkFormat.js.map +1 -1
  69. package/dist/resource/formats/bnk/core/helpers.js +1 -3
  70. package/dist/resource/formats/bnk/core/helpers.js.map +1 -1
  71. package/dist/resource/formats/cmf/CjsCmfFormat.js +19 -82
  72. package/dist/resource/formats/cmf/CjsCmfFormat.js.map +1 -1
  73. package/dist/resource/formats/cmf/core/constants.js +1 -2
  74. package/dist/resource/formats/cmf/core/constants.js.map +1 -1
  75. package/dist/resource/formats/{stl/core/targets.js → cmf/core/flatShared.js} +9 -8
  76. package/dist/resource/formats/cmf/core/flatShared.js.map +1 -0
  77. package/dist/resource/formats/cmf/core/helpers.js +13 -13
  78. package/dist/resource/formats/cmf/core/helpers.js.map +1 -1
  79. package/dist/resource/formats/cmf/core/writer.js +24 -24
  80. package/dist/resource/formats/cmf/core/writer.js.map +1 -1
  81. package/dist/resource/formats/dds/CjsDdsFormat.js +134 -17
  82. package/dist/resource/formats/dds/CjsDdsFormat.js.map +1 -1
  83. package/dist/resource/formats/dds/core/helpers.js +125 -40
  84. package/dist/resource/formats/dds/core/helpers.js.map +1 -1
  85. package/dist/resource/formats/dxbc/CjsDxbcFormat.js +14 -16
  86. package/dist/resource/formats/dxbc/CjsDxbcFormat.js.map +1 -1
  87. package/dist/resource/formats/dxbc/core/{container.js → DxbcContainer.js} +2 -2
  88. package/dist/resource/formats/dxbc/core/DxbcContainer.js.map +1 -0
  89. package/dist/resource/formats/dxbc/core/{errors.js → DxbcReadError.js} +1 -1
  90. package/dist/resource/formats/dxbc/core/DxbcReadError.js.map +1 -0
  91. package/dist/resource/formats/dxbc/core/DxbcReader.js +1 -1
  92. package/dist/resource/formats/dxbc/core/DxbcReader.js.map +1 -1
  93. package/dist/resource/formats/dxbc/core/{program.js → DxbcShaderProgram.js} +2 -2
  94. package/dist/resource/formats/dxbc/core/DxbcShaderProgram.js.map +1 -0
  95. package/dist/resource/formats/dxbc/core/{signature.js → DxbcSignatureChunk.js} +2 -2
  96. package/dist/resource/formats/dxbc/core/DxbcSignatureChunk.js.map +1 -0
  97. package/dist/resource/formats/dxbc/core/decoder.js +2 -2
  98. package/dist/resource/formats/dxbc/core/decoder.js.map +1 -1
  99. package/dist/resource/formats/dxbc/core/helpers.js +3 -3
  100. package/dist/resource/formats/dxbc/core/helpers.js.map +1 -1
  101. package/dist/resource/formats/fbx/CjsFbxFormat.js +18 -20
  102. package/dist/resource/formats/fbx/CjsFbxFormat.js.map +1 -1
  103. package/dist/resource/formats/flac/CjsFlacFormat.js +7 -13
  104. package/dist/resource/formats/flac/CjsFlacFormat.js.map +1 -1
  105. package/dist/resource/formats/fsd/32/CjsFsd32Format.js +29 -29
  106. package/dist/resource/formats/fsd/32/CjsFsd32Format.js.map +1 -1
  107. package/dist/resource/formats/fsd/64/CjsFsd64Format.js +3 -3
  108. package/dist/resource/formats/fsd/64/CjsFsd64Format.js.map +1 -1
  109. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js +23 -23
  110. package/dist/resource/formats/fsd/64/core/CjsFsd64Binary.js.map +1 -1
  111. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js +8 -8
  112. package/dist/resource/formats/fsd/64/core/CjsFsd64Reader.js.map +1 -1
  113. package/dist/resource/formats/fsd/CjsFsdFormat.js +23 -23
  114. package/dist/resource/formats/fsd/CjsFsdFormat.js.map +1 -1
  115. package/dist/resource/formats/gif/CjsGifFormat.js +24 -15
  116. package/dist/resource/formats/gif/CjsGifFormat.js.map +1 -1
  117. package/dist/resource/formats/gltf/CjsGltfFormat.js +33 -98
  118. package/dist/resource/formats/gltf/CjsGltfFormat.js.map +1 -1
  119. package/dist/resource/formats/gltf/core/helpers.js +3 -12
  120. package/dist/resource/formats/gltf/core/helpers.js.map +1 -1
  121. package/dist/resource/formats/gr2/CjsGr2Format.js +27 -91
  122. package/dist/resource/formats/gr2/CjsGr2Format.js.map +1 -1
  123. package/dist/resource/formats/hlsl/CjsHlslFormat.js +22 -25
  124. package/dist/resource/formats/hlsl/CjsHlslFormat.js.map +1 -1
  125. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js +1 -1
  126. package/dist/resource/formats/hlsl/core/carbonDescriptionToRuntime.js.map +1 -1
  127. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js +3 -3
  128. package/dist/resource/formats/hlsl/core/tr2/shader/HlslEffectStageInput.js.map +1 -1
  129. package/dist/resource/formats/ies/CjsIESFormat.js +29 -29
  130. package/dist/resource/formats/ies/CjsIESFormat.js.map +1 -1
  131. package/dist/resource/formats/jpeg/CjsJpegFormat.js +24 -15
  132. package/dist/resource/formats/jpeg/CjsJpegFormat.js.map +1 -1
  133. package/dist/resource/formats/jpeg/core/helpers.js +3 -5
  134. package/dist/resource/formats/jpeg/core/helpers.js.map +1 -1
  135. package/dist/resource/formats/jpeg/core/jpeg.js +58 -58
  136. package/dist/resource/formats/jpeg/core/jpeg.js.map +1 -1
  137. package/dist/resource/formats/jsonl/CjsJsonlFormat.js +3 -3
  138. package/dist/resource/formats/jsonl/CjsJsonlFormat.js.map +1 -1
  139. package/dist/resource/formats/mp3/CjsMp3Format.js +7 -14
  140. package/dist/resource/formats/mp3/CjsMp3Format.js.map +1 -1
  141. package/dist/resource/formats/mp3/core/helpers.js +3 -5
  142. package/dist/resource/formats/mp3/core/helpers.js.map +1 -1
  143. package/dist/resource/formats/mp4/CjsMp4Format.js +7 -13
  144. package/dist/resource/formats/mp4/CjsMp4Format.js.map +1 -1
  145. package/dist/resource/formats/mp4/core/helpers.js +3 -5
  146. package/dist/resource/formats/mp4/core/helpers.js.map +1 -1
  147. package/dist/resource/formats/obj/CjsObjFormat.js +92 -157
  148. package/dist/resource/formats/obj/CjsObjFormat.js.map +1 -1
  149. package/dist/resource/formats/obj/core/helpers.js +5 -113
  150. package/dist/resource/formats/obj/core/helpers.js.map +1 -1
  151. package/dist/resource/formats/ogg/CjsOggFormat.js +7 -14
  152. package/dist/resource/formats/ogg/CjsOggFormat.js.map +1 -1
  153. package/dist/resource/formats/pickle/CjsPickleFormat.js +7 -12
  154. package/dist/resource/formats/pickle/CjsPickleFormat.js.map +1 -1
  155. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js +7 -7
  156. package/dist/resource/formats/pickle/core/CjsPickleProtocol0Reader.js.map +1 -1
  157. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js +7 -7
  158. package/dist/resource/formats/pickle/core/CjsPickleProtocol4Reader.js.map +1 -1
  159. package/dist/resource/formats/png/CjsPngFormat.js +40 -15
  160. package/dist/resource/formats/png/CjsPngFormat.js.map +1 -1
  161. package/dist/resource/formats/png/core/helpers.js +4 -6
  162. package/dist/resource/formats/png/core/helpers.js.map +1 -1
  163. package/dist/resource/formats/red/CjsRedFormat.js +22 -28
  164. package/dist/resource/formats/red/CjsRedFormat.js.map +1 -1
  165. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js +3 -7
  166. package/dist/resource/formats/schemabound/CjsSchemaBoundFormat.js.map +1 -1
  167. package/dist/resource/formats/schemabound/core/schemaBoundValues.js +5 -0
  168. package/dist/resource/formats/schemabound/core/schemaBoundValues.js.map +1 -1
  169. package/dist/resource/formats/sqlite/CjsSqliteFormat.js +4 -9
  170. package/dist/resource/formats/sqlite/CjsSqliteFormat.js.map +1 -1
  171. package/dist/resource/formats/static/CjsStaticFormat.js +4 -4
  172. package/dist/resource/formats/static/CjsStaticFormat.js.map +1 -1
  173. package/dist/resource/formats/stl/CjsStlFormat.js +39 -104
  174. package/dist/resource/formats/stl/CjsStlFormat.js.map +1 -1
  175. package/dist/resource/formats/stl/core/helpers.js +5 -19
  176. package/dist/resource/formats/stl/core/helpers.js.map +1 -1
  177. package/dist/resource/formats/tga/CjsTgaFormat.js +26 -15
  178. package/dist/resource/formats/tga/CjsTgaFormat.js.map +1 -1
  179. package/dist/resource/formats/tga/core/helpers.js +3 -5
  180. package/dist/resource/formats/tga/core/helpers.js.map +1 -1
  181. package/dist/resource/formats/vta/CjsVtaFormat.js +8 -15
  182. package/dist/resource/formats/vta/CjsVtaFormat.js.map +1 -1
  183. package/dist/resource/formats/wav/CjsWavFormat.js +7 -14
  184. package/dist/resource/formats/wav/CjsWavFormat.js.map +1 -1
  185. package/dist/resource/formats/wav/core/helpers.js +3 -5
  186. package/dist/resource/formats/wav/core/helpers.js.map +1 -1
  187. package/dist/resource/formats/webgl/CjsWebglFormat.js +103 -105
  188. package/dist/resource/formats/webgl/CjsWebglFormat.js.map +1 -1
  189. package/dist/resource/formats/webgl/core/{errors.js → WebglReadError.js} +1 -1
  190. package/dist/resource/formats/webgl/core/WebglReadError.js.map +1 -0
  191. package/dist/resource/formats/webgl/core/effectPackage.js +1 -1
  192. package/dist/resource/formats/webgl/core/effectPackage.js.map +1 -1
  193. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js +3 -3
  194. package/dist/resource/formats/webgl/core/glsl/DxbcGlslEmitter.js.map +1 -1
  195. package/dist/resource/formats/webgl/core/glsl/{DxbcGlslHelpers.js → DxbcGlslHelperRegistry.js} +2 -2
  196. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelperRegistry.js.map +1 -0
  197. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js +1 -1
  198. package/dist/resource/formats/webgl/core/glsl/DxbcGlslOperandFormatter.js.map +1 -1
  199. package/dist/resource/formats/webgl/core/glslBackendBlock.js +1 -1
  200. package/dist/resource/formats/webgl/core/glslBackendBlock.js.map +1 -1
  201. package/dist/resource/formats/webgl/core/helpers.js.map +1 -1
  202. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js +28 -29
  203. package/dist/resource/formats/webgpu/CjsWebgpuFormat.js.map +1 -1
  204. package/dist/resource/formats/webgpu/core/{errors.js → WebgpuReadError.js} +1 -1
  205. package/dist/resource/formats/webgpu/core/WebgpuReadError.js.map +1 -0
  206. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js +1 -1
  207. package/dist/resource/formats/webgpu/core/carbonWebgpu/validateContainer.js.map +1 -1
  208. package/dist/resource/formats/webgpu/core/helpers.js +1 -1
  209. package/dist/resource/formats/webgpu/core/helpers.js.map +1 -1
  210. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js +1 -1
  211. package/dist/resource/formats/webgpu/core/ir/lowerDxbcToIr.js.map +1 -1
  212. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js +18 -6
  213. package/dist/resource/formats/webgpu/core/wgsl/buildWgslSet.js.map +1 -1
  214. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js +39 -13
  215. package/dist/resource/formats/webgpu/core/wgsl/lowerBindingLayout.js.map +1 -1
  216. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js +16 -14
  217. package/dist/resource/formats/webgpu/core/wgsl/lowerCreateHistogramsComputeProgram.js.map +1 -1
  218. package/dist/resource/formats/webm/CjsWebmFormat.js +8 -13
  219. package/dist/resource/formats/webm/CjsWebmFormat.js.map +1 -1
  220. package/dist/resource/formats/webm/core/helpers.js +3 -5
  221. package/dist/resource/formats/webm/core/helpers.js.map +1 -1
  222. package/dist/resource/formats/webp/CjsWebpFormat.js +8 -12
  223. package/dist/resource/formats/webp/CjsWebpFormat.js.map +1 -1
  224. package/dist/resource/formats/wem/CjsWemFormat.js +9 -17
  225. package/dist/resource/formats/wem/CjsWemFormat.js.map +1 -1
  226. package/dist/resource/formats/wem/core/bitStream.js +35 -35
  227. package/dist/resource/formats/wem/core/bitStream.js.map +1 -1
  228. package/dist/resource/formats/wem/core/helpers.js +1 -3
  229. package/dist/resource/formats/wem/core/helpers.js.map +1 -1
  230. package/dist/resource/formats/yaml/CjsYamlFormat.js +28 -37
  231. package/dist/resource/formats/yaml/CjsYamlFormat.js.map +1 -1
  232. package/dist/resource/imageio/ImageIO.js +142 -0
  233. package/dist/resource/imageio/ImageIO.js.map +1 -0
  234. package/dist/resource/imageio/index.js +17 -0
  235. package/dist/resource/imageio/index.js.map +1 -0
  236. package/dist/resource/index.js +7 -0
  237. package/dist/resource/index.js.map +1 -1
  238. package/dist/resource/shader/reflection/Tr2EffectResource.js +24 -2
  239. package/dist/resource/shader/reflection/Tr2EffectResource.js.map +1 -1
  240. package/dist/resource/shader/reflection/Tr2Pass.js +76 -5
  241. package/dist/resource/shader/reflection/Tr2Pass.js.map +1 -1
  242. package/dist/resource/texture/CjsTextureArrayConstructor.js +97 -0
  243. package/dist/resource/texture/CjsTextureArrayConstructor.js.map +1 -0
  244. package/dist/resource/texture/CjsTexturePackConstructor.js +160 -0
  245. package/dist/resource/texture/CjsTexturePackConstructor.js.map +1 -0
  246. package/dist/resource/texture/CjsTexturePipelineStepArray.js +72 -0
  247. package/dist/resource/texture/CjsTexturePipelineStepArray.js.map +1 -0
  248. package/dist/resource/texture/CjsTexturePipelineStepConvert.js +73 -0
  249. package/dist/resource/texture/CjsTexturePipelineStepConvert.js.map +1 -0
  250. package/dist/resource/texture/CjsTexturePipelineStepPack.js +71 -0
  251. package/dist/resource/texture/CjsTexturePipelineStepPack.js.map +1 -0
  252. package/dist/resource/texture/CjsTexturePipelineStepResize.js +123 -0
  253. package/dist/resource/texture/CjsTexturePipelineStepResize.js.map +1 -0
  254. package/dist/resource/texture/SolidColorTextureConstructor.js +11 -1
  255. package/dist/resource/texture/SolidColorTextureConstructor.js.map +1 -1
  256. package/dist/resource/texture/Tr2ImageRes.js +100 -68
  257. package/dist/resource/texture/Tr2ImageRes.js.map +1 -1
  258. package/dist/resource/texture/Tr2TexturePipeline.js +45 -25
  259. package/dist/resource/texture/Tr2TexturePipeline.js.map +1 -1
  260. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js +34 -1
  261. package/dist/resource/texture/Tr2TexturePipelineStepCompress.js.map +1 -1
  262. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js +30 -3
  263. package/dist/resource/texture/Tr2TexturePipelineStepGenerateMips.js.map +1 -1
  264. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js +81 -1
  265. package/dist/resource/texture/Tr2TexturePipelineStepLimitSize.js.map +1 -1
  266. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js +36 -1
  267. package/dist/resource/texture/Tr2TexturePipelineStepLoad.js.map +1 -1
  268. package/dist/resource/texture/Tr2TexturePipelineStepPack.js +146 -24
  269. package/dist/resource/texture/Tr2TexturePipelineStepPack.js.map +1 -1
  270. package/dist/resource/texture/TriTextureRes.js +151 -29
  271. package/dist/resource/texture/TriTextureRes.js.map +1 -1
  272. package/dist/resource/texture/index.js +7 -0
  273. package/dist/resource/texture/index.js.map +1 -1
  274. package/dist/resource/texture/registerTextureResources.js +83 -0
  275. package/dist/resource/texture/registerTextureResources.js.map +1 -0
  276. package/dist/resource/texture/solidColorTexture.js +10 -19
  277. package/dist/resource/texture/solidColorTexture.js.map +1 -1
  278. package/dist/sof/EveSOF.js +39 -7
  279. package/dist/sof/EveSOF.js.map +1 -1
  280. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js +2 -2
  281. package/dist/trinity/core/Tr2GpuResourcePool/Tr2GpuResourcePool.js.map +1 -1
  282. package/dist/trinity/core/Tr2ImageIOHelpers.js +80 -17
  283. package/dist/trinity/core/Tr2ImageIOHelpers.js.map +1 -1
  284. package/dist/trinity/core/Tr2RenderUtils.js +1 -1
  285. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js +49 -62
  286. package/dist/trinity/core/Tr2TextureArray/Tr2TextureArray.js.map +1 -1
  287. package/dist/trinity/core/Tr2TextureReference.js +114 -0
  288. package/dist/trinity/core/Tr2TextureReference.js.map +1 -0
  289. package/dist/trinity/core/device/Tr2DepthStencil.js +2 -2
  290. package/dist/trinity/core/device/Tr2DepthStencil.js.map +1 -1
  291. package/dist/trinity/core/device/Tr2RingBuffer/Tr2RingBuffer.js +1 -1
  292. package/dist/trinity/core/index.js +1 -0
  293. package/dist/trinity/core/index.js.map +1 -1
  294. package/dist/trinity/core/lighting/Tr2LightManager.js +5 -4
  295. package/dist/trinity/core/lighting/Tr2LightManager.js.map +1 -1
  296. package/dist/trinity/core/procedural/GradientTextureConstructor.js +5 -4
  297. package/dist/trinity/core/procedural/GradientTextureConstructor.js.map +1 -1
  298. package/dist/trinity/core/procedural/gradientTexture.js +10 -13
  299. package/dist/trinity/core/procedural/gradientTexture.js.map +1 -1
  300. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js +1 -1
  301. package/dist/trinity/core/volumetrics/Tr2VolumetricsRenderer.js.map +1 -1
  302. package/dist/trinity/eve/EveImpactOverlay.js +102 -50
  303. package/dist/trinity/eve/EveImpactOverlay.js.map +1 -1
  304. package/dist/trinity/eve/EveModularObjectModifier.js +9 -18
  305. package/dist/trinity/eve/EveModularObjectModifier.js.map +1 -1
  306. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js +175 -157
  307. package/dist/trinity/eve/attachment/turrets/EveTurretSet.js.map +1 -1
  308. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js +100 -83
  309. package/dist/trinity/eve/attachment/turrets/EveTurretTarget.js.map +1 -1
  310. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js +26 -20
  311. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMesh.js.map +1 -1
  312. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js +368 -179
  313. package/dist/trinity/eve/child/EveChildInstancedMeshes/EveChildInstancedMeshes.js.map +1 -1
  314. package/dist/trinity/eve/child/EveChildMesh.js +242 -234
  315. package/dist/trinity/eve/child/EveChildMesh.js.map +1 -1
  316. package/dist/trinity/eve/child/EveChildTurret.js +57 -16
  317. package/dist/trinity/eve/child/EveChildTurret.js.map +1 -1
  318. package/dist/trinity/eve/child/EveSpaceObjectChild.js +28 -1
  319. package/dist/trinity/eve/child/EveSpaceObjectChild.js.map +1 -1
  320. package/dist/trinity/eve/index.js +2 -2
  321. package/dist/trinity/eve/overlays/EveDamageOverlay.js +5 -1
  322. package/dist/trinity/eve/overlays/EveDamageOverlay.js.map +1 -1
  323. package/dist/trinity/eve/scene/EveSpaceScene.js +234 -233
  324. package/dist/trinity/eve/scene/EveSpaceScene.js.map +1 -1
  325. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js +2 -0
  326. package/dist/trinity/eve/scene/EveSpaceSceneRenderDriver.js.map +1 -1
  327. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js +492 -437
  328. package/dist/trinity/eve/spaceObject/EveSpaceObject2.js.map +1 -1
  329. package/dist/trinity/generated/index.js +0 -1
  330. package/dist/trinity/generated/index.js.map +1 -1
  331. package/dist/trinity/generated/trinityCore/index.js +0 -1
  332. package/dist/trinity/generated/trinityCore/index.js.map +1 -1
  333. package/dist/trinity/index.js +3 -3
  334. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js +10 -1
  335. package/dist/trinity/particle/emitter/Tr2GpuSharedEmitter.js.map +1 -1
  336. package/dist/trinity/shader/Tr2DataTextureManager.js +152 -66
  337. package/dist/trinity/shader/Tr2DataTextureManager.js.map +1 -1
  338. package/dist/trinity/shader/Tr2Material.js +1 -1
  339. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js +5 -5
  340. package/dist/trinityal/Tr2HalHelperStructures/Tr2TextureSubresource.js.map +1 -1
  341. package/dist/trinityal/index.js +1 -1
  342. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js +2 -2
  343. package/dist/trinityal/stub/Tr2RenderContextALStub/Tr2RenderContextALStub.js.map +1 -1
  344. package/dist/trinityal/stub/Tr2SwapChainALStub.js +45 -45
  345. package/dist/trinityal/stub/Tr2SwapChainALStub.js.map +1 -1
  346. package/dist/trinityal/stub/Tr2TextureALStub.js +170 -170
  347. package/dist/trinityal/stub/Tr2TextureALStub.js.map +1 -1
  348. package/dist/trinityal/webgpu/CjsWebgpuDevice.js +234 -164
  349. package/dist/trinityal/webgpu/CjsWebgpuDevice.js.map +1 -1
  350. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js +7 -0
  351. package/dist/trinityal/webgpu/CjsWebgpuRenderContextAL.js.map +1 -1
  352. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js +78 -14
  353. package/dist/trinityal/webgpu/CjsWebgpuTextureAL.js.map +1 -1
  354. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js +94 -0
  355. package/dist/trinityal/webgpu/core/CjsWebgpuUtils.js.map +1 -0
  356. package/dist/trinityal/webgpu/internal.js +1 -0
  357. package/dist/trinityal/webgpu/internal.js.map +1 -1
  358. package/docs/global/reference/classes/README.md +90 -0
  359. package/docs/resource/concepts/format-capabilities.md +3 -3
  360. package/docs/resource/formats/README.md +1 -1
  361. package/docs/resource/reference/classes/core.md +31 -1
  362. package/docs/resource/reference/classes/formats.md +7 -7
  363. package/docs/resource/reference/classes/resources.md +76 -16
  364. package/docs/trinity/reference/classes/generated.md +0 -10
  365. package/docs/trinity/reference/classes/trinity-core.md +1692 -1682
  366. package/docs/trinityal/reference/classes/README.md +0 -10
  367. package/docs/trinityal/webgpu/reference/classes/README.md +276 -266
  368. package/package.json +4 -3
  369. package/dist/global/consts/webgpu/index.js +0 -2
  370. package/dist/global/consts/webgpu/textureFormats.js +0 -180
  371. package/dist/global/consts/webgpu/textureFormats.js.map +0 -1
  372. package/dist/resource/formats/dxbc/core/container.js.map +0 -1
  373. package/dist/resource/formats/dxbc/core/errors.js.map +0 -1
  374. package/dist/resource/formats/dxbc/core/program.js.map +0 -1
  375. package/dist/resource/formats/dxbc/core/signature.js.map +0 -1
  376. package/dist/resource/formats/stl/core/targets.js.map +0 -1
  377. package/dist/resource/formats/webgl/core/errors.js.map +0 -1
  378. package/dist/resource/formats/webgl/core/glsl/DxbcGlslHelpers.js.map +0 -1
  379. package/dist/resource/formats/webgpu/core/errors.js.map +0 -1
  380. package/dist/resource/texture/texturePipelineBehavior.js +0 -332
  381. package/dist/resource/texture/texturePipelineBehavior.js.map +0 -1
  382. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js +0 -40
  383. package/dist/trinity/generated/trinityCore/Tr2TextureReference.js.map +0 -1
  384. package/dist/trinityal/Tr2BitmapDimensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"solidColorTexture.js","sources":["../../../../src/resource/texture/solidColorTexture.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Procedural/SolidColorTexture.h\n// Source: trinity/trinity/Resources/Procedural/SolidColorTexture.cpp\n//\n// The free functions of Carbon's solid colour texture: a `dynamic:/color/r,g,b,a`\n// path names a 1x1 texture of that colour. They live apart from\n// SolidColorTextureConstructor because TriTextureRes.Initialize calls them, and\n// the constructor builds a TriTextureRes - one module holding both would be an\n// import cycle.\n//\n// Not ported, for want of a consumer: ColorPathToColor and ColorToColorPath.\nimport { num } from \"#math/num\";\n\n/** `colorPrefix` (SolidColorTexture.cpp:13). */\nexport const ColorPrefix = \"dynamic:/color/\";\n\n// One `stream >> float` extraction under `std::locale( \"C\" )`: leading\n// whitespace, an optional sign, digits with an optional fraction, and an\n// optional exponent.\nconst FLOAT_EXTRACTION = /^\\s*[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?/u;\n\n// `stream >> coma` skips whitespace, then reads one character.\nconst COMMA_EXTRACTION = /^\\s*,/u;\n\n/**\n * Parses `r,g,b,a` exactly as Carbon's `ParseColor` does\n * (SolidColorTexture.cpp:34-70), or returns null where Carbon logs and returns\n * an empty optional.\n *\n * quirk: the alpha extraction is followed only by `stream.eof()`. When nothing\n * but whitespace follows the third comma, `stream >> color.a` fails AT the end\n * of the stream, which sets eofbit, and C++11 `num_get` stores 0 on failure - so\n * Carbon accepts `1,1,1,` as alpha 0. Reproduced, not corrected: a port never\n * silently fixes Carbon.\n *\n * @param {string} query Text after `dynamic:/color/`.\n * @returns {number[]|null} `[r, g, b, a]`, or null when Carbon would reject it.\n */\nexport function ParseColor(query)\n{\n let rest = String(query);\n const color = [];\n for (let index = 0; index < 4; index++)\n {\n const extraction = FLOAT_EXTRACTION.exec(rest);\n if (!extraction)\n {\n // Only the last component can fail at the end of the stream and still\n // pass the eof test; a failed r/g/b leaves the stream in a fail state and\n // the following comma is never read.\n if (index === 3 && /^\\s*$/u.test(rest))\n {\n color.push(0);\n return color;\n }\n return null;\n }\n color.push(Number(extraction[0]));\n rest = rest.slice(extraction[0].length);\n if (index < 3)\n {\n const comma = COMMA_EXTRACTION.exec(rest);\n if (!comma) return null;\n rest = rest.slice(comma[0].length);\n }\n }\n // `stream.eof()`: the alpha extraction must have reached the end of the query.\n return rest.length === 0 ? color : null;\n}\n\n/**\n * Whether a path names a solid colour texture (SolidColorTexture.cpp:72-75).\n *\n * @param {string} path Resource path.\n * @returns {boolean}\n */\nexport function IsSolidColorTexturePath(path)\n{\n return String(path).startsWith(ColorPrefix);\n}\n\n/**\n * Carbon's `RasterizeSolidColor` (SolidColorTexture.cpp:104-126): a 1x1 bitmap of\n * the parsed colour, or null where Carbon leaves the bitmap invalid.\n *\n * Carbon writes `PIXEL_FORMAT_R16G16B16A16_FLOAT`. The resource payload contract\n * carries float colour as `rgba32float` only, so each component is quantized\n * through the half-float codec first - the stored values are Carbon's, in a\n * wider container.\n *\n * @param {string} path `dynamic:/color/...` path.\n * @returns {object|null} An `rgba` payload.\n */\nexport function RasterizeSolidColor(path)\n{\n if (!IsSolidColorTexturePath(path)) return null;\n const color = ParseColor(String(path).slice(ColorPrefix.length));\n if (!color) return null;\n\n const data = new Float32Array(4);\n for (let index = 0; index < 4; index++)\n {\n data[index] = num.fromHalfFloat(num.toHalfFloat(color[index]));\n }\n return {\n payloadType: \"rgba\",\n sourceFormat: \"dynamic-color\",\n width: 1,\n height: 1,\n pixelFormat: \"rgba32float\",\n data,\n strideBytes: 16,\n origin: \"top-left\",\n colorSpace: \"linear\",\n alphaMode: \"straight\"\n };\n}\n"],"names":["ColorPrefix","FLOAT_EXTRACTION","COMMA_EXTRACTION","ParseColor","query","rest","String","color","index","extraction","exec","test","push","Number","slice","length","comma","IsSolidColorTexturePath","path","startsWith","RasterizeSolidColor","data","Float32Array","num","fromHalfFloat","toHalfFloat","payloadType","sourceFormat","width","height","pixelFormat","strideBytes","origin","colorSpace","alphaMode"],"mappings":"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"}
1
+ {"version":3,"file":"solidColorTexture.js","sources":["../../../../src/resource/texture/solidColorTexture.js"],"sourcesContent":["// Source: trinity/trinity/Resources/Procedural/SolidColorTexture.h\n// Source: trinity/trinity/Resources/Procedural/SolidColorTexture.cpp\n//\n// The free functions of Carbon's solid colour texture: a `dynamic:/color/r,g,b,a`\n// path names a 1x1 texture of that colour. They live apart from\n// SolidColorTextureConstructor because TriTextureRes.Initialize calls them, and\n// the constructor builds a TriTextureRes - one module holding both would be an\n// import cycle.\n//\n// Not ported, for want of a consumer: ColorPathToColor and ColorToColorPath.\nimport { HostBitmap } from \"#imageio\";\nimport { PixelFormat } from \"#consts/render-context\";\nimport { num } from \"#math/num\";\n\n/** `colorPrefix` (SolidColorTexture.cpp:13). */\nexport const ColorPrefix = \"dynamic:/color/\";\n\n// One `stream >> float` extraction under `std::locale( \"C\" )`: leading\n// whitespace, an optional sign, digits with an optional fraction, and an\n// optional exponent.\nconst FLOAT_EXTRACTION = /^\\s*[+-]?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:[eE][+-]?\\d+)?/u;\n\n// `stream >> coma` skips whitespace, then reads one character.\nconst COMMA_EXTRACTION = /^\\s*,/u;\n\n/**\n * Parses `r,g,b,a` exactly as Carbon's `ParseColor` does\n * (SolidColorTexture.cpp:34-70), or returns null where Carbon logs and returns\n * an empty optional.\n *\n * quirk: the alpha extraction is followed only by `stream.eof()`. When nothing\n * but whitespace follows the third comma, `stream >> color.a` fails AT the end\n * of the stream, which sets eofbit, and C++11 `num_get` stores 0 on failure - so\n * Carbon accepts `1,1,1,` as alpha 0. Reproduced, not corrected: a port never\n * silently fixes Carbon.\n *\n * @param {string} query Text after `dynamic:/color/`.\n * @returns {number[]|null} `[r, g, b, a]`, or null when Carbon would reject it.\n */\nexport function ParseColor(query)\n{\n let rest = String(query);\n const color = [];\n for (let index = 0; index < 4; index++)\n {\n const extraction = FLOAT_EXTRACTION.exec(rest);\n if (!extraction)\n {\n // Only the last component can fail at the end of the stream and still\n // pass the eof test; a failed r/g/b leaves the stream in a fail state and\n // the following comma is never read.\n if (index === 3 && /^\\s*$/u.test(rest))\n {\n color.push(0);\n return color;\n }\n return null;\n }\n color.push(Number(extraction[0]));\n rest = rest.slice(extraction[0].length);\n if (index < 3)\n {\n const comma = COMMA_EXTRACTION.exec(rest);\n if (!comma) return null;\n rest = rest.slice(comma[0].length);\n }\n }\n // `stream.eof()`: the alpha extraction must have reached the end of the query.\n return rest.length === 0 ? color : null;\n}\n\n/**\n * Whether a path names a solid colour texture (SolidColorTexture.cpp:72-75).\n *\n * @param {string} path Resource path.\n * @returns {boolean}\n */\nexport function IsSolidColorTexturePath(path)\n{\n return String(path).startsWith(ColorPrefix);\n}\n\n/**\n * Carbon's `RasterizeSolidColor` (SolidColorTexture.cpp:104-126): a 1x1 bitmap of\n * the parsed colour, or null where Carbon leaves the bitmap invalid.\n *\n * Carbon's format exactly: a 1x1 `PIXEL_FORMAT_R16G16B16A16_FLOAT` bitmap.\n *\n * @param {string} path `dynamic:/color/...` path.\n * @returns {HostBitmap|null} The bitmap, or null where Carbon leaves it invalid.\n */\nexport function RasterizeSolidColor(path)\n{\n if (!IsSolidColorTexturePath(path)) return null;\n const color = ParseColor(String(path).slice(ColorPrefix.length));\n if (!color) return null;\n\n const bitmap = new HostBitmap();\n\n if (!bitmap.Create(1, 1, 1, PixelFormat.PIXEL_FORMAT_R16G16B16A16_FLOAT)) return null;\n\n const raw = bitmap.GetRawData();\n const view = new DataView(raw.buffer, raw.byteOffset, raw.byteLength);\n\n for (let index = 0; index < 4; index++)\n {\n view.setUint16(index * 2, num.toHalfFloat(color[index]), true);\n }\n\n return bitmap;\n}\n"],"names":["ColorPrefix","FLOAT_EXTRACTION","COMMA_EXTRACTION","ParseColor","query","rest","String","color","index","extraction","exec","test","push","Number","slice","length","comma","IsSolidColorTexturePath","path","startsWith","RasterizeSolidColor","bitmap","HostBitmap","Create","PixelFormat","PIXEL_FORMAT_R16G16B16A16_FLOAT","raw","GetRawData","view","DataView","buffer","byteOffset","byteLength","setUint16","num","toHalfFloat"],"mappings":"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"}
@@ -125,7 +125,7 @@ class EveSOF extends CjsModel {
125
125
  } = _applyDecs2311(this, [type.define({
126
126
  className: "EveSOF",
127
127
  family: "eve"
128
- })], [[[edit, edit.readwrite, type, type.boolean], 16, "allowFileCaching"], [[edit, edit.readwrite, type, type.boolean], 16, "alphaCutoutShadowsEnabled"], [[edit, edit.readwrite, type, type.string], 16, "volumetricTrailPath"], [[edit, edit.readwrite, type, type.float64], 16, "buildTime"], [[edit, edit.read, void 0, type.objectRef("EveSOFDataMgr")], 16, "dataMgr"], [[edit, edit.readwrite, type, type.boolean], 16, "editorMode"], [[carbon, carbon.method, impl, impl.implemented], 18, "LoadData"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateDna"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetDnaVisibilityGroups"], [[carbon, carbon.method, impl, impl.implemented], 18, "ValidateDNA"], [[carbon, carbon.method, impl, impl.implemented], 18, "Build"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Runtime SOF remains Trinity-free, so Carbon's live EveSpaceObject2 mutation is performed through the caller-supplied model-values contract.")], 18, "BuildChild"], [[impl, impl.custom, void 0, impl.reason("Provides the immutable values form needed to compose a modular graph before optional Trinity hydration.")], 18, "BuildChildValues"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlanLayoutFromDNA"], [[carbon, carbon.method, impl, impl.implemented], 18, "BuildFromDNA"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupExtensionBuild"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupShaders"], [[carbon, carbon.method, impl, impl.implemented], 18, "FillMeshAreaVector"], [[carbon, carbon.method, impl, impl.implemented], 18, "GenerateDepthFromAreaVector"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupCustomMask"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupDecalSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupImpactEffects"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupEffects"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupChildrenAndAnimations"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupEffectChildren"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupAudio"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupControllers"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupModelCurves"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupInstancedMeshes"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateInstancedMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupLayout"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateSharedLayoutAreas"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateLayoutInstancedMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupBoosters"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupChildBoosters"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupAttachments"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupSpriteSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupSpotlightSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupPlaneSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupSpriteLineSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupHazeSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupBanners"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupBannerSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupLocators"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateArmorDamageEffect"], [[carbon, carbon.method, impl, impl.adapted], 18, "BuildHullLocalLocatorSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupLocatorSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupTurretMaterialFromFaction"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupTurretMaterialFromDNA"]], 0, void 0, CjsModel));
128
+ })], [[[edit, edit.readwrite, type, type.boolean], 16, "allowFileCaching"], [[edit, edit.readwrite, type, type.boolean], 16, "alphaCutoutShadowsEnabled"], [[edit, edit.readwrite, type, type.string], 16, "volumetricTrailPath"], [[edit, edit.readwrite, type, type.float64], 16, "buildTime"], [[edit, edit.read, void 0, type.objectRef("EveSOFDataMgr")], 16, "dataMgr"], [[edit, edit.readwrite, type, type.boolean], 16, "editorMode"], [[carbon, carbon.method, impl, impl.implemented], 18, "LoadData"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateDna"], [[carbon, carbon.method, impl, impl.adapted], 18, "GetDnaVisibilityGroups"], [[carbon, carbon.method, impl, impl.implemented], 18, "ValidateDNA"], [[carbon, carbon.method, impl, impl.implemented], 18, "Build"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Runtime SOF remains Trinity-free, so Carbon's live EveSpaceObject2 mutation is performed through the caller-supplied model-values contract.")], 18, "BuildChild"], [[impl, impl.custom, void 0, impl.reason("Provides the immutable values form needed to compose a modular graph before optional Trinity hydration.")], 18, "BuildChildValues"], [[carbon, carbon.method, impl, impl.adapted], 18, "PlanLayoutFromDNA"], [[carbon, carbon.method, impl, impl.implemented], 18, "BuildFromDNA"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupExtensionBuild"], [[carbon, carbon.method, impl, impl.implemented], 18, "CreateMesh"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupShaders"], [[carbon, carbon.method, impl, impl.implemented], 18, "FillMeshAreaVector"], [[carbon, carbon.method, impl, impl.implemented], 18, "GenerateDepthFromAreaVector"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupCustomMask"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupDecalSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupImpactEffects"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupEffects"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupChildrenAndAnimations"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupEffectChildren"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupAudio"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupControllers"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupModelCurves"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupInstancedMeshes"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateInstancedMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupLayout"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateSharedLayoutAreas"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateLayoutInstancedMesh"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupBoosters"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupChildBoosters"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupAttachments"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupSpriteSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupSpotlightSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupPlaneSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupSpriteLineSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupHazeSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupBanners"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupBannerSets"], [[carbon, carbon.method, impl, impl.adapted], 18, "SetupLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupLocators"], [[carbon, carbon.method, impl, impl.adapted], 18, "CreateArmorDamageEffect"], [[carbon, carbon.method, impl, impl.adapted], 18, "BuildHullLocalLocatorSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupLocatorSets"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupTurretMaterialFromFaction"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("SOF cannot import Trinity, so the Tr2Effect walk is delegated to the turret's ApplySofTurretMaterial; the faction value resolution is Carbon's.")], 18, "ApplyFactionToTurretShader"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupChildTurretMaterialFromFaction"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetupTurretMaterialFromDNA"]], 0, void 0, CjsModel));
129
129
  }
130
130
  allowFileCaching = (_initProto(this), _init_allowFileCaching(this, true));
131
131
 
@@ -867,7 +867,11 @@ class EveSOF extends CjsModel {
867
867
  decals: [],
868
868
  attachments: [],
869
869
  lights: [],
870
- animationUpdater: document.AddNode("Tr2GrannyAnimation", {})
870
+ animationUpdater: document.AddNode("Tr2GrannyAnimation", {}),
871
+ // The part owns its hull-local locators and, with damage locators,
872
+ // its own armour shader (Carbon EveSOF.cpp:395-399).
873
+ ownedLocatorSets: this.BuildHullLocalLocatorSets(document, dna),
874
+ armorDamageShader: dna.GetLocatorCount("damage") > 0 ? this.CreateArmorDamageEffect(document, dna) : null
871
875
  };
872
876
  this.SetupDecalSets(document, childFields, dna);
873
877
  this.SetupAttachments(document, childFields, dna, [identityMatrix()], false);
@@ -892,6 +896,10 @@ class EveSOF extends CjsModel {
892
896
  partTags: [partTag],
893
897
  sofHullName: this.editorMode ? dna.GetHullNames()[0] : "",
894
898
  sofLocatorSetName: "",
899
+ // Carbon EveSOF.cpp:450-470: the shared part carries its own
900
+ // locators and armour shader through AddMesh.
901
+ ownedLocatorSets: this.BuildHullLocalLocatorSets(document, dna),
902
+ armorDamageShader: dna.GetLocatorCount("damage") > 0 ? this.CreateArmorDamageEffect(document, dna) : null,
895
903
  display: true
896
904
  }));
897
905
  }
@@ -930,7 +938,8 @@ class EveSOF extends CjsModel {
930
938
  if (!rootFields.impactOverlay) {
931
939
  this.SetupImpactEffects(document, rootFields, dna);
932
940
  }
933
- this.SetupLocatorSets(document, rootFields, dna, [transform], partTag);
941
+ // No SetupLocatorSets here: the part's locators travel with its child and
942
+ // the object merges them (Carbon removed the call in trinity 108ab454).
934
943
  this.SetupLayout(document, rootFields, dna, {
935
944
  ...(layoutOptions ?? {}),
936
945
  offsets: [transform]
@@ -3099,13 +3108,34 @@ class EveSOF extends CjsModel {
3099
3108
 
3100
3109
  /**
3101
3110
  * Overwrites turret shader constants or vector parameters with the
3102
- * primary-area material selected by a faction catalog entry.
3111
+ * turret-area material selected by a faction catalog entry (Carbon
3112
+ * EveSOF.cpp:4260-4269).
3103
3113
  */
3104
3114
  SetupTurretMaterialFromFaction(turretSet, factionName) {
3105
3115
  const factionData = this.dataMgr.GetFactionData(factionName);
3106
3116
  if (!factionData) return;
3107
- const genericData = this.dataMgr.GetGenericData();
3108
- turretSet.ApplySofTurretMaterial(parameterName => findTurretFactionParameter(this.dataMgr, genericData, factionData, parameterName));
3117
+ this.ApplyFactionToTurretShader(turretSet, this.dataMgr.GetGenericData(), factionData);
3118
+ }
3119
+
3120
+ /**
3121
+ * Overrides turret shader parameters with a faction's turret-area material
3122
+ * (Carbon EveSOF.cpp:4201-4254). Carbon receives the Tr2Effect; here the
3123
+ * turret that owns the effects receives the resolved values, because SOF
3124
+ * cannot import the Trinity layer that walks a Tr2Effect.
3125
+ * @param {Object} turret - an EveTurretSet or EveChildTurret
3126
+ */
3127
+ ApplyFactionToTurretShader(turret, genericData, factionData) {
3128
+ turret.ApplySofTurretMaterial(parameterName => findTurretFactionParameter(this.dataMgr, genericData, factionData, parameterName));
3129
+ }
3130
+
3131
+ /**
3132
+ * Applies a faction's turret-area material to every opaque area of a child
3133
+ * turret's mesh (Carbon EveSOF.cpp:4271-4298).
3134
+ */
3135
+ SetupChildTurretMaterialFromFaction(childTurret, factionName) {
3136
+ const factionData = this.dataMgr.GetFactionData(factionName);
3137
+ if (!childTurret || !factionData) return;
3138
+ this.ApplyFactionToTurretShader(childTurret, this.dataMgr.GetGenericData(), factionData);
3109
3139
  }
3110
3140
 
3111
3141
  /**
@@ -3129,7 +3159,9 @@ function findTurretFactionParameter(dataMgr, genericData, factionData, parameter
3129
3159
  const usageIndex = Number(factionData.materialUsageList?.[materialIndex] ?? materialIndex);
3130
3160
  info.ChangeMaterialIdx(genericData, usageIndex);
3131
3161
  }
3132
- return findTurretAreaParameter(dataMgr, factionData.colorData?.colors ?? [], factionData.areaMaterials, _EveSOFDataArea.AreaType.TYPE_PRIMARY, info);
3162
+ // Carbon EveSOF.cpp:4223 and :4243 read the generic turret area type
3163
+ // (default TYPE_PRIMARY) since trinity bc9cb374.
3164
+ return findTurretAreaParameter(dataMgr, factionData.colorData?.colors ?? [], factionData.areaMaterials, Number(genericData?.turretAreaType ?? _EveSOFDataArea.AreaType.TYPE_PRIMARY), info);
3133
3165
  }
3134
3166
  function findTurretAreaParameter(dataMgr, colors, areaMaterials, areaType, info) {
3135
3167
  if (!areaMaterials) return null;