@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
@@ -0,0 +1,114 @@
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
+ /**
8
+ * Holds one engine texture so it can be published through a variable store
9
+ * and observed for replacement.
10
+ */
11
+ let _Tr2TextureReference;
12
+ class Tr2TextureReference extends CjsModel {
13
+ static {
14
+ ({
15
+ e: [_init_texture, _init_extra_texture, _init_onTextureChange, _init_extra_onTextureChange, _initProto],
16
+ c: [_Tr2TextureReference, _initClass]
17
+ } = _applyDecs2311(this, [type.define({
18
+ className: "Tr2TextureReference",
19
+ family: "trinityCore"
20
+ })], [[type.rawStruct("Tr2TextureAL"), 0, "texture"], [type.rawStruct("OnTextureChangeEvent"), 0, "onTextureChange"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon returns a pointer to its by-value member; JS textures are factory-made objects, so this returns the installed texture or null.")], 18, "GetTexture"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("Carbon returns its event object for the caller to attach to; this takes the listener and returns the unsubscribe, matching Tr2DepthStencil and Tr2TextureArray.")], 18, "OnTextureChange"], [[impl, impl.custom, void 0, impl.reason("Carbon owners mutate the by-value Tr2TextureAL in place; JS AL textures are factory-made, so the owner installs the new one here.")], 18, "SetTexture"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetWidth"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetHeight"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetDepth"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetType"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetMipCount"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetArraySize"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetFormat"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetName"], [[carbon, carbon.method, impl, impl.notImplemented], 18, "Save"]], 0, void 0, CjsModel));
21
+ }
22
+ /** m_texture (Tr2TextureAL) */
23
+ texture = (_initProto(this), _init_texture(this, null));
24
+
25
+ /** m_onTextureChange (OnTextureChangeEvent) */
26
+ onTextureChange = (_init_extra_texture(this), _init_onTextureChange(this, null));
27
+ _listeners = (_init_extra_onTextureChange(this), []);
28
+
29
+ /**
30
+ * Returns the referenced AL texture, or null while none is installed
31
+ * (Carbon Tr2TextureReference.cpp:11-14).
32
+ */
33
+ GetTexture() {
34
+ return this.texture;
35
+ }
36
+
37
+ /**
38
+ * Registers a texture-change listener (Carbon's OnTextureChange event,
39
+ * cpp:16-19).
40
+ * @param {Function} listener - called with this reference after each change
41
+ * @returns {Function} unsubscribe
42
+ */
43
+ OnTextureChange(listener) {
44
+ this._listeners.push(listener);
45
+ return () => {
46
+ const at = this._listeners.indexOf(listener);
47
+ if (at !== -1) this._listeners.splice(at, 1);
48
+ };
49
+ }
50
+
51
+ /**
52
+ * Installs the owner's texture (null releases it) and broadcasts the change,
53
+ * the JS form of an owner creating or resetting Carbon's by-value member and
54
+ * then calling OnTextureChange().Broadcast(). Named after Carbon's
55
+ * Tr2TransientTextureReference::SetTexture (cpp:122-126), which does exactly
56
+ * this for a borrowed texture.
57
+ * @param {Object|null} texture - a Tr2TextureAL from the render context factory
58
+ */
59
+ SetTexture(texture) {
60
+ this.texture = texture ?? null;
61
+ for (const listener of this._listeners.slice()) listener(this);
62
+ }
63
+
64
+ /** Texture width, or 0 with no texture (Carbon GetWidth, cpp:65-68). */
65
+ GetWidth() {
66
+ return this.texture ? this.texture.GetDesc().GetWidth() : 0;
67
+ }
68
+
69
+ /** Texture height, or 0 with no texture (Carbon GetHeight, cpp:70-73). */
70
+ GetHeight() {
71
+ return this.texture ? this.texture.GetDesc().GetHeight() : 0;
72
+ }
73
+
74
+ /** Texture depth, or 0 with no texture (Carbon GetDepth, cpp:75-78). */
75
+ GetDepth() {
76
+ return this.texture ? this.texture.GetDesc().GetDepth() : 0;
77
+ }
78
+
79
+ /** Texture type, or 0 with no texture (Carbon GetType, cpp:80-83). */
80
+ GetType() {
81
+ return this.texture ? this.texture.GetDesc().GetType() : 0;
82
+ }
83
+
84
+ /** Mip level count, or 0 with no texture (Carbon GetMipCount, cpp:85-88). */
85
+ GetMipCount() {
86
+ return this.texture ? this.texture.GetDesc().GetMipCount() : 0;
87
+ }
88
+
89
+ /** Array size, or 0 with no texture (Carbon GetArraySize, cpp:90-93). */
90
+ GetArraySize() {
91
+ return this.texture ? this.texture.GetDesc().GetArraySize() : 0;
92
+ }
93
+
94
+ /** Pixel format, or 0 with no texture (Carbon GetFormat, cpp:95-98). */
95
+ GetFormat() {
96
+ return this.texture ? this.texture.GetDesc().GetFormat() : 0;
97
+ }
98
+
99
+ /** Texture debug name, or "" with no texture (Carbon GetName, cpp:100-104). */
100
+ GetName() {
101
+ return this.texture ? this.texture.GetName() ?? "" : "";
102
+ }
103
+
104
+ /** Saves the referenced texture to disk; needs texture readback and ImageIO saving, neither ported here. */
105
+ Save(..._args) {
106
+ throw new Error("Tr2TextureReference.Save is not implemented in CarbonEngineJS.");
107
+ }
108
+ static {
109
+ _initClass();
110
+ }
111
+ }
112
+
113
+ export { _Tr2TextureReference as Tr2TextureReference };
114
+ //# sourceMappingURL=Tr2TextureReference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tr2TextureReference.js","sources":["../../../../src/trinity/core/Tr2TextureReference.js"],"sourcesContent":["// Source: trinity/trinity/Tr2TextureReference.h\n// Source: trinity/trinity/Tr2TextureReference.cpp\n// Source: trinity/trinity/Tr2TextureReference_Blue.cpp\n// Hand-maintained from Carbon source.\n//\n// Carbon holds the Tr2TextureAL BY VALUE and owners create or reset it in\n// place through GetTexture(). CarbonEngineJS AL textures come from the render\n// context's factory as new objects, so an owner installs the texture it made\n// with SetTexture, which also raises the change event the owner broadcasts in\n// Carbon. GetTexture returns null while nothing is installed; a variable-store\n// consumer binds that as \"no texture\", as Carbon binds an invalid one.\nimport { carbon, impl, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\n\n/**\n * Holds one engine texture so it can be published through a variable store\n * and observed for replacement.\n */\n@type.define({ className: \"Tr2TextureReference\", family: \"trinityCore\" })\nexport class Tr2TextureReference extends CjsModel\n{\n\n /** m_texture (Tr2TextureAL) */\n @type.rawStruct(\"Tr2TextureAL\")\n texture = null;\n\n /** m_onTextureChange (OnTextureChangeEvent) */\n @type.rawStruct(\"OnTextureChangeEvent\")\n onTextureChange = null;\n\n _listeners = [];\n\n /**\n * Returns the referenced AL texture, or null while none is installed\n * (Carbon Tr2TextureReference.cpp:11-14).\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns a pointer to its by-value member; JS textures are factory-made objects, so this returns the installed texture or null.\")\n GetTexture()\n {\n return this.texture;\n }\n\n /**\n * Registers a texture-change listener (Carbon's OnTextureChange event,\n * cpp:16-19).\n * @param {Function} listener - called with this reference after each change\n * @returns {Function} unsubscribe\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns its event object for the caller to attach to; this takes the listener and returns the unsubscribe, matching Tr2DepthStencil and Tr2TextureArray.\")\n OnTextureChange(listener)\n {\n this._listeners.push(listener);\n return () =>\n {\n const at = this._listeners.indexOf(listener);\n if (at !== -1) this._listeners.splice(at, 1);\n };\n }\n\n /**\n * Installs the owner's texture (null releases it) and broadcasts the change,\n * the JS form of an owner creating or resetting Carbon's by-value member and\n * then calling OnTextureChange().Broadcast(). Named after Carbon's\n * Tr2TransientTextureReference::SetTexture (cpp:122-126), which does exactly\n * this for a borrowed texture.\n * @param {Object|null} texture - a Tr2TextureAL from the render context factory\n */\n @impl.custom\n @impl.reason(\"Carbon owners mutate the by-value Tr2TextureAL in place; JS AL textures are factory-made, so the owner installs the new one here.\")\n SetTexture(texture)\n {\n this.texture = texture ?? null;\n for (const listener of this._listeners.slice()) listener(this);\n }\n\n /** Texture width, or 0 with no texture (Carbon GetWidth, cpp:65-68). */\n @carbon.method\n @impl.implemented\n GetWidth()\n {\n return this.texture ? this.texture.GetDesc().GetWidth() : 0;\n }\n\n /** Texture height, or 0 with no texture (Carbon GetHeight, cpp:70-73). */\n @carbon.method\n @impl.implemented\n GetHeight()\n {\n return this.texture ? this.texture.GetDesc().GetHeight() : 0;\n }\n\n /** Texture depth, or 0 with no texture (Carbon GetDepth, cpp:75-78). */\n @carbon.method\n @impl.implemented\n GetDepth()\n {\n return this.texture ? this.texture.GetDesc().GetDepth() : 0;\n }\n\n /** Texture type, or 0 with no texture (Carbon GetType, cpp:80-83). */\n @carbon.method\n @impl.implemented\n GetType()\n {\n return this.texture ? this.texture.GetDesc().GetType() : 0;\n }\n\n /** Mip level count, or 0 with no texture (Carbon GetMipCount, cpp:85-88). */\n @carbon.method\n @impl.implemented\n GetMipCount()\n {\n return this.texture ? this.texture.GetDesc().GetMipCount() : 0;\n }\n\n /** Array size, or 0 with no texture (Carbon GetArraySize, cpp:90-93). */\n @carbon.method\n @impl.implemented\n GetArraySize()\n {\n return this.texture ? this.texture.GetDesc().GetArraySize() : 0;\n }\n\n /** Pixel format, or 0 with no texture (Carbon GetFormat, cpp:95-98). */\n @carbon.method\n @impl.implemented\n GetFormat()\n {\n return this.texture ? this.texture.GetDesc().GetFormat() : 0;\n }\n\n /** Texture debug name, or \"\" with no texture (Carbon GetName, cpp:100-104). */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.texture ? this.texture.GetName() ?? \"\" : \"\";\n }\n\n /** Saves the referenced texture to disk; needs texture readback and ImageIO saving, neither ported here. */\n @carbon.method\n @impl.notImplemented\n Save(..._args)\n {\n throw new Error(\"Tr2TextureReference.Save is not implemented in CarbonEngineJS.\");\n }\n\n}\n"],"names":["_Tr2TextureReference","Tr2TextureReference","CjsModel","e","_init_texture","_init_extra_texture","_init_onTextureChange","_init_extra_onTextureChange","_initProto","c","_initClass","_applyDecs","type","define","className","family","rawStruct","carbon","method","impl","adapted","reason","custom","implemented","notImplemented","texture","onTextureChange","_listeners","GetTexture","OnTextureChange","listener","push","at","indexOf","splice","SetTexture","slice","GetWidth","GetDesc","GetHeight","GetDepth","GetType","GetMipCount","GetArraySize","GetFormat","GetName","Save","_args","Error"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../..
2
2
  import { edit, type, carbon, impl } from '#schema';
3
3
  import { CjsModel } from '#model';
4
4
  import { ExFlag, Tr2GpuUsage, ConvertDepthStencilFormat, DepthStencilFormat } from '#consts/render-context';
5
- import { Tr2BitmapDimensions } from '../../../trinityal/Tr2BitmapDimensions.js';
5
+ import { BitmapDimensions } from '#imageio';
6
6
  import { Tr2MsaaDesc } from '../../../trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js';
7
7
 
8
8
  let _initProto, _initClass, _init_name, _init_extra_name, _init_width, _init_extra_width, _init_height, _init_extra_height, _init_multiSampleType, _init_extra_multiSampleType, _init_multiSampleQuality, _init_extra_multiSampleQuality, _init_mipCount, _init_extra_mipCount, _init_format, _init_extra_format, _init_isValid, _init_extra_isValid, _init_isReadable, _init_extra_isReadable;
@@ -67,7 +67,7 @@ new class extends _identity {
67
67
  let gpuUsage = Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE;
68
68
  if ((flags & ExFlag.EX_CREATE_SHARED) !== 0) gpuUsage |= Tr2GpuUsage.SHARED;
69
69
  const msaa = new Tr2MsaaDesc(msaaType, msaaQuality);
70
- const texture = renderContext?.CreateTexture(Tr2BitmapDimensions.Texture2D(width, height, 1, ConvertDepthStencilFormat(format)), {
70
+ const texture = renderContext?.CreateTexture(BitmapDimensions.texture2D(width, height, 1, ConvertDepthStencilFormat(format)), {
71
71
  gpuUsage,
72
72
  msaa
73
73
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Tr2DepthStencil.js","sources":["../../../../../src/trinity/core/device/Tr2DepthStencil.js"],"sourcesContent":["// Source: trinity/trinity/Tr2DepthStencil.h\n// trinity/trinity/Tr2DepthStencil.cpp\n//\n// \"A class to hang on to platform specific pointers needed for a classic\n// depth-and-stencil-buffer setup\" - Carbon's own description. It owns ONE\n// Tr2TextureAL and the parameters it was made with, and everything else is an\n// accessor over that pair.\n//\n// THE TEXTURE IS NOT A PERSISTED FIELD, and the reason is Carbon's rather than a\n// rule about GPU types. `m_depthStencil` is a PUBLIC member there and still not\n// Blue-persisted: the exposure is READ properties only. A live device resource\n// is not document state, whoever can reach it. (The AL is also why the older\n// \"no GPUTexture in a Trinity field\" framing no longer bites here - what this\n// holds is a Tr2TextureAL, which is backend-agnostic and is exactly what Carbon\n// holds too.)\n//\n// The `@edit.read` properties below are that READ projection, refreshed wherever\n// the texture changes - Create and Destroy are the only two places, which is\n// what keeps them from drifting.\n//\n// THE RENDER CONTEXT IS A PARAMETER. Carbon reaches the main-thread context\n// through USE_MAIN_THREAD_RENDER_CONTEXT(), a global we deliberately do not\n// have; the same reason Tr2Blitter takes one.\nimport { carbon, impl, edit, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { ConvertDepthStencilFormat, DepthStencilFormat, ExFlag, Tr2GpuUsage } from \"#consts/render-context\";\nimport { Tr2BitmapDimensions } from \"../../../trinityal/Tr2BitmapDimensions.js\";\nimport { Tr2MsaaDesc } from \"../../../trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js\";\n\n/** Tr2DepthStencil (trinityCore) - the depth-stencil surface a pass renders into. */\n@type.define({ className: \"Tr2DepthStencil\", family: \"trinityCore\" })\nexport class Tr2DepthStencil extends CjsModel\n{\n\n /** m_name (std::string) [PERSISTONLY] */\n @edit.persistOnly\n @type.string\n name = \"\";\n\n @edit.read\n @type.uint32\n width = 0;\n\n @edit.read\n @type.uint32\n height = 0;\n\n @edit.read\n @type.uint32\n multiSampleType = 0;\n\n @edit.read\n @type.uint32\n multiSampleQuality = 0;\n\n @edit.read\n @type.uint32\n mipCount = 0;\n\n @edit.read\n @type.int32\n @type.enum(\"DepthStencilFormat\")\n format = 7;\n\n @edit.read\n @type.boolean\n isValid = false;\n\n @edit.read\n @type.boolean\n isReadable = false;\n\n /** m_depthStencil (Tr2TextureAL), the one resource this class exists to hold. */\n #depthStencil = null;\n\n /** m_msaa (Tr2MsaaDesc), retained so OnPrepareResources can rebuild. */\n #msaa = null;\n\n /** m_flags (Tr2RenderContextEnum::ExFlag), retained for the same reason. */\n #flags = ExFlag.EX_NONE;\n\n /** Carbon's m_onTextureChange listeners. */\n #listeners = [];\n\n /**\n * Creates the depth-stencil surface.\n *\n * Carbon `Create` (`cpp:49-74`). Usage is always DEPTH_STENCIL plus\n * SHADER_RESOURCE - which is what makes the surface sampleable, and therefore\n * what `IsReadable` reports - with SHARED added when the caller asks for it.\n *\n * A FAILED CREATE DESTROYS RATHER THAN LEAVING HALF A SURFACE, which is\n * Carbon's `else Destroy()`. Without it a caller could read a stale width off\n * an object whose texture never came back.\n *\n * @param {number} width Surface width in pixels.\n * @param {number} height Surface height in pixels.\n * @param {number} format A `DepthStencilFormat` value.\n * @param {number} [msaaType] Sample count.\n * @param {number} [msaaQuality] Sample quality.\n * @param {number} [flags] An `ExFlag` value.\n * @param {object} [renderContext] The context to create through.\n * @returns {boolean} Whether the surface was created.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns an HRESULT and reaches the main-thread render context through a global; this returns a boolean and takes the context, which is the same reason Tr2Blitter does.\")\n Create(width, height, format, msaaType = 1, msaaQuality = 0, flags = ExFlag.EX_NONE, renderContext = null)\n {\n let gpuUsage = Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE;\n\n if ((flags & ExFlag.EX_CREATE_SHARED) !== 0) gpuUsage |= Tr2GpuUsage.SHARED;\n\n const msaa = new Tr2MsaaDesc(msaaType, msaaQuality);\n const texture = renderContext?.CreateTexture(\n Tr2BitmapDimensions.Texture2D(width, height, 1, ConvertDepthStencilFormat(format)),\n { gpuUsage, msaa }\n );\n\n if (!texture)\n {\n this.Destroy();\n return false;\n }\n\n this.#depthStencil = texture;\n this.#msaa = msaa;\n this.#flags = flags;\n this.SetName(this.name);\n this.#Refresh();\n this.#Changed();\n return true;\n }\n\n /**\n * The texture, but only when it can actually be sampled.\n *\n * Carbon `GetTexture` (`cpp:76-83`) returns null for a surface without\n * SHADER_RESOURCE usage even though the surface itself is valid. A caller\n * binding the result as a shader input is the reason: a depth buffer that was\n * never made readable must fail here rather than at the draw.\n *\n * @returns {object|null} The `Tr2TextureAL`, or null when it is not readable.\n */\n @carbon.method\n @impl.implemented\n GetTexture()\n {\n return this.IsValid() && this.IsReadable() ? this.#depthStencil : null;\n }\n\n /**\n * The surface itself, readable or not.\n *\n * Carbon reaches `m_depthStencil` directly - it is public, and the class\n * carries `operator Tr2TextureAL&()` for it with the comment \"avoid\n * m_depthStencil->m_depthStencil all over the place\" (`h:62-69`).\n *\n * THIS IS NOT GetTexture. That one refuses a surface without SHADER_RESOURCE,\n * because its caller is binding a shader input. A caller RENDERING into the\n * surface needs it whether or not it can also be sampled, and would otherwise\n * be told a perfectly good depth buffer does not exist.\n *\n * @returns {object|null} The `Tr2TextureAL`, or null before Create.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon exposes the member directly through a conversion operator; JavaScript has none, so the raw surface is reached by name.\")\n GetDepthStencil()\n {\n return this.#depthStencil;\n }\n\n /**\n * Registers a texture-change listener (Carbon's `OnTextureChange` event).\n *\n * @param {Function} listener Called with this surface after each change.\n * @returns {Function} Unsubscribe.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns its event object for the caller to attach to; this takes the listener and returns the unsubscribe, matching Tr2TextureArray.\")\n OnTextureChange(listener)\n {\n this.#listeners.push(listener);\n return () =>\n {\n const at = this.#listeners.indexOf(listener);\n if (at !== -1) this.#listeners.splice(at, 1);\n };\n }\n\n /** Carbon `IsValid` (`cpp:95-98`): whether the texture exists. */\n @carbon.method\n @impl.implemented\n IsValid()\n {\n return Boolean(this.#depthStencil?.IsValid());\n }\n\n /** Carbon `IsReadable` (`cpp:90-93`): whether the surface carries SHADER_RESOURCE. */\n @carbon.method\n @impl.implemented\n IsReadable()\n {\n if (!this.#depthStencil) return false;\n return (this.#depthStencil.GetGpuUsage() & Tr2GpuUsage.SHADER_RESOURCE) !== 0;\n }\n\n /**\n * Releases the surface and returns every parameter to its default.\n *\n * Carbon `Destroy` (`cpp:100-111`), which resets the format to DSFMT_AUTO\n * rather than DSFMT_UNKNOWN.\n *\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n Destroy()\n {\n this.#depthStencil = null;\n this.#msaa = null;\n this.#flags = ExFlag.EX_NONE;\n this.format = DepthStencilFormat.DSFMT_AUTO;\n this.#Refresh();\n this.#Changed();\n }\n\n /** Carbon `GetWidth` (`cpp:141-144`), read off the texture. */\n @carbon.method\n @impl.implemented\n GetWidth()\n {\n return this.#depthStencil?.GetWidth() ?? 0;\n }\n\n /** Carbon `GetHeight` (`cpp:147-150`), read off the texture. */\n @carbon.method\n @impl.implemented\n GetHeight()\n {\n return this.#depthStencil?.GetHeight() ?? 0;\n }\n\n /** Carbon `GetMsaaSamples` (`cpp:153-156`). */\n @carbon.method\n @impl.implemented\n GetMsaaSamples()\n {\n return this.#msaa?.samples ?? 0;\n }\n\n /** Carbon `GetMsaaQuality` (`cpp:159-162`). */\n @carbon.method\n @impl.implemented\n GetMsaaQuality()\n {\n return this.#msaa?.quality ?? 0;\n }\n\n /** Carbon `GetMipCount` (`cpp:164-167`) returns a literal 1. */\n @carbon.method\n @impl.implemented\n GetMipCount()\n {\n return 1;\n }\n\n /** Carbon `GetFormat` (`cpp:170-173`), the format asked for rather than the texture's. */\n @carbon.method\n @impl.implemented\n GetFormat()\n {\n return this.format;\n }\n\n /** Carbon `SetName` (`cpp:20-24`), which names the texture too. */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = name ?? \"\";\n this.#depthStencil?.SetName(this.name);\n }\n\n /** Carbon `GetName` (`cpp:26-29`). */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n /** Carbon Tr2DepthStencil::HasALObject always reports false (cpp:124-127). */\n @carbon.method\n @impl.implemented\n HasALObject(_type, _object)\n {\n return false;\n }\n\n /** Carbon method sharedHandle -> GetSharedHandle (MAP_METHOD_AND_WRAP). */\n @carbon.method\n @impl.notImplemented\n sharedHandle(...args)\n {\n throw new Error(\"Tr2DepthStencil.sharedHandle is not implemented in CarbonEngineJS.\");\n }\n\n /** Republishes the Blue READ projection from the live texture. */\n #Refresh()\n {\n this.width = this.GetWidth();\n this.height = this.GetHeight();\n this.multiSampleType = this.GetMsaaSamples();\n this.multiSampleQuality = this.GetMsaaQuality();\n this.mipCount = this.GetMipCount();\n this.isValid = this.IsValid();\n this.isReadable = this.IsReadable();\n }\n\n /** Carbon's `m_onTextureChange()`. */\n #Changed()\n {\n for (const listener of this.#listeners) listener(this);\n }\n\n static DepthStencilFormat = DepthStencilFormat;\n\n static ExFlag = ExFlag;\n\n}\n"],"names":["_Tr2DepthStencil","_identity","Tr2DepthStencil","CjsModel","e","_init_name","_init_extra_name","_init_width","_init_extra_width","_init_height","_init_extra_height","_init_multiSampleType","_init_extra_multiSampleType","_init_multiSampleQuality","_init_extra_multiSampleQuality","_init_mipCount","_init_extra_mipCount","_init_format","_init_extra_format","_init_isValid","_init_extra_isValid","_init_isReadable","_init_extra_isReadable","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","persistOnly","string","read","uint32","int32","enum","boolean","carbon","method","impl","adapted","reason","implemented","notImplemented","name","width","height","multiSampleType","multiSampleQuality","mipCount","format","isValid","isReadable","ExFlag","EX_NONE","Create","msaaType","msaaQuality","flags","renderContext","gpuUsage","Tr2GpuUsage","DEPTH_STENCIL","SHADER_RESOURCE","EX_CREATE_SHARED","SHARED","msaa","Tr2MsaaDesc","texture","CreateTexture","Tr2BitmapDimensions","Texture2D","ConvertDepthStencilFormat","Destroy","SetName","GetTexture","IsValid","IsReadable","GetDepthStencil","OnTextureChange","listener","push","at","indexOf","splice","Boolean","GetGpuUsage","DepthStencilFormat","DSFMT_AUTO","GetWidth","GetHeight","GetMsaaSamples","samples","GetMsaaQuality","quality","GetMipCount","GetFormat","GetName","HasALObject","_type","_object","sharedHandle","args","Error","#Refresh","#Changed","constructor"],"mappings":"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"}
1
+ {"version":3,"file":"Tr2DepthStencil.js","sources":["../../../../../src/trinity/core/device/Tr2DepthStencil.js"],"sourcesContent":["// Source: trinity/trinity/Tr2DepthStencil.h\n// trinity/trinity/Tr2DepthStencil.cpp\n//\n// \"A class to hang on to platform specific pointers needed for a classic\n// depth-and-stencil-buffer setup\" - Carbon's own description. It owns ONE\n// Tr2TextureAL and the parameters it was made with, and everything else is an\n// accessor over that pair.\n//\n// THE TEXTURE IS NOT A PERSISTED FIELD, and the reason is Carbon's rather than a\n// rule about GPU types. `m_depthStencil` is a PUBLIC member there and still not\n// Blue-persisted: the exposure is READ properties only. A live device resource\n// is not document state, whoever can reach it. (The AL is also why the older\n// \"no GPUTexture in a Trinity field\" framing no longer bites here - what this\n// holds is a Tr2TextureAL, which is backend-agnostic and is exactly what Carbon\n// holds too.)\n//\n// The `@edit.read` properties below are that READ projection, refreshed wherever\n// the texture changes - Create and Destroy are the only two places, which is\n// what keeps them from drifting.\n//\n// THE RENDER CONTEXT IS A PARAMETER. Carbon reaches the main-thread context\n// through USE_MAIN_THREAD_RENDER_CONTEXT(), a global we deliberately do not\n// have; the same reason Tr2Blitter takes one.\nimport { carbon, impl, edit, type } from \"#schema\";\nimport { CjsModel } from \"#model\";\nimport { ConvertDepthStencilFormat, DepthStencilFormat, ExFlag, Tr2GpuUsage } from \"#consts/render-context\";\nimport { BitmapDimensions as Tr2BitmapDimensions } from \"#imageio\";\nimport { Tr2MsaaDesc } from \"../../../trinityal/Tr2HalHelperStructures/Tr2MsaaDesc.js\";\n\n/** Tr2DepthStencil (trinityCore) - the depth-stencil surface a pass renders into. */\n@type.define({ className: \"Tr2DepthStencil\", family: \"trinityCore\" })\nexport class Tr2DepthStencil extends CjsModel\n{\n\n /** m_name (std::string) [PERSISTONLY] */\n @edit.persistOnly\n @type.string\n name = \"\";\n\n @edit.read\n @type.uint32\n width = 0;\n\n @edit.read\n @type.uint32\n height = 0;\n\n @edit.read\n @type.uint32\n multiSampleType = 0;\n\n @edit.read\n @type.uint32\n multiSampleQuality = 0;\n\n @edit.read\n @type.uint32\n mipCount = 0;\n\n @edit.read\n @type.int32\n @type.enum(\"DepthStencilFormat\")\n format = 7;\n\n @edit.read\n @type.boolean\n isValid = false;\n\n @edit.read\n @type.boolean\n isReadable = false;\n\n /** m_depthStencil (Tr2TextureAL), the one resource this class exists to hold. */\n #depthStencil = null;\n\n /** m_msaa (Tr2MsaaDesc), retained so OnPrepareResources can rebuild. */\n #msaa = null;\n\n /** m_flags (Tr2RenderContextEnum::ExFlag), retained for the same reason. */\n #flags = ExFlag.EX_NONE;\n\n /** Carbon's m_onTextureChange listeners. */\n #listeners = [];\n\n /**\n * Creates the depth-stencil surface.\n *\n * Carbon `Create` (`cpp:49-74`). Usage is always DEPTH_STENCIL plus\n * SHADER_RESOURCE - which is what makes the surface sampleable, and therefore\n * what `IsReadable` reports - with SHARED added when the caller asks for it.\n *\n * A FAILED CREATE DESTROYS RATHER THAN LEAVING HALF A SURFACE, which is\n * Carbon's `else Destroy()`. Without it a caller could read a stale width off\n * an object whose texture never came back.\n *\n * @param {number} width Surface width in pixels.\n * @param {number} height Surface height in pixels.\n * @param {number} format A `DepthStencilFormat` value.\n * @param {number} [msaaType] Sample count.\n * @param {number} [msaaQuality] Sample quality.\n * @param {number} [flags] An `ExFlag` value.\n * @param {object} [renderContext] The context to create through.\n * @returns {boolean} Whether the surface was created.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns an HRESULT and reaches the main-thread render context through a global; this returns a boolean and takes the context, which is the same reason Tr2Blitter does.\")\n Create(width, height, format, msaaType = 1, msaaQuality = 0, flags = ExFlag.EX_NONE, renderContext = null)\n {\n let gpuUsage = Tr2GpuUsage.DEPTH_STENCIL | Tr2GpuUsage.SHADER_RESOURCE;\n\n if ((flags & ExFlag.EX_CREATE_SHARED) !== 0) gpuUsage |= Tr2GpuUsage.SHARED;\n\n const msaa = new Tr2MsaaDesc(msaaType, msaaQuality);\n const texture = renderContext?.CreateTexture(\n Tr2BitmapDimensions.texture2D(width, height, 1, ConvertDepthStencilFormat(format)),\n { gpuUsage, msaa }\n );\n\n if (!texture)\n {\n this.Destroy();\n return false;\n }\n\n this.#depthStencil = texture;\n this.#msaa = msaa;\n this.#flags = flags;\n this.SetName(this.name);\n this.#Refresh();\n this.#Changed();\n return true;\n }\n\n /**\n * The texture, but only when it can actually be sampled.\n *\n * Carbon `GetTexture` (`cpp:76-83`) returns null for a surface without\n * SHADER_RESOURCE usage even though the surface itself is valid. A caller\n * binding the result as a shader input is the reason: a depth buffer that was\n * never made readable must fail here rather than at the draw.\n *\n * @returns {object|null} The `Tr2TextureAL`, or null when it is not readable.\n */\n @carbon.method\n @impl.implemented\n GetTexture()\n {\n return this.IsValid() && this.IsReadable() ? this.#depthStencil : null;\n }\n\n /**\n * The surface itself, readable or not.\n *\n * Carbon reaches `m_depthStencil` directly - it is public, and the class\n * carries `operator Tr2TextureAL&()` for it with the comment \"avoid\n * m_depthStencil->m_depthStencil all over the place\" (`h:62-69`).\n *\n * THIS IS NOT GetTexture. That one refuses a surface without SHADER_RESOURCE,\n * because its caller is binding a shader input. A caller RENDERING into the\n * surface needs it whether or not it can also be sampled, and would otherwise\n * be told a perfectly good depth buffer does not exist.\n *\n * @returns {object|null} The `Tr2TextureAL`, or null before Create.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon exposes the member directly through a conversion operator; JavaScript has none, so the raw surface is reached by name.\")\n GetDepthStencil()\n {\n return this.#depthStencil;\n }\n\n /**\n * Registers a texture-change listener (Carbon's `OnTextureChange` event).\n *\n * @param {Function} listener Called with this surface after each change.\n * @returns {Function} Unsubscribe.\n */\n @carbon.method\n @impl.adapted\n @impl.reason(\"Carbon returns its event object for the caller to attach to; this takes the listener and returns the unsubscribe, matching Tr2TextureArray.\")\n OnTextureChange(listener)\n {\n this.#listeners.push(listener);\n return () =>\n {\n const at = this.#listeners.indexOf(listener);\n if (at !== -1) this.#listeners.splice(at, 1);\n };\n }\n\n /** Carbon `IsValid` (`cpp:95-98`): whether the texture exists. */\n @carbon.method\n @impl.implemented\n IsValid()\n {\n return Boolean(this.#depthStencil?.IsValid());\n }\n\n /** Carbon `IsReadable` (`cpp:90-93`): whether the surface carries SHADER_RESOURCE. */\n @carbon.method\n @impl.implemented\n IsReadable()\n {\n if (!this.#depthStencil) return false;\n return (this.#depthStencil.GetGpuUsage() & Tr2GpuUsage.SHADER_RESOURCE) !== 0;\n }\n\n /**\n * Releases the surface and returns every parameter to its default.\n *\n * Carbon `Destroy` (`cpp:100-111`), which resets the format to DSFMT_AUTO\n * rather than DSFMT_UNKNOWN.\n *\n * @returns {void}\n */\n @carbon.method\n @impl.implemented\n Destroy()\n {\n this.#depthStencil = null;\n this.#msaa = null;\n this.#flags = ExFlag.EX_NONE;\n this.format = DepthStencilFormat.DSFMT_AUTO;\n this.#Refresh();\n this.#Changed();\n }\n\n /** Carbon `GetWidth` (`cpp:141-144`), read off the texture. */\n @carbon.method\n @impl.implemented\n GetWidth()\n {\n return this.#depthStencil?.GetWidth() ?? 0;\n }\n\n /** Carbon `GetHeight` (`cpp:147-150`), read off the texture. */\n @carbon.method\n @impl.implemented\n GetHeight()\n {\n return this.#depthStencil?.GetHeight() ?? 0;\n }\n\n /** Carbon `GetMsaaSamples` (`cpp:153-156`). */\n @carbon.method\n @impl.implemented\n GetMsaaSamples()\n {\n return this.#msaa?.samples ?? 0;\n }\n\n /** Carbon `GetMsaaQuality` (`cpp:159-162`). */\n @carbon.method\n @impl.implemented\n GetMsaaQuality()\n {\n return this.#msaa?.quality ?? 0;\n }\n\n /** Carbon `GetMipCount` (`cpp:164-167`) returns a literal 1. */\n @carbon.method\n @impl.implemented\n GetMipCount()\n {\n return 1;\n }\n\n /** Carbon `GetFormat` (`cpp:170-173`), the format asked for rather than the texture's. */\n @carbon.method\n @impl.implemented\n GetFormat()\n {\n return this.format;\n }\n\n /** Carbon `SetName` (`cpp:20-24`), which names the texture too. */\n @carbon.method\n @impl.implemented\n SetName(name)\n {\n this.name = name ?? \"\";\n this.#depthStencil?.SetName(this.name);\n }\n\n /** Carbon `GetName` (`cpp:26-29`). */\n @carbon.method\n @impl.implemented\n GetName()\n {\n return this.name;\n }\n\n /** Carbon Tr2DepthStencil::HasALObject always reports false (cpp:124-127). */\n @carbon.method\n @impl.implemented\n HasALObject(_type, _object)\n {\n return false;\n }\n\n /** Carbon method sharedHandle -> GetSharedHandle (MAP_METHOD_AND_WRAP). */\n @carbon.method\n @impl.notImplemented\n sharedHandle(...args)\n {\n throw new Error(\"Tr2DepthStencil.sharedHandle is not implemented in CarbonEngineJS.\");\n }\n\n /** Republishes the Blue READ projection from the live texture. */\n #Refresh()\n {\n this.width = this.GetWidth();\n this.height = this.GetHeight();\n this.multiSampleType = this.GetMsaaSamples();\n this.multiSampleQuality = this.GetMsaaQuality();\n this.mipCount = this.GetMipCount();\n this.isValid = this.IsValid();\n this.isReadable = this.IsReadable();\n }\n\n /** Carbon's `m_onTextureChange()`. */\n #Changed()\n {\n for (const listener of this.#listeners) listener(this);\n }\n\n static DepthStencilFormat = DepthStencilFormat;\n\n static ExFlag = ExFlag;\n\n}\n"],"names":["_Tr2DepthStencil","_identity","Tr2DepthStencil","CjsModel","e","_init_name","_init_extra_name","_init_width","_init_extra_width","_init_height","_init_extra_height","_init_multiSampleType","_init_extra_multiSampleType","_init_multiSampleQuality","_init_extra_multiSampleQuality","_init_mipCount","_init_extra_mipCount","_init_format","_init_extra_format","_init_isValid","_init_extra_isValid","_init_isReadable","_init_extra_isReadable","_initProto","c","_initClass","_applyDecs","type","define","className","family","edit","persistOnly","string","read","uint32","int32","enum","boolean","carbon","method","impl","adapted","reason","implemented","notImplemented","name","width","height","multiSampleType","multiSampleQuality","mipCount","format","isValid","isReadable","ExFlag","EX_NONE","Create","msaaType","msaaQuality","flags","renderContext","gpuUsage","Tr2GpuUsage","DEPTH_STENCIL","SHADER_RESOURCE","EX_CREATE_SHARED","SHARED","msaa","Tr2MsaaDesc","texture","CreateTexture","Tr2BitmapDimensions","texture2D","ConvertDepthStencilFormat","Destroy","SetName","GetTexture","IsValid","IsReadable","GetDepthStencil","OnTextureChange","listener","push","at","indexOf","splice","Boolean","GetGpuUsage","DepthStencilFormat","DSFMT_AUTO","GetWidth","GetHeight","GetMsaaSamples","samples","GetMsaaQuality","quality","GetMipCount","GetFormat","GetName","HasALObject","_type","_object","sharedHandle","args","Error","#Refresh","#Changed","constructor"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { identity as _identity, applyDecs2311 as _applyDecs2311 } from '../../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { edit, type, carbon, impl } from '#schema';
3
3
  import { CjsModel } from '#model';
4
- import '../../../../trinityal/Tr2BitmapDimensions.js';
4
+ import '#imageio';
5
5
  import { Tr2BufferDescriptionAL } from '../../../../trinityal/Tr2BufferAL/Tr2BufferDescriptionAL.js';
6
6
  import '../../../../trinityal/Tr2DeviceResourceAL/Tr2BaseDeviceResourceAL.js';
7
7
  import '../../../../trinityal/Tr2DrawUPHelper.js';
@@ -120,4 +120,5 @@ export { Tr2VolumetricsRenderer } from './volumetrics/Tr2VolumetricsRenderer.js'
120
120
  export { Tr2StreamingBitmapSaver } from './Tr2StreamingBitmapSaver.js';
121
121
  export { Tr2TextureArrayElement } from './Tr2TextureArray/Tr2TextureArrayElement.js';
122
122
  export { Tr2TextureArray } from './Tr2TextureArray/Tr2TextureArray.js';
123
+ export { Tr2TextureReference } from './Tr2TextureReference.js';
123
124
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -88,7 +88,7 @@ new class extends _identity {
88
88
  } = _applyDecs2311(this, [type.define({
89
89
  className: "Tr2LightManager",
90
90
  family: "trinityCore"
91
- })], [[[carbon, carbon.method, impl, impl.implemented], 26, "areLightFlagsValid"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetShadowQuality"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowMapAtlasSettings"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetUnpackedShadowMapData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("ClearLightIndices' UAV clear is AL realization; the vector clears are ported. The render-context parameter is accepted for signature parity and unused.")], 18, "Clear"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFrustum"], [[carbon, carbon.method, impl, impl.implemented], 18, "AdjustLightCutoff"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddPointLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "ResolveLightData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurrentSpaceSceneShadowQuality"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLightData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetVolumetricLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowCastingLights"], [[impl, impl.custom, void 0, impl.reason("AL seam: Trinity owns the packed description bytes; the AL realizes LightBuffer from this view (precedent: Tr2DataTextureManager.GetPackedBlocks).")], 18, "GetLightBufferData"], [[impl, impl.custom, void 0, impl.reason("AL seam companion to GetLightBufferData.")], 18, "GetLightCount"], [[impl, impl.custom, void 0, impl.reason("Non-Carbon extension: cheaper than the AL diffing a typed array; Carbon re-uploads unconditionally.")], 18, "GetDataRevision"]], 0, void 0, CjsModel));
91
+ })], [[[carbon, carbon.method, impl, impl.implemented], 26, "areLightFlagsValid"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetShadowQuality"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowMapAtlasSettings"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetUnpackedShadowMapData"], [[carbon, carbon.method, impl, impl.adapted, void 0, impl.reason("ClearLightIndices' UAV clear is AL realization; the vector clears are ported. The render-context parameter is accepted for signature parity and unused.")], 18, "Clear"], [[carbon, carbon.method, impl, impl.implemented], 18, "SetFrustum"], [[carbon, carbon.method, impl, impl.implemented], 18, "AdjustLightCutoff"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddPointLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "AddLight"], [[carbon, carbon.method, impl, impl.implemented], 18, "ResolveLightData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetCurrentSpaceSceneShadowQuality"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetLightData"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetVolumetricLights"], [[carbon, carbon.method, impl, impl.implemented], 18, "GetShadowCastingLights"], [[impl, impl.custom, void 0, impl.reason("AL seam: Trinity owns the packed description bytes; the AL realizes LightBuffer from this view. Carbon has no such seam; Tr2DataTextureManager now writes its own texture, so this has no precedent.")], 18, "GetLightBufferData"], [[impl, impl.custom, void 0, impl.reason("AL seam companion to GetLightBufferData.")], 18, "GetLightCount"], [[impl, impl.custom, void 0, impl.reason("Non-Carbon extension: cheaper than the AL diffing a typed array; Carbon re-uploads unconditionally.")], 18, "GetDataRevision"]], 0, void 0, CjsModel));
92
92
  _initStatic(this);
93
93
  }
94
94
  // Carbon m_lightData after the TLS flatten: the frame's accepted records,
@@ -616,9 +616,10 @@ new class extends _identity {
616
616
  if (typeof profile.GetTextureIndex === "function") {
617
617
  let index = profile.GetTextureIndex();
618
618
  if (index < 0 && typeof profile.RegisterProfileElement === "function") {
619
- const payload = typeof profile.GetPayload === "function" ? profile.GetPayload() : null;
620
- if (payload && payload.samples) {
621
- const element = _Tr2LightManager.getLightProfileArray().AddElement(payload);
619
+ // Carbon hands the profile's m_bitmap to the array (Tr2LightProfileRes.cpp:95-99).
620
+ const bitmap = profile.GetBitmap();
621
+ if (bitmap.IsValid()) {
622
+ const element = _Tr2LightManager.getLightProfileArray().AddElement(bitmap);
622
623
  if (element.IsValid()) {
623
624
  profile.RegisterProfileElement(element);
624
625
  index = element.GetElementIndex();