@woosh/meep-engine 3.14.2 → 3.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1252) hide show
  1. package/editor/prototypeEditorShell.js +6 -0
  2. package/package.json +1 -1
  3. package/src/CODEC_LAYOUT_VERIFICATION.md +420 -0
  4. package/src/core/binary/zstd/ZstdReverseBitReader.d.ts +76 -0
  5. package/src/core/binary/zstd/ZstdReverseBitReader.d.ts.map +1 -0
  6. package/src/core/binary/zstd/ZstdReverseBitReader.js +223 -0
  7. package/src/core/binary/zstd/zstd_decompress.d.ts +31 -0
  8. package/src/core/binary/zstd/zstd_decompress.d.ts.map +1 -0
  9. package/src/core/binary/zstd/zstd_decompress.js +628 -0
  10. package/src/core/binary/zstd/zstd_fse.d.ts +83 -0
  11. package/src/core/binary/zstd/zstd_fse.d.ts.map +1 -0
  12. package/src/core/binary/zstd/zstd_fse.js +265 -0
  13. package/src/core/binary/zstd/zstd_huffman.d.ts +56 -0
  14. package/src/core/binary/zstd/zstd_huffman.d.ts.map +1 -0
  15. package/src/core/binary/zstd/zstd_huffman.js +244 -0
  16. package/src/core/binary/zstd/zstd_sequence_tables.d.ts +62 -0
  17. package/src/core/binary/zstd/zstd_sequence_tables.d.ts.map +1 -0
  18. package/src/core/binary/zstd/zstd_sequence_tables.js +98 -0
  19. package/src/core/color/COLOR_REVIEW_2026_08_28.md +1 -1
  20. package/src/core/color/PQ/PQ_constants.d.ts +1 -1
  21. package/src/core/color/PQ/PQ_constants.js +1 -1
  22. package/src/engine/Engine.d.ts.map +1 -1
  23. package/src/engine/Engine.js +733 -726
  24. package/src/engine/asset/GameAssetType.d.ts +1 -0
  25. package/src/engine/asset/GameAssetType.js +8 -0
  26. package/src/engine/asset/codec/DecodedImage.d.ts +39 -0
  27. package/src/engine/asset/codec/DecodedImage.d.ts.map +1 -0
  28. package/src/engine/asset/codec/DecodedImage.js +26 -0
  29. package/src/engine/asset/guessAssetType.d.ts.map +1 -1
  30. package/src/engine/asset/guessAssetType.js +10 -0
  31. package/src/engine/asset/load_model_scene_bundle.d.ts +1 -1
  32. package/src/engine/asset/load_model_scene_bundle.d.ts.map +1 -1
  33. package/src/engine/asset/load_model_scene_bundle.js +6 -2
  34. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +37 -0
  35. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -0
  36. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.js +104 -0
  37. package/src/engine/asset/loaders/image/IMAGE_CODEC_REVIEW_2026_08_28.md +83 -71
  38. package/src/engine/asset/loaders/image/ImageDecoderWorker.js +2 -2
  39. package/src/engine/asset/loaders/image/ImageRGBADataLoader.d.ts +8 -9
  40. package/src/engine/asset/loaders/image/ImageRGBADataLoader.d.ts.map +1 -1
  41. package/src/engine/asset/loaders/image/ImageRGBADataLoader.js +12 -3
  42. package/src/engine/asset/loaders/image/avif/encode_image_source.d.ts +70 -0
  43. package/src/engine/asset/loaders/image/avif/encode_image_source.d.ts.map +1 -0
  44. package/src/engine/asset/loaders/image/avif/encode_image_source.js +117 -0
  45. package/src/engine/asset/loaders/image/avif/encoder_worker.d.ts.map +1 -0
  46. package/src/engine/asset/loaders/image/avif/threaded_image_encoder.d.ts.map +1 -0
  47. package/src/engine/asset/loaders/image/codec/AvifCodec.d.ts +34 -0
  48. package/src/engine/asset/loaders/image/codec/AvifCodec.d.ts.map +1 -0
  49. package/src/engine/asset/loaders/image/codec/AvifCodec.js +85 -0
  50. package/src/engine/asset/loaders/image/codec/JpegCodec.d.ts +26 -0
  51. package/src/engine/asset/loaders/image/codec/JpegCodec.d.ts.map +1 -0
  52. package/src/engine/asset/loaders/image/codec/JpegCodec.js +66 -0
  53. package/src/engine/asset/loaders/image/codec/NativeImageDecoder.d.ts +4 -16
  54. package/src/engine/asset/loaders/image/codec/NativeImageDecoder.d.ts.map +1 -1
  55. package/src/engine/asset/loaders/image/codec/NativeImageDecoder.js +2 -2
  56. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts +21 -1
  57. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts.map +1 -1
  58. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js +21 -1
  59. package/src/engine/asset/loaders/image/prototypePNG.d.ts.map +1 -0
  60. package/src/engine/asset/loaders/image/prototypePNG.js +37 -0
  61. package/src/engine/asset/preloader/extractAssetListFromManager.d.ts.map +1 -1
  62. package/src/engine/asset/preloader/extractAssetListFromManager.js +2 -1
  63. package/src/engine/graphics/ecs/mesh/assetTypeByPath.d.ts.map +1 -1
  64. package/src/engine/graphics/ecs/mesh/assetTypeByPath.js +6 -0
  65. package/src/engine/graphics/texture/sampler/avif_to_sampler2d.d.ts +25 -0
  66. package/src/engine/graphics/texture/sampler/avif_to_sampler2d.d.ts.map +1 -0
  67. package/src/engine/graphics/texture/sampler/avif_to_sampler2d.js +42 -0
  68. package/src/engine/graphics/texture/sampler/compare/sampler2d_compare.d.ts.map +1 -0
  69. package/src/engine/graphics/texture/sampler/compare/sampler2d_compare.js +94 -0
  70. package/src/engine/graphics/texture/sampler/compare/sampler2d_max_absolute_difference.d.ts +19 -0
  71. package/src/engine/graphics/texture/sampler/compare/sampler2d_max_absolute_difference.d.ts.map +1 -0
  72. package/src/engine/graphics/texture/sampler/compare/sampler2d_max_absolute_difference.js +62 -0
  73. package/src/engine/graphics/texture/sampler/compare/sampler2d_psnr.d.ts +30 -0
  74. package/src/engine/graphics/texture/sampler/compare/sampler2d_psnr.d.ts.map +1 -0
  75. package/src/engine/graphics/texture/sampler/compare/sampler2d_psnr.js +115 -0
  76. package/src/engine/graphics/texture/sampler/sampler2d_to_avif.d.ts.map +1 -0
  77. package/src/engine/graphics/texture/sampler/sampler2d_to_avif.js +108 -0
  78. package/src/engine/graphics/texture/sampler/sampler2d_to_f16.d.ts +7 -1
  79. package/src/engine/graphics/texture/sampler/sampler2d_to_f16.d.ts.map +1 -1
  80. package/src/engine/graphics/texture/sampler/sampler2d_to_f16.js +28 -21
  81. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.d.ts.map +1 -1
  82. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.js +3 -0
  83. package/src/engine/network/NetworkSession.d.ts +24 -4
  84. package/src/engine/network/NetworkSession.d.ts.map +1 -1
  85. package/src/engine/network/NetworkSession.js +28 -4
  86. package/src/engine/network/orchestrator/NetworkPeer.d.ts +47 -6
  87. package/src/engine/network/orchestrator/NetworkPeer.d.ts.map +1 -1
  88. package/src/engine/network/orchestrator/NetworkPeer.js +184 -56
  89. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts +97 -11
  90. package/src/engine/network/orchestrator/ServerAuthoritativeServer.d.ts.map +1 -1
  91. package/src/engine/network/orchestrator/ServerAuthoritativeServer.js +304 -22
  92. package/src/engine/network/replication/Replicator.d.ts +14 -1
  93. package/src/engine/network/replication/Replicator.d.ts.map +1 -1
  94. package/src/engine/network/replication/Replicator.js +44 -3
  95. package/src/engine/network/sim/ActionLog.d.ts +21 -3
  96. package/src/engine/network/sim/ActionLog.d.ts.map +1 -1
  97. package/src/engine/network/sim/ActionLog.js +24 -3
  98. package/src/engine/network/sim/SimAction.d.ts +15 -0
  99. package/src/engine/network/sim/SimAction.d.ts.map +1 -1
  100. package/src/engine/network/sim/SimAction.js +15 -0
  101. package/src/engine/network/sim/SimActionExecutor.d.ts +51 -1
  102. package/src/engine/network/sim/SimActionExecutor.d.ts.map +1 -1
  103. package/src/engine/network/sim/SimActionExecutor.js +73 -5
  104. package/src/engine/network/transport/Channel.d.ts +1 -1
  105. package/src/engine/network/transport/Channel.js +1 -1
  106. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  107. package/src/engine/simulation/Ticker.d.ts.map +1 -1
  108. package/src/engine/simulation/Ticker.js +4 -1
  109. package/src/engine/ui/GUIEngine.d.ts.map +1 -1
  110. package/src/engine/ui/GUIEngine.js +6 -0
  111. package/src/format/image/avif/DECISIONS.md +545 -0
  112. package/src/format/image/avif/api/AvifDecoder.d.ts.map +1 -0
  113. package/src/format/image/avif/api/apply_transformations.d.ts.map +1 -0
  114. package/src/format/image/avif/api/convert_to_rgba.d.ts.map +1 -0
  115. package/src/format/image/avif/api/convert_to_rgba.js +204 -0
  116. package/src/format/image/avif/api/decode_avif.d.ts.map +1 -0
  117. package/src/format/image/avif/api/decode_image_item.d.ts.map +1 -0
  118. package/src/format/image/avif/api/encode_avif.d.ts.map +1 -0
  119. package/src/format/image/avif/av1/decode/Av1FrameContext.d.ts.map +1 -0
  120. package/src/format/image/avif/av1/decode/block_decoded.d.ts.map +1 -0
  121. package/src/format/image/avif/av1/decode/decode_av1_still.d.ts.map +1 -0
  122. package/src/format/image/avif/av1/decode/decode_coefficients.d.ts.map +1 -0
  123. package/src/format/image/avif/av1/decode/decode_palette.d.ts.map +1 -0
  124. package/src/format/image/avif/av1/decode/decode_palette.js +442 -0
  125. package/src/format/image/avif/av1/decode/decode_tile.d.ts.map +1 -0
  126. package/src/format/image/avif/av1/decode/decode_tile.js +1213 -0
  127. package/src/format/image/avif/av1/decode/get_scan.d.ts.map +1 -0
  128. package/src/format/image/avif/av1/decode/read_lr.d.ts.map +1 -0
  129. package/src/format/image/avif/av1/decode/read_lr.js +277 -0
  130. package/src/format/image/avif/av1/decode/read_transform_type.d.ts.map +1 -0
  131. package/src/format/image/avif/av1/decode/read_transform_type.js +92 -0
  132. package/src/format/image/avif/av1/decode/reconstruct.d.ts.map +1 -0
  133. package/src/format/image/avif/av1/decode/reconstruct.js +241 -0
  134. package/src/format/image/avif/av1/decode/transform_type.d.ts.map +1 -0
  135. package/src/format/image/avif/av1/encode/Av1BlockSnapshot.d.ts.map +1 -0
  136. package/src/format/image/avif/av1/encode/Av1EncodeContext.d.ts.map +1 -0
  137. package/src/format/image/avif/av1/encode/build_headers.d.ts.map +1 -0
  138. package/src/format/image/avif/av1/encode/choose_chroma_alpha.d.ts.map +1 -0
  139. package/src/format/image/avif/av1/encode/choose_filters.d.ts.map +1 -0
  140. package/src/format/image/avif/av1/encode/choose_restoration.d.ts.map +1 -0
  141. package/src/format/image/avif/av1/encode/choose_restoration.js +616 -0
  142. package/src/format/image/avif/av1/encode/decode_effort.d.ts.map +1 -0
  143. package/src/format/image/avif/av1/encode/encode_av1_still.d.ts.map +1 -0
  144. package/src/format/image/avif/av1/encode/encode_effort.d.ts.map +1 -0
  145. package/src/format/image/avif/av1/encode/encode_tile.d.ts.map +1 -0
  146. package/src/format/image/avif/av1/encode/encode_tile.js +2331 -0
  147. package/src/format/image/avif/av1/encode/quantise.d.ts.map +1 -0
  148. package/src/format/image/avif/av1/encode/write_coefficients.d.ts.map +1 -0
  149. package/src/format/image/avif/av1/encode/write_lr.d.ts.map +1 -0
  150. package/src/format/image/avif/av1/encode/write_transform_type.d.ts.map +1 -0
  151. package/src/format/image/avif/av1/entropy/CdfContext.d.ts.map +1 -0
  152. package/src/format/image/avif/av1/entropy/SymbolReader.d.ts.map +1 -0
  153. package/src/format/image/avif/av1/entropy/SymbolWriter.d.ts.map +1 -0
  154. package/src/format/image/avif/av1/entropy/coefficient_context.d.ts.map +1 -0
  155. package/src/format/image/avif/av1/entropy/partition_cdf.d.ts.map +1 -0
  156. package/src/format/image/avif/av1/entropy/symbol_cost.d.ts.map +1 -0
  157. package/src/format/image/avif/av1/filter/cdef.d.ts.map +1 -0
  158. package/src/format/image/avif/av1/filter/cdef.js +313 -0
  159. package/src/format/image/avif/av1/filter/loop_filter.d.ts.map +1 -0
  160. package/src/format/image/avif/av1/filter/loop_filter.js +377 -0
  161. package/src/format/image/avif/av1/filter/loop_restoration.d.ts.map +1 -0
  162. package/src/format/image/avif/av1/filter/loop_restoration.js +451 -0
  163. package/src/format/image/avif/av1/filter/superres.d.ts.map +1 -0
  164. package/src/format/image/avif/av1/filter/superres.js +86 -0
  165. package/src/format/image/avif/av1/grain/FilmGrainState.d.ts.map +1 -0
  166. package/src/format/image/avif/av1/grain/film_grain.d.ts.map +1 -0
  167. package/src/format/image/avif/av1/grain/film_grain.js +623 -0
  168. package/src/format/image/avif/av1/obu/FrameHeader.d.ts.map +1 -0
  169. package/src/format/image/avif/av1/obu/ObuHeader.d.ts.map +1 -0
  170. package/src/format/image/avif/av1/obu/SequenceHeader.d.ts.map +1 -0
  171. package/src/format/image/avif/av1/obu/for_each_obu.d.ts.map +1 -0
  172. package/src/format/image/avif/av1/obu/parse_frame_header.d.ts.map +1 -0
  173. package/src/format/image/avif/av1/obu/parse_frame_header.js +841 -0
  174. package/src/format/image/avif/av1/obu/parse_obu_header.d.ts.map +1 -0
  175. package/src/format/image/avif/av1/obu/parse_sequence_header.d.ts.map +1 -0
  176. package/src/format/image/avif/av1/obu/write_frame_header.d.ts.map +1 -0
  177. package/src/format/image/avif/av1/obu/write_sequence_header.d.ts.map +1 -0
  178. package/src/format/image/avif/av1/predict/IntraPredictionState.d.ts.map +1 -0
  179. package/src/format/image/avif/av1/predict/intra_filter_type.d.ts.map +1 -0
  180. package/src/format/image/avif/av1/predict/predict_chroma_from_luma.d.ts.map +1 -0
  181. package/src/format/image/avif/av1/predict/predict_chroma_from_luma.js +153 -0
  182. package/src/format/image/avif/av1/predict/predict_intra.d.ts.map +1 -0
  183. package/src/format/image/avif/av1/predict/predict_intra.js +803 -0
  184. package/src/format/image/avif/av1/predict/predict_palette.d.ts.map +1 -0
  185. package/src/format/image/avif/av1/tables/av1_symbols.d.ts.map +1 -0
  186. package/src/format/image/avif/av1/tables/av1_symbols.js +419 -0
  187. package/src/format/image/avif/av1/tables/block_tables.d.ts.map +1 -0
  188. package/src/format/image/avif/av1/tables/block_tables.js +270 -0
  189. package/src/format/image/avif/av1/tables/cdf_tables.d.ts.map +1 -0
  190. package/src/format/image/avif/av1/tables/cdf_tables.js +1893 -0
  191. package/src/format/image/avif/av1/tables/coefficient_tables.d.ts.map +1 -0
  192. package/src/format/image/avif/av1/tables/coefficient_tables.js +82 -0
  193. package/src/format/image/avif/av1/tables/derived_block_tables.d.ts.map +1 -0
  194. package/src/format/image/avif/av1/tables/filter_tables.d.ts.map +1 -0
  195. package/src/format/image/avif/av1/tables/filter_tables.js +313 -0
  196. package/src/format/image/avif/av1/tables/grain_tables.d.ts.map +1 -0
  197. package/src/format/image/avif/av1/tables/grain_tables.js +190 -0
  198. package/src/format/image/avif/av1/tables/prediction_tables.d.ts.map +1 -0
  199. package/src/format/image/avif/av1/tables/prediction_tables.js +223 -0
  200. package/src/format/image/avif/av1/tables/quantizer_matrix_tables.d.ts.map +1 -0
  201. package/src/format/image/avif/av1/tables/quantizer_matrix_tables.js +38 -0
  202. package/src/format/image/avif/av1/tables/quantizer_tables.d.ts.map +1 -0
  203. package/src/format/image/avif/av1/tables/quantizer_tables.js +160 -0
  204. package/src/format/image/avif/av1/tables/scan_tables.d.ts.map +1 -0
  205. package/src/format/image/avif/av1/tables/scan_tables.js +727 -0
  206. package/src/format/image/avif/av1/tables/segmentation_tables.d.ts.map +1 -0
  207. package/src/format/image/avif/av1/tables/segmentation_tables.js +48 -0
  208. package/src/format/image/avif/av1/tables/transform_tables.d.ts.map +1 -0
  209. package/src/format/image/avif/av1/tables/transform_tables.js +140 -0
  210. package/src/format/image/avif/av1/tables/unpack_table.d.ts.map +1 -0
  211. package/src/format/image/avif/av1/tables/unpack_table.js +73 -0
  212. package/src/format/image/avif/av1/transform/forward_transform_2d.d.ts.map +1 -0
  213. package/src/format/image/avif/av1/transform/inverse_transform_1d.d.ts.map +1 -0
  214. package/src/format/image/avif/av1/transform/inverse_transform_1d.js +590 -0
  215. package/src/format/image/avif/av1/transform/inverse_transform_2d.d.ts.map +1 -0
  216. package/src/format/image/avif/av1/transform/inverse_transform_2d.js +180 -0
  217. package/src/format/image/avif/av1/util/ceil_log2.d.ts.map +1 -0
  218. package/src/format/image/avif/av1/util/floor_log2.d.ts +20 -0
  219. package/src/format/image/avif/av1/util/floor_log2.d.ts.map +1 -0
  220. package/src/format/image/avif/av1/util/floor_log2.js +20 -0
  221. package/src/format/image/avif/av1/util/round2.d.ts.map +1 -0
  222. package/src/format/image/avif/av1/util/round2_signed.d.ts.map +1 -0
  223. package/src/format/image/avif/av1/util/tile_log2.d.ts.map +1 -0
  224. package/src/format/image/avif/bitstream/BitReader.d.ts.map +1 -0
  225. package/src/format/image/avif/bitstream/BitWriter.d.ts.map +1 -0
  226. package/src/format/image/avif/color/ColourTransform.d.ts.map +1 -0
  227. package/src/format/image/avif/color/YuvImage.d.ts.map +1 -0
  228. package/src/format/image/avif/color/clamp_sample.d.ts.map +1 -0
  229. package/src/format/image/avif/color/linear_to_transfer.d.ts.map +1 -0
  230. package/src/format/image/avif/color/linear_to_transfer.js +126 -0
  231. package/src/format/image/avif/color/primaries.d.ts.map +1 -0
  232. package/src/format/image/avif/color/rgb_row_to_ycbcr.d.ts.map +1 -0
  233. package/src/format/image/avif/color/transfer_to_linear.d.ts.map +1 -0
  234. package/src/format/image/avif/color/transfer_to_linear.js +171 -0
  235. package/src/format/image/avif/color/upsample_chroma_row.d.ts.map +1 -0
  236. package/src/format/image/avif/color/upsample_chroma_row.js +89 -0
  237. package/src/format/image/avif/color/ycbcr_row_to_rgb.d.ts.map +1 -0
  238. package/src/format/image/avif/color/ycbcr_row_to_rgb.js +78 -0
  239. package/src/format/image/avif/heif/AvifFile.d.ts.map +1 -0
  240. package/src/format/image/avif/heif/ItemProperty.d.ts.map +1 -0
  241. package/src/format/image/avif/heif/find_item_property.d.ts.map +1 -0
  242. package/src/format/image/avif/heif/find_item_references.d.ts.map +1 -0
  243. package/src/format/image/avif/heif/find_items_referencing.d.ts.map +1 -0
  244. package/src/format/image/avif/heif/parse_avif_file.d.ts.map +1 -0
  245. package/src/format/image/avif/heif/parse_avif_file.js +384 -0
  246. package/src/format/image/avif/heif/parse_image_grid.d.ts.map +1 -0
  247. package/src/format/image/avif/heif/parse_image_grid.js +49 -0
  248. package/src/format/image/avif/heif/parse_item_property.d.ts.map +1 -0
  249. package/src/format/image/avif/heif/read_item_data.d.ts.map +1 -0
  250. package/src/format/image/avif/heif/write_avif_file.d.ts.map +1 -0
  251. package/src/format/image/avif/heif/write_item_property.d.ts.map +1 -0
  252. package/src/format/image/avif/index.d.ts +12 -0
  253. package/src/format/image/avif/index.d.ts.map +1 -0
  254. package/src/format/image/avif/index.js +58 -0
  255. package/src/format/image/avif/isobmff/BoxHeader.d.ts.map +1 -0
  256. package/src/format/image/avif/isobmff/BoxWriter.d.ts +118 -0
  257. package/src/format/image/avif/isobmff/BoxWriter.d.ts.map +1 -0
  258. package/src/format/image/avif/isobmff/BoxWriter.js +264 -0
  259. package/src/format/image/avif/isobmff/for_each_box.d.ts.map +1 -0
  260. package/src/format/image/avif/isobmff/read_box_header.d.ts.map +1 -0
  261. package/src/format/image/avif/isobmff/read_full_box_header.d.ts.map +1 -0
  262. package/src/format/image/jpeg/JpegFrame.d.ts.map +1 -0
  263. package/src/format/image/jpeg/JpegFrameComponent.d.ts.map +1 -0
  264. package/src/format/image/jpeg/JpegImage.d.ts.map +1 -0
  265. package/src/format/image/jpeg/JpegImage.js +664 -0
  266. package/src/format/image/jpeg/buildComponentData.d.ts.map +1 -0
  267. package/src/format/image/jpeg/buildHuffmanTable.d.ts.map +1 -0
  268. package/src/format/image/jpeg/decodeScan.d.ts.map +1 -0
  269. package/src/format/image/jpeg/idct8x8_float.d.ts.map +1 -0
  270. package/src/format/image/jpeg/idct8x8_float.js +31 -0
  271. package/src/format/image/jpeg/jpeg_component_row.d.ts.map +1 -0
  272. package/src/format/image/jpeg/jpeg_decode.d.ts.map +1 -0
  273. package/src/format/image/png/PNG.d.ts.map +1 -0
  274. package/src/format/image/png/PNGReader.d.ts +158 -0
  275. package/src/format/image/png/PNGReader.d.ts.map +1 -0
  276. package/src/format/image/png/PNGReader.js +656 -0
  277. package/src/format/image/png/PNG_HEADER_BYTES.d.ts.map +1 -0
  278. package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +1 -0
  279. package/src/format/image/png/chunk/png_chunk_decode_iTXt.js +53 -0
  280. package/src/format/image/png/chunk/png_chunk_decode_zTXt.d.ts.map +1 -0
  281. package/src/format/image/png/chunk/png_chunk_decode_zTXt.js +42 -0
  282. package/src/format/image/png/crc32.d.ts +2 -0
  283. package/src/format/image/png/crc32.d.ts.map +1 -0
  284. package/src/format/image/png/crc32.js +8 -0
  285. package/src/format/image/png/filter/png_filter_unFilterAverage.d.ts.map +1 -0
  286. package/src/format/image/png/filter/png_filter_unFilterNone.d.ts.map +1 -0
  287. package/src/format/image/png/filter/png_filter_unFilterPaeth.d.ts.map +1 -0
  288. package/src/format/image/png/filter/png_filter_unFilterSub.d.ts.map +1 -0
  289. package/src/format/image/png/filter/png_filter_unFilterUp.d.ts.map +1 -0
  290. package/src/format/image/png/filter/png_unfilter.d.ts.map +1 -0
  291. package/src/format/image/png/filter/png_unfilter.js +68 -0
  292. package/src/format/image/png/png_inflate.d.ts.map +1 -0
  293. package/src/format/image/png/png_unpack_samples.d.ts.map +1 -0
  294. package/src/format/scene/gltf/GLTF_PRIMITIVE_MODE.d.ts.map +1 -0
  295. package/src/format/scene/gltf/MESHOPT_COMPRESSION_PLAN.md +793 -0
  296. package/src/format/scene/gltf/coalesce_array_duplicates.d.ts.map +1 -0
  297. package/src/format/scene/gltf/ext/GltfBufferViewExtension.d.ts.map +1 -0
  298. package/src/format/scene/gltf/ext/GltfBufferViewExtensionSet.d.ts.map +1 -0
  299. package/src/format/scene/gltf/ext/GltfBufferViewExtensionSet.js +109 -0
  300. package/src/format/scene/gltf/ext/gltf_apply_buffer_view_extensions.d.ts.map +1 -0
  301. package/src/format/scene/gltf/ext/gltf_buffer_view_extensions.d.ts.map +1 -0
  302. package/src/format/scene/gltf/ext/gltf_geometry_extensions.d.ts.map +1 -0
  303. package/src/format/scene/gltf/ext/meshopt/MeshoptBufferViewExtension.d.ts.map +1 -0
  304. package/src/format/scene/gltf/ext/meshopt/MeshoptBufferViewExtension.js +301 -0
  305. package/src/format/scene/gltf/gltf_component_type.d.ts.map +1 -0
  306. package/src/format/scene/gltf/gltf_node_world_matrices.d.ts.map +1 -0
  307. package/src/format/scene/gltf/gltf_node_world_matrices.js +137 -0
  308. package/src/format/scene/gltf/gltf_parse_container.d.ts.map +1 -0
  309. package/src/format/scene/gltf/gltf_read_accessor.d.ts.map +1 -0
  310. package/src/format/scene/gltf/gltf_read_accessor.js +294 -0
  311. package/src/format/scene/gltf/gltf_used_image_indices.d.ts +51 -0
  312. package/src/format/scene/gltf/gltf_used_image_indices.d.ts.map +1 -0
  313. package/src/format/scene/gltf/gltf_used_image_indices.js +122 -0
  314. package/src/format/scene/usd/UsdError.d.ts.map +1 -0
  315. package/src/format/scene/usd/parse_usda.d.ts.map +1 -0
  316. package/src/format/scene/usd/unpack_usdz.d.ts.map +1 -0
  317. package/src/format/scene/usd/unpack_usdz.js +106 -0
  318. package/src/format/scene/usd/usd_compose_transform.d.ts.map +1 -0
  319. package/src/format/scene/usd/usd_compose_transform.js +258 -0
  320. package/src/format/scene/usd/usd_lz4.d.ts.map +1 -0
  321. package/src/format/scene/usd/usd_lz4.js +182 -0
  322. package/src/format/scene/usd/usd_triangulate.d.ts.map +1 -0
  323. package/src/format/texture/TexelPayload.d.ts +55 -0
  324. package/src/format/texture/TexelPayload.d.ts.map +1 -0
  325. package/src/format/texture/TexelPayload.js +39 -0
  326. package/src/format/texture/basis/BasisBitReader.d.ts +77 -0
  327. package/src/format/texture/basis/BasisBitReader.d.ts.map +1 -0
  328. package/src/format/texture/basis/BasisBitReader.js +231 -0
  329. package/src/format/texture/basis/BasisHuffmanTable.d.ts.map +1 -0
  330. package/src/format/texture/basis/astc_block.d.ts +92 -0
  331. package/src/format/texture/basis/astc_block.d.ts.map +1 -0
  332. package/src/format/texture/basis/astc_block.js +164 -0
  333. package/src/format/texture/basis/astc_integer_sequence.d.ts +59 -0
  334. package/src/format/texture/basis/astc_integer_sequence.d.ts.map +1 -0
  335. package/src/format/texture/basis/astc_integer_sequence.js +251 -0
  336. package/src/format/texture/basis/astc_partition.d.ts +56 -0
  337. package/src/format/texture/basis/astc_partition.d.ts.map +1 -0
  338. package/src/format/texture/basis/astc_partition.js +199 -0
  339. package/src/format/texture/basis/basis_read_huffman_table.d.ts.map +1 -0
  340. package/src/format/texture/basis/etc1s/Etc1sSelectorHistory.d.ts.map +1 -0
  341. package/src/format/texture/basis/etc1s/etc1s_block_colors.d.ts.map +1 -0
  342. package/src/format/texture/basis/etc1s/etc1s_decode_slice.d.ts.map +1 -0
  343. package/src/format/texture/basis/etc1s/etc1s_decode_slice.js +290 -0
  344. package/src/format/texture/basis/etc1s/etc1s_read_endpoint_codebook.d.ts.map +1 -0
  345. package/src/format/texture/basis/etc1s/etc1s_read_selector_codebook.d.ts.map +1 -0
  346. package/src/format/texture/basis/etc1s/etc1s_read_slice_tables.d.ts.map +1 -0
  347. package/src/format/texture/basis/transcode/build_range_plan.d.ts +46 -0
  348. package/src/format/texture/basis/transcode/build_range_plan.d.ts.map +1 -0
  349. package/src/format/texture/basis/transcode/etc1s_to_astc.d.ts +30 -0
  350. package/src/format/texture/basis/transcode/etc1s_to_astc.d.ts.map +1 -0
  351. package/src/format/texture/basis/transcode/etc1s_to_astc.js +328 -0
  352. package/src/format/texture/basis/transcode/etc1s_to_bc1.d.ts +34 -0
  353. package/src/format/texture/basis/transcode/etc1s_to_bc1.d.ts.map +1 -0
  354. package/src/format/texture/basis/transcode/etc1s_to_bc1.js +486 -0
  355. package/src/format/texture/basis/transcode/etc1s_to_bc7.d.ts +27 -0
  356. package/src/format/texture/basis/transcode/etc1s_to_bc7.d.ts.map +1 -0
  357. package/src/format/texture/basis/transcode/etc1s_to_etc2.d.ts +31 -0
  358. package/src/format/texture/basis/transcode/etc1s_to_etc2.d.ts.map +1 -0
  359. package/src/format/texture/basis/transcode/etc1s_to_etc2.js +332 -0
  360. package/src/format/texture/basis/transcode/etc1s_to_rgba8.d.ts +39 -0
  361. package/src/format/texture/basis/transcode/etc1s_to_rgba8.d.ts.map +1 -0
  362. package/src/format/texture/basis/transcode/etc1s_to_rgba8.js +115 -0
  363. package/src/format/texture/basis/transcode/fit_endpoints.d.ts +79 -0
  364. package/src/format/texture/basis/transcode/fit_endpoints.d.ts.map +1 -0
  365. package/src/format/texture/basis/transcode/fit_endpoints.js +297 -0
  366. package/src/format/texture/basis/transcode_basis.d.ts +109 -0
  367. package/src/format/texture/basis/transcode_basis.d.ts.map +1 -0
  368. package/src/format/texture/basis/transcode_basis.js +250 -0
  369. package/src/format/texture/basis/transcode_uastc.d.ts +55 -0
  370. package/src/format/texture/basis/transcode_uastc.d.ts.map +1 -0
  371. package/src/format/texture/basis/transcode_uastc.js +117 -0
  372. package/src/format/texture/basis/uastc/bc7_tables.d.ts +111 -0
  373. package/src/format/texture/basis/uastc/bc7_tables.d.ts.map +1 -0
  374. package/src/format/texture/basis/uastc/bc7_tables.js +276 -0
  375. package/src/format/texture/basis/uastc/bc7_write_block.d.ts +124 -0
  376. package/src/format/texture/basis/uastc/bc7_write_block.d.ts.map +1 -0
  377. package/src/format/texture/basis/uastc/bc7_write_block.js +227 -0
  378. package/src/format/texture/basis/uastc/uastc_decode_block.d.ts +105 -0
  379. package/src/format/texture/basis/uastc/uastc_decode_block.d.ts.map +1 -0
  380. package/src/format/texture/basis/uastc/uastc_decode_block.js +480 -0
  381. package/src/format/texture/basis/uastc/uastc_tables.d.ts +240 -0
  382. package/src/format/texture/basis/uastc/uastc_tables.d.ts.map +1 -0
  383. package/src/format/texture/basis/uastc/uastc_tables.js +383 -0
  384. package/src/format/texture/basis/uastc/uastc_to_astc.d.ts +30 -0
  385. package/src/format/texture/basis/uastc/uastc_to_astc.d.ts.map +1 -0
  386. package/src/format/texture/basis/uastc/uastc_to_astc.js +421 -0
  387. package/src/format/texture/basis/uastc/uastc_to_bc5.d.ts +26 -0
  388. package/src/format/texture/basis/uastc/uastc_to_bc5.d.ts.map +1 -0
  389. package/src/format/texture/basis/uastc/uastc_to_bc5.js +115 -0
  390. package/src/format/texture/basis/uastc/uastc_to_bc7.d.ts +36 -0
  391. package/src/format/texture/basis/uastc/uastc_to_bc7.d.ts.map +1 -0
  392. package/src/format/texture/basis/uastc/uastc_to_bc7.js +602 -0
  393. package/src/format/texture/basis/uastc/uastc_to_rgba8.d.ts +37 -0
  394. package/src/format/texture/basis/uastc/uastc_to_rgba8.d.ts.map +1 -0
  395. package/src/format/texture/basis/uastc/uastc_to_rgba8.js +87 -0
  396. package/src/format/texture/bc/bc1_write_block.d.ts +28 -0
  397. package/src/format/texture/bc/bc1_write_block.d.ts.map +1 -0
  398. package/src/format/texture/bc/bc1_write_block.js +41 -0
  399. package/src/format/texture/bc/bc4_write_block.d.ts +32 -0
  400. package/src/format/texture/bc/bc4_write_block.d.ts.map +1 -0
  401. package/src/format/texture/bc/bc4_write_block.js +50 -0
  402. package/src/format/texture/bc/bc6h_write_block_mode11.d.ts +30 -0
  403. package/src/format/texture/bc/bc6h_write_block_mode11.d.ts.map +1 -0
  404. package/src/format/texture/bc/bc6h_write_block_mode11.js +62 -0
  405. package/src/format/texture/ktx2/KTX2_IDENTIFIER.d.ts.map +1 -0
  406. package/src/format/texture/ktx2/KhrDfModel.d.ts.map +1 -0
  407. package/src/format/texture/ktx2/SupercompressionScheme.d.ts.map +1 -0
  408. package/src/format/texture/ktx2/ktx2_read.d.ts +105 -0
  409. package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -0
  410. package/src/format/texture/ktx2/ktx2_read.js +909 -0
  411. package/src/format/texture/ktx2/ktx2_read_basis_lz_global_data.d.ts +27 -0
  412. package/src/format/texture/ktx2/ktx2_read_basis_lz_global_data.d.ts.map +1 -0
  413. package/src/format/texture/ktx2/ktx2_read_basis_lz_global_data.js +189 -0
  414. package/src/format/texture/ktx2/vk_format_to_texture_format.d.ts +55 -0
  415. package/src/format/texture/ktx2/vk_format_to_texture_format.d.ts.map +1 -0
  416. package/src/format/texture/ktx2/vk_format_to_texture_format.js +290 -0
  417. package/src/shade/descriptor/texture/format/gpu_texture_format_feature.d.ts +16 -0
  418. package/src/shade/descriptor/texture/format/gpu_texture_format_feature.d.ts.map +1 -0
  419. package/src/shade/descriptor/texture/format/gpu_texture_format_feature.js +44 -0
  420. package/src/shade/descriptor/texture/format/gpu_texture_format_info.d.ts +16 -0
  421. package/src/shade/descriptor/texture/format/gpu_texture_format_info.d.ts.map +1 -1
  422. package/src/shade/descriptor/texture/format/gpu_texture_format_info.js +24 -0
  423. package/src/shade/descriptor/texture/format/gpu_texture_format_srgb.d.ts +19 -0
  424. package/src/shade/descriptor/texture/format/gpu_texture_format_srgb.d.ts.map +1 -0
  425. package/src/shade/descriptor/texture/format/gpu_texture_format_srgb.js +50 -0
  426. package/src/shade/device/COPY_BYTES_PER_ROW_ALIGNMENT.d.ts +14 -0
  427. package/src/shade/device/COPY_BYTES_PER_ROW_ALIGNMENT.d.ts.map +1 -0
  428. package/src/shade/device/COPY_BYTES_PER_ROW_ALIGNMENT.js +13 -0
  429. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  430. package/src/shade/device/mock/SoftwareGPUDevice.js +37 -3
  431. package/src/shade/device/mock/SoftwareGPUTexture.d.ts +4 -2
  432. package/src/shade/device/mock/SoftwareGPUTexture.d.ts.map +1 -1
  433. package/src/shade/device/mock/SoftwareGPUTexture.js +39 -3
  434. package/src/shade/device/mock/SoftwareGPUTextureView.d.ts +7 -0
  435. package/src/shade/device/mock/SoftwareGPUTextureView.d.ts.map +1 -1
  436. package/src/shade/device/mock/SoftwareGPUTextureView.js +8 -0
  437. package/src/shade/device/mock/texture_copy.d.ts.map +1 -1
  438. package/src/shade/device/mock/texture_copy.js +74 -12
  439. package/src/shade/playground/basis_textures/README.md +105 -0
  440. package/src/shade/playground/basis_textures/index.html +141 -0
  441. package/src/shade/playground/basis_textures/main.d.ts +8 -0
  442. package/src/shade/playground/basis_textures/main.d.ts.map +1 -0
  443. package/src/shade/playground/basis_textures/main.js +351 -0
  444. package/src/shade/playground/basis_textures/make_basis_gltf.d.mts +2 -0
  445. package/src/shade/playground/basis_textures/make_basis_gltf.d.mts.map +1 -0
  446. package/src/shade/playground/basis_textures/make_basis_gltf.mjs +197 -0
  447. package/src/shade/playground/basis_textures/node_modules/basis_universal/bin/basisu.exe +0 -0
  448. package/src/shade/playground/basis_textures/texture_inventory.d.ts +28 -0
  449. package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -0
  450. package/src/shade/playground/basis_textures/texture_inventory.js +98 -0
  451. package/src/shade/playground/image_decode_bench/README.md +42 -0
  452. package/src/shade/playground/image_decode_bench/decode_worker.d.ts +2 -0
  453. package/src/shade/playground/image_decode_bench/decode_worker.d.ts.map +1 -0
  454. package/src/shade/playground/image_decode_bench/decode_worker.js +19 -0
  455. package/src/shade/playground/image_decode_bench/index.html +34 -0
  456. package/src/shade/playground/image_decode_bench/main.d.ts +2 -0
  457. package/src/shade/playground/image_decode_bench/main.d.ts.map +1 -0
  458. package/src/shade/playground/image_decode_bench/main.js +211 -0
  459. package/src/shade/playground/particle_system/README.md +98 -0
  460. package/src/shade/playground/particle_system/index.html +124 -0
  461. package/src/shade/playground/particle_system/main.d.ts +2 -0
  462. package/src/shade/playground/particle_system/main.d.ts.map +1 -0
  463. package/src/shade/playground/particle_system/main.js +180 -0
  464. package/src/shade/playground/particle_system/particle_scene.d.ts +52 -0
  465. package/src/shade/playground/particle_system/particle_scene.d.ts.map +1 -0
  466. package/src/shade/playground/particle_system/particle_scene.js +552 -0
  467. package/src/shade/playground/skinned_blas_refit/README.md +1 -1
  468. package/src/shade/playground/skinned_blas_refit/index.html +15 -1
  469. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  470. package/src/shade/playground/skinned_blas_refit/main.js +339 -3
  471. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts +8 -1
  472. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -1
  473. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +27 -5
  474. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +27 -0
  475. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -0
  476. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +127 -0
  477. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts.map +1 -1
  478. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +3 -3
  479. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
  480. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +10 -8
  481. package/src/shade/playground/skinned_mesh_soup/README.md +122 -0
  482. package/src/shade/playground/skinned_mesh_soup/index.html +199 -0
  483. package/src/shade/playground/skinned_mesh_soup/main.d.ts +7 -0
  484. package/src/shade/playground/skinned_mesh_soup/main.d.ts.map +1 -0
  485. package/src/shade/playground/skinned_mesh_soup/main.js +564 -0
  486. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts +23 -0
  487. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.d.ts.map +1 -0
  488. package/src/shade/playground/skinned_mesh_soup/verify_clone_vertices.js +409 -0
  489. package/src/shade/playground/texture_encode/README.md +109 -0
  490. package/src/shade/playground/texture_encode/index.html +133 -0
  491. package/src/shade/playground/texture_encode/main.d.ts +24 -0
  492. package/src/shade/playground/texture_encode/main.d.ts.map +1 -0
  493. package/src/shade/playground/texture_encode/main.js +1430 -0
  494. package/src/shade/playground/texture_encode/panel_view.d.ts +118 -0
  495. package/src/shade/playground/texture_encode/panel_view.d.ts.map +1 -0
  496. package/src/shade/playground/texture_encode/panel_view.js +363 -0
  497. package/src/shade/renderer/Renderer.js +2 -2
  498. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  499. package/src/shade/renderer/animation/GPUAnimationManager.js +49 -5
  500. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  501. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +32 -14
  502. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
  503. package/src/shade/renderer/geometry/GPUGeometryManager.js +591 -497
  504. package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts +9 -0
  505. package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts.map +1 -1
  506. package/src/shade/renderer/geometry/GPUGeometryMetadata.js +10 -0
  507. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_BATCH_PLAN.md +606 -0
  508. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts +17 -0
  509. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts.map +1 -0
  510. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.js +44 -0
  511. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts +58 -0
  512. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts.map +1 -0
  513. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +362 -0
  514. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +38 -0
  515. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  516. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +730 -617
  517. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +15 -2
  518. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
  519. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +15 -1
  520. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts +39 -0
  521. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts.map +1 -0
  522. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.js +134 -0
  523. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_collect_geometries.js +3 -3
  524. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_open_document.js +3 -3
  525. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_read_geometry.js +1 -1
  526. package/src/shade/renderer/gpu_primitive/bvh/BVH_NODE_LAYOUT_DEFINITION.d.ts +17 -0
  527. package/src/shade/renderer/gpu_primitive/bvh/BVH_NODE_LAYOUT_DEFINITION.d.ts.map +1 -0
  528. package/src/shade/renderer/gpu_primitive/bvh/BVH_NODE_LAYOUT_DEFINITION.js +30 -0
  529. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +8 -1
  530. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts +34 -0
  531. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts.map +1 -0
  532. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.js +102 -0
  533. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +11 -9
  534. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
  535. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +24 -86
  536. package/src/shade/renderer/loader/gltf/gltf_create_texture.d.ts +18 -0
  537. package/src/shade/renderer/loader/gltf/gltf_create_texture.d.ts.map +1 -0
  538. package/src/shade/renderer/loader/gltf/gltf_create_texture.js +103 -0
  539. package/src/shade/renderer/loader/gltf/gltf_image_roles.d.ts +26 -0
  540. package/src/shade/renderer/loader/gltf/gltf_image_roles.d.ts.map +1 -0
  541. package/src/shade/renderer/loader/gltf/gltf_image_roles.js +108 -0
  542. package/src/shade/renderer/loader/gltf/load_gltf.d.ts +10 -3
  543. package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
  544. package/src/shade/renderer/loader/gltf/load_gltf.js +1179 -1253
  545. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +18 -1
  546. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts.map +1 -1
  547. package/src/shade/renderer/loader/gltf/tiny-gltf.js +837 -646
  548. package/src/shade/renderer/loader/usd/load_usd.js +3 -3
  549. package/src/shade/renderer/loader/usd/usd_build_scene.js +2 -2
  550. package/src/shade/renderer/loader/usd/usd_decode_image.d.ts +6 -5
  551. package/src/shade/renderer/loader/usd/usd_decode_image.d.ts.map +1 -1
  552. package/src/shade/renderer/loader/usd/usd_decode_image.js +197 -384
  553. package/src/shade/renderer/particles/cull/chunk_particle_cull.d.ts.map +1 -1
  554. package/src/shade/renderer/particles/cull/chunk_particle_cull.js +3 -1
  555. package/src/shade/renderer/particles/data/chunk_particle_emitter.js +1 -1
  556. package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts +1 -1
  557. package/src/shade/renderer/particles/graph/compile_particle_graph.d.ts.map +1 -1
  558. package/src/shade/renderer/particles/isa/InstructionStream.d.ts +89 -0
  559. package/src/shade/renderer/particles/isa/InstructionStream.d.ts.map +1 -0
  560. package/src/shade/renderer/particles/isa/InstructionStream.js +162 -0
  561. package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts +1 -48
  562. package/src/shade/renderer/particles/isa/ParticleAssembler.d.ts.map +1 -1
  563. package/src/shade/renderer/particles/isa/ParticleAssembler.js +25 -114
  564. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.d.ts.map +1 -1
  565. package/src/shade/renderer/particles/shaders/chunk_particle_curve_animation.js +4 -2
  566. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts +4 -4
  567. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.d.ts.map +1 -1
  568. package/src/shade/renderer/particles/shaders/chunk_particle_lighting.js +7 -5
  569. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.d.ts.map +1 -1
  570. package/src/shade/renderer/particles/shaders/chunk_particle_render_math.js +3 -1
  571. package/src/shade/renderer/particles/shaders/shader_particle_emit.d.ts.map +1 -1
  572. package/src/shade/renderer/particles/shaders/shader_particle_emit.js +3 -1
  573. package/src/shade/renderer/particles/shaders/shader_particle_finalize.d.ts.map +1 -1
  574. package/src/shade/renderer/particles/shaders/shader_particle_finalize.js +5 -2
  575. package/src/shade/renderer/particles/shaders/shader_particle_render.d.ts.map +1 -1
  576. package/src/shade/renderer/particles/shaders/shader_particle_render.js +9 -2
  577. package/src/shade/renderer/particles/shaders/shader_particle_simulate.d.ts.map +1 -1
  578. package/src/shade/renderer/particles/shaders/shader_particle_simulate.js +3 -1
  579. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  580. package/src/shade/renderer/postprocess/taa/TAA.d.ts +3 -3
  581. package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
  582. package/src/shade/renderer/postprocess/taa/TAA.js +2 -6
  583. package/src/shade/renderer/postprocess/taa/chunk_depth_clip_offset_codec.d.ts +18 -0
  584. package/src/shade/renderer/postprocess/taa/chunk_depth_clip_offset_codec.d.ts.map +1 -0
  585. package/src/shade/renderer/postprocess/taa/chunk_depth_clip_offset_codec.js +36 -0
  586. package/src/shade/renderer/postprocess/taa/chunk_taa_history_color_bounding_box_YCoCg.d.ts.map +1 -1
  587. package/src/shade/renderer/postprocess/taa/chunk_taa_history_color_bounding_box_YCoCg.js +4 -1
  588. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.d.ts.map +1 -1
  589. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.js +13 -8
  590. package/src/shade/renderer/postprocess/taa/shader_taa.d.ts +1 -1
  591. package/src/shade/renderer/postprocess/taa/shader_taa.d.ts.map +1 -1
  592. package/src/shade/renderer/postprocess/taa/shader_taa.js +52 -38
  593. package/src/shade/renderer/restir/di/chunk_restir_temporal_reuse.d.ts +4 -2
  594. package/src/shade/renderer/restir/di/chunk_restir_temporal_reuse.d.ts.map +1 -1
  595. package/src/shade/renderer/restir/di/chunk_restir_temporal_reuse.js +9 -6
  596. package/src/shade/renderer/scene/optimization/deduplicate_images.js +93 -93
  597. package/src/shade/renderer/scene/optimization/downscale_images.js +216 -216
  598. package/src/shade/renderer/scene/serialization/decode_image_source_hdr.js +1 -1
  599. package/src/shade/renderer/scene/serialization/deserialize_scene.js +1 -1
  600. package/src/shade/renderer/scene/serialization/write_image_source.js +1 -1
  601. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.d.ts +1 -1
  602. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.js +1 -1
  603. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture_sample_catmullrom_hardware_5tap_uv.d.ts +2 -1
  604. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture_sample_catmullrom_hardware_5tap_uv.d.ts.map +1 -1
  605. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture_sample_catmullrom_hardware_5tap_uv.js +2 -1
  606. package/src/shade/renderer/texture/COMPRESSED_TEXTURE_PLAN_2026_09_01.md +893 -10
  607. package/src/shade/renderer/texture/encode/ENCODE_NOTES_2026_09_02.md +462 -0
  608. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.d.ts +33 -0
  609. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.d.ts.map +1 -0
  610. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.js +310 -0
  611. package/src/shade/renderer/texture/encode/chunk_astc_pack_4x4_rgb.d.ts +17 -0
  612. package/src/shade/renderer/texture/encode/chunk_astc_pack_4x4_rgb.d.ts.map +1 -0
  613. package/src/shade/renderer/texture/encode/chunk_astc_pack_4x4_rgb.js +51 -0
  614. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts +42 -0
  615. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts.map +1 -0
  616. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.js +375 -0
  617. package/src/shade/renderer/texture/encode/chunk_bc1_pack_block.d.ts +12 -0
  618. package/src/shade/renderer/texture/encode/chunk_bc1_pack_block.d.ts.map +1 -0
  619. package/src/shade/renderer/texture/encode/chunk_bc1_pack_block.js +24 -0
  620. package/src/shade/renderer/texture/encode/chunk_bc4_encode_block.d.ts +45 -0
  621. package/src/shade/renderer/texture/encode/chunk_bc4_encode_block.d.ts.map +1 -0
  622. package/src/shade/renderer/texture/encode/chunk_bc4_encode_block.js +348 -0
  623. package/src/shade/renderer/texture/encode/chunk_bc4_pack_block.d.ts +16 -0
  624. package/src/shade/renderer/texture/encode/chunk_bc4_pack_block.d.ts.map +1 -0
  625. package/src/shade/renderer/texture/encode/chunk_bc4_pack_block.js +33 -0
  626. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.d.ts +32 -0
  627. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.d.ts.map +1 -0
  628. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.js +346 -0
  629. package/src/shade/renderer/texture/encode/chunk_bc6h_pack_mode11.d.ts +10 -0
  630. package/src/shade/renderer/texture/encode/chunk_bc6h_pack_mode11.d.ts.map +1 -0
  631. package/src/shade/renderer/texture/encode/chunk_bc6h_pack_mode11.js +54 -0
  632. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts +36 -0
  633. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts.map +1 -0
  634. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.js +327 -0
  635. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts +22 -0
  636. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts.map +1 -0
  637. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.js +71 -0
  638. package/src/shade/renderer/texture/encode/chunk_texture_encode_level.d.ts +20 -0
  639. package/src/shade/renderer/texture/encode/chunk_texture_encode_level.d.ts.map +1 -0
  640. package/src/shade/renderer/texture/encode/chunk_texture_encode_level.js +73 -0
  641. package/src/shade/renderer/texture/encode/chunk_texture_encode_load_block.d.ts +16 -0
  642. package/src/shade/renderer/texture/encode/chunk_texture_encode_load_block.d.ts.map +1 -0
  643. package/src/shade/renderer/texture/encode/chunk_texture_encode_load_block.js +36 -0
  644. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.d.ts +13 -0
  645. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.d.ts.map +1 -0
  646. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.js +63 -0
  647. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.d.ts +12 -0
  648. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.d.ts.map +1 -0
  649. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.js +60 -0
  650. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.d.ts +28 -0
  651. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.d.ts.map +1 -0
  652. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.js +76 -0
  653. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.d.ts +16 -0
  654. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.d.ts.map +1 -0
  655. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.js +64 -0
  656. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.d.ts +14 -0
  657. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.d.ts.map +1 -0
  658. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.js +67 -0
  659. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.d.ts +10 -0
  660. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.d.ts.map +1 -0
  661. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.js +63 -0
  662. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.d.ts +12 -0
  663. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.d.ts.map +1 -0
  664. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.js +62 -0
  665. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts +14 -0
  666. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts.map +1 -0
  667. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.js +58 -0
  668. package/src/shade/renderer/texture/encode/texture_encode.d.ts +84 -0
  669. package/src/shade/renderer/texture/encode/texture_encode.d.ts.map +1 -0
  670. package/src/shade/renderer/texture/encode/texture_encode.js +168 -0
  671. package/src/shade/renderer/texture/encode/texture_encode_layout.d.ts +196 -0
  672. package/src/shade/renderer/texture/encode/texture_encode_layout.d.ts.map +1 -0
  673. package/src/shade/renderer/texture/encode/texture_encode_layout.js +248 -0
  674. package/src/shade/renderer/texture/encode/texture_encode_resources.d.ts +15 -0
  675. package/src/shade/renderer/texture/encode/texture_encode_resources.d.ts.map +1 -0
  676. package/src/shade/renderer/texture/encode/texture_encode_resources.js +25 -0
  677. package/src/shade/renderer/texture/encode/texture_encode_shader.d.ts +30 -0
  678. package/src/shade/renderer/texture/encode/texture_encode_shader.d.ts.map +1 -0
  679. package/src/shade/renderer/texture/encode/texture_encode_shader.js +108 -0
  680. package/src/shade/renderer/texture/format/gpu_texture_compression_support.d.ts +3 -1
  681. package/src/shade/renderer/texture/format/gpu_texture_compression_support.d.ts.map +1 -1
  682. package/src/shade/renderer/texture/format/gpu_texture_compression_support.js +8 -25
  683. package/src/shade/renderer/texture/format/texture_format_from_shade_image.d.ts.map +1 -1
  684. package/src/shade/renderer/texture/format/texture_format_from_shade_image.js +26 -2
  685. package/src/shade/renderer/texture/source/texel_data_from_ktx2.d.ts +32 -0
  686. package/src/shade/renderer/texture/source/texel_data_from_ktx2.d.ts.map +1 -0
  687. package/src/shade/renderer/texture/source/texel_data_from_ktx2.js +48 -0
  688. package/src/shade/renderer/texture/texture_write_level.d.ts.map +1 -1
  689. package/src/shade/renderer/texture/texture_write_level.js +11 -1
  690. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  691. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +20 -0
  692. package/src/shade/renderer/volumetrics/NOTES.md +28 -0
  693. package/src/shade/renderer/volumetrics/taa/chunk_volumetric_history_bounding_box.d.ts.map +1 -1
  694. package/src/shade/renderer/volumetrics/taa/chunk_volumetric_history_bounding_box.js +7 -2
  695. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_reproject.d.ts +17 -0
  696. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_reproject.d.ts.map +1 -0
  697. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_reproject.js +168 -0
  698. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_resolve.d.ts +13 -0
  699. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_resolve.d.ts.map +1 -0
  700. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_resolve.js +56 -0
  701. package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.d.ts.map +1 -1
  702. package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.js +134 -334
  703. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  704. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +49 -21
  705. package/src/avif/encode_image_source.d.ts +0 -70
  706. package/src/avif/encode_image_source.d.ts.map +0 -1
  707. package/src/avif/encode_image_source.js +0 -117
  708. package/src/avif/encoder_worker.d.ts.map +0 -1
  709. package/src/avif/index.d.ts +0 -5
  710. package/src/avif/index.d.ts.map +0 -1
  711. package/src/avif/index.js +0 -21
  712. package/src/avif/native/DECISIONS.md +0 -545
  713. package/src/avif/native/api/AvifDecoder.d.ts.map +0 -1
  714. package/src/avif/native/api/apply_transformations.d.ts.map +0 -1
  715. package/src/avif/native/api/avif_to_sampler2d.d.ts +0 -25
  716. package/src/avif/native/api/avif_to_sampler2d.d.ts.map +0 -1
  717. package/src/avif/native/api/avif_to_sampler2d.js +0 -42
  718. package/src/avif/native/api/convert_to_rgba.d.ts.map +0 -1
  719. package/src/avif/native/api/convert_to_rgba.js +0 -204
  720. package/src/avif/native/api/decode_avif.d.ts.map +0 -1
  721. package/src/avif/native/api/decode_image_item.d.ts.map +0 -1
  722. package/src/avif/native/api/encode_avif.d.ts.map +0 -1
  723. package/src/avif/native/api/sampler2d_to_avif.d.ts.map +0 -1
  724. package/src/avif/native/api/sampler2d_to_avif.js +0 -108
  725. package/src/avif/native/av1/decode/Av1FrameContext.d.ts.map +0 -1
  726. package/src/avif/native/av1/decode/block_decoded.d.ts.map +0 -1
  727. package/src/avif/native/av1/decode/decode_av1_still.d.ts.map +0 -1
  728. package/src/avif/native/av1/decode/decode_coefficients.d.ts.map +0 -1
  729. package/src/avif/native/av1/decode/decode_palette.d.ts.map +0 -1
  730. package/src/avif/native/av1/decode/decode_palette.js +0 -442
  731. package/src/avif/native/av1/decode/decode_tile.d.ts.map +0 -1
  732. package/src/avif/native/av1/decode/decode_tile.js +0 -1213
  733. package/src/avif/native/av1/decode/get_scan.d.ts.map +0 -1
  734. package/src/avif/native/av1/decode/read_lr.d.ts.map +0 -1
  735. package/src/avif/native/av1/decode/read_lr.js +0 -277
  736. package/src/avif/native/av1/decode/read_transform_type.d.ts.map +0 -1
  737. package/src/avif/native/av1/decode/read_transform_type.js +0 -92
  738. package/src/avif/native/av1/decode/reconstruct.d.ts.map +0 -1
  739. package/src/avif/native/av1/decode/reconstruct.js +0 -241
  740. package/src/avif/native/av1/decode/transform_type.d.ts.map +0 -1
  741. package/src/avif/native/av1/encode/Av1BlockSnapshot.d.ts.map +0 -1
  742. package/src/avif/native/av1/encode/Av1EncodeContext.d.ts.map +0 -1
  743. package/src/avif/native/av1/encode/build_headers.d.ts.map +0 -1
  744. package/src/avif/native/av1/encode/choose_chroma_alpha.d.ts.map +0 -1
  745. package/src/avif/native/av1/encode/choose_filters.d.ts.map +0 -1
  746. package/src/avif/native/av1/encode/choose_restoration.d.ts.map +0 -1
  747. package/src/avif/native/av1/encode/choose_restoration.js +0 -616
  748. package/src/avif/native/av1/encode/decode_effort.d.ts.map +0 -1
  749. package/src/avif/native/av1/encode/encode_av1_still.d.ts.map +0 -1
  750. package/src/avif/native/av1/encode/encode_effort.d.ts.map +0 -1
  751. package/src/avif/native/av1/encode/encode_tile.d.ts.map +0 -1
  752. package/src/avif/native/av1/encode/encode_tile.js +0 -2331
  753. package/src/avif/native/av1/encode/quantise.d.ts.map +0 -1
  754. package/src/avif/native/av1/encode/write_coefficients.d.ts.map +0 -1
  755. package/src/avif/native/av1/encode/write_lr.d.ts.map +0 -1
  756. package/src/avif/native/av1/encode/write_transform_type.d.ts.map +0 -1
  757. package/src/avif/native/av1/entropy/CdfContext.d.ts.map +0 -1
  758. package/src/avif/native/av1/entropy/SymbolReader.d.ts.map +0 -1
  759. package/src/avif/native/av1/entropy/SymbolWriter.d.ts.map +0 -1
  760. package/src/avif/native/av1/entropy/coefficient_context.d.ts.map +0 -1
  761. package/src/avif/native/av1/entropy/partition_cdf.d.ts.map +0 -1
  762. package/src/avif/native/av1/entropy/symbol_cost.d.ts.map +0 -1
  763. package/src/avif/native/av1/filter/cdef.d.ts.map +0 -1
  764. package/src/avif/native/av1/filter/cdef.js +0 -313
  765. package/src/avif/native/av1/filter/loop_filter.d.ts.map +0 -1
  766. package/src/avif/native/av1/filter/loop_filter.js +0 -377
  767. package/src/avif/native/av1/filter/loop_restoration.d.ts.map +0 -1
  768. package/src/avif/native/av1/filter/loop_restoration.js +0 -451
  769. package/src/avif/native/av1/filter/superres.d.ts.map +0 -1
  770. package/src/avif/native/av1/filter/superres.js +0 -86
  771. package/src/avif/native/av1/grain/FilmGrainState.d.ts.map +0 -1
  772. package/src/avif/native/av1/grain/film_grain.d.ts.map +0 -1
  773. package/src/avif/native/av1/grain/film_grain.js +0 -623
  774. package/src/avif/native/av1/obu/FrameHeader.d.ts.map +0 -1
  775. package/src/avif/native/av1/obu/ObuHeader.d.ts.map +0 -1
  776. package/src/avif/native/av1/obu/SequenceHeader.d.ts.map +0 -1
  777. package/src/avif/native/av1/obu/for_each_obu.d.ts.map +0 -1
  778. package/src/avif/native/av1/obu/parse_frame_header.d.ts.map +0 -1
  779. package/src/avif/native/av1/obu/parse_frame_header.js +0 -841
  780. package/src/avif/native/av1/obu/parse_obu_header.d.ts.map +0 -1
  781. package/src/avif/native/av1/obu/parse_sequence_header.d.ts.map +0 -1
  782. package/src/avif/native/av1/obu/write_frame_header.d.ts.map +0 -1
  783. package/src/avif/native/av1/obu/write_sequence_header.d.ts.map +0 -1
  784. package/src/avif/native/av1/predict/IntraPredictionState.d.ts.map +0 -1
  785. package/src/avif/native/av1/predict/intra_filter_type.d.ts.map +0 -1
  786. package/src/avif/native/av1/predict/predict_chroma_from_luma.d.ts.map +0 -1
  787. package/src/avif/native/av1/predict/predict_chroma_from_luma.js +0 -153
  788. package/src/avif/native/av1/predict/predict_intra.d.ts.map +0 -1
  789. package/src/avif/native/av1/predict/predict_intra.js +0 -803
  790. package/src/avif/native/av1/predict/predict_palette.d.ts.map +0 -1
  791. package/src/avif/native/av1/tables/av1_symbols.d.ts.map +0 -1
  792. package/src/avif/native/av1/tables/av1_symbols.js +0 -419
  793. package/src/avif/native/av1/tables/block_tables.d.ts.map +0 -1
  794. package/src/avif/native/av1/tables/block_tables.js +0 -270
  795. package/src/avif/native/av1/tables/cdf_tables.d.ts.map +0 -1
  796. package/src/avif/native/av1/tables/cdf_tables.js +0 -1893
  797. package/src/avif/native/av1/tables/coefficient_tables.d.ts.map +0 -1
  798. package/src/avif/native/av1/tables/coefficient_tables.js +0 -82
  799. package/src/avif/native/av1/tables/derived_block_tables.d.ts.map +0 -1
  800. package/src/avif/native/av1/tables/filter_tables.d.ts.map +0 -1
  801. package/src/avif/native/av1/tables/filter_tables.js +0 -313
  802. package/src/avif/native/av1/tables/grain_tables.d.ts.map +0 -1
  803. package/src/avif/native/av1/tables/grain_tables.js +0 -190
  804. package/src/avif/native/av1/tables/prediction_tables.d.ts.map +0 -1
  805. package/src/avif/native/av1/tables/prediction_tables.js +0 -223
  806. package/src/avif/native/av1/tables/quantizer_matrix_tables.d.ts.map +0 -1
  807. package/src/avif/native/av1/tables/quantizer_matrix_tables.js +0 -38
  808. package/src/avif/native/av1/tables/quantizer_tables.d.ts.map +0 -1
  809. package/src/avif/native/av1/tables/quantizer_tables.js +0 -160
  810. package/src/avif/native/av1/tables/scan_tables.d.ts.map +0 -1
  811. package/src/avif/native/av1/tables/scan_tables.js +0 -727
  812. package/src/avif/native/av1/tables/segmentation_tables.d.ts.map +0 -1
  813. package/src/avif/native/av1/tables/segmentation_tables.js +0 -48
  814. package/src/avif/native/av1/tables/transform_tables.d.ts.map +0 -1
  815. package/src/avif/native/av1/tables/transform_tables.js +0 -140
  816. package/src/avif/native/av1/tables/unpack_table.d.ts.map +0 -1
  817. package/src/avif/native/av1/tables/unpack_table.js +0 -73
  818. package/src/avif/native/av1/transform/forward_transform_2d.d.ts.map +0 -1
  819. package/src/avif/native/av1/transform/inverse_transform_1d.d.ts.map +0 -1
  820. package/src/avif/native/av1/transform/inverse_transform_1d.js +0 -590
  821. package/src/avif/native/av1/transform/inverse_transform_2d.d.ts.map +0 -1
  822. package/src/avif/native/av1/transform/inverse_transform_2d.js +0 -180
  823. package/src/avif/native/av1/util/ceil_log2.d.ts.map +0 -1
  824. package/src/avif/native/av1/util/floor_log2.d.ts +0 -20
  825. package/src/avif/native/av1/util/floor_log2.d.ts.map +0 -1
  826. package/src/avif/native/av1/util/floor_log2.js +0 -20
  827. package/src/avif/native/av1/util/round2.d.ts.map +0 -1
  828. package/src/avif/native/av1/util/round2_signed.d.ts.map +0 -1
  829. package/src/avif/native/av1/util/tile_log2.d.ts.map +0 -1
  830. package/src/avif/native/bitstream/BitReader.d.ts.map +0 -1
  831. package/src/avif/native/bitstream/BitWriter.d.ts.map +0 -1
  832. package/src/avif/native/color/ColourTransform.d.ts.map +0 -1
  833. package/src/avif/native/color/YuvImage.d.ts.map +0 -1
  834. package/src/avif/native/color/clamp_sample.d.ts.map +0 -1
  835. package/src/avif/native/color/linear_to_transfer.d.ts.map +0 -1
  836. package/src/avif/native/color/linear_to_transfer.js +0 -126
  837. package/src/avif/native/color/primaries.d.ts.map +0 -1
  838. package/src/avif/native/color/rgb_row_to_ycbcr.d.ts.map +0 -1
  839. package/src/avif/native/color/transfer_to_linear.d.ts.map +0 -1
  840. package/src/avif/native/color/transfer_to_linear.js +0 -171
  841. package/src/avif/native/color/upsample_chroma_row.d.ts.map +0 -1
  842. package/src/avif/native/color/upsample_chroma_row.js +0 -89
  843. package/src/avif/native/color/ycbcr_row_to_rgb.d.ts.map +0 -1
  844. package/src/avif/native/color/ycbcr_row_to_rgb.js +0 -78
  845. package/src/avif/native/heif/AvifFile.d.ts.map +0 -1
  846. package/src/avif/native/heif/ItemProperty.d.ts.map +0 -1
  847. package/src/avif/native/heif/find_item_property.d.ts.map +0 -1
  848. package/src/avif/native/heif/find_item_references.d.ts.map +0 -1
  849. package/src/avif/native/heif/find_items_referencing.d.ts.map +0 -1
  850. package/src/avif/native/heif/parse_avif_file.d.ts.map +0 -1
  851. package/src/avif/native/heif/parse_avif_file.js +0 -384
  852. package/src/avif/native/heif/parse_image_grid.d.ts.map +0 -1
  853. package/src/avif/native/heif/parse_image_grid.js +0 -49
  854. package/src/avif/native/heif/parse_item_property.d.ts.map +0 -1
  855. package/src/avif/native/heif/read_item_data.d.ts.map +0 -1
  856. package/src/avif/native/heif/write_avif_file.d.ts.map +0 -1
  857. package/src/avif/native/heif/write_item_property.d.ts.map +0 -1
  858. package/src/avif/native/index.d.ts +0 -14
  859. package/src/avif/native/index.d.ts.map +0 -1
  860. package/src/avif/native/index.js +0 -56
  861. package/src/avif/native/isobmff/BoxHeader.d.ts.map +0 -1
  862. package/src/avif/native/isobmff/BoxWriter.d.ts +0 -118
  863. package/src/avif/native/isobmff/BoxWriter.d.ts.map +0 -1
  864. package/src/avif/native/isobmff/BoxWriter.js +0 -264
  865. package/src/avif/native/isobmff/for_each_box.d.ts.map +0 -1
  866. package/src/avif/native/isobmff/read_box_header.d.ts.map +0 -1
  867. package/src/avif/native/isobmff/read_full_box_header.d.ts.map +0 -1
  868. package/src/avif/threaded_image_encoder.d.ts.map +0 -1
  869. package/src/basis/BasisBitReader.d.ts +0 -77
  870. package/src/basis/BasisBitReader.d.ts.map +0 -1
  871. package/src/basis/BasisBitReader.js +0 -231
  872. package/src/basis/BasisHuffmanTable.d.ts.map +0 -1
  873. package/src/basis/basis_read_huffman_table.d.ts.map +0 -1
  874. package/src/basis/etc1s/Etc1sSelectorHistory.d.ts.map +0 -1
  875. package/src/basis/etc1s/etc1s_block_colors.d.ts.map +0 -1
  876. package/src/basis/etc1s/etc1s_decode_slice.d.ts.map +0 -1
  877. package/src/basis/etc1s/etc1s_decode_slice.js +0 -258
  878. package/src/basis/etc1s/etc1s_read_endpoint_codebook.d.ts.map +0 -1
  879. package/src/basis/etc1s/etc1s_read_selector_codebook.d.ts.map +0 -1
  880. package/src/basis/etc1s/etc1s_read_slice_tables.d.ts.map +0 -1
  881. package/src/basis/transcode/etc1s_to_bc1.d.ts +0 -24
  882. package/src/basis/transcode/etc1s_to_bc1.d.ts.map +0 -1
  883. package/src/basis/transcode/etc1s_to_bc1.js +0 -205
  884. package/src/basis/transcode/etc1s_to_bc7.d.ts +0 -30
  885. package/src/basis/transcode/etc1s_to_bc7.d.ts.map +0 -1
  886. package/src/basis/transcode/fit_endpoints.d.ts +0 -59
  887. package/src/basis/transcode/fit_endpoints.d.ts.map +0 -1
  888. package/src/basis/transcode/fit_endpoints.js +0 -226
  889. package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.d.ts +0 -8
  890. package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.d.ts.map +0 -1
  891. package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.js +0 -70
  892. package/src/engine/asset/loaders/gltf/isMesh.d.ts +0 -7
  893. package/src/engine/asset/loaders/gltf/isMesh.d.ts.map +0 -1
  894. package/src/engine/asset/loaders/gltf/isMesh.js +0 -8
  895. package/src/engine/asset/loaders/image/jpeg/JpegFrame.d.ts.map +0 -1
  896. package/src/engine/asset/loaders/image/jpeg/JpegFrameComponent.d.ts.map +0 -1
  897. package/src/engine/asset/loaders/image/jpeg/JpegImage.d.ts.map +0 -1
  898. package/src/engine/asset/loaders/image/jpeg/JpegImage.js +0 -664
  899. package/src/engine/asset/loaders/image/jpeg/buildComponentData.d.ts.map +0 -1
  900. package/src/engine/asset/loaders/image/jpeg/buildHuffmanTable.d.ts.map +0 -1
  901. package/src/engine/asset/loaders/image/jpeg/decodeScan.d.ts.map +0 -1
  902. package/src/engine/asset/loaders/image/jpeg/idct8x8_float.d.ts.map +0 -1
  903. package/src/engine/asset/loaders/image/jpeg/idct8x8_float.js +0 -31
  904. package/src/engine/asset/loaders/image/jpeg/jpeg_component_row.d.ts.map +0 -1
  905. package/src/engine/asset/loaders/image/jpeg/jpeg_decode.d.ts.map +0 -1
  906. package/src/engine/asset/loaders/image/png/PNG.d.ts.map +0 -1
  907. package/src/engine/asset/loaders/image/png/PNGReader.d.ts +0 -158
  908. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +0 -1
  909. package/src/engine/asset/loaders/image/png/PNGReader.js +0 -656
  910. package/src/engine/asset/loaders/image/png/PNG_HEADER_BYTES.d.ts.map +0 -1
  911. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +0 -1
  912. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_iTXt.js +0 -53
  913. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_zTXt.d.ts.map +0 -1
  914. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_zTXt.js +0 -42
  915. package/src/engine/asset/loaders/image/png/crc32.d.ts +0 -2
  916. package/src/engine/asset/loaders/image/png/crc32.d.ts.map +0 -1
  917. package/src/engine/asset/loaders/image/png/crc32.js +0 -8
  918. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterAverage.d.ts.map +0 -1
  919. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterNone.d.ts.map +0 -1
  920. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterPaeth.d.ts.map +0 -1
  921. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterSub.d.ts.map +0 -1
  922. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterUp.d.ts.map +0 -1
  923. package/src/engine/asset/loaders/image/png/filter/png_unfilter.d.ts.map +0 -1
  924. package/src/engine/asset/loaders/image/png/filter/png_unfilter.js +0 -68
  925. package/src/engine/asset/loaders/image/png/png_inflate.d.ts.map +0 -1
  926. package/src/engine/asset/loaders/image/png/png_unpack_samples.d.ts.map +0 -1
  927. package/src/engine/asset/loaders/image/png/prototypePNG.d.ts.map +0 -1
  928. package/src/engine/asset/loaders/image/png/prototypePNG.js +0 -37
  929. package/src/ktx2/KTX2_IDENTIFIER.d.ts.map +0 -1
  930. package/src/ktx2/KhrDfModel.d.ts.map +0 -1
  931. package/src/ktx2/SupercompressionScheme.d.ts.map +0 -1
  932. package/src/ktx2/ktx2_read.d.ts +0 -71
  933. package/src/ktx2/ktx2_read.d.ts.map +0 -1
  934. package/src/ktx2/ktx2_read.js +0 -581
  935. package/src/ktx2/ktx2_read_basis_lz_global_data.d.ts +0 -27
  936. package/src/ktx2/ktx2_read_basis_lz_global_data.d.ts.map +0 -1
  937. package/src/ktx2/ktx2_read_basis_lz_global_data.js +0 -189
  938. package/src/ktx2/vk_format_to_texture_format.d.ts +0 -55
  939. package/src/ktx2/vk_format_to_texture_format.d.ts.map +0 -1
  940. package/src/ktx2/vk_format_to_texture_format.js +0 -290
  941. package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts +0 -25
  942. package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts.map +0 -1
  943. package/src/shade/renderer/geometry/bvh/record_blas_refit.js +0 -102
  944. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts +0 -30
  945. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +0 -1
  946. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +0 -125
  947. package/src/shade/renderer/loader/gltf/GLTF_PRIMITIVE_MODE.d.ts.map +0 -1
  948. package/src/shade/renderer/loader/gltf/MESHOPT_COMPRESSION_PLAN.md +0 -793
  949. package/src/shade/renderer/loader/gltf/coalesce_array_duplicates.d.ts.map +0 -1
  950. package/src/shade/renderer/loader/gltf/ext/GltfBufferViewExtension.d.ts.map +0 -1
  951. package/src/shade/renderer/loader/gltf/ext/GltfBufferViewExtensionSet.d.ts.map +0 -1
  952. package/src/shade/renderer/loader/gltf/ext/GltfBufferViewExtensionSet.js +0 -109
  953. package/src/shade/renderer/loader/gltf/ext/gltf_apply_buffer_view_extensions.d.ts.map +0 -1
  954. package/src/shade/renderer/loader/gltf/ext/gltf_buffer_view_extensions.d.ts.map +0 -1
  955. package/src/shade/renderer/loader/gltf/ext/gltf_geometry_extensions.d.ts.map +0 -1
  956. package/src/shade/renderer/loader/gltf/ext/meshopt/MeshoptBufferViewExtension.d.ts.map +0 -1
  957. package/src/shade/renderer/loader/gltf/ext/meshopt/MeshoptBufferViewExtension.js +0 -301
  958. package/src/shade/renderer/loader/gltf/gltf_component_type.d.ts.map +0 -1
  959. package/src/shade/renderer/loader/gltf/gltf_node_world_matrices.d.ts.map +0 -1
  960. package/src/shade/renderer/loader/gltf/gltf_node_world_matrices.js +0 -137
  961. package/src/shade/renderer/loader/gltf/gltf_parse_container.d.ts.map +0 -1
  962. package/src/shade/renderer/loader/gltf/gltf_read_accessor.d.ts.map +0 -1
  963. package/src/shade/renderer/loader/gltf/gltf_read_accessor.js +0 -294
  964. package/src/shade/renderer/loader/gltf/gltf_used_image_indices.d.ts +0 -25
  965. package/src/shade/renderer/loader/gltf/gltf_used_image_indices.d.ts.map +0 -1
  966. package/src/shade/renderer/loader/gltf/gltf_used_image_indices.js +0 -49
  967. package/src/shade/renderer/loader/usd/UsdError.d.ts.map +0 -1
  968. package/src/shade/renderer/loader/usd/parse_usda.d.ts.map +0 -1
  969. package/src/shade/renderer/loader/usd/unpack_usdz.d.ts.map +0 -1
  970. package/src/shade/renderer/loader/usd/unpack_usdz.js +0 -106
  971. package/src/shade/renderer/loader/usd/usd_compose_transform.d.ts.map +0 -1
  972. package/src/shade/renderer/loader/usd/usd_compose_transform.js +0 -258
  973. package/src/shade/renderer/loader/usd/usd_lz4.d.ts.map +0 -1
  974. package/src/shade/renderer/loader/usd/usd_lz4.js +0 -182
  975. package/src/shade/renderer/loader/usd/usd_triangulate.d.ts.map +0 -1
  976. package/src/shade/renderer/particles/prototypeParticleSystem.d.ts +0 -2
  977. package/src/shade/renderer/particles/prototypeParticleSystem.d.ts.map +0 -1
  978. package/src/shade/renderer/particles/prototypeParticleSystem.js +0 -448
  979. package/src/shade/renderer/postprocess/taa/chunk_taa_sample_history_color.d.ts +0 -2
  980. package/src/shade/renderer/postprocess/taa/chunk_taa_sample_history_color.d.ts.map +0 -1
  981. package/src/shade/renderer/postprocess/taa/chunk_taa_sample_history_color.js +0 -43
  982. package/src/shade/renderer/scene/optimization/sampler2d_compare.d.ts.map +0 -1
  983. package/src/shade/renderer/scene/optimization/sampler2d_compare.js +0 -94
  984. /package/src/{avif → engine/asset/loaders/image/avif}/encoder_worker.d.ts +0 -0
  985. /package/src/{avif → engine/asset/loaders/image/avif}/encoder_worker.js +0 -0
  986. /package/src/{avif → engine/asset/loaders/image/avif}/threaded_image_encoder.d.ts +0 -0
  987. /package/src/{avif → engine/asset/loaders/image/avif}/threaded_image_encoder.js +0 -0
  988. /package/src/engine/asset/loaders/image/{png/prototypePNG.d.ts → prototypePNG.d.ts} +0 -0
  989. /package/src/{shade/renderer/scene/optimization → engine/graphics/texture/sampler/compare}/sampler2d_compare.d.ts +0 -0
  990. /package/src/{avif/native/api → engine/graphics/texture/sampler}/sampler2d_to_avif.d.ts +0 -0
  991. /package/src/{avif/native → format/image/avif}/NOTICE.md +0 -0
  992. /package/src/{avif/native → format/image/avif}/api/AvifDecoder.d.ts +0 -0
  993. /package/src/{avif/native → format/image/avif}/api/AvifDecoder.js +0 -0
  994. /package/src/{avif/native → format/image/avif}/api/apply_transformations.d.ts +0 -0
  995. /package/src/{avif/native → format/image/avif}/api/apply_transformations.js +0 -0
  996. /package/src/{avif/native → format/image/avif}/api/convert_to_rgba.d.ts +0 -0
  997. /package/src/{avif/native → format/image/avif}/api/decode_avif.d.ts +0 -0
  998. /package/src/{avif/native → format/image/avif}/api/decode_avif.js +0 -0
  999. /package/src/{avif/native → format/image/avif}/api/decode_image_item.d.ts +0 -0
  1000. /package/src/{avif/native → format/image/avif}/api/decode_image_item.js +0 -0
  1001. /package/src/{avif/native → format/image/avif}/api/encode_avif.d.ts +0 -0
  1002. /package/src/{avif/native → format/image/avif}/api/encode_avif.js +0 -0
  1003. /package/src/{avif/native → format/image/avif}/av1/decode/Av1FrameContext.d.ts +0 -0
  1004. /package/src/{avif/native → format/image/avif}/av1/decode/Av1FrameContext.js +0 -0
  1005. /package/src/{avif/native → format/image/avif}/av1/decode/block_decoded.d.ts +0 -0
  1006. /package/src/{avif/native → format/image/avif}/av1/decode/block_decoded.js +0 -0
  1007. /package/src/{avif/native → format/image/avif}/av1/decode/decode_av1_still.d.ts +0 -0
  1008. /package/src/{avif/native → format/image/avif}/av1/decode/decode_av1_still.js +0 -0
  1009. /package/src/{avif/native → format/image/avif}/av1/decode/decode_coefficients.d.ts +0 -0
  1010. /package/src/{avif/native → format/image/avif}/av1/decode/decode_coefficients.js +0 -0
  1011. /package/src/{avif/native → format/image/avif}/av1/decode/decode_palette.d.ts +0 -0
  1012. /package/src/{avif/native → format/image/avif}/av1/decode/decode_tile.d.ts +0 -0
  1013. /package/src/{avif/native → format/image/avif}/av1/decode/get_scan.d.ts +0 -0
  1014. /package/src/{avif/native → format/image/avif}/av1/decode/get_scan.js +0 -0
  1015. /package/src/{avif/native → format/image/avif}/av1/decode/read_lr.d.ts +0 -0
  1016. /package/src/{avif/native → format/image/avif}/av1/decode/read_transform_type.d.ts +0 -0
  1017. /package/src/{avif/native → format/image/avif}/av1/decode/reconstruct.d.ts +0 -0
  1018. /package/src/{avif/native → format/image/avif}/av1/decode/transform_type.d.ts +0 -0
  1019. /package/src/{avif/native → format/image/avif}/av1/decode/transform_type.js +0 -0
  1020. /package/src/{avif/native → format/image/avif}/av1/encode/Av1BlockSnapshot.d.ts +0 -0
  1021. /package/src/{avif/native → format/image/avif}/av1/encode/Av1BlockSnapshot.js +0 -0
  1022. /package/src/{avif/native → format/image/avif}/av1/encode/Av1EncodeContext.d.ts +0 -0
  1023. /package/src/{avif/native → format/image/avif}/av1/encode/Av1EncodeContext.js +0 -0
  1024. /package/src/{avif/native → format/image/avif}/av1/encode/build_headers.d.ts +0 -0
  1025. /package/src/{avif/native → format/image/avif}/av1/encode/build_headers.js +0 -0
  1026. /package/src/{avif/native → format/image/avif}/av1/encode/choose_chroma_alpha.d.ts +0 -0
  1027. /package/src/{avif/native → format/image/avif}/av1/encode/choose_chroma_alpha.js +0 -0
  1028. /package/src/{avif/native → format/image/avif}/av1/encode/choose_filters.d.ts +0 -0
  1029. /package/src/{avif/native → format/image/avif}/av1/encode/choose_filters.js +0 -0
  1030. /package/src/{avif/native → format/image/avif}/av1/encode/choose_restoration.d.ts +0 -0
  1031. /package/src/{avif/native → format/image/avif}/av1/encode/decode_effort.d.ts +0 -0
  1032. /package/src/{avif/native → format/image/avif}/av1/encode/decode_effort.js +0 -0
  1033. /package/src/{avif/native → format/image/avif}/av1/encode/encode_av1_still.d.ts +0 -0
  1034. /package/src/{avif/native → format/image/avif}/av1/encode/encode_av1_still.js +0 -0
  1035. /package/src/{avif/native → format/image/avif}/av1/encode/encode_effort.d.ts +0 -0
  1036. /package/src/{avif/native → format/image/avif}/av1/encode/encode_effort.js +0 -0
  1037. /package/src/{avif/native → format/image/avif}/av1/encode/encode_tile.d.ts +0 -0
  1038. /package/src/{avif/native → format/image/avif}/av1/encode/quantise.d.ts +0 -0
  1039. /package/src/{avif/native → format/image/avif}/av1/encode/quantise.js +0 -0
  1040. /package/src/{avif/native → format/image/avif}/av1/encode/write_coefficients.d.ts +0 -0
  1041. /package/src/{avif/native → format/image/avif}/av1/encode/write_coefficients.js +0 -0
  1042. /package/src/{avif/native → format/image/avif}/av1/encode/write_lr.d.ts +0 -0
  1043. /package/src/{avif/native → format/image/avif}/av1/encode/write_lr.js +0 -0
  1044. /package/src/{avif/native → format/image/avif}/av1/encode/write_transform_type.d.ts +0 -0
  1045. /package/src/{avif/native → format/image/avif}/av1/encode/write_transform_type.js +0 -0
  1046. /package/src/{avif/native → format/image/avif}/av1/entropy/CdfContext.d.ts +0 -0
  1047. /package/src/{avif/native → format/image/avif}/av1/entropy/CdfContext.js +0 -0
  1048. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolReader.d.ts +0 -0
  1049. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolReader.js +0 -0
  1050. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolWriter.d.ts +0 -0
  1051. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolWriter.js +0 -0
  1052. /package/src/{avif/native → format/image/avif}/av1/entropy/coefficient_context.d.ts +0 -0
  1053. /package/src/{avif/native → format/image/avif}/av1/entropy/coefficient_context.js +0 -0
  1054. /package/src/{avif/native → format/image/avif}/av1/entropy/partition_cdf.d.ts +0 -0
  1055. /package/src/{avif/native → format/image/avif}/av1/entropy/partition_cdf.js +0 -0
  1056. /package/src/{avif/native → format/image/avif}/av1/entropy/symbol_cost.d.ts +0 -0
  1057. /package/src/{avif/native → format/image/avif}/av1/entropy/symbol_cost.js +0 -0
  1058. /package/src/{avif/native → format/image/avif}/av1/filter/cdef.d.ts +0 -0
  1059. /package/src/{avif/native → format/image/avif}/av1/filter/loop_filter.d.ts +0 -0
  1060. /package/src/{avif/native → format/image/avif}/av1/filter/loop_restoration.d.ts +0 -0
  1061. /package/src/{avif/native → format/image/avif}/av1/filter/superres.d.ts +0 -0
  1062. /package/src/{avif/native → format/image/avif}/av1/grain/FilmGrainState.d.ts +0 -0
  1063. /package/src/{avif/native → format/image/avif}/av1/grain/FilmGrainState.js +0 -0
  1064. /package/src/{avif/native → format/image/avif}/av1/grain/film_grain.d.ts +0 -0
  1065. /package/src/{avif/native → format/image/avif}/av1/obu/FrameHeader.d.ts +0 -0
  1066. /package/src/{avif/native → format/image/avif}/av1/obu/FrameHeader.js +0 -0
  1067. /package/src/{avif/native → format/image/avif}/av1/obu/ObuHeader.d.ts +0 -0
  1068. /package/src/{avif/native → format/image/avif}/av1/obu/ObuHeader.js +0 -0
  1069. /package/src/{avif/native → format/image/avif}/av1/obu/SequenceHeader.d.ts +0 -0
  1070. /package/src/{avif/native → format/image/avif}/av1/obu/SequenceHeader.js +0 -0
  1071. /package/src/{avif/native → format/image/avif}/av1/obu/for_each_obu.d.ts +0 -0
  1072. /package/src/{avif/native → format/image/avif}/av1/obu/for_each_obu.js +0 -0
  1073. /package/src/{avif/native → format/image/avif}/av1/obu/parse_frame_header.d.ts +0 -0
  1074. /package/src/{avif/native → format/image/avif}/av1/obu/parse_obu_header.d.ts +0 -0
  1075. /package/src/{avif/native → format/image/avif}/av1/obu/parse_obu_header.js +0 -0
  1076. /package/src/{avif/native → format/image/avif}/av1/obu/parse_sequence_header.d.ts +0 -0
  1077. /package/src/{avif/native → format/image/avif}/av1/obu/parse_sequence_header.js +0 -0
  1078. /package/src/{avif/native → format/image/avif}/av1/obu/write_frame_header.d.ts +0 -0
  1079. /package/src/{avif/native → format/image/avif}/av1/obu/write_frame_header.js +0 -0
  1080. /package/src/{avif/native → format/image/avif}/av1/obu/write_sequence_header.d.ts +0 -0
  1081. /package/src/{avif/native → format/image/avif}/av1/obu/write_sequence_header.js +0 -0
  1082. /package/src/{avif/native → format/image/avif}/av1/predict/IntraPredictionState.d.ts +0 -0
  1083. /package/src/{avif/native → format/image/avif}/av1/predict/IntraPredictionState.js +0 -0
  1084. /package/src/{avif/native → format/image/avif}/av1/predict/intra_filter_type.d.ts +0 -0
  1085. /package/src/{avif/native → format/image/avif}/av1/predict/intra_filter_type.js +0 -0
  1086. /package/src/{avif/native → format/image/avif}/av1/predict/predict_chroma_from_luma.d.ts +0 -0
  1087. /package/src/{avif/native → format/image/avif}/av1/predict/predict_intra.d.ts +0 -0
  1088. /package/src/{avif/native → format/image/avif}/av1/predict/predict_palette.d.ts +0 -0
  1089. /package/src/{avif/native → format/image/avif}/av1/predict/predict_palette.js +0 -0
  1090. /package/src/{avif/native → format/image/avif}/av1/tables/av1_symbols.d.ts +0 -0
  1091. /package/src/{avif/native → format/image/avif}/av1/tables/block_tables.d.ts +0 -0
  1092. /package/src/{avif/native → format/image/avif}/av1/tables/cdf_tables.d.ts +0 -0
  1093. /package/src/{avif/native → format/image/avif}/av1/tables/coefficient_tables.d.ts +0 -0
  1094. /package/src/{avif/native → format/image/avif}/av1/tables/derived_block_tables.d.ts +0 -0
  1095. /package/src/{avif/native → format/image/avif}/av1/tables/derived_block_tables.js +0 -0
  1096. /package/src/{avif/native → format/image/avif}/av1/tables/filter_tables.d.ts +0 -0
  1097. /package/src/{avif/native → format/image/avif}/av1/tables/grain_tables.d.ts +0 -0
  1098. /package/src/{avif/native → format/image/avif}/av1/tables/prediction_tables.d.ts +0 -0
  1099. /package/src/{avif/native → format/image/avif}/av1/tables/quantizer_matrix_tables.d.ts +0 -0
  1100. /package/src/{avif/native → format/image/avif}/av1/tables/quantizer_tables.d.ts +0 -0
  1101. /package/src/{avif/native → format/image/avif}/av1/tables/scan_tables.d.ts +0 -0
  1102. /package/src/{avif/native → format/image/avif}/av1/tables/segmentation_tables.d.ts +0 -0
  1103. /package/src/{avif/native → format/image/avif}/av1/tables/transform_tables.d.ts +0 -0
  1104. /package/src/{avif/native → format/image/avif}/av1/tables/unpack_table.d.ts +0 -0
  1105. /package/src/{avif/native → format/image/avif}/av1/transform/forward_transform_2d.d.ts +0 -0
  1106. /package/src/{avif/native → format/image/avif}/av1/transform/forward_transform_2d.js +0 -0
  1107. /package/src/{avif/native → format/image/avif}/av1/transform/inverse_transform_1d.d.ts +0 -0
  1108. /package/src/{avif/native → format/image/avif}/av1/transform/inverse_transform_2d.d.ts +0 -0
  1109. /package/src/{avif/native → format/image/avif}/av1/util/ceil_log2.d.ts +0 -0
  1110. /package/src/{avif/native → format/image/avif}/av1/util/ceil_log2.js +0 -0
  1111. /package/src/{avif/native → format/image/avif}/av1/util/round2.d.ts +0 -0
  1112. /package/src/{avif/native → format/image/avif}/av1/util/round2.js +0 -0
  1113. /package/src/{avif/native → format/image/avif}/av1/util/round2_signed.d.ts +0 -0
  1114. /package/src/{avif/native → format/image/avif}/av1/util/round2_signed.js +0 -0
  1115. /package/src/{avif/native → format/image/avif}/av1/util/tile_log2.d.ts +0 -0
  1116. /package/src/{avif/native → format/image/avif}/av1/util/tile_log2.js +0 -0
  1117. /package/src/{avif/native → format/image/avif}/bitstream/BitReader.d.ts +0 -0
  1118. /package/src/{avif/native → format/image/avif}/bitstream/BitReader.js +0 -0
  1119. /package/src/{avif/native → format/image/avif}/bitstream/BitWriter.d.ts +0 -0
  1120. /package/src/{avif/native → format/image/avif}/bitstream/BitWriter.js +0 -0
  1121. /package/src/{avif/native → format/image/avif}/color/ColourTransform.d.ts +0 -0
  1122. /package/src/{avif/native → format/image/avif}/color/ColourTransform.js +0 -0
  1123. /package/src/{avif/native → format/image/avif}/color/YuvImage.d.ts +0 -0
  1124. /package/src/{avif/native → format/image/avif}/color/YuvImage.js +0 -0
  1125. /package/src/{avif/native → format/image/avif}/color/clamp_sample.d.ts +0 -0
  1126. /package/src/{avif/native → format/image/avif}/color/clamp_sample.js +0 -0
  1127. /package/src/{avif/native → format/image/avif}/color/linear_to_transfer.d.ts +0 -0
  1128. /package/src/{avif/native → format/image/avif}/color/primaries.d.ts +0 -0
  1129. /package/src/{avif/native → format/image/avif}/color/primaries.js +0 -0
  1130. /package/src/{avif/native → format/image/avif}/color/rgb_row_to_ycbcr.d.ts +0 -0
  1131. /package/src/{avif/native → format/image/avif}/color/rgb_row_to_ycbcr.js +0 -0
  1132. /package/src/{avif/native → format/image/avif}/color/transfer_to_linear.d.ts +0 -0
  1133. /package/src/{avif/native → format/image/avif}/color/upsample_chroma_row.d.ts +0 -0
  1134. /package/src/{avif/native → format/image/avif}/color/ycbcr_row_to_rgb.d.ts +0 -0
  1135. /package/src/{avif/native → format/image/avif}/heif/AvifFile.d.ts +0 -0
  1136. /package/src/{avif/native → format/image/avif}/heif/AvifFile.js +0 -0
  1137. /package/src/{avif/native → format/image/avif}/heif/ItemProperty.d.ts +0 -0
  1138. /package/src/{avif/native → format/image/avif}/heif/ItemProperty.js +0 -0
  1139. /package/src/{avif/native → format/image/avif}/heif/find_item_property.d.ts +0 -0
  1140. /package/src/{avif/native → format/image/avif}/heif/find_item_property.js +0 -0
  1141. /package/src/{avif/native → format/image/avif}/heif/find_item_references.d.ts +0 -0
  1142. /package/src/{avif/native → format/image/avif}/heif/find_item_references.js +0 -0
  1143. /package/src/{avif/native → format/image/avif}/heif/find_items_referencing.d.ts +0 -0
  1144. /package/src/{avif/native → format/image/avif}/heif/find_items_referencing.js +0 -0
  1145. /package/src/{avif/native → format/image/avif}/heif/parse_avif_file.d.ts +0 -0
  1146. /package/src/{avif/native → format/image/avif}/heif/parse_image_grid.d.ts +0 -0
  1147. /package/src/{avif/native → format/image/avif}/heif/parse_item_property.d.ts +0 -0
  1148. /package/src/{avif/native → format/image/avif}/heif/parse_item_property.js +0 -0
  1149. /package/src/{avif/native → format/image/avif}/heif/read_item_data.d.ts +0 -0
  1150. /package/src/{avif/native → format/image/avif}/heif/read_item_data.js +0 -0
  1151. /package/src/{avif/native → format/image/avif}/heif/write_avif_file.d.ts +0 -0
  1152. /package/src/{avif/native → format/image/avif}/heif/write_avif_file.js +0 -0
  1153. /package/src/{avif/native → format/image/avif}/heif/write_item_property.d.ts +0 -0
  1154. /package/src/{avif/native → format/image/avif}/heif/write_item_property.js +0 -0
  1155. /package/src/{avif/native → format/image/avif}/isobmff/BoxHeader.d.ts +0 -0
  1156. /package/src/{avif/native → format/image/avif}/isobmff/BoxHeader.js +0 -0
  1157. /package/src/{avif/native → format/image/avif}/isobmff/for_each_box.d.ts +0 -0
  1158. /package/src/{avif/native → format/image/avif}/isobmff/for_each_box.js +0 -0
  1159. /package/src/{avif/native → format/image/avif}/isobmff/read_box_header.d.ts +0 -0
  1160. /package/src/{avif/native → format/image/avif}/isobmff/read_box_header.js +0 -0
  1161. /package/src/{avif/native → format/image/avif}/isobmff/read_full_box_header.d.ts +0 -0
  1162. /package/src/{avif/native → format/image/avif}/isobmff/read_full_box_header.js +0 -0
  1163. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrame.d.ts +0 -0
  1164. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrame.js +0 -0
  1165. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrameComponent.d.ts +0 -0
  1166. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrameComponent.js +0 -0
  1167. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegImage.d.ts +0 -0
  1168. /package/src/{engine/asset/loaders → format}/image/jpeg/NOTES.md +0 -0
  1169. /package/src/{engine/asset/loaders → format}/image/jpeg/buildComponentData.d.ts +0 -0
  1170. /package/src/{engine/asset/loaders → format}/image/jpeg/buildComponentData.js +0 -0
  1171. /package/src/{engine/asset/loaders → format}/image/jpeg/buildHuffmanTable.d.ts +0 -0
  1172. /package/src/{engine/asset/loaders → format}/image/jpeg/buildHuffmanTable.js +0 -0
  1173. /package/src/{engine/asset/loaders → format}/image/jpeg/decodeScan.d.ts +0 -0
  1174. /package/src/{engine/asset/loaders → format}/image/jpeg/decodeScan.js +0 -0
  1175. /package/src/{engine/asset/loaders → format}/image/jpeg/idct8x8_float.d.ts +0 -0
  1176. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_component_row.d.ts +0 -0
  1177. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_component_row.js +0 -0
  1178. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_decode.d.ts +0 -0
  1179. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_decode.js +0 -0
  1180. /package/src/{engine/asset/loaders → format}/image/png/PNG.d.ts +0 -0
  1181. /package/src/{engine/asset/loaders → format}/image/png/PNG.js +0 -0
  1182. /package/src/{engine/asset/loaders → format}/image/png/PNG_HEADER_BYTES.d.ts +0 -0
  1183. /package/src/{engine/asset/loaders → format}/image/png/PNG_HEADER_BYTES.js +0 -0
  1184. /package/src/{engine/asset/loaders → format}/image/png/chunk/png_chunk_decode_iTXt.d.ts +0 -0
  1185. /package/src/{engine/asset/loaders → format}/image/png/chunk/png_chunk_decode_zTXt.d.ts +0 -0
  1186. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterAverage.d.ts +0 -0
  1187. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterAverage.js +0 -0
  1188. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterNone.d.ts +0 -0
  1189. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterNone.js +0 -0
  1190. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterPaeth.d.ts +0 -0
  1191. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterPaeth.js +0 -0
  1192. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterSub.d.ts +0 -0
  1193. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterSub.js +0 -0
  1194. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterUp.d.ts +0 -0
  1195. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterUp.js +0 -0
  1196. /package/src/{engine/asset/loaders → format}/image/png/filter/png_unfilter.d.ts +0 -0
  1197. /package/src/{engine/asset/loaders → format}/image/png/png_inflate.d.ts +0 -0
  1198. /package/src/{engine/asset/loaders → format}/image/png/png_inflate.js +0 -0
  1199. /package/src/{engine/asset/loaders → format}/image/png/png_unpack_samples.d.ts +0 -0
  1200. /package/src/{engine/asset/loaders → format}/image/png/png_unpack_samples.js +0 -0
  1201. /package/src/{shade/renderer/loader → format/scene}/gltf/GLTF_PRIMITIVE_MODE.d.ts +0 -0
  1202. /package/src/{shade/renderer/loader → format/scene}/gltf/GLTF_PRIMITIVE_MODE.js +0 -0
  1203. /package/src/{shade/renderer/loader → format/scene}/gltf/coalesce_array_duplicates.d.ts +0 -0
  1204. /package/src/{shade/renderer/loader → format/scene}/gltf/coalesce_array_duplicates.js +0 -0
  1205. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/GltfBufferViewExtension.d.ts +0 -0
  1206. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/GltfBufferViewExtension.js +0 -0
  1207. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/GltfBufferViewExtensionSet.d.ts +0 -0
  1208. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_apply_buffer_view_extensions.d.ts +0 -0
  1209. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_apply_buffer_view_extensions.js +0 -0
  1210. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_buffer_view_extensions.d.ts +0 -0
  1211. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_buffer_view_extensions.js +0 -0
  1212. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_geometry_extensions.d.ts +0 -0
  1213. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_geometry_extensions.js +0 -0
  1214. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/meshopt/MeshoptBufferViewExtension.d.ts +0 -0
  1215. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_component_type.d.ts +0 -0
  1216. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_component_type.js +0 -0
  1217. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_node_world_matrices.d.ts +0 -0
  1218. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_parse_container.d.ts +0 -0
  1219. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_parse_container.js +0 -0
  1220. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_read_accessor.d.ts +0 -0
  1221. /package/src/{shade/renderer/loader → format/scene}/usd/UsdError.d.ts +0 -0
  1222. /package/src/{shade/renderer/loader → format/scene}/usd/UsdError.js +0 -0
  1223. /package/src/{shade/renderer/loader → format/scene}/usd/parse_usda.d.ts +0 -0
  1224. /package/src/{shade/renderer/loader → format/scene}/usd/parse_usda.js +0 -0
  1225. /package/src/{shade/renderer/loader → format/scene}/usd/unpack_usdz.d.ts +0 -0
  1226. /package/src/{shade/renderer/loader → format/scene}/usd/usd_compose_transform.d.ts +0 -0
  1227. /package/src/{shade/renderer/loader → format/scene}/usd/usd_lz4.d.ts +0 -0
  1228. /package/src/{shade/renderer/loader → format/scene}/usd/usd_triangulate.d.ts +0 -0
  1229. /package/src/{shade/renderer/loader → format/scene}/usd/usd_triangulate.js +0 -0
  1230. /package/src/{basis → format/texture/basis}/BasisHuffmanTable.d.ts +0 -0
  1231. /package/src/{basis → format/texture/basis}/BasisHuffmanTable.js +0 -0
  1232. /package/src/{basis → format/texture/basis}/basis_read_huffman_table.d.ts +0 -0
  1233. /package/src/{basis → format/texture/basis}/basis_read_huffman_table.js +0 -0
  1234. /package/src/{basis → format/texture/basis}/etc1s/Etc1sSelectorHistory.d.ts +0 -0
  1235. /package/src/{basis → format/texture/basis}/etc1s/Etc1sSelectorHistory.js +0 -0
  1236. /package/src/{basis → format/texture/basis}/etc1s/etc1s_block_colors.d.ts +0 -0
  1237. /package/src/{basis → format/texture/basis}/etc1s/etc1s_block_colors.js +0 -0
  1238. /package/src/{basis → format/texture/basis}/etc1s/etc1s_decode_slice.d.ts +0 -0
  1239. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_endpoint_codebook.d.ts +0 -0
  1240. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_endpoint_codebook.js +0 -0
  1241. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_selector_codebook.d.ts +0 -0
  1242. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_selector_codebook.js +0 -0
  1243. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_slice_tables.d.ts +0 -0
  1244. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_slice_tables.js +0 -0
  1245. /package/src/{basis → format/texture/basis}/transcode/build_range_plan.js +0 -0
  1246. /package/src/{basis → format/texture/basis}/transcode/etc1s_to_bc7.js +0 -0
  1247. /package/src/{ktx2 → format/texture/ktx2}/KTX2_IDENTIFIER.d.ts +0 -0
  1248. /package/src/{ktx2 → format/texture/ktx2}/KTX2_IDENTIFIER.js +0 -0
  1249. /package/src/{ktx2 → format/texture/ktx2}/KhrDfModel.d.ts +0 -0
  1250. /package/src/{ktx2 → format/texture/ktx2}/KhrDfModel.js +0 -0
  1251. /package/src/{ktx2 → format/texture/ktx2}/SupercompressionScheme.d.ts +0 -0
  1252. /package/src/{ktx2 → format/texture/ktx2}/SupercompressionScheme.js +0 -0
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Read the BasisLZ supercompression global data.
3
+ *
4
+ * This is the codebook every image in the file shares — endpoints, selectors and Huffman tables —
5
+ * plus one descriptor per image saying where that image's slices sit inside its mip level. The
6
+ * structure is the *container's*, defined by KTX2 rather than by Basis; what is inside the four
7
+ * sections is the codec's, and is decoded by the transcoder.
8
+ *
9
+ * **Slice offsets are relative to their own mip level**, not to the file, which is why the level
10
+ * bytes are passed in already located rather than the file being re-walked here.
11
+ *
12
+ * @param {ArrayBuffer|Uint8Array} bytes the whole file
13
+ * @param {number} byte_offset of the global data section, from `sgdByteOffset`
14
+ * @param {number} byte_length from `sgdByteLength`
15
+ * @param {number} image_count one per level, for the 2D non-array textures this reader accepts
16
+ * @param {Uint8Array[]} level_bytes one per level, base first, as located by the level index
17
+ * @param {boolean} has_alpha whether the file's images carry a second slice, from the descriptor
18
+ * @returns {import("../basis/transcode_basis.js").BasisEtc1sPayload} without its dimensions, which
19
+ * the caller holds
20
+ * @throws {Error} naming the field, for global data that is truncated or disagrees with itself
21
+ *
22
+ * @see the KTX2 specification, Appendix C
23
+ * @author Alex Goldring
24
+ * @copyright Company Named Limited (c) 2026
25
+ */
26
+ export function ktx2_read_basis_lz_global_data(bytes: ArrayBuffer | Uint8Array, byte_offset: number, byte_length: number, image_count: number, level_bytes: Uint8Array[], has_alpha: boolean): import("../basis/transcode_basis.js").BasisEtc1sPayload;
27
+ //# sourceMappingURL=ktx2_read_basis_lz_global_data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ktx2_read_basis_lz_global_data.d.ts","sourceRoot":"","sources":["../../../../../src/format/texture/ktx2/ktx2_read_basis_lz_global_data.js"],"names":[],"mappings":"AA2BA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,sDAdW,WAAW,GAAC,UAAU,eACtB,MAAM,eACN,MAAM,eACN,MAAM,eACN,UAAU,EAAE,aACZ,OAAO,GACL,OAAO,6BAA6B,EAAE,iBAAiB,CA8GnE"}
@@ -0,0 +1,189 @@
1
+ import { ByteCursor } from "../../../core/binary/ByteCursor.js";
2
+ import { EndianType } from "../../../core/binary/EndianType.js";
3
+
4
+ /**
5
+ * Bytes the global data header occupies: two 16-bit counts and four 32-bit lengths.
6
+ *
7
+ * @readonly
8
+ * @type {number}
9
+ */
10
+ const GLOBAL_HEADER_BYTES = 20;
11
+
12
+ /**
13
+ * Bytes each image descriptor occupies: a flags word and two offset/length pairs.
14
+ *
15
+ * @readonly
16
+ * @type {number}
17
+ */
18
+ const IMAGE_DESC_BYTES = 20;
19
+
20
+ /**
21
+ * The image flag marking a frame that refers to the one before it.
22
+ *
23
+ * @readonly
24
+ * @type {number}
25
+ */
26
+ const IMAGE_FLAG_IS_P_FRAME = 0x02;
27
+
28
+ /**
29
+ * Read the BasisLZ supercompression global data.
30
+ *
31
+ * This is the codebook every image in the file shares — endpoints, selectors and Huffman tables —
32
+ * plus one descriptor per image saying where that image's slices sit inside its mip level. The
33
+ * structure is the *container's*, defined by KTX2 rather than by Basis; what is inside the four
34
+ * sections is the codec's, and is decoded by the transcoder.
35
+ *
36
+ * **Slice offsets are relative to their own mip level**, not to the file, which is why the level
37
+ * bytes are passed in already located rather than the file being re-walked here.
38
+ *
39
+ * @param {ArrayBuffer|Uint8Array} bytes the whole file
40
+ * @param {number} byte_offset of the global data section, from `sgdByteOffset`
41
+ * @param {number} byte_length from `sgdByteLength`
42
+ * @param {number} image_count one per level, for the 2D non-array textures this reader accepts
43
+ * @param {Uint8Array[]} level_bytes one per level, base first, as located by the level index
44
+ * @param {boolean} has_alpha whether the file's images carry a second slice, from the descriptor
45
+ * @returns {import("../basis/transcode_basis.js").BasisEtc1sPayload} without its dimensions, which
46
+ * the caller holds
47
+ * @throws {Error} naming the field, for global data that is truncated or disagrees with itself
48
+ *
49
+ * @see the KTX2 specification, Appendix C
50
+ * @author Alex Goldring
51
+ * @copyright Company Named Limited (c) 2026
52
+ */
53
+ export function ktx2_read_basis_lz_global_data(
54
+ bytes, byte_offset, byte_length, image_count, level_bytes, has_alpha
55
+ ) {
56
+ if (byte_offset === 0 || byte_length === 0) {
57
+ throw new Error(
58
+ "KTX2: the file declares BasisLZ supercompression and carries no supercompression global"
59
+ + " data. The endpoint and selector codebooks live there, and without them the levels"
60
+ + " are a stream of indices into nothing."
61
+ );
62
+ }
63
+
64
+ const cursor = new ByteCursor().init(bytes, EndianType.LittleEndian);
65
+
66
+ cursor.seek(byte_offset);
67
+
68
+ const endpoint_count = cursor.u16();
69
+ const selector_count = cursor.u16();
70
+ const endpoints_byte_length = cursor.u32();
71
+ const selectors_byte_length = cursor.u32();
72
+ const tables_byte_length = cursor.u32();
73
+ const extended_byte_length = cursor.u32();
74
+
75
+ /*
76
+ The specification requires this exactly, and checking it is worth the two lines: every section
77
+ below is located by adding lengths, so a header that does not add up produces sections that
78
+ overlap or run past the end, and the failure would surface as a corrupt Huffman table rather
79
+ than as a malformed file.
80
+ */
81
+ const expected_byte_length = GLOBAL_HEADER_BYTES
82
+ + IMAGE_DESC_BYTES * image_count
83
+ + endpoints_byte_length
84
+ + selectors_byte_length
85
+ + tables_byte_length
86
+ + extended_byte_length;
87
+
88
+ if (byte_length !== expected_byte_length) {
89
+ throw new Error(
90
+ `KTX2: sgdByteLength is ${byte_length}, and the header's own section lengths add up to`
91
+ + ` ${expected_byte_length} for ${image_count} image${image_count === 1 ? "" : "s"}`
92
+ );
93
+ }
94
+
95
+ if (extended_byte_length !== 0) {
96
+ throw new Error(
97
+ `KTX2: the BasisLZ global data declares ${extended_byte_length} bytes of extended data,`
98
+ + ` and the specification requires 0 for an ETC1S payload`
99
+ );
100
+ }
101
+
102
+ if (endpoint_count === 0 || selector_count === 0) {
103
+ throw new Error(
104
+ `KTX2: the BasisLZ global data declares ${endpoint_count} endpoints and`
105
+ + ` ${selector_count} selectors, and a slice's indices refer into both`
106
+ );
107
+ }
108
+
109
+ const images = [];
110
+
111
+ for (let image = 0; image < image_count; image++) {
112
+ const flags = cursor.u32();
113
+ const rgb_byte_offset = cursor.u32();
114
+ const rgb_byte_length = cursor.u32();
115
+ const alpha_byte_offset = cursor.u32();
116
+ const alpha_byte_length = cursor.u32();
117
+
118
+ if ((flags & IMAGE_FLAG_IS_P_FRAME) !== 0) {
119
+ /*
120
+ A P-frame's blocks may copy their indices from the previous frame, which needs the
121
+ frames decoded in order and the previous one kept. Nothing here plays a video texture,
122
+ and a still image never sets this — so refusing names the feature rather than decoding
123
+ the frame as though every block stood alone, which would be wrong exactly where the
124
+ encoder saved the most.
125
+ */
126
+ throw new Error(
127
+ `KTX2: image ${image} is a P frame of an animation sequence, which refers to the`
128
+ + ` frame before it. Texture video is not transcoded here.`
129
+ );
130
+ }
131
+
132
+ const level = level_bytes[image];
133
+
134
+ images.push({
135
+ rgb: slice_of(level, rgb_byte_offset, rgb_byte_length, image, "rgb"),
136
+ alpha: has_alpha
137
+ ? slice_of(level, alpha_byte_offset, alpha_byte_length, image, "alpha")
138
+ : undefined,
139
+ });
140
+ }
141
+
142
+ const endpoints = cursor.view_bytes(endpoints_byte_length);
143
+ const selectors = cursor.view_bytes(selectors_byte_length);
144
+ const tables = cursor.view_bytes(tables_byte_length);
145
+
146
+ return {
147
+ has_alpha,
148
+ endpoint_count,
149
+ selector_count,
150
+ endpoints,
151
+ selectors,
152
+ tables,
153
+ images,
154
+ };
155
+ }
156
+
157
+ /**
158
+ * One slice, as a view into its mip level's bytes.
159
+ *
160
+ * @param {Uint8Array} level
161
+ * @param {number} byte_offset within `level`
162
+ * @param {number} byte_length
163
+ * @param {number} image for the error message
164
+ * @param {string} which for the error message
165
+ * @returns {Uint8Array}
166
+ * @throws {Error} for a slice that runs past its level
167
+ */
168
+ function slice_of(level, byte_offset, byte_length, image, which) {
169
+ if (level === undefined) {
170
+ throw new Error(
171
+ `KTX2: the BasisLZ global data describes image ${image}, and the level index has no`
172
+ + ` level for it`
173
+ );
174
+ }
175
+
176
+ if (byte_length === 0) {
177
+ throw new Error(`KTX2: image ${image} declares an empty ${which} slice`);
178
+ }
179
+
180
+ if (byte_offset + byte_length > level.byteLength) {
181
+ throw new Error(
182
+ `KTX2: image ${image}'s ${which} slice claims bytes`
183
+ + ` [${byte_offset}, ${byte_offset + byte_length}) of a ${level.byteLength} byte mip`
184
+ + ` level, which is past its end`
185
+ );
186
+ }
187
+
188
+ return level.subarray(byte_offset, byte_offset + byte_length);
189
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Every `vkFormat` this module maps, for a test that wants to sweep them.
3
+ *
4
+ * @returns {number[]}
5
+ */
6
+ export function vk_formats_mapped(): number[];
7
+ /**
8
+ * Every `vkFormat` this module names but deliberately does not map, for the test that keeps the two
9
+ * tables from overlapping.
10
+ *
11
+ * @returns {number[]}
12
+ */
13
+ export function vk_formats_unmappable(): number[];
14
+ /**
15
+ * The Vulkan name of `vk_format`, where this module knows it.
16
+ *
17
+ * @param {number} vk_format
18
+ * @returns {string} the `VK_FORMAT_…` name, or `vkFormat <n>` for one outside both tables
19
+ */
20
+ export function vk_format_name(vk_format: number): string;
21
+ /**
22
+ * The {@link TextureFormat} holding the same bytes as `vk_format`.
23
+ *
24
+ * Byte for byte, not approximately: every mapping here is a pair of names for one memory layout, so
25
+ * a payload passes through unchanged and the only thing the mapping decides is what the sampler is
26
+ * told about it. The single caveat is BC1, noted beside its rows in the table.
27
+ *
28
+ * @param {number} vk_format as read from a KTX2 header
29
+ * @returns {TextureFormat}
30
+ * @throws {Error} naming the format, for one WebGPU does not expose
31
+ */
32
+ export function vk_format_to_texture_format(vk_format: number): TextureFormat;
33
+ /**
34
+ * `VkFormat` numbers that map onto a {@link TextureFormat}, and the ones that deliberately do not.
35
+ *
36
+ * KTX2 names its payload's encoding with a Vulkan format number, so reading one means owning a
37
+ * corner of Vulkan's enumeration. Only the part WebGPU also exposes can be mapped; everything else
38
+ * is a refusal, and the point of writing the refusals down beside the mappings is that a file the
39
+ * engine cannot use says *which* format it holds instead of failing somewhere downstream with a
40
+ * number nobody recognises.
41
+ *
42
+ * @see https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormat.html
43
+ * @author Alex Goldring
44
+ * @copyright Company Named Limited (c) 2026
45
+ */
46
+ /**
47
+ * `VK_FORMAT_UNDEFINED`. In a KTX2 file this does not mean "no format" — it means the payload is
48
+ * Basis Universal and the Data Format Descriptor, not `vkFormat`, says which of the two it is.
49
+ *
50
+ * @readonly
51
+ * @type {number}
52
+ */
53
+ export const VK_FORMAT_UNDEFINED: number;
54
+ import { TextureFormat } from "../../../shade/descriptor/texture/format/TextureFormat.js";
55
+ //# sourceMappingURL=vk_format_to_texture_format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vk_format_to_texture_format.d.ts","sourceRoot":"","sources":["../../../../../src/format/texture/ktx2/vk_format_to_texture_format.js"],"names":[],"mappings":"AAqOA;;;;GAIG;AACH,qCAFa,MAAM,EAAE,CAIpB;AAED;;;;;GAKG;AACH,yCAFa,MAAM,EAAE,CAIpB;AAED;;;;;GAKG;AACH,0CAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;GAUG;AACH,uDAJW,MAAM,GACJ,aAAa,CAuBzB;AA/RD;;;;;;;;;;;;GAYG;AAEH;;;;;;GAMG;AACH,kCAFU,MAAM,CAEqB;8BAvBP,2DAA2D"}
@@ -0,0 +1,290 @@
1
+ import { TextureFormat } from "../../../shade/descriptor/texture/format/TextureFormat.js";
2
+
3
+ /**
4
+ * `VkFormat` numbers that map onto a {@link TextureFormat}, and the ones that deliberately do not.
5
+ *
6
+ * KTX2 names its payload's encoding with a Vulkan format number, so reading one means owning a
7
+ * corner of Vulkan's enumeration. Only the part WebGPU also exposes can be mapped; everything else
8
+ * is a refusal, and the point of writing the refusals down beside the mappings is that a file the
9
+ * engine cannot use says *which* format it holds instead of failing somewhere downstream with a
10
+ * number nobody recognises.
11
+ *
12
+ * @see https://registry.khronos.org/vulkan/specs/latest/man/html/VkFormat.html
13
+ * @author Alex Goldring
14
+ * @copyright Company Named Limited (c) 2026
15
+ */
16
+
17
+ /**
18
+ * `VK_FORMAT_UNDEFINED`. In a KTX2 file this does not mean "no format" — it means the payload is
19
+ * Basis Universal and the Data Format Descriptor, not `vkFormat`, says which of the two it is.
20
+ *
21
+ * @readonly
22
+ * @type {number}
23
+ */
24
+ export const VK_FORMAT_UNDEFINED = 0;
25
+
26
+ /**
27
+ * `[vkFormat, Vulkan name, GPUTextureFormat]`.
28
+ *
29
+ * Sorted by `vkFormat`, which is how the Vulkan header reads and how a reviewer checks a row against
30
+ * it. The one entry that is not a straight rename is BC1, which is commented where it sits.
31
+ *
32
+ * @type {[number, string, TextureFormat][]}
33
+ */
34
+ const MAPPED = [
35
+ [9, "VK_FORMAT_R8_UNORM", TextureFormat.R8UNORM],
36
+ [10, "VK_FORMAT_R8_SNORM", TextureFormat.R8SNORM],
37
+ [13, "VK_FORMAT_R8_UINT", TextureFormat.R8UINT],
38
+ [14, "VK_FORMAT_R8_SINT", TextureFormat.R8SINT],
39
+
40
+ [16, "VK_FORMAT_R8G8_UNORM", TextureFormat.RG8UNORM],
41
+ [17, "VK_FORMAT_R8G8_SNORM", TextureFormat.RG8SNORM],
42
+ [20, "VK_FORMAT_R8G8_UINT", TextureFormat.RG8UINT],
43
+ [21, "VK_FORMAT_R8G8_SINT", TextureFormat.RG8SINT],
44
+
45
+ [37, "VK_FORMAT_R8G8B8A8_UNORM", TextureFormat.RGBA8UNORM],
46
+ [38, "VK_FORMAT_R8G8B8A8_SNORM", TextureFormat.RGBA8SNORM],
47
+ [41, "VK_FORMAT_R8G8B8A8_UINT", TextureFormat.RGBA8UINT],
48
+ [42, "VK_FORMAT_R8G8B8A8_SINT", TextureFormat.RGBA8SINT],
49
+ [43, "VK_FORMAT_R8G8B8A8_SRGB", TextureFormat.RGBA8UNORM_SRGB],
50
+
51
+ [44, "VK_FORMAT_B8G8R8A8_UNORM", TextureFormat.BGRA8UNORM],
52
+ [50, "VK_FORMAT_B8G8R8A8_SRGB", TextureFormat.BGRA8UNORM_SRGB],
53
+
54
+ [64, "VK_FORMAT_A2B10G10R10_UNORM_PACK32", TextureFormat.RGB10A2UNORM],
55
+ [68, "VK_FORMAT_A2B10G10R10_UINT_PACK32", TextureFormat.RGB10A2UINT],
56
+
57
+ [70, "VK_FORMAT_R16_UNORM", TextureFormat.R16UNORM],
58
+ [71, "VK_FORMAT_R16_SNORM", TextureFormat.R16SNORM],
59
+ [74, "VK_FORMAT_R16_UINT", TextureFormat.R16UINT],
60
+ [75, "VK_FORMAT_R16_SINT", TextureFormat.R16SINT],
61
+ [76, "VK_FORMAT_R16_SFLOAT", TextureFormat.R16FLOAT],
62
+
63
+ [77, "VK_FORMAT_R16G16_UNORM", TextureFormat.RG16UNORM],
64
+ [78, "VK_FORMAT_R16G16_SNORM", TextureFormat.RG16SNORM],
65
+ [81, "VK_FORMAT_R16G16_UINT", TextureFormat.RG16UINT],
66
+ [82, "VK_FORMAT_R16G16_SINT", TextureFormat.RG16SINT],
67
+ [83, "VK_FORMAT_R16G16_SFLOAT", TextureFormat.RG16FLOAT],
68
+
69
+ [91, "VK_FORMAT_R16G16B16A16_UNORM", TextureFormat.RGBA16UNORM],
70
+ [92, "VK_FORMAT_R16G16B16A16_SNORM", TextureFormat.RGBA16SNORM],
71
+ [95, "VK_FORMAT_R16G16B16A16_UINT", TextureFormat.RGBA16UINT],
72
+ [96, "VK_FORMAT_R16G16B16A16_SINT", TextureFormat.RGBA16SINT],
73
+ [97, "VK_FORMAT_R16G16B16A16_SFLOAT", TextureFormat.RGBA16FLOAT],
74
+
75
+ [98, "VK_FORMAT_R32_UINT", TextureFormat.R32UINT],
76
+ [99, "VK_FORMAT_R32_SINT", TextureFormat.R32SINT],
77
+ [100, "VK_FORMAT_R32_SFLOAT", TextureFormat.R32FLOAT],
78
+
79
+ [101, "VK_FORMAT_R32G32_UINT", TextureFormat.RG32UINT],
80
+ [102, "VK_FORMAT_R32G32_SINT", TextureFormat.RG32SINT],
81
+ [103, "VK_FORMAT_R32G32_SFLOAT", TextureFormat.RG32FLOAT],
82
+
83
+ [107, "VK_FORMAT_R32G32B32A32_UINT", TextureFormat.RGBA32UINT],
84
+ [108, "VK_FORMAT_R32G32B32A32_SINT", TextureFormat.RGBA32SINT],
85
+ [109, "VK_FORMAT_R32G32B32A32_SFLOAT", TextureFormat.RGBA32FLOAT],
86
+
87
+ [122, "VK_FORMAT_B10G11R11_UFLOAT_PACK32", TextureFormat.RG11B10UFLOAT],
88
+ [123, "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32", TextureFormat.RGB9E5UFLOAT],
89
+
90
+ /*
91
+ BC — 131 and 132 are the RGB spelling, and WebGPU has no name for it.
92
+
93
+ `VK_FORMAT_BC1_RGB_*` and `VK_FORMAT_BC1_RGBA_*` are the same sixty-four bits per block; the only
94
+ difference is what a block in three-colour mode does with its fourth index — the RGB spelling
95
+ reads it as opaque black, the RGBA spelling as transparent. So a file naming the RGB spelling is
96
+ decoded here with punch-through alpha honoured.
97
+
98
+ Mapped rather than refused, because refusing would reject a large share of real BC1 content over
99
+ a difference no encoder targeting the RGB spelling exercises: having no alpha to store, it has no
100
+ reason to emit that index at all. A consumer that needs the guarantee ignores alpha at the sample
101
+ site, which is what an opaque texture's material does anyway.
102
+ */
103
+ [131, "VK_FORMAT_BC1_RGB_UNORM_BLOCK", TextureFormat.BC1_RGBA_UNORM],
104
+ [132, "VK_FORMAT_BC1_RGB_SRGB_BLOCK", TextureFormat.BC1_RGBA_UNORM_SRGB],
105
+ [133, "VK_FORMAT_BC1_RGBA_UNORM_BLOCK", TextureFormat.BC1_RGBA_UNORM],
106
+ [134, "VK_FORMAT_BC1_RGBA_SRGB_BLOCK", TextureFormat.BC1_RGBA_UNORM_SRGB],
107
+ [135, "VK_FORMAT_BC2_UNORM_BLOCK", TextureFormat.BC2_RGBA_UNORM],
108
+ [136, "VK_FORMAT_BC2_SRGB_BLOCK", TextureFormat.BC2_RGBA_UNORM_SRGB],
109
+ [137, "VK_FORMAT_BC3_UNORM_BLOCK", TextureFormat.BC3_RGBA_UNORM],
110
+ [138, "VK_FORMAT_BC3_SRGB_BLOCK", TextureFormat.BC3_RGBA_UNORM_SRGB],
111
+ [139, "VK_FORMAT_BC4_UNORM_BLOCK", TextureFormat.BC4_R_UNORM],
112
+ [140, "VK_FORMAT_BC4_SNORM_BLOCK", TextureFormat.BC4_R_SNORM],
113
+ [141, "VK_FORMAT_BC5_UNORM_BLOCK", TextureFormat.BC5_RG_UNORM],
114
+ [142, "VK_FORMAT_BC5_SNORM_BLOCK", TextureFormat.BC5_RG_SNORM],
115
+ [143, "VK_FORMAT_BC6H_UFLOAT_BLOCK", TextureFormat.BC6H_RGB_UFLOAT],
116
+ [144, "VK_FORMAT_BC6H_SFLOAT_BLOCK", TextureFormat.BC6H_RGB_FLOAT],
117
+ [145, "VK_FORMAT_BC7_UNORM_BLOCK", TextureFormat.BC7_RGBA_UNORM],
118
+ [146, "VK_FORMAT_BC7_SRGB_BLOCK", TextureFormat.BC7_RGBA_UNORM_SRGB],
119
+
120
+ // ETC2 and EAC
121
+ [147, "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK", TextureFormat.ETC2_RGB8UNORM],
122
+ [148, "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK", TextureFormat.ETC2_RGB8UNORM_SRGB],
123
+ [149, "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK", TextureFormat.ETC2_RGB8A1UNORM],
124
+ [150, "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK", TextureFormat.ETC2_RGB8A1UNORM_SRGB],
125
+ [151, "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK", TextureFormat.ETC2_RGBA8UNORM],
126
+ [152, "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK", TextureFormat.ETC2_RGBA8UNORM_SRGB],
127
+ [153, "VK_FORMAT_EAC_R11_UNORM_BLOCK", TextureFormat.EAC_R11UNORM],
128
+ [154, "VK_FORMAT_EAC_R11_SNORM_BLOCK", TextureFormat.EAC_R11SNORM],
129
+ [155, "VK_FORMAT_EAC_R11G11_UNORM_BLOCK", TextureFormat.EAC_RG11UNORM],
130
+ [156, "VK_FORMAT_EAC_R11G11_SNORM_BLOCK", TextureFormat.EAC_RG11SNORM],
131
+
132
+ // ASTC LDR — every block size WebGPU exposes, which is every block size Vulkan defines for LDR
133
+ [157, "VK_FORMAT_ASTC_4x4_UNORM_BLOCK", TextureFormat.ASTC_4X4_UNORM],
134
+ [158, "VK_FORMAT_ASTC_4x4_SRGB_BLOCK", TextureFormat.ASTC_4X4_UNORM_SRGB],
135
+ [159, "VK_FORMAT_ASTC_5x4_UNORM_BLOCK", TextureFormat.ASTC_5X4_UNORM],
136
+ [160, "VK_FORMAT_ASTC_5x4_SRGB_BLOCK", TextureFormat.ASTC_5X4_UNORM_SRGB],
137
+ [161, "VK_FORMAT_ASTC_5x5_UNORM_BLOCK", TextureFormat.ASTC_5X5_UNORM],
138
+ [162, "VK_FORMAT_ASTC_5x5_SRGB_BLOCK", TextureFormat.ASTC_5X5_UNORM_SRGB],
139
+ [163, "VK_FORMAT_ASTC_6x5_UNORM_BLOCK", TextureFormat.ASTC_6X5_UNORM],
140
+ [164, "VK_FORMAT_ASTC_6x5_SRGB_BLOCK", TextureFormat.ASTC_6X5_UNORM_SRGB],
141
+ [165, "VK_FORMAT_ASTC_6x6_UNORM_BLOCK", TextureFormat.ASTC_6X6_UNORM],
142
+ [166, "VK_FORMAT_ASTC_6x6_SRGB_BLOCK", TextureFormat.ASTC_6X6_UNORM_SRGB],
143
+ [167, "VK_FORMAT_ASTC_8x5_UNORM_BLOCK", TextureFormat.ASTC_8X5_UNORM],
144
+ [168, "VK_FORMAT_ASTC_8x5_SRGB_BLOCK", TextureFormat.ASTC_8X5_UNORM_SRGB],
145
+ [169, "VK_FORMAT_ASTC_8x6_UNORM_BLOCK", TextureFormat.ASTC_8X6_UNORM],
146
+ [170, "VK_FORMAT_ASTC_8x6_SRGB_BLOCK", TextureFormat.ASTC_8X6_UNORM_SRGB],
147
+ [171, "VK_FORMAT_ASTC_8x8_UNORM_BLOCK", TextureFormat.ASTC_8X8_UNORM],
148
+ [172, "VK_FORMAT_ASTC_8x8_SRGB_BLOCK", TextureFormat.ASTC_8X8_UNORM_SRGB],
149
+ [173, "VK_FORMAT_ASTC_10x5_UNORM_BLOCK", TextureFormat.ASTC_10X5_UNORM],
150
+ [174, "VK_FORMAT_ASTC_10x5_SRGB_BLOCK", TextureFormat.ASTC_10X5_UNORM_SRGB],
151
+ [175, "VK_FORMAT_ASTC_10x6_UNORM_BLOCK", TextureFormat.ASTC_10X6_UNORM],
152
+ [176, "VK_FORMAT_ASTC_10x6_SRGB_BLOCK", TextureFormat.ASTC_10X6_UNORM_SRGB],
153
+ [177, "VK_FORMAT_ASTC_10x8_UNORM_BLOCK", TextureFormat.ASTC_10X8_UNORM],
154
+ [178, "VK_FORMAT_ASTC_10x8_SRGB_BLOCK", TextureFormat.ASTC_10X8_UNORM_SRGB],
155
+ [179, "VK_FORMAT_ASTC_10x10_UNORM_BLOCK", TextureFormat.ASTC_10X10_UNORM],
156
+ [180, "VK_FORMAT_ASTC_10x10_SRGB_BLOCK", TextureFormat.ASTC_10X10_UNORM_SRGB],
157
+ [181, "VK_FORMAT_ASTC_12x10_UNORM_BLOCK", TextureFormat.ASTC_12X10_UNORM],
158
+ [182, "VK_FORMAT_ASTC_12x10_SRGB_BLOCK", TextureFormat.ASTC_12X10_UNORM_SRGB],
159
+ [183, "VK_FORMAT_ASTC_12x12_UNORM_BLOCK", TextureFormat.ASTC_12X12_UNORM],
160
+ [184, "VK_FORMAT_ASTC_12x12_SRGB_BLOCK", TextureFormat.ASTC_12X12_UNORM_SRGB],
161
+ ];
162
+
163
+ /**
164
+ * `[vkFormat, Vulkan name, why it cannot be mapped]`.
165
+ *
166
+ * Not the whole of what is missing — Vulkan defines hundreds of formats and most will never appear
167
+ * in a texture file — but every entry here is one a real encoder emits, so a file that hits one is
168
+ * told what is wrong with it rather than handed a bare number. Anything outside both tables is
169
+ * refused by number, which is the honest answer for a format this reader has never heard of.
170
+ *
171
+ * @type {[number, string, string][]}
172
+ */
173
+ const UNMAPPABLE = [
174
+ [15, "VK_FORMAT_R8_SRGB", "WebGPU has no single-channel sRGB format"],
175
+ [22, "VK_FORMAT_R8G8_SRGB", "WebGPU has no two-channel sRGB format"],
176
+
177
+ [23, "VK_FORMAT_R8G8B8_UNORM", "WebGPU has no three-channel formats; re-encode with an alpha channel"],
178
+ [29, "VK_FORMAT_R8G8B8_SRGB", "WebGPU has no three-channel formats; re-encode with an alpha channel"],
179
+ [30, "VK_FORMAT_B8G8R8_UNORM", "WebGPU has no three-channel formats; re-encode with an alpha channel"],
180
+ [36, "VK_FORMAT_B8G8R8_SRGB", "WebGPU has no three-channel formats; re-encode with an alpha channel"],
181
+ [90, "VK_FORMAT_R16G16B16_SFLOAT", "WebGPU has no three-channel formats; re-encode with an alpha channel"],
182
+ [106, "VK_FORMAT_R32G32B32_SFLOAT", "WebGPU has no three-channel formats; re-encode with an alpha channel"],
183
+
184
+ [45, "VK_FORMAT_B8G8R8A8_SNORM", "WebGPU exposes BGRA as unorm and unorm-srgb only"],
185
+ [48, "VK_FORMAT_B8G8R8A8_UINT", "WebGPU exposes BGRA as unorm and unorm-srgb only"],
186
+ [49, "VK_FORMAT_B8G8R8A8_SINT", "WebGPU exposes BGRA as unorm and unorm-srgb only"],
187
+
188
+ [58, "VK_FORMAT_A2R10G10B10_UNORM_PACK32", "WebGPU packs ten-bit channels as rgb10a2 only, which is Vulkan's A2B10G10R10 order"],
189
+ [62, "VK_FORMAT_A2R10G10B10_UINT_PACK32", "WebGPU packs ten-bit channels as rgb10a2 only, which is Vulkan's A2B10G10R10 order"],
190
+ [65, "VK_FORMAT_A2B10G10R10_SNORM_PACK32", "WebGPU exposes rgb10a2 as unorm and uint only"],
191
+ [69, "VK_FORMAT_A2B10G10R10_SINT_PACK32", "WebGPU exposes rgb10a2 as unorm and uint only"],
192
+
193
+ [124, "VK_FORMAT_D16_UNORM", "depth and stencil are render pass state rather than image content"],
194
+ [126, "VK_FORMAT_D32_SFLOAT", "depth and stencil are render pass state rather than image content"],
195
+ [125, "VK_FORMAT_X8_D24_UNORM_PACK32", "depth and stencil are render pass state rather than image content"],
196
+ [127, "VK_FORMAT_S8_UINT", "depth and stencil are render pass state rather than image content"],
197
+ [129, "VK_FORMAT_D24_UNORM_S8_UINT", "depth and stencil are render pass state rather than image content"],
198
+ [130, "VK_FORMAT_D32_SFLOAT_S8_UINT", "depth and stencil are render pass state rather than image content"],
199
+
200
+ /*
201
+ Named rather than mapped, deliberately. These two are byte-identical to VK_FORMAT_R8G8B8A8_UNORM
202
+ and _SRGB — but only on a little-endian host, because a PACK32 format names its components from
203
+ the most significant bit of a 32-bit word rather than in memory order. Mapping them would bake
204
+ an endianness assumption into the one table whose entire claim is that a mapping is a pair of
205
+ names for one byte layout.
206
+ */
207
+ [51, "VK_FORMAT_A8B8G8R8_UNORM_PACK32", "a packed spelling whose byte order depends on the host; re-declare it as VK_FORMAT_R8G8B8A8_UNORM, which states the layout the payload actually has"],
208
+ [57, "VK_FORMAT_A8B8G8R8_SRGB_PACK32", "a packed spelling whose byte order depends on the host; re-declare it as VK_FORMAT_R8G8B8A8_SRGB, which states the layout the payload actually has"],
209
+ ];
210
+
211
+ /**
212
+ * @type {Map<number, TextureFormat>}
213
+ */
214
+ const FORMAT_BY_VK = new Map(MAPPED.map(([vk, , format]) => [vk, format]));
215
+
216
+ /**
217
+ * @type {Map<number, string>}
218
+ */
219
+ const NAME_BY_VK = new Map([
220
+ [VK_FORMAT_UNDEFINED, "VK_FORMAT_UNDEFINED"],
221
+ ...MAPPED.map(([vk, name]) => [vk, name]),
222
+ ...UNMAPPABLE.map(([vk, name]) => [vk, name]),
223
+ ]);
224
+
225
+ /**
226
+ * @type {Map<number, string>}
227
+ */
228
+ const REASON_BY_VK = new Map(UNMAPPABLE.map(([vk, , reason]) => [vk, reason]));
229
+
230
+ /**
231
+ * Every `vkFormat` this module maps, for a test that wants to sweep them.
232
+ *
233
+ * @returns {number[]}
234
+ */
235
+ export function vk_formats_mapped() {
236
+ return MAPPED.map(([vk]) => vk);
237
+ }
238
+
239
+ /**
240
+ * Every `vkFormat` this module names but deliberately does not map, for the test that keeps the two
241
+ * tables from overlapping.
242
+ *
243
+ * @returns {number[]}
244
+ */
245
+ export function vk_formats_unmappable() {
246
+ return UNMAPPABLE.map(([vk]) => vk);
247
+ }
248
+
249
+ /**
250
+ * The Vulkan name of `vk_format`, where this module knows it.
251
+ *
252
+ * @param {number} vk_format
253
+ * @returns {string} the `VK_FORMAT_…` name, or `vkFormat <n>` for one outside both tables
254
+ */
255
+ export function vk_format_name(vk_format) {
256
+ return NAME_BY_VK.get(vk_format) ?? `vkFormat ${vk_format}`;
257
+ }
258
+
259
+ /**
260
+ * The {@link TextureFormat} holding the same bytes as `vk_format`.
261
+ *
262
+ * Byte for byte, not approximately: every mapping here is a pair of names for one memory layout, so
263
+ * a payload passes through unchanged and the only thing the mapping decides is what the sampler is
264
+ * told about it. The single caveat is BC1, noted beside its rows in the table.
265
+ *
266
+ * @param {number} vk_format as read from a KTX2 header
267
+ * @returns {TextureFormat}
268
+ * @throws {Error} naming the format, for one WebGPU does not expose
269
+ */
270
+ export function vk_format_to_texture_format(vk_format) {
271
+ const format = FORMAT_BY_VK.get(vk_format);
272
+
273
+ if (format !== undefined) {
274
+ return format;
275
+ }
276
+
277
+ const reason = REASON_BY_VK.get(vk_format);
278
+
279
+ if (reason !== undefined) {
280
+ throw new Error(
281
+ `${vk_format_name(vk_format)} (vkFormat ${vk_format}) has no GPUTextureFormat: ${reason}`
282
+ );
283
+ }
284
+
285
+ throw new Error(
286
+ `vkFormat ${vk_format} is not a format this reader maps to a GPUTextureFormat.`
287
+ + ` Only formats WebGPU exposes can be sampled, and this one is either outside that set or`
288
+ + ` outside the set of Vulkan formats a texture file has been seen to carry.`
289
+ );
290
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The feature a device must have been created with before `format` may be used, or `undefined`
3
+ * for a format every device has.
4
+ *
5
+ * Every compressed format in WebGPU is optional, and all-or-nothing within its family: asking for
6
+ * `bc7-rgba-unorm` on a device without `texture-compression-bc` is a validation error at
7
+ * `createTexture`, not a fallback. This is the one table that says which feature that is — read by
8
+ * {@link gpu_texture_compression_support} to turn a device's features into the formats it may ask
9
+ * for, and by the software device to refuse a texture the way a real one would.
10
+ *
11
+ * @param {GPUTextureFormat} format
12
+ * @returns {GPUFeatureName|undefined}
13
+ * @throws {Error} for a name that is not a GPUTextureFormat
14
+ */
15
+ export function gpu_texture_format_feature(format: GPUTextureFormat): GPUFeatureName | undefined;
16
+ //# sourceMappingURL=gpu_texture_format_feature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gpu_texture_format_feature.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/descriptor/texture/format/gpu_texture_format_feature.js"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;GAaG;AACH,sEAHa,iBAAe,SAAS,CAcpC"}
@@ -0,0 +1,44 @@
1
+ import { WebGPUExtensionType } from "../../WebGPUExtensionType.js";
2
+ import { gpu_texture_format_info } from "./gpu_texture_format_info.js";
3
+
4
+ /**
5
+ * Which optional feature each compressed family arrives under.
6
+ *
7
+ * Derived from the format's name rather than listed per format, because the three families
8
+ * partition the table cleanly by prefix and a hand-written list is one more thing to forget a format
9
+ * from. ETC2 and EAC arrive together, under one feature.
10
+ *
11
+ * @type {[GPUFeatureName, RegExp][]}
12
+ */
13
+ const FAMILIES = [
14
+ [WebGPUExtensionType.TextureCompressionBC, /^bc[0-9]/],
15
+ [WebGPUExtensionType.TextureCompressionETC2, /^(etc2|eac)-/],
16
+ [WebGPUExtensionType.TextureCompressionASTC, /^astc-/],
17
+ ];
18
+
19
+ /**
20
+ * The feature a device must have been created with before `format` may be used, or `undefined`
21
+ * for a format every device has.
22
+ *
23
+ * Every compressed format in WebGPU is optional, and all-or-nothing within its family: asking for
24
+ * `bc7-rgba-unorm` on a device without `texture-compression-bc` is a validation error at
25
+ * `createTexture`, not a fallback. This is the one table that says which feature that is — read by
26
+ * {@link gpu_texture_compression_support} to turn a device's features into the formats it may ask
27
+ * for, and by the software device to refuse a texture the way a real one would.
28
+ *
29
+ * @param {GPUTextureFormat} format
30
+ * @returns {GPUFeatureName|undefined}
31
+ * @throws {Error} for a name that is not a GPUTextureFormat
32
+ */
33
+ export function gpu_texture_format_feature(format) {
34
+ // throws for a name that is not a format, which is worth knowing before the answer is "none"
35
+ gpu_texture_format_info(format);
36
+
37
+ for (const [feature, pattern] of FAMILIES) {
38
+ if (pattern.test(format)) {
39
+ return feature;
40
+ }
41
+ }
42
+
43
+ return undefined;
44
+ }
@@ -52,6 +52,22 @@ export function gpu_texture_format_row_bytes(format: GPUTextureFormat, width: nu
52
52
  * @returns {number}
53
53
  */
54
54
  export function gpu_texture_format_row_count(format: GPUTextureFormat, height: number): number;
55
+ /**
56
+ * The extent WebGPU addresses a level of `format` by: its size rounded up to whole blocks.
57
+ *
58
+ * **A copy is sized in blocks, not texels.** The 2x2 and 1x1 tail of a BC chain are each one 4x4
59
+ * block, and `writeTexture`, `copyBufferToTexture` and `copyTextureToBuffer` all require the copy
60
+ * extent to be a multiple of the block size and bound it by *this* size rather than the logical
61
+ * one — Dawn refuses `copySize.width (2) is not a multiple of compressed texture format block width
62
+ * (4)` for a 2x2 level written as 2x2, and takes 4x4. The logical size still says how many texels
63
+ * the level has; this says how many the copy commands count. For a 1x1-block format the two agree.
64
+ *
65
+ * @param {GPUTextureFormat} format
66
+ * @param {number} width texels, at this level
67
+ * @param {number} height texels, at this level
68
+ * @returns {number[]} `[width, height]` rounded up to the block
69
+ */
70
+ export function gpu_texture_format_physical_size(format: GPUTextureFormat, width: number, height: number): number[];
55
71
  /**
56
72
  * Bytes one mip level occupies, tightly packed, all its layers included.
57
73
  *
@@ -1 +1 @@
1
- {"version":3,"file":"gpu_texture_format_info.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/descriptor/texture/format/gpu_texture_format_info.js"],"names":[],"mappings":"AAkNA;;;;;;;;;;;;GAYG;AACH,mEAJa,oBAAoB,CAYhC;AAED;;;;GAIG;AACH,4CAFa,kBAAkB,CAI9B;AAED;;;;;;;;;;;;;GAaG;AACH,kFAHa,OAAO,CAOnB;AAED;;;;;;;;;GASG;AACH,8EAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;GAMG;AACH,+EAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;;;;;;;GAYG;AACH,gFALW,MAAM,UACN,MAAM,mBACN,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,oFAXW,UAAU,MAAM,CAAC,aAEjB,sBAAoB,MAAM,mBAE1B,MAAM,gBACN,MAAM,GACJ,MAAM,CAiClB;;;;;;;;;;;;iBArWa,MAAM;;;;kBACN,MAAM;;;;qBACN,MAAM;;;;;aACN,kBAAkB;;;;;cAElB,OAAO"}
1
+ {"version":3,"file":"gpu_texture_format_info.d.ts","sourceRoot":"","sources":["../../../../../../src/shade/descriptor/texture/format/gpu_texture_format_info.js"],"names":[],"mappings":"AAkNA;;;;;;;;;;;;GAYG;AACH,mEAJa,oBAAoB,CAYhC;AAED;;;;GAIG;AACH,4CAFa,kBAAkB,CAI9B;AAED;;;;;;;;;;;;;GAaG;AACH,kFAHa,OAAO,CAOnB;AAED;;;;;;;;;GASG;AACH,8EAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;GAMG;AACH,+EAHW,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;;;;;;;;;GAcG;AACH,kFAJW,MAAM,UACN,MAAM,GACJ,MAAM,EAAE,CASpB;AAED;;;;;;;;;;;;GAYG;AACH,gFALW,MAAM,UACN,MAAM,mBACN,MAAM,GACJ,MAAM,CAMlB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,oFAXW,UAAU,MAAM,CAAC,aAEjB,sBAAoB,MAAM,mBAE1B,MAAM,gBACN,MAAM,GACJ,MAAM,CAiClB;;;;;;;;;;;;iBA7Xa,MAAM;;;;kBACN,MAAM;;;;qBACN,MAAM;;;;;aACN,kBAAkB;;;;;cAElB,OAAO"}