@woosh/meep-engine 3.14.2 → 3.14.3

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 (1178) 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/asset/GameAssetType.d.ts +1 -0
  23. package/src/engine/asset/GameAssetType.js +8 -0
  24. package/src/engine/asset/codec/DecodedImage.d.ts +39 -0
  25. package/src/engine/asset/codec/DecodedImage.d.ts.map +1 -0
  26. package/src/engine/asset/codec/DecodedImage.js +26 -0
  27. package/src/engine/asset/guessAssetType.d.ts.map +1 -1
  28. package/src/engine/asset/guessAssetType.js +10 -0
  29. package/src/engine/asset/load_model_scene_bundle.d.ts +1 -1
  30. package/src/engine/asset/load_model_scene_bundle.d.ts.map +1 -1
  31. package/src/engine/asset/load_model_scene_bundle.js +6 -2
  32. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts +37 -0
  33. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.d.ts.map +1 -0
  34. package/src/engine/asset/loaders/USDSceneBundleAssetLoader.js +104 -0
  35. package/src/engine/asset/loaders/image/IMAGE_CODEC_REVIEW_2026_08_28.md +83 -71
  36. package/src/engine/asset/loaders/image/ImageDecoderWorker.js +2 -2
  37. package/src/engine/asset/loaders/image/ImageRGBADataLoader.d.ts +8 -9
  38. package/src/engine/asset/loaders/image/ImageRGBADataLoader.d.ts.map +1 -1
  39. package/src/engine/asset/loaders/image/ImageRGBADataLoader.js +12 -3
  40. package/src/engine/asset/loaders/image/avif/encode_image_source.d.ts +70 -0
  41. package/src/engine/asset/loaders/image/avif/encode_image_source.d.ts.map +1 -0
  42. package/src/engine/asset/loaders/image/avif/encode_image_source.js +117 -0
  43. package/src/engine/asset/loaders/image/avif/encoder_worker.d.ts.map +1 -0
  44. package/src/engine/asset/loaders/image/avif/threaded_image_encoder.d.ts.map +1 -0
  45. package/src/engine/asset/loaders/image/codec/AvifCodec.d.ts +34 -0
  46. package/src/engine/asset/loaders/image/codec/AvifCodec.d.ts.map +1 -0
  47. package/src/engine/asset/loaders/image/codec/AvifCodec.js +85 -0
  48. package/src/engine/asset/loaders/image/codec/JpegCodec.d.ts +26 -0
  49. package/src/engine/asset/loaders/image/codec/JpegCodec.d.ts.map +1 -0
  50. package/src/engine/asset/loaders/image/codec/JpegCodec.js +66 -0
  51. package/src/engine/asset/loaders/image/codec/NativeImageDecoder.d.ts +4 -16
  52. package/src/engine/asset/loaders/image/codec/NativeImageDecoder.d.ts.map +1 -1
  53. package/src/engine/asset/loaders/image/codec/NativeImageDecoder.js +2 -2
  54. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts +21 -1
  55. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.d.ts.map +1 -1
  56. package/src/engine/asset/loaders/image/codec/ThreadedImageDecoder.js +21 -1
  57. package/src/engine/asset/loaders/image/prototypePNG.d.ts.map +1 -0
  58. package/src/engine/asset/loaders/image/prototypePNG.js +37 -0
  59. package/src/engine/asset/preloader/extractAssetListFromManager.d.ts.map +1 -1
  60. package/src/engine/asset/preloader/extractAssetListFromManager.js +2 -1
  61. package/src/engine/graphics/ecs/mesh/assetTypeByPath.d.ts.map +1 -1
  62. package/src/engine/graphics/ecs/mesh/assetTypeByPath.js +6 -0
  63. package/src/engine/graphics/texture/sampler/avif_to_sampler2d.d.ts +25 -0
  64. package/src/engine/graphics/texture/sampler/avif_to_sampler2d.d.ts.map +1 -0
  65. package/src/engine/graphics/texture/sampler/avif_to_sampler2d.js +42 -0
  66. package/src/engine/graphics/texture/sampler/compare/sampler2d_compare.d.ts.map +1 -0
  67. package/src/engine/graphics/texture/sampler/compare/sampler2d_compare.js +94 -0
  68. package/src/engine/graphics/texture/sampler/compare/sampler2d_max_absolute_difference.d.ts +19 -0
  69. package/src/engine/graphics/texture/sampler/compare/sampler2d_max_absolute_difference.d.ts.map +1 -0
  70. package/src/engine/graphics/texture/sampler/compare/sampler2d_max_absolute_difference.js +62 -0
  71. package/src/engine/graphics/texture/sampler/compare/sampler2d_psnr.d.ts +30 -0
  72. package/src/engine/graphics/texture/sampler/compare/sampler2d_psnr.d.ts.map +1 -0
  73. package/src/engine/graphics/texture/sampler/compare/sampler2d_psnr.js +115 -0
  74. package/src/engine/graphics/texture/sampler/sampler2d_to_avif.d.ts.map +1 -0
  75. package/src/engine/graphics/texture/sampler/sampler2d_to_avif.js +108 -0
  76. package/src/engine/graphics/texture/sampler/sampler2d_to_f16.d.ts +7 -1
  77. package/src/engine/graphics/texture/sampler/sampler2d_to_f16.d.ts.map +1 -1
  78. package/src/engine/graphics/texture/sampler/sampler2d_to_f16.js +28 -21
  79. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.d.ts.map +1 -1
  80. package/src/engine/graphics/texture/sampler/sampler2d_to_uint8_RGBA.js +3 -0
  81. package/src/engine/physics/fluid/ecs/FluidObstacleSystem.d.ts +4 -4
  82. package/src/format/image/avif/DECISIONS.md +545 -0
  83. package/src/format/image/avif/api/AvifDecoder.d.ts.map +1 -0
  84. package/src/format/image/avif/api/apply_transformations.d.ts.map +1 -0
  85. package/src/format/image/avif/api/convert_to_rgba.d.ts.map +1 -0
  86. package/src/format/image/avif/api/convert_to_rgba.js +204 -0
  87. package/src/format/image/avif/api/decode_avif.d.ts.map +1 -0
  88. package/src/format/image/avif/api/decode_image_item.d.ts.map +1 -0
  89. package/src/format/image/avif/api/encode_avif.d.ts.map +1 -0
  90. package/src/format/image/avif/av1/decode/Av1FrameContext.d.ts.map +1 -0
  91. package/src/format/image/avif/av1/decode/block_decoded.d.ts.map +1 -0
  92. package/src/format/image/avif/av1/decode/decode_av1_still.d.ts.map +1 -0
  93. package/src/format/image/avif/av1/decode/decode_coefficients.d.ts.map +1 -0
  94. package/src/format/image/avif/av1/decode/decode_palette.d.ts.map +1 -0
  95. package/src/format/image/avif/av1/decode/decode_palette.js +442 -0
  96. package/src/format/image/avif/av1/decode/decode_tile.d.ts.map +1 -0
  97. package/src/format/image/avif/av1/decode/decode_tile.js +1213 -0
  98. package/src/format/image/avif/av1/decode/get_scan.d.ts.map +1 -0
  99. package/src/format/image/avif/av1/decode/read_lr.d.ts.map +1 -0
  100. package/src/format/image/avif/av1/decode/read_lr.js +277 -0
  101. package/src/format/image/avif/av1/decode/read_transform_type.d.ts.map +1 -0
  102. package/src/format/image/avif/av1/decode/read_transform_type.js +92 -0
  103. package/src/format/image/avif/av1/decode/reconstruct.d.ts.map +1 -0
  104. package/src/format/image/avif/av1/decode/reconstruct.js +241 -0
  105. package/src/format/image/avif/av1/decode/transform_type.d.ts.map +1 -0
  106. package/src/format/image/avif/av1/encode/Av1BlockSnapshot.d.ts.map +1 -0
  107. package/src/format/image/avif/av1/encode/Av1EncodeContext.d.ts.map +1 -0
  108. package/src/format/image/avif/av1/encode/build_headers.d.ts.map +1 -0
  109. package/src/format/image/avif/av1/encode/choose_chroma_alpha.d.ts.map +1 -0
  110. package/src/format/image/avif/av1/encode/choose_filters.d.ts.map +1 -0
  111. package/src/format/image/avif/av1/encode/choose_restoration.d.ts.map +1 -0
  112. package/src/format/image/avif/av1/encode/choose_restoration.js +616 -0
  113. package/src/format/image/avif/av1/encode/decode_effort.d.ts.map +1 -0
  114. package/src/format/image/avif/av1/encode/encode_av1_still.d.ts.map +1 -0
  115. package/src/format/image/avif/av1/encode/encode_effort.d.ts.map +1 -0
  116. package/src/format/image/avif/av1/encode/encode_tile.d.ts.map +1 -0
  117. package/src/format/image/avif/av1/encode/encode_tile.js +2331 -0
  118. package/src/format/image/avif/av1/encode/quantise.d.ts.map +1 -0
  119. package/src/format/image/avif/av1/encode/write_coefficients.d.ts.map +1 -0
  120. package/src/format/image/avif/av1/encode/write_lr.d.ts.map +1 -0
  121. package/src/format/image/avif/av1/encode/write_transform_type.d.ts.map +1 -0
  122. package/src/format/image/avif/av1/entropy/CdfContext.d.ts.map +1 -0
  123. package/src/format/image/avif/av1/entropy/SymbolReader.d.ts.map +1 -0
  124. package/src/format/image/avif/av1/entropy/SymbolWriter.d.ts.map +1 -0
  125. package/src/format/image/avif/av1/entropy/coefficient_context.d.ts.map +1 -0
  126. package/src/format/image/avif/av1/entropy/partition_cdf.d.ts.map +1 -0
  127. package/src/format/image/avif/av1/entropy/symbol_cost.d.ts.map +1 -0
  128. package/src/format/image/avif/av1/filter/cdef.d.ts.map +1 -0
  129. package/src/format/image/avif/av1/filter/cdef.js +313 -0
  130. package/src/format/image/avif/av1/filter/loop_filter.d.ts.map +1 -0
  131. package/src/format/image/avif/av1/filter/loop_filter.js +377 -0
  132. package/src/format/image/avif/av1/filter/loop_restoration.d.ts.map +1 -0
  133. package/src/format/image/avif/av1/filter/loop_restoration.js +451 -0
  134. package/src/format/image/avif/av1/filter/superres.d.ts.map +1 -0
  135. package/src/format/image/avif/av1/filter/superres.js +86 -0
  136. package/src/format/image/avif/av1/grain/FilmGrainState.d.ts.map +1 -0
  137. package/src/format/image/avif/av1/grain/film_grain.d.ts.map +1 -0
  138. package/src/format/image/avif/av1/grain/film_grain.js +623 -0
  139. package/src/format/image/avif/av1/obu/FrameHeader.d.ts.map +1 -0
  140. package/src/format/image/avif/av1/obu/ObuHeader.d.ts.map +1 -0
  141. package/src/format/image/avif/av1/obu/SequenceHeader.d.ts.map +1 -0
  142. package/src/format/image/avif/av1/obu/for_each_obu.d.ts.map +1 -0
  143. package/src/format/image/avif/av1/obu/parse_frame_header.d.ts.map +1 -0
  144. package/src/format/image/avif/av1/obu/parse_frame_header.js +841 -0
  145. package/src/format/image/avif/av1/obu/parse_obu_header.d.ts.map +1 -0
  146. package/src/format/image/avif/av1/obu/parse_sequence_header.d.ts.map +1 -0
  147. package/src/format/image/avif/av1/obu/write_frame_header.d.ts.map +1 -0
  148. package/src/format/image/avif/av1/obu/write_sequence_header.d.ts.map +1 -0
  149. package/src/format/image/avif/av1/predict/IntraPredictionState.d.ts.map +1 -0
  150. package/src/format/image/avif/av1/predict/intra_filter_type.d.ts.map +1 -0
  151. package/src/format/image/avif/av1/predict/predict_chroma_from_luma.d.ts.map +1 -0
  152. package/src/format/image/avif/av1/predict/predict_chroma_from_luma.js +153 -0
  153. package/src/format/image/avif/av1/predict/predict_intra.d.ts.map +1 -0
  154. package/src/format/image/avif/av1/predict/predict_intra.js +803 -0
  155. package/src/format/image/avif/av1/predict/predict_palette.d.ts.map +1 -0
  156. package/src/format/image/avif/av1/tables/av1_symbols.d.ts.map +1 -0
  157. package/src/format/image/avif/av1/tables/av1_symbols.js +419 -0
  158. package/src/format/image/avif/av1/tables/block_tables.d.ts.map +1 -0
  159. package/src/format/image/avif/av1/tables/block_tables.js +270 -0
  160. package/src/format/image/avif/av1/tables/cdf_tables.d.ts.map +1 -0
  161. package/src/format/image/avif/av1/tables/cdf_tables.js +1893 -0
  162. package/src/format/image/avif/av1/tables/coefficient_tables.d.ts.map +1 -0
  163. package/src/format/image/avif/av1/tables/coefficient_tables.js +82 -0
  164. package/src/format/image/avif/av1/tables/derived_block_tables.d.ts.map +1 -0
  165. package/src/format/image/avif/av1/tables/filter_tables.d.ts.map +1 -0
  166. package/src/format/image/avif/av1/tables/filter_tables.js +313 -0
  167. package/src/format/image/avif/av1/tables/grain_tables.d.ts.map +1 -0
  168. package/src/format/image/avif/av1/tables/grain_tables.js +190 -0
  169. package/src/format/image/avif/av1/tables/prediction_tables.d.ts.map +1 -0
  170. package/src/format/image/avif/av1/tables/prediction_tables.js +223 -0
  171. package/src/format/image/avif/av1/tables/quantizer_matrix_tables.d.ts.map +1 -0
  172. package/src/format/image/avif/av1/tables/quantizer_matrix_tables.js +38 -0
  173. package/src/format/image/avif/av1/tables/quantizer_tables.d.ts.map +1 -0
  174. package/src/format/image/avif/av1/tables/quantizer_tables.js +160 -0
  175. package/src/format/image/avif/av1/tables/scan_tables.d.ts.map +1 -0
  176. package/src/format/image/avif/av1/tables/scan_tables.js +727 -0
  177. package/src/format/image/avif/av1/tables/segmentation_tables.d.ts.map +1 -0
  178. package/src/format/image/avif/av1/tables/segmentation_tables.js +48 -0
  179. package/src/format/image/avif/av1/tables/transform_tables.d.ts.map +1 -0
  180. package/src/format/image/avif/av1/tables/transform_tables.js +140 -0
  181. package/src/format/image/avif/av1/tables/unpack_table.d.ts.map +1 -0
  182. package/src/format/image/avif/av1/tables/unpack_table.js +73 -0
  183. package/src/format/image/avif/av1/transform/forward_transform_2d.d.ts.map +1 -0
  184. package/src/format/image/avif/av1/transform/inverse_transform_1d.d.ts.map +1 -0
  185. package/src/format/image/avif/av1/transform/inverse_transform_1d.js +590 -0
  186. package/src/format/image/avif/av1/transform/inverse_transform_2d.d.ts.map +1 -0
  187. package/src/format/image/avif/av1/transform/inverse_transform_2d.js +180 -0
  188. package/src/format/image/avif/av1/util/ceil_log2.d.ts.map +1 -0
  189. package/src/format/image/avif/av1/util/floor_log2.d.ts +20 -0
  190. package/src/format/image/avif/av1/util/floor_log2.d.ts.map +1 -0
  191. package/src/format/image/avif/av1/util/floor_log2.js +20 -0
  192. package/src/format/image/avif/av1/util/round2.d.ts.map +1 -0
  193. package/src/format/image/avif/av1/util/round2_signed.d.ts.map +1 -0
  194. package/src/format/image/avif/av1/util/tile_log2.d.ts.map +1 -0
  195. package/src/format/image/avif/bitstream/BitReader.d.ts.map +1 -0
  196. package/src/format/image/avif/bitstream/BitWriter.d.ts.map +1 -0
  197. package/src/format/image/avif/color/ColourTransform.d.ts.map +1 -0
  198. package/src/format/image/avif/color/YuvImage.d.ts.map +1 -0
  199. package/src/format/image/avif/color/clamp_sample.d.ts.map +1 -0
  200. package/src/format/image/avif/color/linear_to_transfer.d.ts.map +1 -0
  201. package/src/format/image/avif/color/linear_to_transfer.js +126 -0
  202. package/src/format/image/avif/color/primaries.d.ts.map +1 -0
  203. package/src/format/image/avif/color/rgb_row_to_ycbcr.d.ts.map +1 -0
  204. package/src/format/image/avif/color/transfer_to_linear.d.ts.map +1 -0
  205. package/src/format/image/avif/color/transfer_to_linear.js +171 -0
  206. package/src/format/image/avif/color/upsample_chroma_row.d.ts.map +1 -0
  207. package/src/format/image/avif/color/upsample_chroma_row.js +89 -0
  208. package/src/format/image/avif/color/ycbcr_row_to_rgb.d.ts.map +1 -0
  209. package/src/format/image/avif/color/ycbcr_row_to_rgb.js +78 -0
  210. package/src/format/image/avif/heif/AvifFile.d.ts.map +1 -0
  211. package/src/format/image/avif/heif/ItemProperty.d.ts.map +1 -0
  212. package/src/format/image/avif/heif/find_item_property.d.ts.map +1 -0
  213. package/src/format/image/avif/heif/find_item_references.d.ts.map +1 -0
  214. package/src/format/image/avif/heif/find_items_referencing.d.ts.map +1 -0
  215. package/src/format/image/avif/heif/parse_avif_file.d.ts.map +1 -0
  216. package/src/format/image/avif/heif/parse_avif_file.js +384 -0
  217. package/src/format/image/avif/heif/parse_image_grid.d.ts.map +1 -0
  218. package/src/format/image/avif/heif/parse_image_grid.js +49 -0
  219. package/src/format/image/avif/heif/parse_item_property.d.ts.map +1 -0
  220. package/src/format/image/avif/heif/read_item_data.d.ts.map +1 -0
  221. package/src/format/image/avif/heif/write_avif_file.d.ts.map +1 -0
  222. package/src/format/image/avif/heif/write_item_property.d.ts.map +1 -0
  223. package/src/format/image/avif/index.d.ts +12 -0
  224. package/src/format/image/avif/index.d.ts.map +1 -0
  225. package/src/format/image/avif/index.js +58 -0
  226. package/src/format/image/avif/isobmff/BoxHeader.d.ts.map +1 -0
  227. package/src/format/image/avif/isobmff/BoxWriter.d.ts +118 -0
  228. package/src/format/image/avif/isobmff/BoxWriter.d.ts.map +1 -0
  229. package/src/format/image/avif/isobmff/BoxWriter.js +264 -0
  230. package/src/format/image/avif/isobmff/for_each_box.d.ts.map +1 -0
  231. package/src/format/image/avif/isobmff/read_box_header.d.ts.map +1 -0
  232. package/src/format/image/avif/isobmff/read_full_box_header.d.ts.map +1 -0
  233. package/src/format/image/jpeg/JpegFrame.d.ts.map +1 -0
  234. package/src/format/image/jpeg/JpegFrameComponent.d.ts.map +1 -0
  235. package/src/format/image/jpeg/JpegImage.d.ts.map +1 -0
  236. package/src/format/image/jpeg/JpegImage.js +664 -0
  237. package/src/format/image/jpeg/buildComponentData.d.ts.map +1 -0
  238. package/src/format/image/jpeg/buildHuffmanTable.d.ts.map +1 -0
  239. package/src/format/image/jpeg/decodeScan.d.ts.map +1 -0
  240. package/src/format/image/jpeg/idct8x8_float.d.ts.map +1 -0
  241. package/src/format/image/jpeg/idct8x8_float.js +31 -0
  242. package/src/format/image/jpeg/jpeg_component_row.d.ts.map +1 -0
  243. package/src/format/image/jpeg/jpeg_decode.d.ts.map +1 -0
  244. package/src/format/image/png/PNG.d.ts.map +1 -0
  245. package/src/format/image/png/PNGReader.d.ts +158 -0
  246. package/src/format/image/png/PNGReader.d.ts.map +1 -0
  247. package/src/format/image/png/PNGReader.js +656 -0
  248. package/src/format/image/png/PNG_HEADER_BYTES.d.ts.map +1 -0
  249. package/src/format/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +1 -0
  250. package/src/format/image/png/chunk/png_chunk_decode_iTXt.js +53 -0
  251. package/src/format/image/png/chunk/png_chunk_decode_zTXt.d.ts.map +1 -0
  252. package/src/format/image/png/chunk/png_chunk_decode_zTXt.js +42 -0
  253. package/src/format/image/png/crc32.d.ts +2 -0
  254. package/src/format/image/png/crc32.d.ts.map +1 -0
  255. package/src/format/image/png/crc32.js +8 -0
  256. package/src/format/image/png/filter/png_filter_unFilterAverage.d.ts.map +1 -0
  257. package/src/format/image/png/filter/png_filter_unFilterNone.d.ts.map +1 -0
  258. package/src/format/image/png/filter/png_filter_unFilterPaeth.d.ts.map +1 -0
  259. package/src/format/image/png/filter/png_filter_unFilterSub.d.ts.map +1 -0
  260. package/src/format/image/png/filter/png_filter_unFilterUp.d.ts.map +1 -0
  261. package/src/format/image/png/filter/png_unfilter.d.ts.map +1 -0
  262. package/src/format/image/png/filter/png_unfilter.js +68 -0
  263. package/src/format/image/png/png_inflate.d.ts.map +1 -0
  264. package/src/format/image/png/png_unpack_samples.d.ts.map +1 -0
  265. package/src/format/scene/gltf/GLTF_PRIMITIVE_MODE.d.ts.map +1 -0
  266. package/src/format/scene/gltf/MESHOPT_COMPRESSION_PLAN.md +793 -0
  267. package/src/format/scene/gltf/coalesce_array_duplicates.d.ts.map +1 -0
  268. package/src/format/scene/gltf/ext/GltfBufferViewExtension.d.ts.map +1 -0
  269. package/src/format/scene/gltf/ext/GltfBufferViewExtensionSet.d.ts.map +1 -0
  270. package/src/format/scene/gltf/ext/GltfBufferViewExtensionSet.js +109 -0
  271. package/src/format/scene/gltf/ext/gltf_apply_buffer_view_extensions.d.ts.map +1 -0
  272. package/src/format/scene/gltf/ext/gltf_buffer_view_extensions.d.ts.map +1 -0
  273. package/src/format/scene/gltf/ext/gltf_geometry_extensions.d.ts.map +1 -0
  274. package/src/format/scene/gltf/ext/meshopt/MeshoptBufferViewExtension.d.ts.map +1 -0
  275. package/src/format/scene/gltf/ext/meshopt/MeshoptBufferViewExtension.js +301 -0
  276. package/src/format/scene/gltf/gltf_component_type.d.ts.map +1 -0
  277. package/src/format/scene/gltf/gltf_node_world_matrices.d.ts.map +1 -0
  278. package/src/format/scene/gltf/gltf_node_world_matrices.js +137 -0
  279. package/src/format/scene/gltf/gltf_parse_container.d.ts.map +1 -0
  280. package/src/format/scene/gltf/gltf_read_accessor.d.ts.map +1 -0
  281. package/src/format/scene/gltf/gltf_read_accessor.js +294 -0
  282. package/src/format/scene/gltf/gltf_used_image_indices.d.ts +51 -0
  283. package/src/format/scene/gltf/gltf_used_image_indices.d.ts.map +1 -0
  284. package/src/format/scene/gltf/gltf_used_image_indices.js +122 -0
  285. package/src/format/scene/usd/UsdError.d.ts.map +1 -0
  286. package/src/format/scene/usd/parse_usda.d.ts.map +1 -0
  287. package/src/format/scene/usd/unpack_usdz.d.ts.map +1 -0
  288. package/src/format/scene/usd/unpack_usdz.js +106 -0
  289. package/src/format/scene/usd/usd_compose_transform.d.ts.map +1 -0
  290. package/src/format/scene/usd/usd_compose_transform.js +258 -0
  291. package/src/format/scene/usd/usd_lz4.d.ts.map +1 -0
  292. package/src/format/scene/usd/usd_lz4.js +182 -0
  293. package/src/format/scene/usd/usd_triangulate.d.ts.map +1 -0
  294. package/src/format/texture/TexelPayload.d.ts +55 -0
  295. package/src/format/texture/TexelPayload.d.ts.map +1 -0
  296. package/src/format/texture/TexelPayload.js +39 -0
  297. package/src/format/texture/basis/BasisBitReader.d.ts +77 -0
  298. package/src/format/texture/basis/BasisBitReader.d.ts.map +1 -0
  299. package/src/format/texture/basis/BasisBitReader.js +231 -0
  300. package/src/format/texture/basis/BasisHuffmanTable.d.ts.map +1 -0
  301. package/src/format/texture/basis/astc_block.d.ts +92 -0
  302. package/src/format/texture/basis/astc_block.d.ts.map +1 -0
  303. package/src/format/texture/basis/astc_block.js +164 -0
  304. package/src/format/texture/basis/astc_integer_sequence.d.ts +59 -0
  305. package/src/format/texture/basis/astc_integer_sequence.d.ts.map +1 -0
  306. package/src/format/texture/basis/astc_integer_sequence.js +251 -0
  307. package/src/format/texture/basis/astc_partition.d.ts +56 -0
  308. package/src/format/texture/basis/astc_partition.d.ts.map +1 -0
  309. package/src/format/texture/basis/astc_partition.js +199 -0
  310. package/src/format/texture/basis/basis_read_huffman_table.d.ts.map +1 -0
  311. package/src/format/texture/basis/etc1s/Etc1sSelectorHistory.d.ts.map +1 -0
  312. package/src/format/texture/basis/etc1s/etc1s_block_colors.d.ts.map +1 -0
  313. package/src/format/texture/basis/etc1s/etc1s_decode_slice.d.ts.map +1 -0
  314. package/src/format/texture/basis/etc1s/etc1s_decode_slice.js +290 -0
  315. package/src/format/texture/basis/etc1s/etc1s_read_endpoint_codebook.d.ts.map +1 -0
  316. package/src/format/texture/basis/etc1s/etc1s_read_selector_codebook.d.ts.map +1 -0
  317. package/src/format/texture/basis/etc1s/etc1s_read_slice_tables.d.ts.map +1 -0
  318. package/src/format/texture/basis/transcode/build_range_plan.d.ts +46 -0
  319. package/src/format/texture/basis/transcode/build_range_plan.d.ts.map +1 -0
  320. package/src/format/texture/basis/transcode/etc1s_to_astc.d.ts +30 -0
  321. package/src/format/texture/basis/transcode/etc1s_to_astc.d.ts.map +1 -0
  322. package/src/format/texture/basis/transcode/etc1s_to_astc.js +328 -0
  323. package/src/format/texture/basis/transcode/etc1s_to_bc1.d.ts +34 -0
  324. package/src/format/texture/basis/transcode/etc1s_to_bc1.d.ts.map +1 -0
  325. package/src/format/texture/basis/transcode/etc1s_to_bc1.js +486 -0
  326. package/src/format/texture/basis/transcode/etc1s_to_bc7.d.ts +27 -0
  327. package/src/format/texture/basis/transcode/etc1s_to_bc7.d.ts.map +1 -0
  328. package/src/format/texture/basis/transcode/etc1s_to_etc2.d.ts +31 -0
  329. package/src/format/texture/basis/transcode/etc1s_to_etc2.d.ts.map +1 -0
  330. package/src/format/texture/basis/transcode/etc1s_to_etc2.js +332 -0
  331. package/src/format/texture/basis/transcode/etc1s_to_rgba8.d.ts +39 -0
  332. package/src/format/texture/basis/transcode/etc1s_to_rgba8.d.ts.map +1 -0
  333. package/src/format/texture/basis/transcode/etc1s_to_rgba8.js +115 -0
  334. package/src/format/texture/basis/transcode/fit_endpoints.d.ts +79 -0
  335. package/src/format/texture/basis/transcode/fit_endpoints.d.ts.map +1 -0
  336. package/src/format/texture/basis/transcode/fit_endpoints.js +297 -0
  337. package/src/format/texture/basis/transcode_basis.d.ts +109 -0
  338. package/src/format/texture/basis/transcode_basis.d.ts.map +1 -0
  339. package/src/format/texture/basis/transcode_basis.js +250 -0
  340. package/src/format/texture/basis/transcode_uastc.d.ts +55 -0
  341. package/src/format/texture/basis/transcode_uastc.d.ts.map +1 -0
  342. package/src/format/texture/basis/transcode_uastc.js +117 -0
  343. package/src/format/texture/basis/uastc/bc7_tables.d.ts +111 -0
  344. package/src/format/texture/basis/uastc/bc7_tables.d.ts.map +1 -0
  345. package/src/format/texture/basis/uastc/bc7_tables.js +276 -0
  346. package/src/format/texture/basis/uastc/bc7_write_block.d.ts +124 -0
  347. package/src/format/texture/basis/uastc/bc7_write_block.d.ts.map +1 -0
  348. package/src/format/texture/basis/uastc/bc7_write_block.js +227 -0
  349. package/src/format/texture/basis/uastc/uastc_decode_block.d.ts +105 -0
  350. package/src/format/texture/basis/uastc/uastc_decode_block.d.ts.map +1 -0
  351. package/src/format/texture/basis/uastc/uastc_decode_block.js +480 -0
  352. package/src/format/texture/basis/uastc/uastc_tables.d.ts +240 -0
  353. package/src/format/texture/basis/uastc/uastc_tables.d.ts.map +1 -0
  354. package/src/format/texture/basis/uastc/uastc_tables.js +383 -0
  355. package/src/format/texture/basis/uastc/uastc_to_astc.d.ts +30 -0
  356. package/src/format/texture/basis/uastc/uastc_to_astc.d.ts.map +1 -0
  357. package/src/format/texture/basis/uastc/uastc_to_astc.js +421 -0
  358. package/src/format/texture/basis/uastc/uastc_to_bc5.d.ts +26 -0
  359. package/src/format/texture/basis/uastc/uastc_to_bc5.d.ts.map +1 -0
  360. package/src/format/texture/basis/uastc/uastc_to_bc5.js +115 -0
  361. package/src/format/texture/basis/uastc/uastc_to_bc7.d.ts +36 -0
  362. package/src/format/texture/basis/uastc/uastc_to_bc7.d.ts.map +1 -0
  363. package/src/format/texture/basis/uastc/uastc_to_bc7.js +602 -0
  364. package/src/format/texture/basis/uastc/uastc_to_rgba8.d.ts +37 -0
  365. package/src/format/texture/basis/uastc/uastc_to_rgba8.d.ts.map +1 -0
  366. package/src/format/texture/basis/uastc/uastc_to_rgba8.js +87 -0
  367. package/src/format/texture/bc/bc1_write_block.d.ts +28 -0
  368. package/src/format/texture/bc/bc1_write_block.d.ts.map +1 -0
  369. package/src/format/texture/bc/bc1_write_block.js +41 -0
  370. package/src/format/texture/bc/bc4_write_block.d.ts +32 -0
  371. package/src/format/texture/bc/bc4_write_block.d.ts.map +1 -0
  372. package/src/format/texture/bc/bc4_write_block.js +50 -0
  373. package/src/format/texture/bc/bc6h_write_block_mode11.d.ts +30 -0
  374. package/src/format/texture/bc/bc6h_write_block_mode11.d.ts.map +1 -0
  375. package/src/format/texture/bc/bc6h_write_block_mode11.js +62 -0
  376. package/src/format/texture/ktx2/KTX2_IDENTIFIER.d.ts.map +1 -0
  377. package/src/format/texture/ktx2/KhrDfModel.d.ts.map +1 -0
  378. package/src/format/texture/ktx2/SupercompressionScheme.d.ts.map +1 -0
  379. package/src/format/texture/ktx2/ktx2_read.d.ts +105 -0
  380. package/src/format/texture/ktx2/ktx2_read.d.ts.map +1 -0
  381. package/src/format/texture/ktx2/ktx2_read.js +909 -0
  382. package/src/format/texture/ktx2/ktx2_read_basis_lz_global_data.d.ts +27 -0
  383. package/src/format/texture/ktx2/ktx2_read_basis_lz_global_data.d.ts.map +1 -0
  384. package/src/format/texture/ktx2/ktx2_read_basis_lz_global_data.js +189 -0
  385. package/src/format/texture/ktx2/vk_format_to_texture_format.d.ts +55 -0
  386. package/src/format/texture/ktx2/vk_format_to_texture_format.d.ts.map +1 -0
  387. package/src/format/texture/ktx2/vk_format_to_texture_format.js +290 -0
  388. package/src/shade/descriptor/texture/format/gpu_texture_format_feature.d.ts +16 -0
  389. package/src/shade/descriptor/texture/format/gpu_texture_format_feature.d.ts.map +1 -0
  390. package/src/shade/descriptor/texture/format/gpu_texture_format_feature.js +44 -0
  391. package/src/shade/descriptor/texture/format/gpu_texture_format_info.d.ts +16 -0
  392. package/src/shade/descriptor/texture/format/gpu_texture_format_info.d.ts.map +1 -1
  393. package/src/shade/descriptor/texture/format/gpu_texture_format_info.js +24 -0
  394. package/src/shade/descriptor/texture/format/gpu_texture_format_srgb.d.ts +19 -0
  395. package/src/shade/descriptor/texture/format/gpu_texture_format_srgb.d.ts.map +1 -0
  396. package/src/shade/descriptor/texture/format/gpu_texture_format_srgb.js +50 -0
  397. package/src/shade/device/COPY_BYTES_PER_ROW_ALIGNMENT.d.ts +14 -0
  398. package/src/shade/device/COPY_BYTES_PER_ROW_ALIGNMENT.d.ts.map +1 -0
  399. package/src/shade/device/COPY_BYTES_PER_ROW_ALIGNMENT.js +13 -0
  400. package/src/shade/device/mock/SoftwareGPUDevice.d.ts.map +1 -1
  401. package/src/shade/device/mock/SoftwareGPUDevice.js +37 -3
  402. package/src/shade/device/mock/SoftwareGPUTexture.d.ts +4 -2
  403. package/src/shade/device/mock/SoftwareGPUTexture.d.ts.map +1 -1
  404. package/src/shade/device/mock/SoftwareGPUTexture.js +39 -3
  405. package/src/shade/device/mock/SoftwareGPUTextureView.d.ts +7 -0
  406. package/src/shade/device/mock/SoftwareGPUTextureView.d.ts.map +1 -1
  407. package/src/shade/device/mock/SoftwareGPUTextureView.js +8 -0
  408. package/src/shade/device/mock/texture_copy.d.ts.map +1 -1
  409. package/src/shade/device/mock/texture_copy.js +74 -12
  410. package/src/shade/playground/basis_textures/README.md +105 -0
  411. package/src/shade/playground/basis_textures/index.html +141 -0
  412. package/src/shade/playground/basis_textures/main.d.ts +8 -0
  413. package/src/shade/playground/basis_textures/main.d.ts.map +1 -0
  414. package/src/shade/playground/basis_textures/main.js +351 -0
  415. package/src/shade/playground/basis_textures/make_basis_gltf.d.mts +2 -0
  416. package/src/shade/playground/basis_textures/make_basis_gltf.d.mts.map +1 -0
  417. package/src/shade/playground/basis_textures/make_basis_gltf.mjs +197 -0
  418. package/src/shade/playground/basis_textures/node_modules/basis_universal/bin/basisu.exe +0 -0
  419. package/src/shade/playground/basis_textures/texture_inventory.d.ts +28 -0
  420. package/src/shade/playground/basis_textures/texture_inventory.d.ts.map +1 -0
  421. package/src/shade/playground/basis_textures/texture_inventory.js +98 -0
  422. package/src/shade/playground/image_decode_bench/README.md +42 -0
  423. package/src/shade/playground/image_decode_bench/decode_worker.d.ts +2 -0
  424. package/src/shade/playground/image_decode_bench/decode_worker.d.ts.map +1 -0
  425. package/src/shade/playground/image_decode_bench/decode_worker.js +19 -0
  426. package/src/shade/playground/image_decode_bench/index.html +34 -0
  427. package/src/shade/playground/image_decode_bench/main.d.ts +2 -0
  428. package/src/shade/playground/image_decode_bench/main.d.ts.map +1 -0
  429. package/src/shade/playground/image_decode_bench/main.js +211 -0
  430. package/src/shade/playground/skinned_blas_refit/README.md +1 -1
  431. package/src/shade/playground/skinned_blas_refit/index.html +15 -1
  432. package/src/shade/playground/skinned_blas_refit/main.d.ts.map +1 -1
  433. package/src/shade/playground/skinned_blas_refit/main.js +339 -3
  434. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts +8 -1
  435. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.d.ts.map +1 -1
  436. package/src/shade/playground/skinned_blas_refit/shader_blas_audit_leaf_triangles.js +27 -5
  437. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts +27 -0
  438. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.d.ts.map +1 -0
  439. package/src/shade/playground/skinned_blas_refit/verify_clone_leaves.js +127 -0
  440. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.d.ts.map +1 -1
  441. package/src/shade/playground/skinned_blas_refit/verify_leaf_triangles.js +3 -3
  442. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.d.ts.map +1 -1
  443. package/src/shade/playground/skinned_blas_refit/verify_skinned_blas_refit.js +10 -8
  444. package/src/shade/playground/texture_encode/README.md +109 -0
  445. package/src/shade/playground/texture_encode/index.html +133 -0
  446. package/src/shade/playground/texture_encode/main.d.ts +24 -0
  447. package/src/shade/playground/texture_encode/main.d.ts.map +1 -0
  448. package/src/shade/playground/texture_encode/main.js +1430 -0
  449. package/src/shade/playground/texture_encode/panel_view.d.ts +118 -0
  450. package/src/shade/playground/texture_encode/panel_view.d.ts.map +1 -0
  451. package/src/shade/playground/texture_encode/panel_view.js +363 -0
  452. package/src/shade/renderer/Renderer.js +2 -2
  453. package/src/shade/renderer/animation/GPUAnimationManager.d.ts.map +1 -1
  454. package/src/shade/renderer/animation/GPUAnimationManager.js +49 -5
  455. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.d.ts.map +1 -1
  456. package/src/shade/renderer/animation/skinning/GPUMeshSkinningContext.js +32 -14
  457. package/src/shade/renderer/geometry/GPUGeometryManager.d.ts.map +1 -1
  458. package/src/shade/renderer/geometry/GPUGeometryManager.js +591 -497
  459. package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts +9 -0
  460. package/src/shade/renderer/geometry/GPUGeometryMetadata.d.ts.map +1 -1
  461. package/src/shade/renderer/geometry/GPUGeometryMetadata.js +10 -0
  462. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_BATCH_PLAN.md +606 -0
  463. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts +17 -0
  464. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.d.ts.map +1 -0
  465. package/src/shade/renderer/geometry/bvh/BLAS_REFIT_TARGET_STRUCT.js +44 -0
  466. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts +58 -0
  467. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.d.ts.map +1 -0
  468. package/src/shade/renderer/geometry/bvh/GPUBLASRefitBatch.js +362 -0
  469. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts +38 -0
  470. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.d.ts.map +1 -1
  471. package/src/shade/renderer/geometry/bvh/GPUGeometryBVHManager.js +730 -617
  472. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts +15 -2
  473. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.d.ts.map +1 -1
  474. package/src/shade/renderer/geometry/bvh/GPUGeometryMeshletsBVH.js +15 -1
  475. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts +39 -0
  476. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.d.ts.map +1 -0
  477. package/src/shade/renderer/geometry/bvh/shader_blas_refit_batch.js +134 -0
  478. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_collect_geometries.js +3 -3
  479. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_open_document.js +3 -3
  480. package/src/shade/renderer/geometry/virtual/build/gltf/gltf_read_geometry.js +1 -1
  481. package/src/shade/renderer/gpu_primitive/bvh/BVH_NODE_LAYOUT_DEFINITION.d.ts +17 -0
  482. package/src/shade/renderer/gpu_primitive/bvh/BVH_NODE_LAYOUT_DEFINITION.d.ts.map +1 -0
  483. package/src/shade/renderer/gpu_primitive/bvh/BVH_NODE_LAYOUT_DEFINITION.js +30 -0
  484. package/src/shade/renderer/gpu_primitive/bvh/GPU_BVH_BUILD_PLAN.md +8 -1
  485. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts +34 -0
  486. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.d.ts.map +1 -0
  487. package/src/shade/renderer/gpu_primitive/bvh/chunk_bvh_refit_climb.js +102 -0
  488. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts +11 -9
  489. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.d.ts.map +1 -1
  490. package/src/shade/renderer/gpu_primitive/bvh/shader_bvh_refit.js +24 -86
  491. package/src/shade/renderer/loader/gltf/gltf_create_texture.d.ts +18 -0
  492. package/src/shade/renderer/loader/gltf/gltf_create_texture.d.ts.map +1 -0
  493. package/src/shade/renderer/loader/gltf/gltf_create_texture.js +103 -0
  494. package/src/shade/renderer/loader/gltf/gltf_image_roles.d.ts +26 -0
  495. package/src/shade/renderer/loader/gltf/gltf_image_roles.d.ts.map +1 -0
  496. package/src/shade/renderer/loader/gltf/gltf_image_roles.js +108 -0
  497. package/src/shade/renderer/loader/gltf/load_gltf.d.ts +10 -3
  498. package/src/shade/renderer/loader/gltf/load_gltf.d.ts.map +1 -1
  499. package/src/shade/renderer/loader/gltf/load_gltf.js +1179 -1253
  500. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts +18 -1
  501. package/src/shade/renderer/loader/gltf/tiny-gltf.d.ts.map +1 -1
  502. package/src/shade/renderer/loader/gltf/tiny-gltf.js +837 -646
  503. package/src/shade/renderer/loader/usd/load_usd.js +3 -3
  504. package/src/shade/renderer/loader/usd/usd_build_scene.js +2 -2
  505. package/src/shade/renderer/loader/usd/usd_decode_image.d.ts +6 -5
  506. package/src/shade/renderer/loader/usd/usd_decode_image.d.ts.map +1 -1
  507. package/src/shade/renderer/loader/usd/usd_decode_image.js +197 -384
  508. package/src/shade/renderer/postprocess/nss/NSS.d.ts +1 -1
  509. package/src/shade/renderer/postprocess/taa/TAA.d.ts +3 -3
  510. package/src/shade/renderer/postprocess/taa/TAA.d.ts.map +1 -1
  511. package/src/shade/renderer/postprocess/taa/TAA.js +2 -6
  512. package/src/shade/renderer/postprocess/taa/chunk_depth_clip_offset_codec.d.ts +18 -0
  513. package/src/shade/renderer/postprocess/taa/chunk_depth_clip_offset_codec.d.ts.map +1 -0
  514. package/src/shade/renderer/postprocess/taa/chunk_depth_clip_offset_codec.js +36 -0
  515. package/src/shade/renderer/postprocess/taa/chunk_taa_history_color_bounding_box_YCoCg.d.ts.map +1 -1
  516. package/src/shade/renderer/postprocess/taa/chunk_taa_history_color_bounding_box_YCoCg.js +4 -1
  517. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.d.ts.map +1 -1
  518. package/src/shade/renderer/postprocess/taa/shader_depth_occlusion_clip.js +13 -8
  519. package/src/shade/renderer/postprocess/taa/shader_taa.d.ts +1 -1
  520. package/src/shade/renderer/postprocess/taa/shader_taa.d.ts.map +1 -1
  521. package/src/shade/renderer/postprocess/taa/shader_taa.js +52 -38
  522. package/src/shade/renderer/restir/di/chunk_restir_temporal_reuse.d.ts +4 -2
  523. package/src/shade/renderer/restir/di/chunk_restir_temporal_reuse.d.ts.map +1 -1
  524. package/src/shade/renderer/restir/di/chunk_restir_temporal_reuse.js +9 -6
  525. package/src/shade/renderer/scene/optimization/deduplicate_images.js +93 -93
  526. package/src/shade/renderer/scene/optimization/downscale_images.js +216 -216
  527. package/src/shade/renderer/scene/serialization/decode_image_source_hdr.js +1 -1
  528. package/src/shade/renderer/scene/serialization/deserialize_scene.js +1 -1
  529. package/src/shade/renderer/scene/serialization/write_image_source.js +1 -1
  530. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.d.ts +1 -1
  531. package/src/shade/renderer/shader/chunk/color/iCtCp/chunk_eotf_st2084.js +1 -1
  532. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture_sample_catmullrom_hardware_5tap_uv.d.ts +2 -1
  533. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture_sample_catmullrom_hardware_5tap_uv.d.ts.map +1 -1
  534. package/src/shade/renderer/shader/chunk/texture/sample/chunk_texture_sample_catmullrom_hardware_5tap_uv.js +2 -1
  535. package/src/shade/renderer/texture/COMPRESSED_TEXTURE_PLAN_2026_09_01.md +893 -10
  536. package/src/shade/renderer/texture/encode/ENCODE_NOTES_2026_09_02.md +462 -0
  537. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.d.ts +33 -0
  538. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.d.ts.map +1 -0
  539. package/src/shade/renderer/texture/encode/chunk_astc_encode_block_4x4_rgb.js +310 -0
  540. package/src/shade/renderer/texture/encode/chunk_astc_pack_4x4_rgb.d.ts +17 -0
  541. package/src/shade/renderer/texture/encode/chunk_astc_pack_4x4_rgb.d.ts.map +1 -0
  542. package/src/shade/renderer/texture/encode/chunk_astc_pack_4x4_rgb.js +51 -0
  543. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts +42 -0
  544. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.d.ts.map +1 -0
  545. package/src/shade/renderer/texture/encode/chunk_bc1_encode_block.js +375 -0
  546. package/src/shade/renderer/texture/encode/chunk_bc1_pack_block.d.ts +12 -0
  547. package/src/shade/renderer/texture/encode/chunk_bc1_pack_block.d.ts.map +1 -0
  548. package/src/shade/renderer/texture/encode/chunk_bc1_pack_block.js +24 -0
  549. package/src/shade/renderer/texture/encode/chunk_bc4_encode_block.d.ts +45 -0
  550. package/src/shade/renderer/texture/encode/chunk_bc4_encode_block.d.ts.map +1 -0
  551. package/src/shade/renderer/texture/encode/chunk_bc4_encode_block.js +348 -0
  552. package/src/shade/renderer/texture/encode/chunk_bc4_pack_block.d.ts +16 -0
  553. package/src/shade/renderer/texture/encode/chunk_bc4_pack_block.d.ts.map +1 -0
  554. package/src/shade/renderer/texture/encode/chunk_bc4_pack_block.js +33 -0
  555. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.d.ts +32 -0
  556. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.d.ts.map +1 -0
  557. package/src/shade/renderer/texture/encode/chunk_bc6h_encode_block_mode11.js +346 -0
  558. package/src/shade/renderer/texture/encode/chunk_bc6h_pack_mode11.d.ts +10 -0
  559. package/src/shade/renderer/texture/encode/chunk_bc6h_pack_mode11.d.ts.map +1 -0
  560. package/src/shade/renderer/texture/encode/chunk_bc6h_pack_mode11.js +54 -0
  561. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts +36 -0
  562. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.d.ts.map +1 -0
  563. package/src/shade/renderer/texture/encode/chunk_bc7_encode_block_mode6.js +327 -0
  564. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts +22 -0
  565. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.d.ts.map +1 -0
  566. package/src/shade/renderer/texture/encode/chunk_bc7_pack_mode6.js +71 -0
  567. package/src/shade/renderer/texture/encode/chunk_texture_encode_level.d.ts +20 -0
  568. package/src/shade/renderer/texture/encode/chunk_texture_encode_level.d.ts.map +1 -0
  569. package/src/shade/renderer/texture/encode/chunk_texture_encode_level.js +73 -0
  570. package/src/shade/renderer/texture/encode/chunk_texture_encode_load_block.d.ts +16 -0
  571. package/src/shade/renderer/texture/encode/chunk_texture_encode_load_block.d.ts.map +1 -0
  572. package/src/shade/renderer/texture/encode/chunk_texture_encode_load_block.js +36 -0
  573. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.d.ts +13 -0
  574. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.d.ts.map +1 -0
  575. package/src/shade/renderer/texture/encode/shader_texture_encode_astc_4x4.js +63 -0
  576. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.d.ts +12 -0
  577. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.d.ts.map +1 -0
  578. package/src/shade/renderer/texture/encode/shader_texture_encode_bc1.js +60 -0
  579. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.d.ts +28 -0
  580. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.d.ts.map +1 -0
  581. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4.js +76 -0
  582. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.d.ts +16 -0
  583. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.d.ts.map +1 -0
  584. package/src/shade/renderer/texture/encode/shader_texture_encode_bc4_snorm.js +64 -0
  585. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.d.ts +14 -0
  586. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.d.ts.map +1 -0
  587. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5.js +67 -0
  588. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.d.ts +10 -0
  589. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.d.ts.map +1 -0
  590. package/src/shade/renderer/texture/encode/shader_texture_encode_bc5_snorm.js +63 -0
  591. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.d.ts +12 -0
  592. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.d.ts.map +1 -0
  593. package/src/shade/renderer/texture/encode/shader_texture_encode_bc6h.js +62 -0
  594. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts +14 -0
  595. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.d.ts.map +1 -0
  596. package/src/shade/renderer/texture/encode/shader_texture_encode_bc7.js +58 -0
  597. package/src/shade/renderer/texture/encode/texture_encode.d.ts +84 -0
  598. package/src/shade/renderer/texture/encode/texture_encode.d.ts.map +1 -0
  599. package/src/shade/renderer/texture/encode/texture_encode.js +168 -0
  600. package/src/shade/renderer/texture/encode/texture_encode_layout.d.ts +196 -0
  601. package/src/shade/renderer/texture/encode/texture_encode_layout.d.ts.map +1 -0
  602. package/src/shade/renderer/texture/encode/texture_encode_layout.js +248 -0
  603. package/src/shade/renderer/texture/encode/texture_encode_resources.d.ts +15 -0
  604. package/src/shade/renderer/texture/encode/texture_encode_resources.d.ts.map +1 -0
  605. package/src/shade/renderer/texture/encode/texture_encode_resources.js +25 -0
  606. package/src/shade/renderer/texture/encode/texture_encode_shader.d.ts +30 -0
  607. package/src/shade/renderer/texture/encode/texture_encode_shader.d.ts.map +1 -0
  608. package/src/shade/renderer/texture/encode/texture_encode_shader.js +108 -0
  609. package/src/shade/renderer/texture/format/gpu_texture_compression_support.d.ts +3 -1
  610. package/src/shade/renderer/texture/format/gpu_texture_compression_support.d.ts.map +1 -1
  611. package/src/shade/renderer/texture/format/gpu_texture_compression_support.js +8 -25
  612. package/src/shade/renderer/texture/format/texture_format_from_shade_image.d.ts.map +1 -1
  613. package/src/shade/renderer/texture/format/texture_format_from_shade_image.js +26 -2
  614. package/src/shade/renderer/texture/source/texel_data_from_ktx2.d.ts +32 -0
  615. package/src/shade/renderer/texture/source/texel_data_from_ktx2.d.ts.map +1 -0
  616. package/src/shade/renderer/texture/source/texel_data_from_ktx2.js +48 -0
  617. package/src/shade/renderer/texture/texture_write_level.d.ts.map +1 -1
  618. package/src/shade/renderer/texture/texture_write_level.js +11 -1
  619. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.d.ts.map +1 -1
  620. package/src/shade/renderer/volumetrics/GPUViewVolumetrics.js +20 -0
  621. package/src/shade/renderer/volumetrics/NOTES.md +28 -0
  622. package/src/shade/renderer/volumetrics/taa/chunk_volumetric_history_bounding_box.d.ts.map +1 -1
  623. package/src/shade/renderer/volumetrics/taa/chunk_volumetric_history_bounding_box.js +7 -2
  624. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_reproject.d.ts +17 -0
  625. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_reproject.d.ts.map +1 -0
  626. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_reproject.js +168 -0
  627. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_resolve.d.ts +13 -0
  628. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_resolve.d.ts.map +1 -0
  629. package/src/shade/renderer/volumetrics/taa/chunk_volumetrics_taa_resolve.js +56 -0
  630. package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.d.ts.map +1 -1
  631. package/src/shade/renderer/volumetrics/taa/shader_volumetrics_taa.js +134 -334
  632. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.d.ts.map +1 -1
  633. package/src/shade/wgsl/emulator/WGSLJavaScriptCompiler.js +49 -21
  634. package/src/avif/encode_image_source.d.ts +0 -70
  635. package/src/avif/encode_image_source.d.ts.map +0 -1
  636. package/src/avif/encode_image_source.js +0 -117
  637. package/src/avif/encoder_worker.d.ts.map +0 -1
  638. package/src/avif/index.d.ts +0 -5
  639. package/src/avif/index.d.ts.map +0 -1
  640. package/src/avif/index.js +0 -21
  641. package/src/avif/native/DECISIONS.md +0 -545
  642. package/src/avif/native/api/AvifDecoder.d.ts.map +0 -1
  643. package/src/avif/native/api/apply_transformations.d.ts.map +0 -1
  644. package/src/avif/native/api/avif_to_sampler2d.d.ts +0 -25
  645. package/src/avif/native/api/avif_to_sampler2d.d.ts.map +0 -1
  646. package/src/avif/native/api/avif_to_sampler2d.js +0 -42
  647. package/src/avif/native/api/convert_to_rgba.d.ts.map +0 -1
  648. package/src/avif/native/api/convert_to_rgba.js +0 -204
  649. package/src/avif/native/api/decode_avif.d.ts.map +0 -1
  650. package/src/avif/native/api/decode_image_item.d.ts.map +0 -1
  651. package/src/avif/native/api/encode_avif.d.ts.map +0 -1
  652. package/src/avif/native/api/sampler2d_to_avif.d.ts.map +0 -1
  653. package/src/avif/native/api/sampler2d_to_avif.js +0 -108
  654. package/src/avif/native/av1/decode/Av1FrameContext.d.ts.map +0 -1
  655. package/src/avif/native/av1/decode/block_decoded.d.ts.map +0 -1
  656. package/src/avif/native/av1/decode/decode_av1_still.d.ts.map +0 -1
  657. package/src/avif/native/av1/decode/decode_coefficients.d.ts.map +0 -1
  658. package/src/avif/native/av1/decode/decode_palette.d.ts.map +0 -1
  659. package/src/avif/native/av1/decode/decode_palette.js +0 -442
  660. package/src/avif/native/av1/decode/decode_tile.d.ts.map +0 -1
  661. package/src/avif/native/av1/decode/decode_tile.js +0 -1213
  662. package/src/avif/native/av1/decode/get_scan.d.ts.map +0 -1
  663. package/src/avif/native/av1/decode/read_lr.d.ts.map +0 -1
  664. package/src/avif/native/av1/decode/read_lr.js +0 -277
  665. package/src/avif/native/av1/decode/read_transform_type.d.ts.map +0 -1
  666. package/src/avif/native/av1/decode/read_transform_type.js +0 -92
  667. package/src/avif/native/av1/decode/reconstruct.d.ts.map +0 -1
  668. package/src/avif/native/av1/decode/reconstruct.js +0 -241
  669. package/src/avif/native/av1/decode/transform_type.d.ts.map +0 -1
  670. package/src/avif/native/av1/encode/Av1BlockSnapshot.d.ts.map +0 -1
  671. package/src/avif/native/av1/encode/Av1EncodeContext.d.ts.map +0 -1
  672. package/src/avif/native/av1/encode/build_headers.d.ts.map +0 -1
  673. package/src/avif/native/av1/encode/choose_chroma_alpha.d.ts.map +0 -1
  674. package/src/avif/native/av1/encode/choose_filters.d.ts.map +0 -1
  675. package/src/avif/native/av1/encode/choose_restoration.d.ts.map +0 -1
  676. package/src/avif/native/av1/encode/choose_restoration.js +0 -616
  677. package/src/avif/native/av1/encode/decode_effort.d.ts.map +0 -1
  678. package/src/avif/native/av1/encode/encode_av1_still.d.ts.map +0 -1
  679. package/src/avif/native/av1/encode/encode_effort.d.ts.map +0 -1
  680. package/src/avif/native/av1/encode/encode_tile.d.ts.map +0 -1
  681. package/src/avif/native/av1/encode/encode_tile.js +0 -2331
  682. package/src/avif/native/av1/encode/quantise.d.ts.map +0 -1
  683. package/src/avif/native/av1/encode/write_coefficients.d.ts.map +0 -1
  684. package/src/avif/native/av1/encode/write_lr.d.ts.map +0 -1
  685. package/src/avif/native/av1/encode/write_transform_type.d.ts.map +0 -1
  686. package/src/avif/native/av1/entropy/CdfContext.d.ts.map +0 -1
  687. package/src/avif/native/av1/entropy/SymbolReader.d.ts.map +0 -1
  688. package/src/avif/native/av1/entropy/SymbolWriter.d.ts.map +0 -1
  689. package/src/avif/native/av1/entropy/coefficient_context.d.ts.map +0 -1
  690. package/src/avif/native/av1/entropy/partition_cdf.d.ts.map +0 -1
  691. package/src/avif/native/av1/entropy/symbol_cost.d.ts.map +0 -1
  692. package/src/avif/native/av1/filter/cdef.d.ts.map +0 -1
  693. package/src/avif/native/av1/filter/cdef.js +0 -313
  694. package/src/avif/native/av1/filter/loop_filter.d.ts.map +0 -1
  695. package/src/avif/native/av1/filter/loop_filter.js +0 -377
  696. package/src/avif/native/av1/filter/loop_restoration.d.ts.map +0 -1
  697. package/src/avif/native/av1/filter/loop_restoration.js +0 -451
  698. package/src/avif/native/av1/filter/superres.d.ts.map +0 -1
  699. package/src/avif/native/av1/filter/superres.js +0 -86
  700. package/src/avif/native/av1/grain/FilmGrainState.d.ts.map +0 -1
  701. package/src/avif/native/av1/grain/film_grain.d.ts.map +0 -1
  702. package/src/avif/native/av1/grain/film_grain.js +0 -623
  703. package/src/avif/native/av1/obu/FrameHeader.d.ts.map +0 -1
  704. package/src/avif/native/av1/obu/ObuHeader.d.ts.map +0 -1
  705. package/src/avif/native/av1/obu/SequenceHeader.d.ts.map +0 -1
  706. package/src/avif/native/av1/obu/for_each_obu.d.ts.map +0 -1
  707. package/src/avif/native/av1/obu/parse_frame_header.d.ts.map +0 -1
  708. package/src/avif/native/av1/obu/parse_frame_header.js +0 -841
  709. package/src/avif/native/av1/obu/parse_obu_header.d.ts.map +0 -1
  710. package/src/avif/native/av1/obu/parse_sequence_header.d.ts.map +0 -1
  711. package/src/avif/native/av1/obu/write_frame_header.d.ts.map +0 -1
  712. package/src/avif/native/av1/obu/write_sequence_header.d.ts.map +0 -1
  713. package/src/avif/native/av1/predict/IntraPredictionState.d.ts.map +0 -1
  714. package/src/avif/native/av1/predict/intra_filter_type.d.ts.map +0 -1
  715. package/src/avif/native/av1/predict/predict_chroma_from_luma.d.ts.map +0 -1
  716. package/src/avif/native/av1/predict/predict_chroma_from_luma.js +0 -153
  717. package/src/avif/native/av1/predict/predict_intra.d.ts.map +0 -1
  718. package/src/avif/native/av1/predict/predict_intra.js +0 -803
  719. package/src/avif/native/av1/predict/predict_palette.d.ts.map +0 -1
  720. package/src/avif/native/av1/tables/av1_symbols.d.ts.map +0 -1
  721. package/src/avif/native/av1/tables/av1_symbols.js +0 -419
  722. package/src/avif/native/av1/tables/block_tables.d.ts.map +0 -1
  723. package/src/avif/native/av1/tables/block_tables.js +0 -270
  724. package/src/avif/native/av1/tables/cdf_tables.d.ts.map +0 -1
  725. package/src/avif/native/av1/tables/cdf_tables.js +0 -1893
  726. package/src/avif/native/av1/tables/coefficient_tables.d.ts.map +0 -1
  727. package/src/avif/native/av1/tables/coefficient_tables.js +0 -82
  728. package/src/avif/native/av1/tables/derived_block_tables.d.ts.map +0 -1
  729. package/src/avif/native/av1/tables/filter_tables.d.ts.map +0 -1
  730. package/src/avif/native/av1/tables/filter_tables.js +0 -313
  731. package/src/avif/native/av1/tables/grain_tables.d.ts.map +0 -1
  732. package/src/avif/native/av1/tables/grain_tables.js +0 -190
  733. package/src/avif/native/av1/tables/prediction_tables.d.ts.map +0 -1
  734. package/src/avif/native/av1/tables/prediction_tables.js +0 -223
  735. package/src/avif/native/av1/tables/quantizer_matrix_tables.d.ts.map +0 -1
  736. package/src/avif/native/av1/tables/quantizer_matrix_tables.js +0 -38
  737. package/src/avif/native/av1/tables/quantizer_tables.d.ts.map +0 -1
  738. package/src/avif/native/av1/tables/quantizer_tables.js +0 -160
  739. package/src/avif/native/av1/tables/scan_tables.d.ts.map +0 -1
  740. package/src/avif/native/av1/tables/scan_tables.js +0 -727
  741. package/src/avif/native/av1/tables/segmentation_tables.d.ts.map +0 -1
  742. package/src/avif/native/av1/tables/segmentation_tables.js +0 -48
  743. package/src/avif/native/av1/tables/transform_tables.d.ts.map +0 -1
  744. package/src/avif/native/av1/tables/transform_tables.js +0 -140
  745. package/src/avif/native/av1/tables/unpack_table.d.ts.map +0 -1
  746. package/src/avif/native/av1/tables/unpack_table.js +0 -73
  747. package/src/avif/native/av1/transform/forward_transform_2d.d.ts.map +0 -1
  748. package/src/avif/native/av1/transform/inverse_transform_1d.d.ts.map +0 -1
  749. package/src/avif/native/av1/transform/inverse_transform_1d.js +0 -590
  750. package/src/avif/native/av1/transform/inverse_transform_2d.d.ts.map +0 -1
  751. package/src/avif/native/av1/transform/inverse_transform_2d.js +0 -180
  752. package/src/avif/native/av1/util/ceil_log2.d.ts.map +0 -1
  753. package/src/avif/native/av1/util/floor_log2.d.ts +0 -20
  754. package/src/avif/native/av1/util/floor_log2.d.ts.map +0 -1
  755. package/src/avif/native/av1/util/floor_log2.js +0 -20
  756. package/src/avif/native/av1/util/round2.d.ts.map +0 -1
  757. package/src/avif/native/av1/util/round2_signed.d.ts.map +0 -1
  758. package/src/avif/native/av1/util/tile_log2.d.ts.map +0 -1
  759. package/src/avif/native/bitstream/BitReader.d.ts.map +0 -1
  760. package/src/avif/native/bitstream/BitWriter.d.ts.map +0 -1
  761. package/src/avif/native/color/ColourTransform.d.ts.map +0 -1
  762. package/src/avif/native/color/YuvImage.d.ts.map +0 -1
  763. package/src/avif/native/color/clamp_sample.d.ts.map +0 -1
  764. package/src/avif/native/color/linear_to_transfer.d.ts.map +0 -1
  765. package/src/avif/native/color/linear_to_transfer.js +0 -126
  766. package/src/avif/native/color/primaries.d.ts.map +0 -1
  767. package/src/avif/native/color/rgb_row_to_ycbcr.d.ts.map +0 -1
  768. package/src/avif/native/color/transfer_to_linear.d.ts.map +0 -1
  769. package/src/avif/native/color/transfer_to_linear.js +0 -171
  770. package/src/avif/native/color/upsample_chroma_row.d.ts.map +0 -1
  771. package/src/avif/native/color/upsample_chroma_row.js +0 -89
  772. package/src/avif/native/color/ycbcr_row_to_rgb.d.ts.map +0 -1
  773. package/src/avif/native/color/ycbcr_row_to_rgb.js +0 -78
  774. package/src/avif/native/heif/AvifFile.d.ts.map +0 -1
  775. package/src/avif/native/heif/ItemProperty.d.ts.map +0 -1
  776. package/src/avif/native/heif/find_item_property.d.ts.map +0 -1
  777. package/src/avif/native/heif/find_item_references.d.ts.map +0 -1
  778. package/src/avif/native/heif/find_items_referencing.d.ts.map +0 -1
  779. package/src/avif/native/heif/parse_avif_file.d.ts.map +0 -1
  780. package/src/avif/native/heif/parse_avif_file.js +0 -384
  781. package/src/avif/native/heif/parse_image_grid.d.ts.map +0 -1
  782. package/src/avif/native/heif/parse_image_grid.js +0 -49
  783. package/src/avif/native/heif/parse_item_property.d.ts.map +0 -1
  784. package/src/avif/native/heif/read_item_data.d.ts.map +0 -1
  785. package/src/avif/native/heif/write_avif_file.d.ts.map +0 -1
  786. package/src/avif/native/heif/write_item_property.d.ts.map +0 -1
  787. package/src/avif/native/index.d.ts +0 -14
  788. package/src/avif/native/index.d.ts.map +0 -1
  789. package/src/avif/native/index.js +0 -56
  790. package/src/avif/native/isobmff/BoxHeader.d.ts.map +0 -1
  791. package/src/avif/native/isobmff/BoxWriter.d.ts +0 -118
  792. package/src/avif/native/isobmff/BoxWriter.d.ts.map +0 -1
  793. package/src/avif/native/isobmff/BoxWriter.js +0 -264
  794. package/src/avif/native/isobmff/for_each_box.d.ts.map +0 -1
  795. package/src/avif/native/isobmff/read_box_header.d.ts.map +0 -1
  796. package/src/avif/native/isobmff/read_full_box_header.d.ts.map +0 -1
  797. package/src/avif/threaded_image_encoder.d.ts.map +0 -1
  798. package/src/basis/BasisBitReader.d.ts +0 -77
  799. package/src/basis/BasisBitReader.d.ts.map +0 -1
  800. package/src/basis/BasisBitReader.js +0 -231
  801. package/src/basis/BasisHuffmanTable.d.ts.map +0 -1
  802. package/src/basis/basis_read_huffman_table.d.ts.map +0 -1
  803. package/src/basis/etc1s/Etc1sSelectorHistory.d.ts.map +0 -1
  804. package/src/basis/etc1s/etc1s_block_colors.d.ts.map +0 -1
  805. package/src/basis/etc1s/etc1s_decode_slice.d.ts.map +0 -1
  806. package/src/basis/etc1s/etc1s_decode_slice.js +0 -258
  807. package/src/basis/etc1s/etc1s_read_endpoint_codebook.d.ts.map +0 -1
  808. package/src/basis/etc1s/etc1s_read_selector_codebook.d.ts.map +0 -1
  809. package/src/basis/etc1s/etc1s_read_slice_tables.d.ts.map +0 -1
  810. package/src/basis/transcode/etc1s_to_bc1.d.ts +0 -24
  811. package/src/basis/transcode/etc1s_to_bc1.d.ts.map +0 -1
  812. package/src/basis/transcode/etc1s_to_bc1.js +0 -205
  813. package/src/basis/transcode/etc1s_to_bc7.d.ts +0 -30
  814. package/src/basis/transcode/etc1s_to_bc7.d.ts.map +0 -1
  815. package/src/basis/transcode/fit_endpoints.d.ts +0 -59
  816. package/src/basis/transcode/fit_endpoints.d.ts.map +0 -1
  817. package/src/basis/transcode/fit_endpoints.js +0 -226
  818. package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.d.ts +0 -8
  819. package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.d.ts.map +0 -1
  820. package/src/engine/asset/loaders/gltf/computeObjectBoundingSphere.js +0 -70
  821. package/src/engine/asset/loaders/gltf/isMesh.d.ts +0 -7
  822. package/src/engine/asset/loaders/gltf/isMesh.d.ts.map +0 -1
  823. package/src/engine/asset/loaders/gltf/isMesh.js +0 -8
  824. package/src/engine/asset/loaders/image/jpeg/JpegFrame.d.ts.map +0 -1
  825. package/src/engine/asset/loaders/image/jpeg/JpegFrameComponent.d.ts.map +0 -1
  826. package/src/engine/asset/loaders/image/jpeg/JpegImage.d.ts.map +0 -1
  827. package/src/engine/asset/loaders/image/jpeg/JpegImage.js +0 -664
  828. package/src/engine/asset/loaders/image/jpeg/buildComponentData.d.ts.map +0 -1
  829. package/src/engine/asset/loaders/image/jpeg/buildHuffmanTable.d.ts.map +0 -1
  830. package/src/engine/asset/loaders/image/jpeg/decodeScan.d.ts.map +0 -1
  831. package/src/engine/asset/loaders/image/jpeg/idct8x8_float.d.ts.map +0 -1
  832. package/src/engine/asset/loaders/image/jpeg/idct8x8_float.js +0 -31
  833. package/src/engine/asset/loaders/image/jpeg/jpeg_component_row.d.ts.map +0 -1
  834. package/src/engine/asset/loaders/image/jpeg/jpeg_decode.d.ts.map +0 -1
  835. package/src/engine/asset/loaders/image/png/PNG.d.ts.map +0 -1
  836. package/src/engine/asset/loaders/image/png/PNGReader.d.ts +0 -158
  837. package/src/engine/asset/loaders/image/png/PNGReader.d.ts.map +0 -1
  838. package/src/engine/asset/loaders/image/png/PNGReader.js +0 -656
  839. package/src/engine/asset/loaders/image/png/PNG_HEADER_BYTES.d.ts.map +0 -1
  840. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_iTXt.d.ts.map +0 -1
  841. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_iTXt.js +0 -53
  842. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_zTXt.d.ts.map +0 -1
  843. package/src/engine/asset/loaders/image/png/chunk/png_chunk_decode_zTXt.js +0 -42
  844. package/src/engine/asset/loaders/image/png/crc32.d.ts +0 -2
  845. package/src/engine/asset/loaders/image/png/crc32.d.ts.map +0 -1
  846. package/src/engine/asset/loaders/image/png/crc32.js +0 -8
  847. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterAverage.d.ts.map +0 -1
  848. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterNone.d.ts.map +0 -1
  849. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterPaeth.d.ts.map +0 -1
  850. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterSub.d.ts.map +0 -1
  851. package/src/engine/asset/loaders/image/png/filter/png_filter_unFilterUp.d.ts.map +0 -1
  852. package/src/engine/asset/loaders/image/png/filter/png_unfilter.d.ts.map +0 -1
  853. package/src/engine/asset/loaders/image/png/filter/png_unfilter.js +0 -68
  854. package/src/engine/asset/loaders/image/png/png_inflate.d.ts.map +0 -1
  855. package/src/engine/asset/loaders/image/png/png_unpack_samples.d.ts.map +0 -1
  856. package/src/engine/asset/loaders/image/png/prototypePNG.d.ts.map +0 -1
  857. package/src/engine/asset/loaders/image/png/prototypePNG.js +0 -37
  858. package/src/ktx2/KTX2_IDENTIFIER.d.ts.map +0 -1
  859. package/src/ktx2/KhrDfModel.d.ts.map +0 -1
  860. package/src/ktx2/SupercompressionScheme.d.ts.map +0 -1
  861. package/src/ktx2/ktx2_read.d.ts +0 -71
  862. package/src/ktx2/ktx2_read.d.ts.map +0 -1
  863. package/src/ktx2/ktx2_read.js +0 -581
  864. package/src/ktx2/ktx2_read_basis_lz_global_data.d.ts +0 -27
  865. package/src/ktx2/ktx2_read_basis_lz_global_data.d.ts.map +0 -1
  866. package/src/ktx2/ktx2_read_basis_lz_global_data.js +0 -189
  867. package/src/ktx2/vk_format_to_texture_format.d.ts +0 -55
  868. package/src/ktx2/vk_format_to_texture_format.d.ts.map +0 -1
  869. package/src/ktx2/vk_format_to_texture_format.js +0 -290
  870. package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts +0 -25
  871. package/src/shade/renderer/geometry/bvh/record_blas_refit.d.ts.map +0 -1
  872. package/src/shade/renderer/geometry/bvh/record_blas_refit.js +0 -102
  873. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts +0 -30
  874. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.d.ts.map +0 -1
  875. package/src/shade/renderer/geometry/bvh/shader_blas_refit_leaf_bounds.js +0 -125
  876. package/src/shade/renderer/loader/gltf/GLTF_PRIMITIVE_MODE.d.ts.map +0 -1
  877. package/src/shade/renderer/loader/gltf/MESHOPT_COMPRESSION_PLAN.md +0 -793
  878. package/src/shade/renderer/loader/gltf/coalesce_array_duplicates.d.ts.map +0 -1
  879. package/src/shade/renderer/loader/gltf/ext/GltfBufferViewExtension.d.ts.map +0 -1
  880. package/src/shade/renderer/loader/gltf/ext/GltfBufferViewExtensionSet.d.ts.map +0 -1
  881. package/src/shade/renderer/loader/gltf/ext/GltfBufferViewExtensionSet.js +0 -109
  882. package/src/shade/renderer/loader/gltf/ext/gltf_apply_buffer_view_extensions.d.ts.map +0 -1
  883. package/src/shade/renderer/loader/gltf/ext/gltf_buffer_view_extensions.d.ts.map +0 -1
  884. package/src/shade/renderer/loader/gltf/ext/gltf_geometry_extensions.d.ts.map +0 -1
  885. package/src/shade/renderer/loader/gltf/ext/meshopt/MeshoptBufferViewExtension.d.ts.map +0 -1
  886. package/src/shade/renderer/loader/gltf/ext/meshopt/MeshoptBufferViewExtension.js +0 -301
  887. package/src/shade/renderer/loader/gltf/gltf_component_type.d.ts.map +0 -1
  888. package/src/shade/renderer/loader/gltf/gltf_node_world_matrices.d.ts.map +0 -1
  889. package/src/shade/renderer/loader/gltf/gltf_node_world_matrices.js +0 -137
  890. package/src/shade/renderer/loader/gltf/gltf_parse_container.d.ts.map +0 -1
  891. package/src/shade/renderer/loader/gltf/gltf_read_accessor.d.ts.map +0 -1
  892. package/src/shade/renderer/loader/gltf/gltf_read_accessor.js +0 -294
  893. package/src/shade/renderer/loader/gltf/gltf_used_image_indices.d.ts +0 -25
  894. package/src/shade/renderer/loader/gltf/gltf_used_image_indices.d.ts.map +0 -1
  895. package/src/shade/renderer/loader/gltf/gltf_used_image_indices.js +0 -49
  896. package/src/shade/renderer/loader/usd/UsdError.d.ts.map +0 -1
  897. package/src/shade/renderer/loader/usd/parse_usda.d.ts.map +0 -1
  898. package/src/shade/renderer/loader/usd/unpack_usdz.d.ts.map +0 -1
  899. package/src/shade/renderer/loader/usd/unpack_usdz.js +0 -106
  900. package/src/shade/renderer/loader/usd/usd_compose_transform.d.ts.map +0 -1
  901. package/src/shade/renderer/loader/usd/usd_compose_transform.js +0 -258
  902. package/src/shade/renderer/loader/usd/usd_lz4.d.ts.map +0 -1
  903. package/src/shade/renderer/loader/usd/usd_lz4.js +0 -182
  904. package/src/shade/renderer/loader/usd/usd_triangulate.d.ts.map +0 -1
  905. package/src/shade/renderer/postprocess/taa/chunk_taa_sample_history_color.d.ts +0 -2
  906. package/src/shade/renderer/postprocess/taa/chunk_taa_sample_history_color.d.ts.map +0 -1
  907. package/src/shade/renderer/postprocess/taa/chunk_taa_sample_history_color.js +0 -43
  908. package/src/shade/renderer/scene/optimization/sampler2d_compare.d.ts.map +0 -1
  909. package/src/shade/renderer/scene/optimization/sampler2d_compare.js +0 -94
  910. /package/src/{avif → engine/asset/loaders/image/avif}/encoder_worker.d.ts +0 -0
  911. /package/src/{avif → engine/asset/loaders/image/avif}/encoder_worker.js +0 -0
  912. /package/src/{avif → engine/asset/loaders/image/avif}/threaded_image_encoder.d.ts +0 -0
  913. /package/src/{avif → engine/asset/loaders/image/avif}/threaded_image_encoder.js +0 -0
  914. /package/src/engine/asset/loaders/image/{png/prototypePNG.d.ts → prototypePNG.d.ts} +0 -0
  915. /package/src/{shade/renderer/scene/optimization → engine/graphics/texture/sampler/compare}/sampler2d_compare.d.ts +0 -0
  916. /package/src/{avif/native/api → engine/graphics/texture/sampler}/sampler2d_to_avif.d.ts +0 -0
  917. /package/src/{avif/native → format/image/avif}/NOTICE.md +0 -0
  918. /package/src/{avif/native → format/image/avif}/api/AvifDecoder.d.ts +0 -0
  919. /package/src/{avif/native → format/image/avif}/api/AvifDecoder.js +0 -0
  920. /package/src/{avif/native → format/image/avif}/api/apply_transformations.d.ts +0 -0
  921. /package/src/{avif/native → format/image/avif}/api/apply_transformations.js +0 -0
  922. /package/src/{avif/native → format/image/avif}/api/convert_to_rgba.d.ts +0 -0
  923. /package/src/{avif/native → format/image/avif}/api/decode_avif.d.ts +0 -0
  924. /package/src/{avif/native → format/image/avif}/api/decode_avif.js +0 -0
  925. /package/src/{avif/native → format/image/avif}/api/decode_image_item.d.ts +0 -0
  926. /package/src/{avif/native → format/image/avif}/api/decode_image_item.js +0 -0
  927. /package/src/{avif/native → format/image/avif}/api/encode_avif.d.ts +0 -0
  928. /package/src/{avif/native → format/image/avif}/api/encode_avif.js +0 -0
  929. /package/src/{avif/native → format/image/avif}/av1/decode/Av1FrameContext.d.ts +0 -0
  930. /package/src/{avif/native → format/image/avif}/av1/decode/Av1FrameContext.js +0 -0
  931. /package/src/{avif/native → format/image/avif}/av1/decode/block_decoded.d.ts +0 -0
  932. /package/src/{avif/native → format/image/avif}/av1/decode/block_decoded.js +0 -0
  933. /package/src/{avif/native → format/image/avif}/av1/decode/decode_av1_still.d.ts +0 -0
  934. /package/src/{avif/native → format/image/avif}/av1/decode/decode_av1_still.js +0 -0
  935. /package/src/{avif/native → format/image/avif}/av1/decode/decode_coefficients.d.ts +0 -0
  936. /package/src/{avif/native → format/image/avif}/av1/decode/decode_coefficients.js +0 -0
  937. /package/src/{avif/native → format/image/avif}/av1/decode/decode_palette.d.ts +0 -0
  938. /package/src/{avif/native → format/image/avif}/av1/decode/decode_tile.d.ts +0 -0
  939. /package/src/{avif/native → format/image/avif}/av1/decode/get_scan.d.ts +0 -0
  940. /package/src/{avif/native → format/image/avif}/av1/decode/get_scan.js +0 -0
  941. /package/src/{avif/native → format/image/avif}/av1/decode/read_lr.d.ts +0 -0
  942. /package/src/{avif/native → format/image/avif}/av1/decode/read_transform_type.d.ts +0 -0
  943. /package/src/{avif/native → format/image/avif}/av1/decode/reconstruct.d.ts +0 -0
  944. /package/src/{avif/native → format/image/avif}/av1/decode/transform_type.d.ts +0 -0
  945. /package/src/{avif/native → format/image/avif}/av1/decode/transform_type.js +0 -0
  946. /package/src/{avif/native → format/image/avif}/av1/encode/Av1BlockSnapshot.d.ts +0 -0
  947. /package/src/{avif/native → format/image/avif}/av1/encode/Av1BlockSnapshot.js +0 -0
  948. /package/src/{avif/native → format/image/avif}/av1/encode/Av1EncodeContext.d.ts +0 -0
  949. /package/src/{avif/native → format/image/avif}/av1/encode/Av1EncodeContext.js +0 -0
  950. /package/src/{avif/native → format/image/avif}/av1/encode/build_headers.d.ts +0 -0
  951. /package/src/{avif/native → format/image/avif}/av1/encode/build_headers.js +0 -0
  952. /package/src/{avif/native → format/image/avif}/av1/encode/choose_chroma_alpha.d.ts +0 -0
  953. /package/src/{avif/native → format/image/avif}/av1/encode/choose_chroma_alpha.js +0 -0
  954. /package/src/{avif/native → format/image/avif}/av1/encode/choose_filters.d.ts +0 -0
  955. /package/src/{avif/native → format/image/avif}/av1/encode/choose_filters.js +0 -0
  956. /package/src/{avif/native → format/image/avif}/av1/encode/choose_restoration.d.ts +0 -0
  957. /package/src/{avif/native → format/image/avif}/av1/encode/decode_effort.d.ts +0 -0
  958. /package/src/{avif/native → format/image/avif}/av1/encode/decode_effort.js +0 -0
  959. /package/src/{avif/native → format/image/avif}/av1/encode/encode_av1_still.d.ts +0 -0
  960. /package/src/{avif/native → format/image/avif}/av1/encode/encode_av1_still.js +0 -0
  961. /package/src/{avif/native → format/image/avif}/av1/encode/encode_effort.d.ts +0 -0
  962. /package/src/{avif/native → format/image/avif}/av1/encode/encode_effort.js +0 -0
  963. /package/src/{avif/native → format/image/avif}/av1/encode/encode_tile.d.ts +0 -0
  964. /package/src/{avif/native → format/image/avif}/av1/encode/quantise.d.ts +0 -0
  965. /package/src/{avif/native → format/image/avif}/av1/encode/quantise.js +0 -0
  966. /package/src/{avif/native → format/image/avif}/av1/encode/write_coefficients.d.ts +0 -0
  967. /package/src/{avif/native → format/image/avif}/av1/encode/write_coefficients.js +0 -0
  968. /package/src/{avif/native → format/image/avif}/av1/encode/write_lr.d.ts +0 -0
  969. /package/src/{avif/native → format/image/avif}/av1/encode/write_lr.js +0 -0
  970. /package/src/{avif/native → format/image/avif}/av1/encode/write_transform_type.d.ts +0 -0
  971. /package/src/{avif/native → format/image/avif}/av1/encode/write_transform_type.js +0 -0
  972. /package/src/{avif/native → format/image/avif}/av1/entropy/CdfContext.d.ts +0 -0
  973. /package/src/{avif/native → format/image/avif}/av1/entropy/CdfContext.js +0 -0
  974. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolReader.d.ts +0 -0
  975. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolReader.js +0 -0
  976. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolWriter.d.ts +0 -0
  977. /package/src/{avif/native → format/image/avif}/av1/entropy/SymbolWriter.js +0 -0
  978. /package/src/{avif/native → format/image/avif}/av1/entropy/coefficient_context.d.ts +0 -0
  979. /package/src/{avif/native → format/image/avif}/av1/entropy/coefficient_context.js +0 -0
  980. /package/src/{avif/native → format/image/avif}/av1/entropy/partition_cdf.d.ts +0 -0
  981. /package/src/{avif/native → format/image/avif}/av1/entropy/partition_cdf.js +0 -0
  982. /package/src/{avif/native → format/image/avif}/av1/entropy/symbol_cost.d.ts +0 -0
  983. /package/src/{avif/native → format/image/avif}/av1/entropy/symbol_cost.js +0 -0
  984. /package/src/{avif/native → format/image/avif}/av1/filter/cdef.d.ts +0 -0
  985. /package/src/{avif/native → format/image/avif}/av1/filter/loop_filter.d.ts +0 -0
  986. /package/src/{avif/native → format/image/avif}/av1/filter/loop_restoration.d.ts +0 -0
  987. /package/src/{avif/native → format/image/avif}/av1/filter/superres.d.ts +0 -0
  988. /package/src/{avif/native → format/image/avif}/av1/grain/FilmGrainState.d.ts +0 -0
  989. /package/src/{avif/native → format/image/avif}/av1/grain/FilmGrainState.js +0 -0
  990. /package/src/{avif/native → format/image/avif}/av1/grain/film_grain.d.ts +0 -0
  991. /package/src/{avif/native → format/image/avif}/av1/obu/FrameHeader.d.ts +0 -0
  992. /package/src/{avif/native → format/image/avif}/av1/obu/FrameHeader.js +0 -0
  993. /package/src/{avif/native → format/image/avif}/av1/obu/ObuHeader.d.ts +0 -0
  994. /package/src/{avif/native → format/image/avif}/av1/obu/ObuHeader.js +0 -0
  995. /package/src/{avif/native → format/image/avif}/av1/obu/SequenceHeader.d.ts +0 -0
  996. /package/src/{avif/native → format/image/avif}/av1/obu/SequenceHeader.js +0 -0
  997. /package/src/{avif/native → format/image/avif}/av1/obu/for_each_obu.d.ts +0 -0
  998. /package/src/{avif/native → format/image/avif}/av1/obu/for_each_obu.js +0 -0
  999. /package/src/{avif/native → format/image/avif}/av1/obu/parse_frame_header.d.ts +0 -0
  1000. /package/src/{avif/native → format/image/avif}/av1/obu/parse_obu_header.d.ts +0 -0
  1001. /package/src/{avif/native → format/image/avif}/av1/obu/parse_obu_header.js +0 -0
  1002. /package/src/{avif/native → format/image/avif}/av1/obu/parse_sequence_header.d.ts +0 -0
  1003. /package/src/{avif/native → format/image/avif}/av1/obu/parse_sequence_header.js +0 -0
  1004. /package/src/{avif/native → format/image/avif}/av1/obu/write_frame_header.d.ts +0 -0
  1005. /package/src/{avif/native → format/image/avif}/av1/obu/write_frame_header.js +0 -0
  1006. /package/src/{avif/native → format/image/avif}/av1/obu/write_sequence_header.d.ts +0 -0
  1007. /package/src/{avif/native → format/image/avif}/av1/obu/write_sequence_header.js +0 -0
  1008. /package/src/{avif/native → format/image/avif}/av1/predict/IntraPredictionState.d.ts +0 -0
  1009. /package/src/{avif/native → format/image/avif}/av1/predict/IntraPredictionState.js +0 -0
  1010. /package/src/{avif/native → format/image/avif}/av1/predict/intra_filter_type.d.ts +0 -0
  1011. /package/src/{avif/native → format/image/avif}/av1/predict/intra_filter_type.js +0 -0
  1012. /package/src/{avif/native → format/image/avif}/av1/predict/predict_chroma_from_luma.d.ts +0 -0
  1013. /package/src/{avif/native → format/image/avif}/av1/predict/predict_intra.d.ts +0 -0
  1014. /package/src/{avif/native → format/image/avif}/av1/predict/predict_palette.d.ts +0 -0
  1015. /package/src/{avif/native → format/image/avif}/av1/predict/predict_palette.js +0 -0
  1016. /package/src/{avif/native → format/image/avif}/av1/tables/av1_symbols.d.ts +0 -0
  1017. /package/src/{avif/native → format/image/avif}/av1/tables/block_tables.d.ts +0 -0
  1018. /package/src/{avif/native → format/image/avif}/av1/tables/cdf_tables.d.ts +0 -0
  1019. /package/src/{avif/native → format/image/avif}/av1/tables/coefficient_tables.d.ts +0 -0
  1020. /package/src/{avif/native → format/image/avif}/av1/tables/derived_block_tables.d.ts +0 -0
  1021. /package/src/{avif/native → format/image/avif}/av1/tables/derived_block_tables.js +0 -0
  1022. /package/src/{avif/native → format/image/avif}/av1/tables/filter_tables.d.ts +0 -0
  1023. /package/src/{avif/native → format/image/avif}/av1/tables/grain_tables.d.ts +0 -0
  1024. /package/src/{avif/native → format/image/avif}/av1/tables/prediction_tables.d.ts +0 -0
  1025. /package/src/{avif/native → format/image/avif}/av1/tables/quantizer_matrix_tables.d.ts +0 -0
  1026. /package/src/{avif/native → format/image/avif}/av1/tables/quantizer_tables.d.ts +0 -0
  1027. /package/src/{avif/native → format/image/avif}/av1/tables/scan_tables.d.ts +0 -0
  1028. /package/src/{avif/native → format/image/avif}/av1/tables/segmentation_tables.d.ts +0 -0
  1029. /package/src/{avif/native → format/image/avif}/av1/tables/transform_tables.d.ts +0 -0
  1030. /package/src/{avif/native → format/image/avif}/av1/tables/unpack_table.d.ts +0 -0
  1031. /package/src/{avif/native → format/image/avif}/av1/transform/forward_transform_2d.d.ts +0 -0
  1032. /package/src/{avif/native → format/image/avif}/av1/transform/forward_transform_2d.js +0 -0
  1033. /package/src/{avif/native → format/image/avif}/av1/transform/inverse_transform_1d.d.ts +0 -0
  1034. /package/src/{avif/native → format/image/avif}/av1/transform/inverse_transform_2d.d.ts +0 -0
  1035. /package/src/{avif/native → format/image/avif}/av1/util/ceil_log2.d.ts +0 -0
  1036. /package/src/{avif/native → format/image/avif}/av1/util/ceil_log2.js +0 -0
  1037. /package/src/{avif/native → format/image/avif}/av1/util/round2.d.ts +0 -0
  1038. /package/src/{avif/native → format/image/avif}/av1/util/round2.js +0 -0
  1039. /package/src/{avif/native → format/image/avif}/av1/util/round2_signed.d.ts +0 -0
  1040. /package/src/{avif/native → format/image/avif}/av1/util/round2_signed.js +0 -0
  1041. /package/src/{avif/native → format/image/avif}/av1/util/tile_log2.d.ts +0 -0
  1042. /package/src/{avif/native → format/image/avif}/av1/util/tile_log2.js +0 -0
  1043. /package/src/{avif/native → format/image/avif}/bitstream/BitReader.d.ts +0 -0
  1044. /package/src/{avif/native → format/image/avif}/bitstream/BitReader.js +0 -0
  1045. /package/src/{avif/native → format/image/avif}/bitstream/BitWriter.d.ts +0 -0
  1046. /package/src/{avif/native → format/image/avif}/bitstream/BitWriter.js +0 -0
  1047. /package/src/{avif/native → format/image/avif}/color/ColourTransform.d.ts +0 -0
  1048. /package/src/{avif/native → format/image/avif}/color/ColourTransform.js +0 -0
  1049. /package/src/{avif/native → format/image/avif}/color/YuvImage.d.ts +0 -0
  1050. /package/src/{avif/native → format/image/avif}/color/YuvImage.js +0 -0
  1051. /package/src/{avif/native → format/image/avif}/color/clamp_sample.d.ts +0 -0
  1052. /package/src/{avif/native → format/image/avif}/color/clamp_sample.js +0 -0
  1053. /package/src/{avif/native → format/image/avif}/color/linear_to_transfer.d.ts +0 -0
  1054. /package/src/{avif/native → format/image/avif}/color/primaries.d.ts +0 -0
  1055. /package/src/{avif/native → format/image/avif}/color/primaries.js +0 -0
  1056. /package/src/{avif/native → format/image/avif}/color/rgb_row_to_ycbcr.d.ts +0 -0
  1057. /package/src/{avif/native → format/image/avif}/color/rgb_row_to_ycbcr.js +0 -0
  1058. /package/src/{avif/native → format/image/avif}/color/transfer_to_linear.d.ts +0 -0
  1059. /package/src/{avif/native → format/image/avif}/color/upsample_chroma_row.d.ts +0 -0
  1060. /package/src/{avif/native → format/image/avif}/color/ycbcr_row_to_rgb.d.ts +0 -0
  1061. /package/src/{avif/native → format/image/avif}/heif/AvifFile.d.ts +0 -0
  1062. /package/src/{avif/native → format/image/avif}/heif/AvifFile.js +0 -0
  1063. /package/src/{avif/native → format/image/avif}/heif/ItemProperty.d.ts +0 -0
  1064. /package/src/{avif/native → format/image/avif}/heif/ItemProperty.js +0 -0
  1065. /package/src/{avif/native → format/image/avif}/heif/find_item_property.d.ts +0 -0
  1066. /package/src/{avif/native → format/image/avif}/heif/find_item_property.js +0 -0
  1067. /package/src/{avif/native → format/image/avif}/heif/find_item_references.d.ts +0 -0
  1068. /package/src/{avif/native → format/image/avif}/heif/find_item_references.js +0 -0
  1069. /package/src/{avif/native → format/image/avif}/heif/find_items_referencing.d.ts +0 -0
  1070. /package/src/{avif/native → format/image/avif}/heif/find_items_referencing.js +0 -0
  1071. /package/src/{avif/native → format/image/avif}/heif/parse_avif_file.d.ts +0 -0
  1072. /package/src/{avif/native → format/image/avif}/heif/parse_image_grid.d.ts +0 -0
  1073. /package/src/{avif/native → format/image/avif}/heif/parse_item_property.d.ts +0 -0
  1074. /package/src/{avif/native → format/image/avif}/heif/parse_item_property.js +0 -0
  1075. /package/src/{avif/native → format/image/avif}/heif/read_item_data.d.ts +0 -0
  1076. /package/src/{avif/native → format/image/avif}/heif/read_item_data.js +0 -0
  1077. /package/src/{avif/native → format/image/avif}/heif/write_avif_file.d.ts +0 -0
  1078. /package/src/{avif/native → format/image/avif}/heif/write_avif_file.js +0 -0
  1079. /package/src/{avif/native → format/image/avif}/heif/write_item_property.d.ts +0 -0
  1080. /package/src/{avif/native → format/image/avif}/heif/write_item_property.js +0 -0
  1081. /package/src/{avif/native → format/image/avif}/isobmff/BoxHeader.d.ts +0 -0
  1082. /package/src/{avif/native → format/image/avif}/isobmff/BoxHeader.js +0 -0
  1083. /package/src/{avif/native → format/image/avif}/isobmff/for_each_box.d.ts +0 -0
  1084. /package/src/{avif/native → format/image/avif}/isobmff/for_each_box.js +0 -0
  1085. /package/src/{avif/native → format/image/avif}/isobmff/read_box_header.d.ts +0 -0
  1086. /package/src/{avif/native → format/image/avif}/isobmff/read_box_header.js +0 -0
  1087. /package/src/{avif/native → format/image/avif}/isobmff/read_full_box_header.d.ts +0 -0
  1088. /package/src/{avif/native → format/image/avif}/isobmff/read_full_box_header.js +0 -0
  1089. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrame.d.ts +0 -0
  1090. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrame.js +0 -0
  1091. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrameComponent.d.ts +0 -0
  1092. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegFrameComponent.js +0 -0
  1093. /package/src/{engine/asset/loaders → format}/image/jpeg/JpegImage.d.ts +0 -0
  1094. /package/src/{engine/asset/loaders → format}/image/jpeg/NOTES.md +0 -0
  1095. /package/src/{engine/asset/loaders → format}/image/jpeg/buildComponentData.d.ts +0 -0
  1096. /package/src/{engine/asset/loaders → format}/image/jpeg/buildComponentData.js +0 -0
  1097. /package/src/{engine/asset/loaders → format}/image/jpeg/buildHuffmanTable.d.ts +0 -0
  1098. /package/src/{engine/asset/loaders → format}/image/jpeg/buildHuffmanTable.js +0 -0
  1099. /package/src/{engine/asset/loaders → format}/image/jpeg/decodeScan.d.ts +0 -0
  1100. /package/src/{engine/asset/loaders → format}/image/jpeg/decodeScan.js +0 -0
  1101. /package/src/{engine/asset/loaders → format}/image/jpeg/idct8x8_float.d.ts +0 -0
  1102. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_component_row.d.ts +0 -0
  1103. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_component_row.js +0 -0
  1104. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_decode.d.ts +0 -0
  1105. /package/src/{engine/asset/loaders → format}/image/jpeg/jpeg_decode.js +0 -0
  1106. /package/src/{engine/asset/loaders → format}/image/png/PNG.d.ts +0 -0
  1107. /package/src/{engine/asset/loaders → format}/image/png/PNG.js +0 -0
  1108. /package/src/{engine/asset/loaders → format}/image/png/PNG_HEADER_BYTES.d.ts +0 -0
  1109. /package/src/{engine/asset/loaders → format}/image/png/PNG_HEADER_BYTES.js +0 -0
  1110. /package/src/{engine/asset/loaders → format}/image/png/chunk/png_chunk_decode_iTXt.d.ts +0 -0
  1111. /package/src/{engine/asset/loaders → format}/image/png/chunk/png_chunk_decode_zTXt.d.ts +0 -0
  1112. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterAverage.d.ts +0 -0
  1113. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterAverage.js +0 -0
  1114. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterNone.d.ts +0 -0
  1115. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterNone.js +0 -0
  1116. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterPaeth.d.ts +0 -0
  1117. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterPaeth.js +0 -0
  1118. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterSub.d.ts +0 -0
  1119. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterSub.js +0 -0
  1120. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterUp.d.ts +0 -0
  1121. /package/src/{engine/asset/loaders → format}/image/png/filter/png_filter_unFilterUp.js +0 -0
  1122. /package/src/{engine/asset/loaders → format}/image/png/filter/png_unfilter.d.ts +0 -0
  1123. /package/src/{engine/asset/loaders → format}/image/png/png_inflate.d.ts +0 -0
  1124. /package/src/{engine/asset/loaders → format}/image/png/png_inflate.js +0 -0
  1125. /package/src/{engine/asset/loaders → format}/image/png/png_unpack_samples.d.ts +0 -0
  1126. /package/src/{engine/asset/loaders → format}/image/png/png_unpack_samples.js +0 -0
  1127. /package/src/{shade/renderer/loader → format/scene}/gltf/GLTF_PRIMITIVE_MODE.d.ts +0 -0
  1128. /package/src/{shade/renderer/loader → format/scene}/gltf/GLTF_PRIMITIVE_MODE.js +0 -0
  1129. /package/src/{shade/renderer/loader → format/scene}/gltf/coalesce_array_duplicates.d.ts +0 -0
  1130. /package/src/{shade/renderer/loader → format/scene}/gltf/coalesce_array_duplicates.js +0 -0
  1131. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/GltfBufferViewExtension.d.ts +0 -0
  1132. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/GltfBufferViewExtension.js +0 -0
  1133. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/GltfBufferViewExtensionSet.d.ts +0 -0
  1134. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_apply_buffer_view_extensions.d.ts +0 -0
  1135. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_apply_buffer_view_extensions.js +0 -0
  1136. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_buffer_view_extensions.d.ts +0 -0
  1137. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_buffer_view_extensions.js +0 -0
  1138. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_geometry_extensions.d.ts +0 -0
  1139. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/gltf_geometry_extensions.js +0 -0
  1140. /package/src/{shade/renderer/loader → format/scene}/gltf/ext/meshopt/MeshoptBufferViewExtension.d.ts +0 -0
  1141. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_component_type.d.ts +0 -0
  1142. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_component_type.js +0 -0
  1143. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_node_world_matrices.d.ts +0 -0
  1144. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_parse_container.d.ts +0 -0
  1145. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_parse_container.js +0 -0
  1146. /package/src/{shade/renderer/loader → format/scene}/gltf/gltf_read_accessor.d.ts +0 -0
  1147. /package/src/{shade/renderer/loader → format/scene}/usd/UsdError.d.ts +0 -0
  1148. /package/src/{shade/renderer/loader → format/scene}/usd/UsdError.js +0 -0
  1149. /package/src/{shade/renderer/loader → format/scene}/usd/parse_usda.d.ts +0 -0
  1150. /package/src/{shade/renderer/loader → format/scene}/usd/parse_usda.js +0 -0
  1151. /package/src/{shade/renderer/loader → format/scene}/usd/unpack_usdz.d.ts +0 -0
  1152. /package/src/{shade/renderer/loader → format/scene}/usd/usd_compose_transform.d.ts +0 -0
  1153. /package/src/{shade/renderer/loader → format/scene}/usd/usd_lz4.d.ts +0 -0
  1154. /package/src/{shade/renderer/loader → format/scene}/usd/usd_triangulate.d.ts +0 -0
  1155. /package/src/{shade/renderer/loader → format/scene}/usd/usd_triangulate.js +0 -0
  1156. /package/src/{basis → format/texture/basis}/BasisHuffmanTable.d.ts +0 -0
  1157. /package/src/{basis → format/texture/basis}/BasisHuffmanTable.js +0 -0
  1158. /package/src/{basis → format/texture/basis}/basis_read_huffman_table.d.ts +0 -0
  1159. /package/src/{basis → format/texture/basis}/basis_read_huffman_table.js +0 -0
  1160. /package/src/{basis → format/texture/basis}/etc1s/Etc1sSelectorHistory.d.ts +0 -0
  1161. /package/src/{basis → format/texture/basis}/etc1s/Etc1sSelectorHistory.js +0 -0
  1162. /package/src/{basis → format/texture/basis}/etc1s/etc1s_block_colors.d.ts +0 -0
  1163. /package/src/{basis → format/texture/basis}/etc1s/etc1s_block_colors.js +0 -0
  1164. /package/src/{basis → format/texture/basis}/etc1s/etc1s_decode_slice.d.ts +0 -0
  1165. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_endpoint_codebook.d.ts +0 -0
  1166. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_endpoint_codebook.js +0 -0
  1167. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_selector_codebook.d.ts +0 -0
  1168. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_selector_codebook.js +0 -0
  1169. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_slice_tables.d.ts +0 -0
  1170. /package/src/{basis → format/texture/basis}/etc1s/etc1s_read_slice_tables.js +0 -0
  1171. /package/src/{basis → format/texture/basis}/transcode/build_range_plan.js +0 -0
  1172. /package/src/{basis → format/texture/basis}/transcode/etc1s_to_bc7.js +0 -0
  1173. /package/src/{ktx2 → format/texture/ktx2}/KTX2_IDENTIFIER.d.ts +0 -0
  1174. /package/src/{ktx2 → format/texture/ktx2}/KTX2_IDENTIFIER.js +0 -0
  1175. /package/src/{ktx2 → format/texture/ktx2}/KhrDfModel.d.ts +0 -0
  1176. /package/src/{ktx2 → format/texture/ktx2}/KhrDfModel.js +0 -0
  1177. /package/src/{ktx2 → format/texture/ktx2}/SupercompressionScheme.d.ts +0 -0
  1178. /package/src/{ktx2 → format/texture/ktx2}/SupercompressionScheme.js +0 -0
