Skip to content

Go KTX2 纹理编码

系统概览

KTX2 压缩纹理转码的 Go 侧封装(ktxencode.go,189 行)。探测外部 toktx 工具链,将支持的纹理格式转码为 KTX2(配合 ADR-189 GPU 压缩纹理基础设施),支持按目录批量转码。

核心职责

  • ktx2Encode(srcPath) — 单文件转码,返回产物路径。
  • transcodeTexturesInDir(root) — 目录批量转码(isKtx2SourceExt 过滤)。
  • guessEncodeMode(name) — 按用途猜测压缩模式。
  • findToktx() — 工具链探测。

对外 API(节选)

  • ktx2Encode(srcPath string) (string, error) — 转码单纹理(内部函数,绑定经前端 KTX2 路径调用)。

与其他子系统关系

  • 前端 gpu-capabilities.ts / 纹理加载路径(ADR-189)触发转码。
  • 依赖 internal/util(错误包装)。

前端接入入口

  • 纹理加载:frontend/src/core 纹理工厂在 KTX2 能力可用时触发 Go 侧转码。

不变量

  • toktx 缺失时优雅降级(返回可识别错误,前端回退非压缩纹理)。
  • 只转白名单扩展名,防止对任意文件执行外部工具。

验证入口

  • 无单测(依赖外部工具链),手动验证:go test ./internal/app/ -run Ktx