diff --git a/.agents/docs/2026-11-14-add-basis-universal-mwrap-plan.md b/.agents/docs/2026-11-14-add-basis-universal-mwrap-plan.md index 9c773964..72b236f1 100644 --- a/.agents/docs/2026-11-14-add-basis-universal-mwrap-plan.md +++ b/.agents/docs/2026-11-14-add-basis-universal-mwrap-plan.md @@ -1,4 +1,4 @@ -# Add mcpplibs.mwrap.basis_universal (basis-universal-m 2.50) +# Add mcpplibs.mwrap.basis_universal (basis-universal-m 2.50, revision 2.50.1) ## Form @@ -12,7 +12,9 @@ (`transcoder/`: one source file with its headers and tables) and the Zstandard decoder upstream ships beside it (`zstd/zstddeclib.c`, `zstd.h`, `zstd_errors.h`) — 33 files, checksums in `upstream/documents.json` — and builds them as upstream's default build does (every format, KTX2, Zstandard), with one choice: floating-point contraction - off. The encoder, the command line tool and the bindings are not vendored. It deploys upstream's README, LICENSE + off. Revision 2.50.1 (tag `mwrap-2.50.1`, asset `basis-universal-m-2.50.1.tar.gz`, `6ee80feb…4f8e`) is listed beside 2.50 and is the one to use: it also + builds the larger ASTC table for opaque blocks on every target (`BASISD_SUPPORT_ASTC_HIGHER_OPAQUE_QUALITY=1`, which + upstream turns off under Emscripten), so ASTC blocks are the same as WebAssembly as natively. The encoder, the command line tool and the bindings are not vendored. It deploys upstream's README, LICENSE and NOTICE and Zstandard's LICENSE with its own LICENSE/NOTICE (`runtime.deploy`). No dependencies. ## Module diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index dedeacc6..3152391e 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -1741,7 +1741,7 @@ jobs: - name: Installed Basis Universal wrapper archive, actual default KTX2 template and its relocated notices if: contains(format(' {0} ', env.MEMBERS), ' basis-universal-transcode ') && matrix.toolchain == 'default' shell: bash - run: python3 tests/mwrap/check_installed_template.py --mcpp "$MCPP" --package mcpplibs.mwrap.basis_universal@2.50 --deploy + run: python3 tests/mwrap/check_installed_template.py --mcpp "$MCPP" --package mcpplibs.mwrap.basis_universal@2.50.1 --deploy - name: Installed libarchive wrapper archive, actual default archive template and its relocated notices if: contains(format(' {0} ', env.MEMBERS), ' libarchive-bundle ') && matrix.toolchain == 'default' diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b2d0a98..1941cb21 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,7 +38,7 @@ ### Added -- **mcpplibs.mwrap.basis_universal 2.50(新包)。** basis-universal-m:Basis Universal 2.50 转码器(把 KTX2 与 `.basis` 纹理转成 +- **mcpplibs.mwrap.basis_universal 2.50.1(新包)。** basis-universal-m:Basis Universal 2.50 转码器(把 KTX2 与 `.basis` 纹理转成 像素或 GPU 自己的压缩格式)的 C++23 模块,`` 在 `basist`、`basisu` 及其内部命名空间声明的 603 个名字(148 个类型、273 个函数、70 个对象、112 个无作用域枚举的枚举项)以原名导出;头文件里 139 个内部链接的标量常量 以原名位于 `mcpplibs::mwrap::basis_universal::<所在命名空间>`,11 个无法重新给出的内部链接名字(`static` 函数、常量表、 @@ -46,7 +46,8 @@ (`zstd/zstddeclib.c`),按上游默认方式构建(全部格式、KTX2、Zstandard),关闭浮点收缩;不含编码器。封装的测试读取上游 自己的 KTX2 测试文件:ETC1S 照片转成 RGBA 像素与 BC7、ETC2、ASTC 块的哈希在四个平台行一致,同一幅 XUASTC 图的两种打包 给出同一幅图。消费者测试 `tests/mwrap/basis-universal-transcode`,安装后模板检查带 `--deploy`。GLOBAL 为 GitHub 发布资产, - CN 为 GitCode `mcpp-res/mwrap-basis-universal` 镜像,sha256 相同。 + CN 为 GitCode `mcpp-res/mwrap-basis-universal` 镜像,sha256 相同。封装修订 2.50.1(2.50 保留):在每个目标上都启用不透明块的 + 较大 ASTC 表(上游在 Emscripten 下关闭它),编译为 WebAssembly 时的 ASTC 块与原生构建相同;平台列表加入 emscripten。 - **mcpplibs.mwrap.libjpeg_turbo 3.2.1(新包)。** libjpeg-turbo-m:libjpeg-turbo 的 TurboJPEG API(JPEG 压缩、解压、无损变换)的 C++23 模块,`` 的 7 个枚举、68 个枚举值、4 个类型、80 个函数以原名导出;头文件里的 43 个常量宏、9 个 diff --git a/pkgs/mwrap/basis_universal.lua b/pkgs/mwrap/basis_universal.lua index 7f5c6e41..2dbf0cad 100644 --- a/pkgs/mwrap/basis_universal.lua +++ b/pkgs/mwrap/basis_universal.lua @@ -1,11 +1,13 @@ --- Immutable upstream-aligned mwrap source release (basis-universal-m mwrap-2.50); +-- Immutable upstream-aligned mwrap source release (basis-universal-m mwrap-2.50.1); -- GLOBAL and CN bytes are identical. -- -- The wrapper is Apache-2.0; the library it vendors and links statically, Basis -- Universal 2.50's transcoder, is Apache-2.0 (Binomial LLC), and the Zstandard -- decoder upstream ships beside it is BSD-licensed (Facebook, Inc.): the package -- deploys upstream's README, LICENSE and NOTICE and Zstandard's LICENSE beside --- programs (runtime.deploy). It has no dependencies. +-- programs (runtime.deploy). It has no dependencies. Wrapper revision 2.50.1 +-- builds the larger ASTC table for opaque blocks on every target (upstream +-- turns it off under Emscripten): the same ASTC blocks as WebAssembly as natively. package = { spec = "1", namespace = "mcpplibs.mwrap", @@ -29,6 +31,13 @@ package = { }, sha256 = "eb114f2026bb408fd73cc77852fc7539441d2717bac36bdc10bf7f4d09228921", }, + ["2.50.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/basis-universal-m/releases/download/mwrap-2.50.1/basis-universal-m-2.50.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-basis-universal/releases/download/2.50.1/basis-universal-m-2.50.1.tar.gz", + }, + sha256 = "6ee80febbb23b4ae961855328e59e47492b5ea4ed33fdbfa6972dabf39b94f8e", + }, }, macosx = { ["2.50"] = { @@ -38,6 +47,13 @@ package = { }, sha256 = "eb114f2026bb408fd73cc77852fc7539441d2717bac36bdc10bf7f4d09228921", }, + ["2.50.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/basis-universal-m/releases/download/mwrap-2.50.1/basis-universal-m-2.50.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-basis-universal/releases/download/2.50.1/basis-universal-m-2.50.1.tar.gz", + }, + sha256 = "6ee80febbb23b4ae961855328e59e47492b5ea4ed33fdbfa6972dabf39b94f8e", + }, }, windows = { ["2.50"] = { @@ -47,6 +63,13 @@ package = { }, sha256 = "eb114f2026bb408fd73cc77852fc7539441d2717bac36bdc10bf7f4d09228921", }, + ["2.50.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/basis-universal-m/releases/download/mwrap-2.50.1/basis-universal-m-2.50.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/mwrap-basis-universal/releases/download/2.50.1/basis-universal-m-2.50.1.tar.gz", + }, + sha256 = "6ee80febbb23b4ae961855328e59e47492b5ea4ed33fdbfa6972dabf39b94f8e", + }, }, }, } diff --git a/tests/mwrap/basis-universal-transcode/mcpp.toml b/tests/mwrap/basis-universal-transcode/mcpp.toml index 48c7ccb7..b2bee79d 100644 --- a/tests/mwrap/basis-universal-transcode/mcpp.toml +++ b/tests/mwrap/basis-universal-transcode/mcpp.toml @@ -1,6 +1,6 @@ [package] name = "basis-universal-transcode" -version = "2.50" +version = "2.50.1" description = "Consume the immutable Basis Universal wrapper: the transcoder made ready, what it can write and how large a block is, what is no KTX2 file refused, the adapted constants" [indices] @@ -8,4 +8,4 @@ description = "Consume the immutable Basis Universal wrapper: the transcoder mad # An explicit empty table overrides the legacy workspace redirect. [dependencies] -mcpplibs.mwrap.basis_universal = "2.50" +mcpplibs.mwrap.basis_universal = "2.50.1"