@@ -2,12 +2,24 @@
2
2
 
3
3
  Review, 2026-08-28. Alex Goldring / Company Named Limited.
4
4
 
5
- Scope: `src/avif/native/`, `src/engine/asset/loaders/image/png/`,
6
- `src/engine/asset/loaders/image/jpeg/`. Everything below is an itemised proposal; nothing has been
7
- changed.
8
-
9
- Placed here rather than under `src/avif/native/` because the majority of the *cross-tree* items land
10
- on the loader side, and `src/avif/native/DECISIONS.md` is a decision log rather than a review.
5
+ Scope: `src/format/image/avif/`, `src/format/image/png/`, `src/format/image/jpeg/`. Everything below
6
+ is an itemised proposal; nothing has been changed.
7
+
8
+ > **2026-09-02.** The three trees were relocated under `src/format/image/` (see
9
+ > `src/CODEC_LAYOUT_VERIFICATION.md`); the links below were rewritten to follow them, and the paths in
10
+ > prose were not. C1 has since landed in three parts, all in `engine/asset/`: `codec/DecodedImage.js`
11
+ > is the one result struct; `loaders/image/codec/{JpegCodec,AvifCodec}.js` put both decoders behind
12
+ > the `Codec` door, last in `ImageRGBADataLoader`'s chain so a browser keeps its native decoder and
13
+ > node gains both; `guessAssetType` maps `.avif` to `"image"`. One inversion from the proposal:
14
+ > `AvifCodec` wraps `avif_to_sampler2d` rather than the other way round, because the adapter is the
15
+ > one with the HDR path and the reusable decoder context, and an 8-bit asset codec wants neither.
16
+ >
17
+ > Not on this review's list, and gone the same day: `shade/renderer/loader/usd/usd_decode_image.js` carried a
18
+ > *third* PNG decoder (8-bit RGB/RGBA, fixed-Huffman only, its own inflate). It now calls `PNGReader` and
19
+ > widens the result to RGBA8 — one more `itemSize → RGBA` loop for C2 to fold, and one fewer decoder.
20
+
21
+ Placed here rather than under `src/format/image/avif/` because the majority of the *cross-tree* items land
22
+ on the loader side, and `src/format/image/avif/DECISIONS.md` is a decision log rather than a review.
11
23
 
