@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,332 +0,0 @@
1
- import { validateRgbaPayload } from '../format/payloadContract.js';
2
- import { PixelFormat as PixelFormat$1 } from '#consts/graphics';
3
- import { PixelFormat } from '#consts/render-context';
4
-
5
- // Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipeline.cpp
6
- // Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepLoad.cpp
7
- // Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepLimitSize.cpp
8
- // Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepCompress.cpp
9
- // Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepPack.cpp
10
- const STEP_LOAD = "Tr2TexturePipelineStepLoad";
11
- const STEP_LIMIT_SIZE = "Tr2TexturePipelineStepLimitSize";
12
- const STEP_COMPRESS = "Tr2TexturePipelineStepCompress";
13
- const STEP_PACK = "Tr2TexturePipelineStepPack";
14
- const PACK_FORMATS = new Set([PixelFormat.PIXEL_FORMAT_R8_UNORM, PixelFormat.PIXEL_FORMAT_B8G8R8A8_UNORM, PixelFormat.PIXEL_FORMAT_B8G8R8X8_UNORM]);
15
-
16
- /**
17
- * Collect Carbon texture-pipeline dependencies in std::set-equivalent order.
18
- *
19
- * @param {object[]} steps Pipeline steps.
20
- * @returns {string[]} Sorted unique resource paths.
21
- */
22
- function getTexturePipelineDependencies(steps) {
23
- const dependencies = new Set();
24
- for (const step of assertSteps(steps)) {
25
- const name = stepName(step);
26
- if (name === STEP_LOAD) {
27
- addDependency(dependencies, step.path);
28
- } else if (name === STEP_PACK) {
29
- // Carbon calls the step's own virtual (ITr2TexturePipelineStep); a raw
30
- // values object without the class still contributes its paths.
31
- if (typeof step.GetResourceDependencies === "function") {
32
- step.GetResourceDependencies(dependencies);
33
- } else {
34
- addDependency(dependencies, step.r?.path);
35
- addDependency(dependencies, step.g?.path);
36
- addDependency(dependencies, step.b?.path);
37
- addDependency(dependencies, step.a?.path);
38
- }
39
- }
40
- }
41
- return [...dependencies].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
42
- }
43
-
44
- /**
45
- * Execute the maintained JavaScript form of Carbon's CPU bitmap pipeline.
46
- *
47
- * @param {object[]} steps Pipeline steps.
48
- * @param {{maxWidth:number,maxHeight:number}} params Caller size limits.
49
- * @param {object|null} options Input resolution options.
50
- * @returns {Promise<object>} Canonical RGBA payload.
51
- */
52
- async function executeTexturePipeline(steps, params, options = null) {
53
- const list = assertSteps(steps);
54
- if (!list.length) {
55
- throw pipelineError("CJS_TEXTURE_PIPELINE_NO_STEPS", "Tr2TexturePipeline has no steps.");
56
- }
57
- const limits = {
58
- maxWidth: assertLimit(params?.maxWidth, "maxWidth"),
59
- maxHeight: assertLimit(params?.maxHeight, "maxHeight")
60
- };
61
- const settings = normalizeOptions(options);
62
- const inputs = new Map();
63
- for (const path of getTexturePipelineDependencies(list)) {
64
- inputs.set(path, await resolveInput(path, settings));
65
- }
66
- let bitmap = null;
67
- for (const step of list) {
68
- const name = stepName(step);
69
- if (name === STEP_LOAD) {
70
- bitmap = cloneBitmap(requireInput(inputs, step.path));
71
- } else if (name === STEP_LIMIT_SIZE) {
72
- bitmap = limitBitmap(requireBitmap(bitmap), combineLimits(step, limits));
73
- } else if (name === STEP_COMPRESS) {
74
- // Carbon's current implementation validates the bitmap and otherwise
75
- // performs no compression work.
76
- requireBitmap(bitmap);
77
- } else if (name === STEP_PACK) {
78
- bitmap = packBitmap(step, inputs);
79
- } else {
80
- throw pipelineError("CJS_TEXTURE_PIPELINE_STEP_UNSUPPORTED", `Unsupported texture pipeline step: ${name || "unknown"}.`);
81
- }
82
- }
83
- bitmap = limitBitmap(requireBitmap(bitmap), limits);
84
- return toPayload(bitmap);
85
- }
86
- function assertSteps(steps) {
87
- if (!Array.isArray(steps)) {
88
- throw new TypeError("Tr2TexturePipeline.steps must be an array.");
89
- }
90
- return steps;
91
- }
92
- function assertLimit(value, name) {
93
- if (!Number.isSafeInteger(value) || value < 0) {
94
- throw new TypeError(`Tr2TexturePipeline ${name} must be a non-negative safe integer.`);
95
- }
96
- return value;
97
- }
98
- function normalizeOptions(options) {
99
- if (options === null || options === undefined) {
100
- return {};
101
- }
102
- if (!options || typeof options !== "object" || Array.isArray(options)) {
103
- throw new TypeError("Tr2TexturePipeline options must be an object or null.");
104
- }
105
- if (options.load !== undefined && typeof options.load !== "function") {
106
- throw new TypeError("Tr2TexturePipeline options.load must be a function.");
107
- }
108
- if (options.resMan !== undefined && typeof options.resMan?.GetObject !== "function") {
109
- throw new TypeError("Tr2TexturePipeline options.resMan must provide GetObject().");
110
- }
111
- return options;
112
- }
113
- async function resolveInput(path, options) {
114
- let value;
115
- if (options.inputs instanceof Map) {
116
- value = options.inputs.get(path);
117
- } else if (options.inputs && typeof options.inputs === "object") {
118
- value = options.inputs[path];
119
- }
120
- if (value === undefined && options.load) {
121
- value = await options.load(path);
122
- }
123
- if (value === undefined && options.resMan) {
124
- value = await options.resMan.GetObject(path, {
125
- ...(options.resourceOptions || {}),
126
- requirement: "image",
127
- emit: "rgba"
128
- });
129
- }
130
- if (value === undefined) {
131
- throw pipelineError("CJS_TEXTURE_PIPELINE_INPUT_MISSING", `No texture pipeline input was provided for ${path}.`);
132
- }
133
- const payload = typeof value?.GetPayload === "function" ? value.GetPayload() : value;
134
- validateRgbaPayload(payload);
135
- if (payload.pixelFormat !== PixelFormat$1.RGBA8_UNORM) {
136
- throw pipelineError("CJS_TEXTURE_PIPELINE_FORMAT_UNSUPPORTED", `Texture pipeline input ${path} must use rgba8unorm.`);
137
- }
138
- return fromPayload(payload);
139
- }
140
- function fromPayload(payload) {
141
- const data = new Uint8Array(payload.width * payload.height * 4);
142
- for (let y = 0; y < payload.height; y++) {
143
- const sourceOffset = y * payload.strideBytes;
144
- const targetOffset = y * payload.width * 4;
145
- data.set(payload.data.subarray(sourceOffset, sourceOffset + payload.width * 4), targetOffset);
146
- }
147
- return {
148
- width: payload.width,
149
- height: payload.height,
150
- data,
151
- sourceFormat: payload.sourceFormat || "rgba",
152
- colorSpace: payload.colorSpace,
153
- alphaMode: payload.alphaMode,
154
- metadata: payload.metadata || null
155
- };
156
- }
157
- function toPayload(bitmap) {
158
- return {
159
- payloadType: "rgba",
160
- sourceFormat: bitmap.sourceFormat || "texture-pipeline",
161
- width: bitmap.width,
162
- height: bitmap.height,
163
- pixelFormat: PixelFormat$1.RGBA8_UNORM,
164
- data: bitmap.data,
165
- strideBytes: bitmap.width * 4,
166
- origin: "top-left",
167
- colorSpace: bitmap.colorSpace || "unknown",
168
- alphaMode: bitmap.alphaMode || "unknown",
169
- ...(bitmap.metadata ? {
170
- metadata: bitmap.metadata
171
- } : {})
172
- };
173
- }
174
- function cloneBitmap(bitmap) {
175
- return {
176
- ...bitmap,
177
- data: new Uint8Array(bitmap.data),
178
- metadata: bitmap.metadata && typeof bitmap.metadata === "object" ? {
179
- ...bitmap.metadata
180
- } : bitmap.metadata
181
- };
182
- }
183
- function combineLimits(step, params) {
184
- return {
185
- maxWidth: tightestLimit(assertLimit(step.maxWidth ?? 0, "step.maxWidth"), params.maxWidth),
186
- maxHeight: tightestLimit(assertLimit(step.maxHeight ?? 0, "step.maxHeight"), params.maxHeight)
187
- };
188
- }
189
- function tightestLimit(first, second) {
190
- if (!first) return second;
191
- if (!second) return first;
192
- return Math.min(first, second);
193
- }
194
- function limitBitmap(bitmap, limits) {
195
- let result = bitmap;
196
- while (limits.maxWidth && result.width > limits.maxWidth || limits.maxHeight && result.height > limits.maxHeight) {
197
- result = downsample2x2(result);
198
- }
199
- return result;
200
- }
201
- function downsample2x2(bitmap) {
202
- const width = Math.max(1, Math.floor(bitmap.width / 2));
203
- const height = Math.max(1, Math.floor(bitmap.height / 2));
204
- const data = new Uint8Array(width * height * 4);
205
- for (let y = 0; y < height; y++) {
206
- for (let x = 0; x < width; x++) {
207
- const counts = [0, 0, 0, 0];
208
- let samples = 0;
209
- for (let oy = 0; oy < 2; oy++) {
210
- for (let ox = 0; ox < 2; ox++) {
211
- const sourceX = Math.min(bitmap.width - 1, x * 2 + ox);
212
- const sourceY = Math.min(bitmap.height - 1, y * 2 + oy);
213
- const source = (sourceY * bitmap.width + sourceX) * 4;
214
- for (let channel = 0; channel < 4; channel++) {
215
- counts[channel] += bitmap.data[source + channel];
216
- }
217
- samples++;
218
- }
219
- }
220
- const target = (y * width + x) * 4;
221
- for (let channel = 0; channel < 4; channel++) {
222
- data[target + channel] = Math.round(counts[channel] / samples);
223
- }
224
- }
225
- }
226
- return {
227
- ...bitmap,
228
- width,
229
- height,
230
- data
231
- };
232
- }
233
-
234
- /**
235
- * Carbon Tr2TexturePipelineStepPack::Execute + Pack (cpp:60-179, 182-215),
236
- * in this package's canonical single-mip RGBA form. Exported so the step
237
- * class's own Execute is the same body the pipeline dispatcher runs.
238
- */
239
- function packBitmap(step, inputs) {
240
- // The generated schema records the enum's zero value, while Carbon's
241
- // constructor initializes this step to B8G8R8A8_UNORM.
242
- const format = step.format === PixelFormat.PIXEL_FORMAT_UNKNOWN ? PixelFormat.PIXEL_FORMAT_B8G8R8A8_UNORM : step.format;
243
- if (!PACK_FORMATS.has(format)) {
244
- throw pipelineError("CJS_TEXTURE_PIPELINE_FORMAT_UNSUPPORTED", `Unsupported Carbon pack pixel format: ${String(format)}.`);
245
- }
246
- const descriptors = [step.r, step.g, step.b, step.a];
247
- const sources = descriptors.map(channel => channel?.path ? requireInput(inputs, channel.path) : null);
248
- const first = sources.find(Boolean);
249
- const width = first?.width || 4;
250
- const height = first?.height || 4;
251
- for (const source of sources) {
252
- if (source && (source.width !== width || source.height !== height)) {
253
- throw pipelineError("CJS_TEXTURE_PIPELINE_SIZE_MISMATCH", "Texture pipeline pack inputs must have identical dimensions.");
254
- }
255
- }
256
- const data = new Uint8Array(width * height * 4);
257
- const isR8 = format === PixelFormat.PIXEL_FORMAT_R8_UNORM;
258
- const isX8 = format === PixelFormat.PIXEL_FORMAT_B8G8R8X8_UNORM;
259
- for (let pixel = 0; pixel < width * height; pixel++) {
260
- const values = descriptors.map((channel, index) => readPackChannel(sources[index], channel, pixel));
261
- const target = pixel * 4;
262
- if (isR8) {
263
- data[target] = values[0];
264
- data[target + 3] = 255;
265
- } else {
266
- data[target] = values[0];
267
- data[target + 1] = values[1];
268
- data[target + 2] = values[2];
269
- data[target + 3] = isX8 ? 255 : values[3];
270
- }
271
- }
272
- return {
273
- width,
274
- height,
275
- data,
276
- sourceFormat: "texture-pipeline",
277
- colorSpace: first?.colorSpace || "unknown",
278
- alphaMode: isX8 || isR8 ? "opaque" : "unknown",
279
- metadata: {
280
- carbonPixelFormat: format
281
- }
282
- };
283
- }
284
- function readPackChannel(source, descriptor, pixel) {
285
- if (!source) {
286
- return assertByte(descriptor?.fill ?? 0, "fill");
287
- }
288
- const channel = assertByte(descriptor?.channel ?? 0, "channel");
289
- if (channel > 3) {
290
- throw new RangeError("Tr2TexturePackChannel.channel must be between 0 and 3.");
291
- }
292
- // Carbon's exposed chooser encodes RED=2 and BLUE=0 for BGRA host
293
- // bitmaps. Translate those values to this package's canonical RGBA input.
294
- const rgbaChannel = channel === 0 ? 2 : channel === 2 ? 0 : channel;
295
- return source.data[pixel * 4 + rgbaChannel];
296
- }
297
- function assertByte(value, name) {
298
- if (!Number.isInteger(value) || value < 0 || value > 255) {
299
- throw new RangeError(`Tr2TexturePackChannel.${name} must be an integer from 0 to 255.`);
300
- }
301
- return value;
302
- }
303
- function requireInput(inputs, path) {
304
- const value = inputs.get(String(path || ""));
305
- if (!value) {
306
- throw pipelineError("CJS_TEXTURE_PIPELINE_INPUT_MISSING", `Texture pipeline input is unavailable: ${String(path || "")}.`);
307
- }
308
- return value;
309
- }
310
- function requireBitmap(bitmap) {
311
- if (!bitmap) {
312
- throw pipelineError("CJS_TEXTURE_PIPELINE_BITMAP_INVALID", "Texture pipeline step requires a valid input bitmap.");
313
- }
314
- return bitmap;
315
- }
316
- function addDependency(dependencies, value) {
317
- const path = String(value || "");
318
- if (path) {
319
- dependencies.add(path);
320
- }
321
- }
322
- function stepName(step) {
323
- return step?.constructor?.name || step?.className || "";
324
- }
325
- function pipelineError(code, message) {
326
- const error = new Error(message);
327
- error.code = code;
328
- return error;
329
- }
330
-
331
- export { executeTexturePipeline, getTexturePipelineDependencies, packBitmap };
332
- //# sourceMappingURL=texturePipelineBehavior.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"texturePipelineBehavior.js","sources":["../../../../src/resource/texture/texturePipelineBehavior.js"],"sourcesContent":["// Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipeline.cpp\r\n// Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepLoad.cpp\r\n// Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepLimitSize.cpp\r\n// Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepCompress.cpp\r\n// Source: trinity/trinity/Resources/TexturePipeline/Tr2TexturePipelineStepPack.cpp\r\nimport { validateRgbaPayload } from \"../format/payloadContract.js\";\r\nimport { PixelFormat as PayloadPixelFormat } from \"#consts/graphics\";\r\nimport { PixelFormat as CarbonPixelFormat } from \"#consts/render-context\";\r\n\r\nconst STEP_LOAD = \"Tr2TexturePipelineStepLoad\";\r\nconst STEP_LIMIT_SIZE = \"Tr2TexturePipelineStepLimitSize\";\r\nconst STEP_COMPRESS = \"Tr2TexturePipelineStepCompress\";\r\nconst STEP_PACK = \"Tr2TexturePipelineStepPack\";\r\nconst PACK_FORMATS = new Set([\r\n CarbonPixelFormat.PIXEL_FORMAT_R8_UNORM,\r\n CarbonPixelFormat.PIXEL_FORMAT_B8G8R8A8_UNORM,\r\n CarbonPixelFormat.PIXEL_FORMAT_B8G8R8X8_UNORM\r\n]);\r\n\r\n/**\r\n * Collect Carbon texture-pipeline dependencies in std::set-equivalent order.\r\n *\r\n * @param {object[]} steps Pipeline steps.\r\n * @returns {string[]} Sorted unique resource paths.\r\n */\r\nexport function getTexturePipelineDependencies(steps)\r\n{\r\n const dependencies = new Set();\r\n for (const step of assertSteps(steps))\r\n {\r\n const name = stepName(step);\r\n if (name === STEP_LOAD)\r\n {\r\n addDependency(dependencies, step.path);\r\n }\r\n else if (name === STEP_PACK)\r\n {\r\n // Carbon calls the step's own virtual (ITr2TexturePipelineStep); a raw\r\n // values object without the class still contributes its paths.\r\n if (typeof step.GetResourceDependencies === \"function\")\r\n {\r\n step.GetResourceDependencies(dependencies);\r\n }\r\n else\r\n {\r\n addDependency(dependencies, step.r?.path);\r\n addDependency(dependencies, step.g?.path);\r\n addDependency(dependencies, step.b?.path);\r\n addDependency(dependencies, step.a?.path);\r\n }\r\n }\r\n }\r\n return [ ...dependencies ].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);\r\n}\r\n\r\n/**\r\n * Execute the maintained JavaScript form of Carbon's CPU bitmap pipeline.\r\n *\r\n * @param {object[]} steps Pipeline steps.\r\n * @param {{maxWidth:number,maxHeight:number}} params Caller size limits.\r\n * @param {object|null} options Input resolution options.\r\n * @returns {Promise<object>} Canonical RGBA payload.\r\n */\r\nexport async function executeTexturePipeline(steps, params, options = null)\r\n{\r\n const list = assertSteps(steps);\r\n if (!list.length)\r\n {\r\n throw pipelineError(\"CJS_TEXTURE_PIPELINE_NO_STEPS\", \"Tr2TexturePipeline has no steps.\");\r\n }\r\n const limits = {\r\n maxWidth: assertLimit(params?.maxWidth, \"maxWidth\"),\r\n maxHeight: assertLimit(params?.maxHeight, \"maxHeight\")\r\n };\r\n const settings = normalizeOptions(options);\r\n const inputs = new Map();\r\n for (const path of getTexturePipelineDependencies(list))\r\n {\r\n inputs.set(path, await resolveInput(path, settings));\r\n }\r\n\r\n let bitmap = null;\r\n for (const step of list)\r\n {\r\n const name = stepName(step);\r\n if (name === STEP_LOAD)\r\n {\r\n bitmap = cloneBitmap(requireInput(inputs, step.path));\r\n }\r\n else if (name === STEP_LIMIT_SIZE)\r\n {\r\n bitmap = limitBitmap(requireBitmap(bitmap), combineLimits(step, limits));\r\n }\r\n else if (name === STEP_COMPRESS)\r\n {\r\n // Carbon's current implementation validates the bitmap and otherwise\r\n // performs no compression work.\r\n requireBitmap(bitmap);\r\n }\r\n else if (name === STEP_PACK)\r\n {\r\n bitmap = packBitmap(step, inputs);\r\n }\r\n else\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_STEP_UNSUPPORTED\",\r\n `Unsupported texture pipeline step: ${name || \"unknown\"}.`\r\n );\r\n }\r\n }\r\n\r\n bitmap = limitBitmap(requireBitmap(bitmap), limits);\r\n return toPayload(bitmap);\r\n}\r\n\r\nfunction assertSteps(steps)\r\n{\r\n if (!Array.isArray(steps))\r\n {\r\n throw new TypeError(\"Tr2TexturePipeline.steps must be an array.\");\r\n }\r\n return steps;\r\n}\r\n\r\nfunction assertLimit(value, name)\r\n{\r\n if (!Number.isSafeInteger(value) || value < 0)\r\n {\r\n throw new TypeError(`Tr2TexturePipeline ${name} must be a non-negative safe integer.`);\r\n }\r\n return value;\r\n}\r\n\r\nfunction normalizeOptions(options)\r\n{\r\n if (options === null || options === undefined)\r\n {\r\n return {};\r\n }\r\n if (!options || typeof options !== \"object\" || Array.isArray(options))\r\n {\r\n throw new TypeError(\"Tr2TexturePipeline options must be an object or null.\");\r\n }\r\n if (options.load !== undefined && typeof options.load !== \"function\")\r\n {\r\n throw new TypeError(\"Tr2TexturePipeline options.load must be a function.\");\r\n }\r\n if (options.resMan !== undefined && typeof options.resMan?.GetObject !== \"function\")\r\n {\r\n throw new TypeError(\"Tr2TexturePipeline options.resMan must provide GetObject().\");\r\n }\r\n return options;\r\n}\r\n\r\nasync function resolveInput(path, options)\r\n{\r\n let value;\r\n if (options.inputs instanceof Map)\r\n {\r\n value = options.inputs.get(path);\r\n }\r\n else if (options.inputs && typeof options.inputs === \"object\")\r\n {\r\n value = options.inputs[path];\r\n }\r\n if (value === undefined && options.load)\r\n {\r\n value = await options.load(path);\r\n }\r\n if (value === undefined && options.resMan)\r\n {\r\n value = await options.resMan.GetObject(path, {\r\n ...(options.resourceOptions || {}),\r\n requirement: \"image\",\r\n emit: \"rgba\"\r\n });\r\n }\r\n if (value === undefined)\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_INPUT_MISSING\",\r\n `No texture pipeline input was provided for ${path}.`\r\n );\r\n }\r\n const payload = typeof value?.GetPayload === \"function\" ? value.GetPayload() : value;\r\n validateRgbaPayload(payload);\r\n if (payload.pixelFormat !== PayloadPixelFormat.RGBA8_UNORM)\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_FORMAT_UNSUPPORTED\",\r\n `Texture pipeline input ${path} must use rgba8unorm.`\r\n );\r\n }\r\n return fromPayload(payload);\r\n}\r\n\r\nfunction fromPayload(payload)\r\n{\r\n const data = new Uint8Array(payload.width * payload.height * 4);\r\n for (let y = 0; y < payload.height; y++)\r\n {\r\n const sourceOffset = y * payload.strideBytes;\r\n const targetOffset = y * payload.width * 4;\r\n data.set(payload.data.subarray(sourceOffset, sourceOffset + payload.width * 4), targetOffset);\r\n }\r\n return {\r\n width: payload.width,\r\n height: payload.height,\r\n data,\r\n sourceFormat: payload.sourceFormat || \"rgba\",\r\n colorSpace: payload.colorSpace,\r\n alphaMode: payload.alphaMode,\r\n metadata: payload.metadata || null\r\n };\r\n}\r\n\r\nfunction toPayload(bitmap)\r\n{\r\n return {\r\n payloadType: \"rgba\",\r\n sourceFormat: bitmap.sourceFormat || \"texture-pipeline\",\r\n width: bitmap.width,\r\n height: bitmap.height,\r\n pixelFormat: PayloadPixelFormat.RGBA8_UNORM,\r\n data: bitmap.data,\r\n strideBytes: bitmap.width * 4,\r\n origin: \"top-left\",\r\n colorSpace: bitmap.colorSpace || \"unknown\",\r\n alphaMode: bitmap.alphaMode || \"unknown\",\r\n ...(bitmap.metadata ? { metadata: bitmap.metadata } : {})\r\n };\r\n}\r\n\r\nfunction cloneBitmap(bitmap)\r\n{\r\n return {\r\n ...bitmap,\r\n data: new Uint8Array(bitmap.data),\r\n metadata: bitmap.metadata && typeof bitmap.metadata === \"object\"\r\n ? { ...bitmap.metadata }\r\n : bitmap.metadata\r\n };\r\n}\r\n\r\nfunction combineLimits(step, params)\r\n{\r\n return {\r\n maxWidth: tightestLimit(assertLimit(step.maxWidth ?? 0, \"step.maxWidth\"), params.maxWidth),\r\n maxHeight: tightestLimit(assertLimit(step.maxHeight ?? 0, \"step.maxHeight\"), params.maxHeight)\r\n };\r\n}\r\n\r\nfunction tightestLimit(first, second)\r\n{\r\n if (!first) return second;\r\n if (!second) return first;\r\n return Math.min(first, second);\r\n}\r\n\r\nfunction limitBitmap(bitmap, limits)\r\n{\r\n let result = bitmap;\r\n while ((limits.maxWidth && result.width > limits.maxWidth)\r\n || (limits.maxHeight && result.height > limits.maxHeight))\r\n {\r\n result = downsample2x2(result);\r\n }\r\n return result;\r\n}\r\n\r\nfunction downsample2x2(bitmap)\r\n{\r\n const width = Math.max(1, Math.floor(bitmap.width / 2));\r\n const height = Math.max(1, Math.floor(bitmap.height / 2));\r\n const data = new Uint8Array(width * height * 4);\r\n for (let y = 0; y < height; y++)\r\n {\r\n for (let x = 0; x < width; x++)\r\n {\r\n const counts = [ 0, 0, 0, 0 ];\r\n let samples = 0;\r\n for (let oy = 0; oy < 2; oy++)\r\n {\r\n for (let ox = 0; ox < 2; ox++)\r\n {\r\n const sourceX = Math.min(bitmap.width - 1, x * 2 + ox);\r\n const sourceY = Math.min(bitmap.height - 1, y * 2 + oy);\r\n const source = (sourceY * bitmap.width + sourceX) * 4;\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n counts[channel] += bitmap.data[source + channel];\r\n }\r\n samples++;\r\n }\r\n }\r\n const target = (y * width + x) * 4;\r\n for (let channel = 0; channel < 4; channel++)\r\n {\r\n data[target + channel] = Math.round(counts[channel] / samples);\r\n }\r\n }\r\n }\r\n return { ...bitmap, width, height, data };\r\n}\r\n\r\n/**\r\n * Carbon Tr2TexturePipelineStepPack::Execute + Pack (cpp:60-179, 182-215),\r\n * in this package's canonical single-mip RGBA form. Exported so the step\r\n * class's own Execute is the same body the pipeline dispatcher runs.\r\n */\r\nexport function packBitmap(step, inputs)\r\n{\r\n // The generated schema records the enum's zero value, while Carbon's\r\n // constructor initializes this step to B8G8R8A8_UNORM.\r\n const format = step.format === CarbonPixelFormat.PIXEL_FORMAT_UNKNOWN\r\n ? CarbonPixelFormat.PIXEL_FORMAT_B8G8R8A8_UNORM\r\n : step.format;\r\n if (!PACK_FORMATS.has(format))\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_FORMAT_UNSUPPORTED\",\r\n `Unsupported Carbon pack pixel format: ${String(format)}.`\r\n );\r\n }\r\n const descriptors = [ step.r, step.g, step.b, step.a ];\r\n const sources = descriptors.map(channel => channel?.path\r\n ? requireInput(inputs, channel.path)\r\n : null);\r\n const first = sources.find(Boolean);\r\n const width = first?.width || 4;\r\n const height = first?.height || 4;\r\n for (const source of sources)\r\n {\r\n if (source && (source.width !== width || source.height !== height))\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_SIZE_MISMATCH\",\r\n \"Texture pipeline pack inputs must have identical dimensions.\"\r\n );\r\n }\r\n }\r\n\r\n const data = new Uint8Array(width * height * 4);\r\n const isR8 = format === CarbonPixelFormat.PIXEL_FORMAT_R8_UNORM;\r\n const isX8 = format === CarbonPixelFormat.PIXEL_FORMAT_B8G8R8X8_UNORM;\r\n for (let pixel = 0; pixel < width * height; pixel++)\r\n {\r\n const values = descriptors.map((channel, index) => readPackChannel(\r\n sources[index],\r\n channel,\r\n pixel\r\n ));\r\n const target = pixel * 4;\r\n if (isR8)\r\n {\r\n data[target] = values[0];\r\n data[target + 3] = 255;\r\n }\r\n else\r\n {\r\n data[target] = values[0];\r\n data[target + 1] = values[1];\r\n data[target + 2] = values[2];\r\n data[target + 3] = isX8 ? 255 : values[3];\r\n }\r\n }\r\n return {\r\n width,\r\n height,\r\n data,\r\n sourceFormat: \"texture-pipeline\",\r\n colorSpace: first?.colorSpace || \"unknown\",\r\n alphaMode: isX8 || isR8 ? \"opaque\" : \"unknown\",\r\n metadata: { carbonPixelFormat: format }\r\n };\r\n}\r\n\r\nfunction readPackChannel(source, descriptor, pixel)\r\n{\r\n if (!source)\r\n {\r\n return assertByte(descriptor?.fill ?? 0, \"fill\");\r\n }\r\n const channel = assertByte(descriptor?.channel ?? 0, \"channel\");\r\n if (channel > 3)\r\n {\r\n throw new RangeError(\"Tr2TexturePackChannel.channel must be between 0 and 3.\");\r\n }\r\n // Carbon's exposed chooser encodes RED=2 and BLUE=0 for BGRA host\r\n // bitmaps. Translate those values to this package's canonical RGBA input.\r\n const rgbaChannel = channel === 0 ? 2 : channel === 2 ? 0 : channel;\r\n return source.data[pixel * 4 + rgbaChannel];\r\n}\r\n\r\nfunction assertByte(value, name)\r\n{\r\n if (!Number.isInteger(value) || value < 0 || value > 255)\r\n {\r\n throw new RangeError(`Tr2TexturePackChannel.${name} must be an integer from 0 to 255.`);\r\n }\r\n return value;\r\n}\r\n\r\nfunction requireInput(inputs, path)\r\n{\r\n const value = inputs.get(String(path || \"\"));\r\n if (!value)\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_INPUT_MISSING\",\r\n `Texture pipeline input is unavailable: ${String(path || \"\")}.`\r\n );\r\n }\r\n return value;\r\n}\r\n\r\nfunction requireBitmap(bitmap)\r\n{\r\n if (!bitmap)\r\n {\r\n throw pipelineError(\r\n \"CJS_TEXTURE_PIPELINE_BITMAP_INVALID\",\r\n \"Texture pipeline step requires a valid input bitmap.\"\r\n );\r\n }\r\n return bitmap;\r\n}\r\n\r\nfunction addDependency(dependencies, value)\r\n{\r\n const path = String(value || \"\");\r\n if (path)\r\n {\r\n dependencies.add(path);\r\n }\r\n}\r\n\r\nfunction stepName(step)\r\n{\r\n return step?.constructor?.name || step?.className || \"\";\r\n}\r\n\r\nfunction pipelineError(code, message)\r\n{\r\n const error = new Error(message);\r\n error.code = code;\r\n return error;\r\n}\r\n"],"names":["STEP_LOAD","STEP_LIMIT_SIZE","STEP_COMPRESS","STEP_PACK","PACK_FORMATS","Set","CarbonPixelFormat","PIXEL_FORMAT_R8_UNORM","PIXEL_FORMAT_B8G8R8A8_UNORM","PIXEL_FORMAT_B8G8R8X8_UNORM","getTexturePipelineDependencies","steps","dependencies","step","assertSteps","name","stepName","addDependency","path","GetResourceDependencies","r","g","b","a","sort","executeTexturePipeline","params","options","list","length","pipelineError","limits","maxWidth","assertLimit","maxHeight","settings","normalizeOptions","inputs","Map","set","resolveInput","bitmap","cloneBitmap","requireInput","limitBitmap","requireBitmap","combineLimits","packBitmap","toPayload","Array","isArray","TypeError","value","Number","isSafeInteger","undefined","load","resMan","GetObject","get","resourceOptions","requirement","emit","payload","GetPayload","validateRgbaPayload","pixelFormat","PayloadPixelFormat","RGBA8_UNORM","fromPayload","data","Uint8Array","width","height","y","sourceOffset","strideBytes","targetOffset","subarray","sourceFormat","colorSpace","alphaMode","metadata","payloadType","origin","tightestLimit","first","second","Math","min","result","downsample2x2","max","floor","x","counts","samples","oy","ox","sourceX","sourceY","source","channel","target","round","format","PIXEL_FORMAT_UNKNOWN","has","String","descriptors","sources","map","find","Boolean","isR8","isX8","pixel","values","index","readPackChannel","carbonPixelFormat","descriptor","assertByte","fill","RangeError","rgbaChannel","isInteger","add","constructor","className","code","message","error","Error"],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { applyDecs2311 as _applyDecs2311 } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
- import { carbon, impl, type } from '#schema';
3
- import { CjsModel } from '#model';
4
-
5
- let _initProto, _initClass, _init_texture, _init_extra_texture, _init_onTextureChange, _init_extra_onTextureChange;
6
-
7
- /** Models Carbon's reference-counted texture holder and its texture-change notification surface. */
8
- let _Tr2TextureReference;
9
- class Tr2TextureReference extends CjsModel {
10
- static {
11
- ({
12
- e: [_init_texture, _init_extra_texture, _init_onTextureChange, _init_extra_onTextureChange, _initProto],
13
- c: [_Tr2TextureReference, _initClass]
14
- } = _applyDecs2311(this, [type.define({
15
- className: "Tr2TextureReference",
16
- family: "trinityCore",
17
- purpose: "Models Carbon's reference-counted texture holder and its texture-change notification surface."
18
- })], [[type.rawStruct("Tr2TextureAL"), 0, "texture"], [type.rawStruct("OnTextureChangeEvent"), 0, "onTextureChange"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "Save"]], 0, void 0, CjsModel));
19
- }
20
- constructor(...args) {
21
- super(...args);
22
- _init_extra_onTextureChange(this);
23
- }
24
- /** m_texture (Tr2TextureAL) */
25
- texture = (_initProto(this), _init_texture(this, null));
26
-
27
- /** m_onTextureChange (OnTextureChangeEvent) */
28
- onTextureChange = (_init_extra_texture(this), _init_onTextureChange(this, null));
29
-
30
- /** Carbon method Save (MAP_METHOD_AND_WRAP). */
31
- Save(...args) {
32
- throw new Error("Tr2TextureReference.Save is not implemented in CarbonEngineJS.");
33
- }
34
- static {
35
- _initClass();
36
- }
37
- }
38
-
39
- export { _Tr2TextureReference as Tr2TextureReference };
40
- //# sourceMappingURL=Tr2TextureReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2TextureReference.js","sources":["../../../../../src/trinity/generated/trinityCore/Tr2TextureReference.js"],"sourcesContent":["// Source: trinity/trinity/Tr2TextureReference.h\n// Generated by format-carbon carbon-class --emit. Verify against trinityCore/Tr2TextureReference.json.\r\nimport { carbon, impl, type } from \"#schema\";\r\nimport { CjsModel } from \"#model\";\r\n\r\n/** Models Carbon's reference-counted texture holder and its texture-change notification surface. */\n@type.define({ className: \"Tr2TextureReference\", family: \"trinityCore\", purpose: \"Models Carbon's reference-counted texture holder and its texture-change notification surface.\" })\r\nexport class Tr2TextureReference extends CjsModel\r\n{\r\n\r\n /** m_texture (Tr2TextureAL) */\r\n @type.rawStruct(\"Tr2TextureAL\")\r\n texture = null;\r\n\r\n /** m_onTextureChange (OnTextureChangeEvent) */\r\n @type.rawStruct(\"OnTextureChangeEvent\")\r\n onTextureChange = null;\r\n\r\n /** Carbon method Save (MAP_METHOD_AND_WRAP). */\r\n @carbon.method\r\n @impl.notImplemented\r\n Save(...args)\r\n {\r\n throw new Error(\"Tr2TextureReference.Save is not implemented in CarbonEngineJS.\");\r\n }\r\n\r\n}\r\n"],"names":["_Tr2TextureReference","Tr2TextureReference","CjsModel","e","_init_texture","_init_extra_texture","_init_onTextureChange","_init_extra_onTextureChange","_initProto","c","_initClass","_applyDecs","type","define","className","family","purpose","rawStruct","carbon","method","impl","notImplemented","constructor","args","texture","onTextureChange","Save","Error"],"mappings":";;;;;;AAKA;AAAA,IAAAA;AACA,MAAAC,mBAAA,SACyCC,QAAQ,CACjD;AAAA,EAAA;AAAA,IAAA,CAAA;MAAAC,CAAA,EAAA,CAAAC,aAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,2BAAA,EAAAC,UAAA,CAAA;MAAAC,CAAA,EAAA,CAAAT,oBAAA,EAAAU,UAAA;AAAA,KAAA,GAAAC,cAAA,CAAA,IAAA,EAAA,CAFCC,IAAI,CAACC,MAAM,CAAC;AAAEC,MAAAA,SAAS,EAAE,qBAAqB;AAAEC,MAAAA,MAAM,EAAE,aAAa;AAAEC,MAAAA,OAAO,EAAE;AAAgG,KAAC,CAAC,CAAA,EAAA,CAAA,CAKhLJ,IAAI,CAACK,SAAS,CAAC,cAAc,CAAC,EAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAI9BL,IAAI,CAACK,SAAS,CAAC,sBAAsB,CAAC,EAAA,CAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAItCC,MAAM,EAANA,MAAM,CAACC,MAAM,EACbC,IAAI,EAAJA,IAAI,CAACC,cAAc,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,EAbmBnB,QAAQ,CAAA;AAAA;AAAAoB,EAAAA,WAAAA,CAAA,GAAAC,IAAA,EAAA;AAAA,IAAA,KAAA,CAAA,GAAAA,IAAA,CAAA;IAAAhB,2BAAA,CAAA,IAAA,CAAA;AAAA,EAAA;AAG/C;AAEAiB,EAAAA,OAAO,IAAAhB,UAAA,CAAA,IAAA,CAAA,EAAAJ,aAAA,OAAG,IAAI,CAAA;;AAEd;AAEAqB,EAAAA,eAAe,IAAApB,mBAAA,CAAA,IAAA,CAAA,EAAAC,qBAAA,OAAG,IAAI,CAAA;;AAEtB;EAGAoB,IAAIA,CAAC,GAAGH,IAAI,EACZ;AACE,IAAA,MAAM,IAAII,KAAK,CAAC,gEAAgE,CAAC;AACnF,EAAA;AAAC,EAAA;IAAAjB,UAAA,EAAA;AAAA;AAEH;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tr2BitmapDimensions.js","sources":["../../../src/trinityal/Tr2BitmapDimensions.js"],"sourcesContent":["// Source: imageio/include/BitmapDimensions.h\n//\n// `Tr2BitmapDimensions` is the abstraction layer's own alias for\n// `ImageIO::BitmapDimensions` (`Tr2RenderContextEnum.h:435`), and it is the\n// type every texture create, map and copy is described in. It holds the seven\n// numbers that always travel together - type, format, width, height, depth,\n// mip count, array size - and the mip arithmetic that would otherwise be\n// rewritten at every call site.\n//\n// THE MIP MATH IS THE POINT, and it is not obvious. A compressed mip is not\n// \"width >> level\": it rounds UP to a multiple of four and never falls below\n// four, because a BC block is 4x4 and a 2x2 mip still occupies a whole block.\n// Getting that wrong produces a pitch that is right for the top mip and wrong\n// for every mip after it, which is the kind of defect that shows up as a\n// diagonal smear rather than as an error.\n//\n// ONE LANGUAGE DIFFERENCE. Carbon has four constructor overloads; JavaScript\n// has none, so the constructor takes a description object whose defaults are\n// the default constructor's values, and `Texture2D` names the four-argument\n// overload the render context uses.\n\nimport { CjsSchema } from \"#schema\";\nimport {\n PixelFormat,\n TextureType,\n IsCompressedFormat,\n GetBlockByteSize,\n GetBytesPerPixel\n} from \"../global/consts/renderContext/index.js\";\n\n\n/**\n * The dimensions, format and mip layout of a texture.\n *\n * STATE IS PRIVATE, BEHIND THE ACCESSORS CARBON ALREADY HAS. Its members were\n * public here and are not in Carbon: `TriTextureRes` DERIVES from this type and\n * reaches its size through `Tr2BitmapDimensions::GetWidth()`\n * (`TriTextureRes.h:33,48-52`), which only works because the members are not\n * the interface. The accessors below already existed, so the public fields were\n * a second way to read the same state.\n *\n * The abstraction layer is engine machinery, not authored parameters (operator,\n * 2026-09-05), so nothing here is a knob a human sets. The value TYPES it passes\n * around are a different matter: `Tr2MsaaDesc`, the texture box and subresource,\n * and the pass attachments are `struct`s in Carbon with public members, and stay\n * that way.\n */\nexport class Tr2BitmapDimensions\n{\n /** Width of mip zero. */\n _width = 0;\n\n /** Height of mip zero. */\n _height = 0;\n\n /** Carbon's `m_volumeDepth`; 1 for anything that is not a volume texture. */\n _depth = 0;\n\n /** Declared mip count. Zero means \"a full chain\" - see `GetTrueMipCount`. */\n _mipCount = 0;\n\n /** Slices. Six for a cube. */\n _arraySize = 1;\n\n /** A `TextureType` value. */\n _type = TextureType.TEX_TYPE_INVALID;\n\n /** A `PixelFormat` value. */\n _format = PixelFormat.PIXEL_FORMAT_UNKNOWN;\n\n /**\n * @param {object} [description] Texture description.\n * @param {number} [description.type] A `TextureType` value.\n * @param {number} [description.format] A `PixelFormat` value.\n * @param {number} [description.width] Width of mip zero.\n * @param {number} [description.height] Height of mip zero.\n * @param {number} [description.depth] Volume depth.\n * @param {number} [description.mipCount] Declared mip count, or zero for a full chain.\n * @param {number} [description.arraySize] Slices; defaults to six for a cube.\n */\n constructor(description = {})\n {\n const {\n type = TextureType.TEX_TYPE_INVALID,\n format = PixelFormat.PIXEL_FORMAT_UNKNOWN,\n width = 0,\n height = 0,\n depth = 0,\n mipCount = 0,\n arraySize = type === TextureType.TEX_TYPE_CUBE ? 6 : 1\n } = description;\n\n this._type = type;\n this._format = format;\n this._width = width;\n this._height = height;\n this._depth = depth;\n this._mipCount = mipCount;\n this._arraySize = arraySize;\n }\n\n /**\n * Carbon's four-argument overload: a plain 2D texture with one slice.\n *\n * @param {number} width Width of mip zero.\n * @param {number} height Height of mip zero.\n * @param {number} mipCount Declared mip count.\n * @param {number} format A `PixelFormat` value.\n * @returns {Tr2BitmapDimensions} The description.\n */\n static Texture2D(width, height, mipCount, format)\n {\n return new Tr2BitmapDimensions({\n type: TextureType.TEX_TYPE_2D,\n format,\n width,\n height,\n depth: 1,\n mipCount\n });\n }\n\n /**\n * Width of mip zero.\n *\n * @returns {number} Width in pixels.\n */\n GetWidth()\n {\n return this._width;\n }\n\n /**\n * Height of mip zero.\n *\n * @returns {number} Height in pixels.\n */\n GetHeight()\n {\n return this._height;\n }\n\n /**\n * Volume depth.\n *\n * @returns {number} Depth in slices.\n */\n GetDepth()\n {\n return this._depth;\n }\n\n /**\n * The pixel format.\n *\n * @returns {number} A `PixelFormat` value.\n */\n GetFormat()\n {\n return this._format;\n }\n\n /**\n * The texture type.\n *\n * @returns {number} A `TextureType` value.\n */\n GetType()\n {\n return this._type;\n }\n\n /**\n * Slices in the array.\n *\n * @returns {number} Array size.\n */\n GetArraySize()\n {\n return this._arraySize;\n }\n\n /**\n * The DECLARED mip count, which may be zero.\n *\n * @returns {number} Mip levels as declared.\n */\n GetMipCount()\n {\n return this._mipCount;\n }\n\n /**\n * The mip count in effect.\n *\n * A declared zero means \"as many as the size allows\", so this counts them\n * rather than reporting nothing.\n *\n * @returns {number} Mip levels.\n */\n GetTrueMipCount()\n {\n if (this._mipCount > 0) return this._mipCount;\n\n let size = Math.max(this._width, this._height);\n let count = 0;\n\n while (size)\n {\n ++count;\n size >>= 1;\n }\n\n return count;\n }\n\n /**\n * Whether the format stores blocks rather than pixels.\n *\n * @returns {boolean} True for the BC family.\n */\n IsCompressed()\n {\n return IsCompressedFormat(this._format);\n }\n\n /**\n * Carbon's `HasMipmap`: anything but exactly one level.\n *\n * @returns {boolean} True when the texture is mipped.\n */\n HasMipmap()\n {\n return this._mipCount !== 1;\n }\n\n /**\n * Width of one mip, in pixels.\n *\n * A compressed mip rounds up to a whole block and never falls below four.\n *\n * @param {number} level Mip level.\n * @returns {number} Width, or zero past the end of the chain.\n */\n GetMipWidth(level)\n {\n if (level >= this.GetTrueMipCount()) return 0;\n\n if (this.IsCompressed()) return Math.max(((this._width >> level) + 3) & ~3, 4);\n\n return Math.max(this._width >> level, 1);\n }\n\n /**\n * Height of one mip, in pixels. Rounds the same way as `GetMipWidth`.\n *\n * @param {number} level Mip level.\n * @returns {number} Height, or zero past the end of the chain.\n */\n GetMipHeight(level)\n {\n if (level >= this.GetTrueMipCount()) return 0;\n\n if (this.IsCompressed()) return Math.max(((this._height >> level) + 3) & ~3, 4);\n\n return Math.max(this._height >> level, 1);\n }\n\n /**\n * Depth of one mip. Only a volume texture has more than one.\n *\n * @param {number} level Mip level.\n * @returns {number} Depth, or zero past the end of the chain.\n */\n GetMipDepth(level)\n {\n if (this._type !== TextureType.TEX_TYPE_3D) return 1;\n\n if (level >= this.GetTrueMipCount()) return 0;\n\n return Math.max(this._depth >> level, 1);\n }\n\n /**\n * Bytes in one row of a mip.\n *\n * For a compressed format a \"row\" is a row of BLOCKS, so the width is\n * divided by four before the block size is applied.\n *\n * @param {number} level Mip level.\n * @returns {number} Pitch in bytes.\n */\n GetMipPitch(level)\n {\n if (level >= this.GetTrueMipCount()) return 0;\n\n if (this.IsCompressed()) return this.GetMipWidth(level) / 4 * GetBlockByteSize(this._format);\n\n return this.GetMipWidth(level) * GetBytesPerPixel(this._format);\n }\n\n /**\n * Bytes in one mip.\n *\n * @param {number} level Mip level.\n * @returns {number} Size in bytes.\n */\n GetMipSize(level)\n {\n const pixels = this.GetMipWidth(level) * this.GetMipHeight(level) * this.GetMipDepth(level);\n\n if (this.IsCompressed()) return pixels / 16 * GetBlockByteSize(this._format);\n\n return pixels * GetBytesPerPixel(this._format);\n }\n\n /**\n * Rows to copy for a mip: block rows when compressed, pixel rows otherwise.\n *\n * @param {number} level Mip level.\n * @returns {number} Row count.\n */\n GetMipNumRows(level)\n {\n return this.IsCompressed() ? this.GetMipHeight(level) / 4 : this.GetMipHeight(level);\n }\n\n /**\n * Clears the description to \"no texture\".\n *\n * `BitmapDimensions::Destroy` (`imageio/include/BitmapDimensions.h:77-81`),\n * and the ODD PART IS CARBON'S: the line zeroing width, height, depth and mip\n * count is commented out there, so only the type and format are cleared and\n * the dimensions survive. `TriTextureRes::SetTexture` calls this when a\n * texture goes invalid (`TriTextureRes.cpp:1163`), where the surviving\n * dimensions are what a caller still reads back. Transcribed rather than\n * tidied - a port that also zeroed them would answer differently.\n *\n * @returns {void}\n */\n Destroy()\n {\n this._type = TextureType.TEX_TYPE_INVALID;\n this._format = PixelFormat.PIXEL_FORMAT_UNKNOWN;\n }\n\n /**\n * Whether two descriptions name the same texture layout.\n *\n * @param {Tr2BitmapDimensions} other The description to compare with.\n * @returns {boolean} True when every field matches.\n */\n Equals(other)\n {\n return this._width === other.width &&\n this._height === other.height &&\n this._depth === other.depth &&\n this._mipCount === other.mipCount &&\n this._arraySize === other.arraySize &&\n this._type === other.type &&\n this._format === other.format;\n }\n}\n\n\n// DECLARED AS A CALL, NOT A DECORATOR. The abstraction layer is imported\n// straight from source by its tests - `#trinityal/...` resolves to `src/` - and\n// raw Node cannot parse decorator syntax, so a decorator here breaks every test\n// that reaches this file without a build first. `CjsSchema.define` is the same\n// metadata through the door the schema already provides for exactly this, and\n// it keeps the layer free of the decorator chain it has never carried.\nCjsSchema.define(Tr2BitmapDimensions, { className: \"Tr2BitmapDimensions\", carbon: \"BitmapDimensions\" });\n"],"names":["Tr2BitmapDimensions","_width","_height","_depth","_mipCount","_arraySize","_type","TextureType","TEX_TYPE_INVALID","_format","PixelFormat","PIXEL_FORMAT_UNKNOWN","constructor","description","type","format","width","height","depth","mipCount","arraySize","TEX_TYPE_CUBE","Texture2D","TEX_TYPE_2D","GetWidth","GetHeight","GetDepth","GetFormat","GetType","GetArraySize","GetMipCount","GetTrueMipCount","size","Math","max","count","IsCompressed","IsCompressedFormat","HasMipmap","GetMipWidth","level","GetMipHeight","GetMipDepth","TEX_TYPE_3D","GetMipPitch","GetBlockByteSize","GetBytesPerPixel","GetMipSize","pixels","GetMipNumRows","Destroy","Equals","other","CjsSchema","define","className","carbon"],"mappings":"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"}