Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions .agents/docs/2026-11-14-add-basis-universal-mwrap-plan.md
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,16 @@

### 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 模块,`<transcoder/basisu_transcoder.h>` 在 `basist`、`basisu` 及其内部命名空间声明的
603 个名字(148 个类型、273 个函数、70 个对象、112 个无作用域枚举的枚举项)以原名导出;头文件里 139 个内部链接的标量常量
以原名位于 `mcpplibs::mwrap::basis_universal::<所在命名空间>`,11 个无法重新给出的内部链接名字(`static` 函数、常量表、
非常量表达式的 `const float`)留给头文件。封装仓库逐字节收录 v2_50 发布包的 `transcoder/` 与上游随附的 Zstandard 解码器
(`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 模块,`<turbojpeg.h>` 的 7 个枚举、68 个枚举值、4 个类型、80 个函数以原名导出;头文件里的 43 个常量宏、9 个
Expand Down
27 changes: 25 additions & 2 deletions pkgs/mwrap/basis_universal.lua
Original file line number Diff line number Diff line change
@@ -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",
Expand All @@ -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"] = {
Expand All @@ -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"] = {
Expand All @@ -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",
},
},
},
}
4 changes: 2 additions & 2 deletions tests/mwrap/basis-universal-transcode/mcpp.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
[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]
# Use the complete candidate built-in index prepared by tests/run_members.sh.
# An explicit empty table overrides the legacy workspace redirect.

[dependencies]
mcpplibs.mwrap.basis_universal = "2.50"
mcpplibs.mwrap.basis_universal = "2.50.1"
Loading