12
24
  ---
13
25
 
@@ -20,7 +32,7 @@ substantially the same job.
20
32
  a bounds-checked cursor, a container walker, a parameterised colour transform, generated tables, a
21
33
  decision log. Its own duplication is residue rather than structure: about **fifteen verbatim
22
34
  copy-paste sites**, almost all of them the encode/decode mirror that
23
- [D30](../../../../avif/native/DECISIONS.md) already set out to eliminate and did not quite finish.
35
+ [D30](../../../../format/image/avif/DECISIONS.md) already set out to eliminate and did not quite finish.
24
36
  Cheap to close, and closing it is the difference between a mirror that stays honest and one that
25
37
  drifts.
26
38
 
@@ -35,7 +47,7 @@ bypasses the asset-loader system entirely via `avif_to_sampler2d`.
35
47
  **One number worth stating up front:** `JpegImage.getData` hard-codes the coefficients `1.402`,
36
48
  `-0.3441363`, `-0.71413636`, `1.772`. Those are *exactly* what
37
49
  `colour_transform_init(t, MC_BT_601, ·, 1, 8)` computes
38
- ([ColourTransform.js:98](../../../../avif/native/color/ColourTransform.js#L98)). The JPEG decoder is
50
+ ([ColourTransform.js:98](../../../../format/image/avif/color/ColourTransform.js#L98)). The JPEG decoder is
39
51
  a hand-inlined special case of a general transform that already exists two directories away.
40
52
 
41
53
  To be clear about what that is and is not worth: JFIF is full-range BT.601, so those constants are
@@ -88,7 +100,7 @@ These are the ones where a construct exists in one tree and is re-invented in an
88
100
  | --- | --- | --- |
89
101
  | PNG | worker → [ImageDecoderWorker.js:3](ImageDecoderWorker.js#L3) → `PNGReader` | `{data, width, height, itemSize, bitDepth}` |
90
102
  | JPEG | [jpeg_decode.js:9](jpeg/jpeg_decode.js#L9) — **not reachable from any loader** | `{data, width, height, exifBuffer, comments?}` — no `itemSize`, no `bitDepth`, always 3-channel |
91
- | AVIF | [avif_to_sampler2d.js:26](../../../../avif/native/api/avif_to_sampler2d.js#L26) — bypasses the loader entirely, called direct from `deserialize_scene` | `{data, width, height}` — no `itemSize`, no `bitDepth`, always RGBA |
103
+ | AVIF | [avif_to_sampler2d.js:26](../../../graphics/texture/sampler/avif_to_sampler2d.js#L26) — bypasses the loader entirely, called direct from `deserialize_scene` | `{data, width, height}` — no `itemSize`, no `bitDepth`, always RGBA |
92
104
 
93
105
  `ImageDecoderWorker.decode` has a `switch (type)` with exactly one arm and a `default: throw new
94
106
  Error('Unsupported type')`. `ThreadedImageDecoder.test` sniffs `PNG_HEADER_BYTES` and returns `false`
@@ -104,7 +116,7 @@ browser canvas path — which is why the native JPEG decoder has never needed to
104
116
  sniff and whose `decode(data)` returns a `DecodedImage`. The sniffs already exist in three places
105
117
  in three styles — `PNG_HEADER_BYTES` as an exported array, `0xFFD8` inline at
106
118
  [JpegImage.js:139](jpeg/JpegImage.js#L139), and `ftyp`/`meta` presence at
107
- [parse_avif_file.js:51](../../../../avif/native/heif/parse_avif_file.js#L51). Give each format a
119
+ [parse_avif_file.js:51](../../../../format/image/avif/heif/parse_avif_file.js#L51). Give each format a
108
120
  `*_HEADER_BYTES` (or a `test` predicate) beside its decoder and have the codec use it.
109
121
  3. `CodecWithFallback` ([CodecWithFallback.js:11](../../codec/CodecWithFallback.js#L11)) already does
110
122
  ordered try-with-sniff correctly. Compose `[Threaded(PNG), Jpeg, Avif, Native]` and the format
@@ -130,7 +142,7 @@ Same job — take interleaved samples with `itemSize` channels and produce RGBA
130
142
  - [PNG.js:325](png/PNG.js#L325) `getUint8Data_case3`, palette expansion with the `tRNS` alpha rule
131
143
  - [JpegImage.js:561](jpeg/JpegImage.js#L561) `copyToImageData`, one loop per component count with
132
144
  `formatAsRGBA` deciding whether to emit the fourth channel
133
- - [sampler2d_to_avif.js:68](../../../../avif/native/api/sampler2d_to_avif.js#L68) `to_rgba`, the
145
+ - [sampler2d_to_avif.js:68](../../../graphics/texture/sampler/sampler2d_to_avif.js#L68) `to_rgba`, the
134
146
  cleanest of the four and the only one that handles half-float input
135
147
 
136
148
  And the engine already has a fifth: [sampler2d_to_uint8_RGBA.js](../../../graphics/texture/sampler/sampler2d_to_uint8_RGBA.js),
@@ -160,7 +172,7 @@ expansion — but it should call the shared function for the final write rather
160
172
 
161
173
  | Where | Matrix | Range | Depth | Parameterised? |
162
174
  | --- | --- | --- | --- | --- |
163
- | [ycbcr_row_to_rgb.js:24](../../../../avif/native/color/ycbcr_row_to_rgb.js#L24) | any `MC_*`, plus identity and YCgCo | full or limited | 8/10/12 | yes, via `ColourTransform` |
175
+ | [ycbcr_row_to_rgb.js:24](../../../../format/image/avif/color/ycbcr_row_to_rgb.js#L24) | any `MC_*`, plus identity and YCgCo | full or limited | 8/10/12 | yes, via `ColourTransform` |
164
176
  | [JpegImage.js:491](jpeg/JpegImage.js#L491) | BT.601 only, hard-coded | full only | 8 only | no |
165
177
  | [YCbCr_to_rgb_uint24.js](../../../../core/color/YCbCr/YCbCr_to_rgb_uint24.js) | BT.709 only, hard-coded | full only | 8 only | no |
166
178
 
@@ -170,13 +182,13 @@ The JPEG constants are not "close to" BT.601 — they *are* `colour_transform_in
170
182
  `cr_to_g = −2·0.299·0.701/0.587 = −0.71413636`. Digit for digit.
171
183
 
172
184
  The same holds for YCgCo. `rgb_row_to_ycbcr`'s `CONVERSION_YCGCO` branch
173
- ([rgb_row_to_ycbcr.js:40](../../../../avif/native/color/rgb_row_to_ycbcr.js#L40)) computes
185
+ ([rgb_row_to_ycbcr.js:40](../../../../format/image/avif/color/rgb_row_to_ycbcr.js#L40)) computes
174
186
  `0.25r + 0.5g + 0.25b`, `−0.25r + 0.5g − 0.25b`, `0.5r − 0.5b` — which is
175
187
  [rgb_to_ycocg.js](../../../../core/color/YCoCg/rgb_to_ycocg.js) verbatim, with Cg and Co swapped in
176
188
  the output order. Its inverse likewise reproduces `ycocg_to_rgb`.
177
189
 
178
190
  **Proposal.** Promote `ColourTransform` + `colour_transform_init` + the two row functions out of
179
- `src/avif/native/color/` into `src/core/color/`. They have no AV1 dependency beyond the `MC_*` /
191
+ `src/format/image/avif/color/` into `src/core/color/`. They have no AV1 dependency beyond the `MC_*` /
180
192
  `CP_*` symbol constants, which should move with them (they are CICP codes from ITU-T H.273, not AV1
181
193
  inventions — the AVIF tree just happens to be where they were first needed).
182
194
 
@@ -203,7 +215,7 @@ the exposure while that is settled is nil.
203
215
 
204
216
  ### C4 — Chroma upsampling is written twice, one of them by accident
205
217
 
206
- [upsample_chroma_row.js:36](../../../../avif/native/color/upsample_chroma_row.js#L36) has nearest and
218
+ [upsample_chroma_row.js:36](../../../../format/image/avif/color/upsample_chroma_row.js#L36) has nearest and
207
219
  bilinear modes, edge clamping, and honours `subsampling_x` / `subsampling_y` independently.
208
220
 
209
221
  `JpegImage.getData` does the same thing implicitly, in every one of its four `switch` arms: the
@@ -239,10 +251,10 @@ and option state.
239
251
 
240
252
  The AVIF tree has this construct twice, correctly, in two variants:
241
253
 
242
- - [for_each_box.js:24](../../../../avif/native/isobmff/for_each_box.js#L24) — reusable header
254
+ - [for_each_box.js:24](../../../../format/image/avif/isobmff/for_each_box.js#L24) — reusable header
243
255
  instance, visitor returns `false` to stop, cursor repositioned to the next record regardless of how
244
256
  much the visitor consumed
245
- - [for_each_obu.js:25](../../../../avif/native/av1/obu/for_each_obu.js#L25) — same contract, two
257
+ - [for_each_obu.js:25](../../../../format/image/avif/av1/obu/for_each_obu.js#L25) — same contract, two
246
258
  reusable readers
247
259
 
248
260
  PNG has the same construct, open-coded and split across two methods:
@@ -310,7 +322,7 @@ a plausible-looking wrong picture instead of throwing.
310
322
  [crc32.js](png/crc32.js) is a complete, spec-cited, tested CRC-32/ISO-3309 implementation with an
311
323
  `(buffer, offset, length)` signature. It sits under `png/` and is imported by exactly one file.
312
324
 
313
- Meanwhile [unpack_usdz.js:66](../../../../shade/renderer/loader/usd/unpack_usdz.js#L66) reads ZIP
325
+ Meanwhile [unpack_usdz.js:66](../../../../format/scene/usd/unpack_usdz.js#L66) reads ZIP
314
326
  local file headers and *skips* the CRC field with a comment, because verifying it would mean writing
315
327
  this function again.
316
328
 
@@ -329,7 +341,7 @@ records choices like this in `DECISIONS.md`. Give the PNG folder the same treatm
329
341
 
330
342
  [ByteCursor.js:307](../../../../core/binary/ByteCursor.js#L307) has a private `utf8_decode`
331
343
  with the stated reason that `TextDecoder` is not universally available.
332
- [BoxWriter.js:205](../../../../avif/native/isobmff/BoxWriter.js#L205) has the matching encoder inline
344
+ [BoxWriter.js:205](../../../../format/image/avif/isobmff/BoxWriter.js#L205) has the matching encoder inline
333
345
  in `utf8_string`. `BinaryBuffer` has `readUTF8String` / `writeUTF8String` but they are
334
346
  **length-prefixed** (meep's own serialisation format) and therefore genuinely unusable here — this
335
347
  is a real gap, not a missed reuse.
@@ -350,15 +362,15 @@ This does **not** conflict with D10: it shares the character codec, not the curs
350
362
 
351
363
  ---
352
364
 
353
- ## 2. Inside `src/avif/native/` — finishing D30
365
+ ## 2. Inside `src/format/image/avif/` — finishing D30
354
366
 
355
367
  D30 says derived state is shared and traversal is mirrored. That is the right rule. These are the
356
368
  places where derived state is still written twice, and they are the residue D30 was aiming at.
357
369
 
358
370
  ### A1 — Tile geometry derivation, 18 identical lines
359
371
 
360
- [parse_frame_header.js:250–267](../../../../avif/native/av1/obu/parse_frame_header.js#L250) and
361
- [write_frame_header.js:162–179](../../../../avif/native/av1/obu/write_frame_header.js#L162) open with
372
+ [parse_frame_header.js:250–267](../../../../format/image/avif/av1/obu/parse_frame_header.js#L250) and
373
+ [write_frame_header.js:162–179](../../../../format/image/avif/av1/obu/write_frame_header.js#L162) open with
362
374
  the same eighteen lines: `sb_shift`, `sb_size`, `sb_cols`, `sb_rows`, `max_tile_width_sb`,
363
375
  `max_tile_area_sb`, `min_log2_tile_cols`, `max_log2_tile_cols`, `max_log2_tile_rows`,
364
376
  `min_log2_tiles`. Character for character, `let` versus `const` on `max_tile_area_sb` aside.
@@ -370,8 +382,8 @@ uniform-spacing loop reads and writes, so a divergence here is a bitstream desyn
370
382
 
371
383
  ### A2 — CDF adaptation, 24 identical lines in reader and writer
372
384
 
373
- [SymbolReader.js:178–202](../../../../avif/native/av1/entropy/SymbolReader.js#L178) and
374
- [SymbolWriter.js:216–240](../../../../avif/native/av1/entropy/SymbolWriter.js#L216) are the same
385
+ [SymbolReader.js:178–202](../../../../format/image/avif/av1/entropy/SymbolReader.js#L178) and
386
+ [SymbolWriter.js:216–240](../../../../format/image/avif/av1/entropy/SymbolWriter.js#L216) are the same
375
387
  block verbatim: the `rate` computation, the `tmp` sweep, the count saturation at 32.
376
388
 
377
389
  **Proposal.** `cdf_adapt(cdf, offset, n, symbol)` beside `symbol_cost.js`. Both call it. The
@@ -380,17 +392,17 @@ adaptation rate is normative and shared by construction; there is no reason for
380
392
  While there: the interval boundary
381
393
  `((range_high * (f >> EC_PROB_SHIFT)) >> (7 - EC_PROB_SHIFT)) + EC_MIN_PROB * (n - symbol - 1)`
382
394
  appears once in the reader and twice in the writer
383
- ([SymbolWriter.js:200](../../../../avif/native/av1/entropy/SymbolWriter.js#L200) and
384
- [:206](../../../../avif/native/av1/entropy/SymbolWriter.js#L206)). A `symbol_boundary(range_high,
395
+ ([SymbolWriter.js:200](../../../../format/image/avif/av1/entropy/SymbolWriter.js#L200) and
396
+ [:206](../../../../format/image/avif/av1/entropy/SymbolWriter.js#L206)). A `symbol_boundary(range_high,
385
397
  cdf, offset, n, symbol)` helper covers all three; it is on the per-symbol path, so measure before
386
398
  committing, but it is a pure function of five numbers and should inline.
387
399
 
388
400
  ### A3 — `clear_above_context` / `clear_left_context`, byte-identical
389
401
 
390
- [decode_tile.js:115](../../../../avif/native/av1/decode/decode_tile.js#L115) and
391
- [:125](../../../../avif/native/av1/decode/decode_tile.js#L125); the same two functions verbatim at
392
- [encode_tile.js:277](../../../../avif/native/av1/encode/encode_tile.js#L277) and
393
- [:287](../../../../avif/native/av1/encode/encode_tile.js#L287).
402
+ [decode_tile.js:115](../../../../format/image/avif/av1/decode/decode_tile.js#L115) and
403
+ [:125](../../../../format/image/avif/av1/decode/decode_tile.js#L125); the same two functions verbatim at
404
+ [encode_tile.js:277](../../../../format/image/avif/av1/encode/encode_tile.js#L277) and
405
+ [:287](../../../../format/image/avif/av1/encode/encode_tile.js#L287).
394
406
 
395
407
  **Proposal.** Move both onto `Av1FrameContext` as methods, or export them from
396
408
  `av1/entropy/coefficient_context.js` — which is already the shared home for exactly this kind of
@@ -398,10 +410,10 @@ context state. Twelve lines, zero risk.
398
410
 
399
411
  ### A4 — `dc_delta` / `ac_delta`, byte-identical
400
412
 
401
- [reconstruct.js:222](../../../../avif/native/av1/decode/reconstruct.js#L222) and
402
- [:235](../../../../avif/native/av1/decode/reconstruct.js#L235); identical copies at
403
- [quantise.js:193](../../../../avif/native/av1/encode/quantise.js#L193) and
404
- [:206](../../../../avif/native/av1/encode/quantise.js#L206). `reconstruct.js` already exports
413
+ [reconstruct.js:222](../../../../format/image/avif/av1/decode/reconstruct.js#L222) and
414
+ [:235](../../../../format/image/avif/av1/decode/reconstruct.js#L235); identical copies at
415
+ [quantise.js:193](../../../../format/image/avif/av1/encode/quantise.js#L193) and
416
+ [:206](../../../../format/image/avif/av1/encode/quantise.js#L206). `reconstruct.js` already exports
405
417
  `dc_quant`, `ac_quant` and `get_qindex` and `quantise.js` already imports from it — these two just
406
418
  never made the trip.
407
419
 
@@ -409,8 +421,8 @@ never made the trip.
409
421
 
410
422
  ### A5 — `BINARY_PARTITION_CDF` construction
411
423
 
412
- [decode_tile.js:273](../../../../avif/native/av1/decode/decode_tile.js#L273) and
413
- [encode_tile.js:838](../../../../avif/native/av1/encode/encode_tile.js#L838) each declare a
424
+ [decode_tile.js:273](../../../../format/image/avif/av1/decode/decode_tile.js#L273) and
425
+ [encode_tile.js:838](../../../../format/image/avif/av1/encode/encode_tile.js#L838) each declare a
414
426
  three-element scratch and each fill it with `(1<<15) - psum, 1<<15, 0`, each save and restore
415
427
  `disable_cdf_update` around the call. The decoder explains in a comment why the adaptation is
416
428
  skipped (the spec rebuilds this CDF from scratch every time, so any update is discarded); the
@@ -418,7 +430,7 @@ encoder does the same thing with no explanation, which is the half of the pair t
418
430
  "simplified" by someone who does not know.
419
431
 
420
432
  **Proposal.** `build_binary_partition_cdf(psum, out)` in
421
- [partition_cdf.js](../../../../avif/native/av1/entropy/partition_cdf.js), which is already the shared
433
+ [partition_cdf.js](../../../../format/image/avif/av1/entropy/partition_cdf.js), which is already the shared
422
434
  module for partition CDF selection. The scratch array stays per-module (correctly — it prevents
423
435
  reentrancy coupling), only the fill and the save/restore discipline move.
424
436
 
@@ -426,23 +438,23 @@ reentrancy coupling), only the fill and the save/restore discipline move.
426
438
 
427
439
  `SUBSAMPLED_SIZE[(size * 2 + sub_x) * 2 + sub_y]` appears at:
428
440
 
429
- - [decode_tile.js:572](../../../../avif/native/av1/decode/decode_tile.js#L572) (as a named function)
430
- - [encode_tile.js:525](../../../../avif/native/av1/encode/encode_tile.js#L525),
431
- [:1728](../../../../avif/native/av1/encode/encode_tile.js#L1728),
432
- [:2088](../../../../avif/native/av1/encode/encode_tile.js#L2088),
433
- [:2179](../../../../avif/native/av1/encode/encode_tile.js#L2179) (four times, inline)
434
- - [coefficient_context.js:50](../../../../avif/native/av1/entropy/coefficient_context.js#L50)
435
- - [loop_filter.js:110](../../../../avif/native/av1/filter/loop_filter.js#L110)
441
+ - [decode_tile.js:572](../../../../format/image/avif/av1/decode/decode_tile.js#L572) (as a named function)
442
+ - [encode_tile.js:525](../../../../format/image/avif/av1/encode/encode_tile.js#L525),
443
+ [:1728](../../../../format/image/avif/av1/encode/encode_tile.js#L1728),
444
+ [:2088](../../../../format/image/avif/av1/encode/encode_tile.js#L2088),
445
+ [:2179](../../../../format/image/avif/av1/encode/encode_tile.js#L2179) (four times, inline)
446
+ - [coefficient_context.js:50](../../../../format/image/avif/av1/entropy/coefficient_context.js#L50)
447
+ - [loop_filter.js:110](../../../../format/image/avif/av1/filter/loop_filter.js#L110)
436
448
 
437
449
  **Proposal.** Export `plane_residual_size(mi_size, sub_x, sub_y)` from
438
- [derived_block_tables.js](../../../../avif/native/av1/tables/derived_block_tables.js) — which already
450
+ [derived_block_tables.js](../../../../format/image/avif/av1/tables/derived_block_tables.js) — which already
439
451
  exists for precisely this purpose ("Deriving beats transcribing: the two can never drift apart") —
440
452
  and use it in all seven sites.
441
453
 
442
454
  **And flag while you are there:** the decoder's `get_tx_size`
443
- ([decode_tile.js:963](../../../../avif/native/av1/decode/decode_tile.js#L963)) clamps a chroma
455
+ ([decode_tile.js:963](../../../../format/image/avif/av1/decode/decode_tile.js#L963)) clamps a chroma
444
456
  transform of 64 down to 32/16x32/32x16; the encoder's `transform_size`
445
- ([encode_tile.js:2167](../../../../avif/native/av1/encode/encode_tile.js#L2167)) does not, and adds a
457
+ ([encode_tile.js:2167](../../../../format/image/avif/av1/encode/encode_tile.js#L2167)) does not, and adds a
446
458
  `lossless → TX_4X4` case the decoder handles elsewhere. They may both be correct given the encoder's
447
459
  narrow syntax (D30: blocks 8x8 to 32x32, so 64 is unreachable) — but that is an invariant holding by
448
460
  accident across two files, which is exactly the shape of bug D30 exists to prevent. Either share the
@@ -450,12 +462,12 @@ function with the encoder's extra cases guarded, or leave a comment on both stat
450
462
 
451
463
  ### A7 — Losslessness derived twice, and the two do not agree
452
464
 
453
- [parse_frame_header.js:527](../../../../avif/native/av1/obu/parse_frame_header.js#L527)
465
+ [parse_frame_header.js:527](../../../../format/image/avif/av1/obu/parse_frame_header.js#L527)
454
466
  `compute_losslessness` walks all `MAX_SEGMENTS`, checks all five quantiser deltas, fills
455
467
  `lossless_array` and `seg_qm_level`, and derives `all_lossless` from `frame_width ===
456
468
  upscaled_width`.
457
469
 
458
- [build_headers.js:236](../../../../avif/native/av1/encode/build_headers.js#L236) does:
470
+ [build_headers.js:236](../../../../format/image/avif/av1/encode/build_headers.js#L236) does:
459
471
 
460
472
  ```js
461
473
  const lossless = frame.base_q_idx === 0;
@@ -476,9 +488,9 @@ rather than a parallel implementation of it.
476
488
 
477
489
  | Constant | Sites |
478
490
  | --- | --- |
479
- | `ALPHA_AUX_TYPE` | [decode_avif.js:15](../../../../avif/native/api/decode_avif.js#L15), [encode_avif.js:41](../../../../avif/native/api/encode_avif.js#L41) |
480
- | `QM_TOTAL_SIZE` | [av1_symbols.js:261](../../../../avif/native/av1/tables/av1_symbols.js#L261) (exported) and [reconstruct.js:33](../../../../avif/native/av1/decode/reconstruct.js#L33) (local copy of the same `3344`) |
481
- | `HLG_A/B/C` | [transfer_to_linear.js:50](../../../../avif/native/color/transfer_to_linear.js#L50), [linear_to_transfer.js:18](../../../../avif/native/color/linear_to_transfer.js#L18) |
491
+ | `ALPHA_AUX_TYPE` | [decode_avif.js:15](../../../../format/image/avif/api/decode_avif.js#L15), [encode_avif.js:41](../../../../format/image/avif/api/encode_avif.js#L41) |
492
+ | `QM_TOTAL_SIZE` | [av1_symbols.js:261](../../../../format/image/avif/av1/tables/av1_symbols.js#L261) (exported) and [reconstruct.js:33](../../../../format/image/avif/av1/decode/reconstruct.js#L33) (local copy of the same `3344`) |
493
+ | `HLG_A/B/C` | [transfer_to_linear.js:50](../../../../format/image/avif/color/transfer_to_linear.js#L50), [linear_to_transfer.js:18](../../../../format/image/avif/color/linear_to_transfer.js#L18) |
482
494
 
483
495
  **Proposal.** `ALPHA_AUX_TYPE` → a shared `heif/aux_types.js` (there will be others: depth, gain
484
496
  map). `QM_TOTAL_SIZE` → delete the local copy, import the exported one. `HLG_A/B/C` → a small
@@ -487,9 +499,9 @@ map). `QM_TOTAL_SIZE` → delete the local copy, import the exported one. `HLG_A
487
499
 
488
500
  ### A9 — `MAX_TX_DEPTH` is two different exported symbols
489
501
 
490
- [av1_symbols.js:176](../../../../avif/native/av1/tables/av1_symbols.js#L176) exports
502
+ [av1_symbols.js:176](../../../../format/image/avif/av1/tables/av1_symbols.js#L176) exports
491
503
  `MAX_TX_DEPTH = 2` (a scalar bound).
492
- [block_tables.js:12](../../../../avif/native/av1/tables/block_tables.js#L12) exports
504
+ [block_tables.js:12](../../../../format/image/avif/av1/tables/block_tables.js#L12) exports
493
505
  `MAX_TX_DEPTH = new Uint8Array([...])` (a 22-entry table).
494
506
 
495
507
  `decode_tile.js` imports the table under the alias `MAX_TX_DEPTH_TABLE`; `encode_tile.js` imports it
@@ -504,23 +516,23 @@ that needs both gets a shadowing bug that will look like a table lookup returnin
504
516
  ### A10 — `clamp_unit`, `clamp_index`, and friends against `core/math`
505
517
 
506
518
  - `clamp_unit` is duplicated at
507
- [convert_to_rgba.js:217](../../../../avif/native/api/convert_to_rgba.js#L217) and
508
- [ycbcr_row_to_rgb.js:83](../../../../avif/native/color/ycbcr_row_to_rgb.js#L83) — and is
519
+ [convert_to_rgba.js:217](../../../../format/image/avif/api/convert_to_rgba.js#L217) and
520
+ [ycbcr_row_to_rgb.js:83](../../../../format/image/avif/color/ycbcr_row_to_rgb.js#L83) — and is
509
521
  byte-for-byte [core/math/clamp01.js](../../../../core/math/clamp01.js), which `loop_restoration.js`
510
522
  already knows how to import from (it uses `core/math/clamp.js`).
511
523
  - `clamp_index` is duplicated at
512
- [choose_restoration.js:622](../../../../avif/native/av1/encode/choose_restoration.js#L622) and
513
- [upsample_chroma_row.js:94](../../../../avif/native/color/upsample_chroma_row.js#L94) — same body,
524
+ [choose_restoration.js:622](../../../../format/image/avif/av1/encode/choose_restoration.js#L622) and
525
+ [upsample_chroma_row.js:94](../../../../format/image/avif/color/upsample_chroma_row.js#L94) — same body,
514
526
  different parameter names.
515
- - [floor_log2.js:15](../../../../avif/native/av1/util/floor_log2.js#L15) is `31 - Math.clz32(x)`,
527
+ - [floor_log2.js:15](../../../../format/image/avif/av1/util/floor_log2.js#L15) is `31 - Math.clz32(x)`,
516
528
  which is [core/binary/msb_32.js](../../../../core/binary/msb_32.js) exactly. And it is
517
529
  *re-inlined* six more times in `SymbolReader`/`SymbolWriter` rather than called. (Six, not seven:
518
530
  `SymbolWriter.#normalize`'s `32 - Math.clz32(range)` is a bit *length*, libaom's `OD_ILOG_NZ`,
519
531
  not a floor log. It computes the same shift as the reader's `15 - floor_log2(x)` and is
520
532
  deliberately left alone — rewriting it would break the correspondence with the source it was
521
533
  transliterated from.)
522
- - [convert_to_rgba.js:199](../../../../avif/native/api/convert_to_rgba.js#L199) `quantise` and
523
- [encode_avif.js:415](../../../../avif/native/api/encode_avif.js#L415) `clamp_sample` are the same
534
+ - [convert_to_rgba.js:199](../../../../format/image/avif/api/convert_to_rgba.js#L199) `quantise` and
535
+ [encode_avif.js:415](../../../../format/image/avif/api/encode_avif.js#L415) `clamp_sample` are the same
524
536
  "round then clamp to `0..maximum`", differing only in whether the scale-up happens inside.
525
537
 
526
538
  **Proposal.** Import `clamp01` for `clamp_unit`. Extract one `clamp_index(index, extent)` beside
@@ -534,14 +546,14 @@ there needs evidence rather than taste. Three runs of the AVIF suite before and
534
546
  15.19s, 12.74s against 13.03s, 12.91s, 12.77s. No regression, so the change stands; had there been
535
547
  one, the inline forms should have kept a comment naming them instead.
536
548
 
537
- The landed shape put `clamp_sample(value, maximum)` — round then clamp — in `avif/native/color/`,
549
+ The landed shape put `clamp_sample(value, maximum)` — round then clamp — in `format/image/avif/color/`,
538
550
  with `convert_to_rgba` keeping `quantise` as a one-line normalised wrapper over it, so the inner
539
551
  loop reads as it did.
540
552
 
541
553
  The `w`/`m` derivation for `ns(n)` is a fourth instance of the same theme: it appears at
542
- [BitReader.js:216](../../../../avif/native/bitstream/BitReader.js#L216),
543
- `BitWriter.ns`, [SymbolReader.js:286](../../../../avif/native/av1/entropy/SymbolReader.js#L286) and
544
- [SymbolWriter.js:283](../../../../avif/native/av1/entropy/SymbolWriter.js#L283). The two symbol-coder
554
+ [BitReader.js:216](../../../../format/image/avif/bitstream/BitReader.js#L216),
555
+ `BitWriter.ns`, [SymbolReader.js:286](../../../../format/image/avif/av1/entropy/SymbolReader.js#L286) and
556
+ [SymbolWriter.js:283](../../../../format/image/avif/av1/entropy/SymbolWriter.js#L283). The two symbol-coder
545
557
  copies use the inline `clz32` form rather than calling `floor_log2`, which is how they drifted apart
546
558
  in style in the first place.
547
559
 
@@ -549,12 +561,12 @@ in style in the first place.
549
561
 
550
562
  Not duplication, but the same trap as A9 and worth one pass:
551
563
 
552
- - `filter_edge` — [loop_filter.js](../../../../avif/native/av1/filter/loop_filter.js) (a deblocking
553
- edge) and [predict_intra.js](../../../../avif/native/av1/predict/predict_intra.js) (an intra edge
564
+ - `filter_edge` — [loop_filter.js](../../../../format/image/avif/av1/filter/loop_filter.js) (a deblocking
565
+ edge) and [predict_intra.js](../../../../format/image/avif/av1/predict/predict_intra.js) (an intra edge
554
566
  smoothing kernel). Unrelated jobs, identical name.
555
- - `restore_block` — [loop_restoration.js](../../../../avif/native/av1/filter/loop_restoration.js)
567
+ - `restore_block` — [loop_restoration.js](../../../../format/image/avif/av1/filter/loop_restoration.js)
556
568
  (Wiener/SGR restoration) and
557
- [Av1BlockSnapshot.js](../../../../avif/native/av1/encode/Av1BlockSnapshot.js) (undo an encoder
569
+ [Av1BlockSnapshot.js](../../../../format/image/avif/av1/encode/Av1BlockSnapshot.js) (undo an encoder
558
570
  trial). Opposite meanings of "restore".
559
571
  - `MAX_SIDE` — 64 in `Av1BlockSnapshot.js`, a different 64 in `forward_transform_2d.js`.
560
572
 
@@ -567,7 +579,7 @@ file-local, so each rename is contained to one file.
567
579
  `block_tables.js` exports a `*_SHAPE` array next to every table (`SUBSAMPLED_SIZE_SHAPE`,
568
580
  `MAX_TX_DEPTH_SHAPE`, …). Exactly one is consumed outside the tables folder:
569
581
  `PARTITION_SUBSIZE_SHAPE` at
570
- [encode_tile.js:142](../../../../avif/native/av1/encode/encode_tile.js#L142), to derive a stride.
582
+ [encode_tile.js:142](../../../../format/image/avif/av1/encode/encode_tile.js#L142), to derive a stride.
571
583
 
572
584
  **Proposal.** Either keep them (they are generated, they cost nothing at runtime, and they document
573
585
  the flattening) — in which case say so in `DECISIONS.md` so nobody prunes them — or have the
@@ -788,7 +800,7 @@ document gets done, do row 1 and row 3.
788
800
 
789
801
  ## 8. One thing this review did not do
790
802
 
791
- I read `src/avif/native/DECISIONS.md` before writing, and several proposals here are shaped by it —
803
+ I read `src/format/image/avif/DECISIONS.md` before writing, and several proposals here are shaped by it —
792
804
  sections 2 and 6 in particular. **PNG and JPEG have no equivalent.** There is a `jpeg/NOTES.md` with
793
805
  two URLs in it and nothing else.
794
806
 
@@ -1,4 +1,4 @@
1
- import { PNGReader } from "./png/PNGReader.js";
1
+ import { PNGReader } from "../../../../format/image/png/PNGReader.js";
2
2
 
3
3
  async function decode_png(png_bytes) {
4
4
  return new Promise((resolve, reject) => {
@@ -32,7 +32,7 @@ async function decode_png(png_bytes) {
32
32
  *
33
33
  * @param {ArrayBuffer} data
34
34
  * @param {string} type
35
- * @returns {Promise<unknown>}
35
+ * @returns {Promise<DecodedImage>} `data` is an `ArrayBuffer`, for the transfer back
36
36
  */
37
37
  async function decode(data, type = 'png') {
38
38
  if (!(data instanceof ArrayBuffer)) {
@@ -5,22 +5,21 @@ export class ImageRGBADataLoader extends AssetLoader<any, any> {
5
5
  */
6
6
  constructor({ worker_path }?: string);
7
7
  /**
8
+ * In order: PNG off the main thread; whatever the browser's own decoder will take, through a
9
+ * canvas; and last, the in-tree JPEG and AVIF decoders. Last because
10
+ * {@link NativeImageDecoder} claims every input and is the faster decoder for both wherever
11
+ * it exists — the codecs after it are what make those files loadable where it does not: node,
12
+ * or a worker without `Image`.
8
13
  *
9
- * @type {CodecWithFallback<{data, width:number, height:number, itemSize:number, bitDepth:number}>}
14
+ * @type {CodecWithFallback<DecodedImage>}
10
15
  */
11
- decoder: CodecWithFallback<{
12
- data;
13
- width: number;
14
- height: number;
15
- itemSize: number;
16
- bitDepth: number;
17
- }>;
16
+ decoder: CodecWithFallback<DecodedImage>;
18
17
  link(assetManager: any, engine: any): Promise<void>;
19
18
  /**
20
19
  *
21
20
  * @param {string} path
22
21
  * @param {AssetRequestScope} scope
23
- * @returns {Promise<{data:ArrayBuffer, width: number, height:number, itemSize: number, bitDepth:number}>}
22
+ * @returns {Promise<DecodedImage>}
24
23
  * @private
25
24
  */
26
25
  private __decode_via_worker;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageRGBADataLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/asset/loaders/image/ImageRGBADataLoader.js"],"names":[],"mappings":"AASA;IACI;;;OAGG;IACH,8BAFW,MAAM,EAehB;IARG;;;OAGG;IACH,SAFU,kBAAkB;QAAC,IAAI,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAC,MAAM,EAAC,MAAM,CAAC;QAAC,QAAQ,EAAC,MAAM,CAAC;QAAC,QAAQ,EAAC,MAAM,CAAA;KAAC,CAAC,CAKjG;IAGL,oDAOC;IAED;;;;;;OAMG;IACH,4BASC;IAED;;;;;;OAMG;IACH,mBAyBC;IAED,sFAEC;CACJ;4BA5F2B,mBAAmB;kCACb,kCAAkC"}
1
+ {"version":3,"file":"ImageRGBADataLoader.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/asset/loaders/image/ImageRGBADataLoader.js"],"names":[],"mappings":"AAWA;IACI;;;OAGG;IACH,8BAFW,MAAM,EAsBhB;IAfG;;;;;;;;OAQG;IACH,SAFU,kBAAkB,YAAY,CAAC,CAOxC;IAGL,oDAOC;IAED;;;;;;OAMG;IACH,4BASC;IAED;;;;;;OAMG;IACH,mBAyBC;IAED,sFAEC;CACJ;4BArG2B,mBAAmB;kCACb,kCAAkC"}
@@ -1,6 +1,8 @@
1
1
  import { ArrayBufferLoader } from "../ArrayBufferLoader.js";
2
2
  import { AssetLoader } from "../AssetLoader.js";
3
3
  import { CodecWithFallback } from "../../codec/CodecWithFallback.js";
4
+ import { AvifCodec } from "./codec/AvifCodec.js";
5
+ import { JpegCodec } from "./codec/JpegCodec.js";
4
6
  import { NativeImageDecoder } from "./codec/NativeImageDecoder.js";
5
7
  import { ThreadedImageDecoder } from "./codec/ThreadedImageDecoder.js";
6
8
  import { ImageRGBADataAsset } from "./ImageRGBADataAsset.js";
@@ -18,12 +20,19 @@ export class ImageRGBADataLoader extends AssetLoader {
18
20
  super();
19
21
 
20
22
  /**
23
+ * In order: PNG off the main thread; whatever the browser's own decoder will take, through a
24
+ * canvas; and last, the in-tree JPEG and AVIF decoders. Last because
25
+ * {@link NativeImageDecoder} claims every input and is the faster decoder for both wherever
26
+ * it exists — the codecs after it are what make those files loadable where it does not: node,
27
+ * or a worker without `Image`.
21
28
  *
22
- * @type {CodecWithFallback<{data, width:number, height:number, itemSize:number, bitDepth:number}>}
29
+ * @type {CodecWithFallback<DecodedImage>}
23
30
  */
24
31
  this.decoder = new CodecWithFallback(
25
32
  new ThreadedImageDecoder({ worker_path }),
26
- new NativeImageDecoder()
33
+ new NativeImageDecoder(),
34
+ new JpegCodec(),
35
+ new AvifCodec()
27
36
  );
28
37
  }
29
38
 
@@ -40,7 +49,7 @@ export class ImageRGBADataLoader extends AssetLoader {
40
49
  *
41
50
  * @param {string} path
42
51
  * @param {AssetRequestScope} scope
43
- * @returns {Promise<{data:ArrayBuffer, width: number, height:number, itemSize: number, bitDepth:number}>}
52
+ * @returns {Promise<DecodedImage>}
44
53
  * @private
45
54
  */
46
55
  async __decode_via_worker(path, scope) {
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Encoding one image source, whichever side of a worker boundary it happens on.
3
+ *
4
+ * The encoder is meep's own, under `./native` — pure JavaScript, synchronous and portable — so the
5
+ * same two functions serve the worker pool and the fallback for environments that have no workers.
6
+ * Keeping them here rather than in the worker is what stops the two paths from drifting apart.
7
+ *
8
+ * @author Alex Goldring
9
+ * @copyright Company Named Limited (c) 2026
10
+ */
11
+ /**
12
+ * The effort a caller's `speed` asks for.
13
+ *
14
+ * `speed` is the dial the WebAssembly encoder took: zero is slowest and best, ten is fastest. The
15
+ * native encoder names three points on that curve instead of eleven, because those are the three
16
+ * that measure differently; this maps one onto the other so that existing callers keep meaning what
17
+ * they meant.
18
+ *
19
+ * @param {number} [speed] `0 .. 10`
20
+ * @returns {number} one of the `EFFORT_*` constants
21
+ */
22
+ export function effort_of_speed(speed?: number): number;
23
+ /**
24
+ * An encode context to hand back to the functions below.
25
+ *
26
+ * One per worker, or one per process for the inline path: it holds the planes and contexts an
27
+ * encode needs, and reusing it is what keeps a run of encodes from allocating a fresh set each time.
28
+ *
29
+ * @returns {Av1EncodeContext}
30
+ */
31
+ export function create_encoder(): Av1EncodeContext;
32
+ /**
33
+ * Encode an image bitmap.
34
+ *
35
+ * Needs a canvas to read the bitmap's samples back out — a bitmap is an opaque handle, and drawing
36
+ * it is the only way to see it. That is a platform capability rather than a codec one, which is why
37
+ * this is the operation that can be unavailable where the other cannot.
38
+ *
39
+ * @param {{bitmap: ImageBitmap, quality: number, speed: (number|undefined)}} request the bitmap is
40
+ * closed once it has been read
41
+ * @param {Av1EncodeContext} encoder
42
+ * @returns {ArrayBuffer}
43
+ */
44
+ export function encode_bitmap_source(request: {
45
+ bitmap: ImageBitmap;
46
+ quality: number;
47
+ speed: (number | undefined);
48
+ }, encoder: Av1EncodeContext): ArrayBuffer;
49
+ /**
50
+ * Encode a sampler.
51
+ *
52
+ * Half float samplers are taken as linear light in the renderer's normalisation and coded through
53
+ * the PQ transfer function; eight bit ones are coded as ordinary sRGB. Which of the two it is comes
54
+ * from the data itself, so it survives being posted to a worker.
55
+ *
56
+ * @param {{data: TypedArray, width: number, height: number, item_size: number, quality: number,
57
+ * speed: (number|undefined)}} request
58
+ * @param {Av1EncodeContext} encoder
59
+ * @returns {ArrayBuffer}
60
+ */
61
+ export function encode_sampler_source(request: {
62
+ data: TypedArray;
63
+ width: number;
64
+ height: number;
65
+ item_size: number;
66
+ quality: number;
67
+ speed: (number | undefined);
68
+ }, encoder: Av1EncodeContext): ArrayBuffer;
69
+ import { Av1EncodeContext } from '../../../../../format/image/avif/av1/encode/Av1EncodeContext.js';
70
+ //# sourceMappingURL=encode_image_source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encode_image_source.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/asset/loaders/image/avif/encode_image_source.js"],"names":[],"mappings":"AAKA;;;;;;;;;GASG;AAEH;;;;;;;;;;GAUG;AACH,wCAHW,MAAM,GACJ,MAAM,CAgBlB;AAED;;;;;;;GAOG;AACH,kCAFa,gBAAgB,CAI5B;AAED;;;;;;;;;;;GAWG;AACH;YALoB,WAAW;aAAW,MAAM;WAAS,CAAC,MAAM,GAAC,SAAS,CAAC;YAEhE,gBAAgB,GACd,WAAW,CA6BvB;AAED;;;;;;;;;;;GAWG;AACH;;WALqC,MAAM;YAAU,MAAM;eAAa,MAAM;aAAW,MAAM;WACnF,CAAC,MAAM,GAAC,SAAS,CAAC;YACnB,gBAAgB,GACd,WAAW,CAUvB;iCApHgC,iEAAiE"}