Immutable
release. Only release title and notes can be modified.
Added
- C API: new
ctt-c-apicrate produces static/dynamic libraries plus a hand-curatedctt.hheader. Signed, attested prebuilt archives are published for Windows, macOS, and Linux on x86_64 and aarch64. - 3D (volume) texture support end-to-end: load/encode/store 3D textures via DDS and KTX2. New CLI
--volumeflag stacks input files as Z slices. - AVX-512 sRGB load/store kernels (x86_64) and NEON sRGB load/store kernels (aarch64), selected at runtime.
- Bulk f16 ↔ f32 processing kernels.
- Per-encoder option flags:
--astcenc-opts,--bc7e-opts,--intel-opts,--etcpak-opts,--amd-optsacceptkey=val[;key=val...]strings.--help-encoder <name>lists available keys with types and docs. - Substantially expanded
astcencsettings: usage modes (Color,NormalMapwithBc5Compat/AstcDefaultswizzle,SingleChannel,TwoChannel,HdrRgb,HdrRgba,Rgbm), perceptual mode, alpha-weighted error,decode_unorm8tuning, RGBM scale, custom preset override. - CLI integration test suite covering color/alpha conversion, containers, cubemaps, cubemap arrays, mipmaps, volumes, swizzle, supercompression, passthrough, and error paths.
Changed
- API:
TargetFormat::Compressednow carries a typedencoder: Encoderenum (with per-backend settings) instead ofencoder_name: Option<String>. UseEncoder::Autofor "any encoder that supports this format". - API:
parse_formatsignature is nowparse_format(&str) -> Result<TargetFormat>— theEncoderRegistryparameter is gone; compiled-in encoders are discovered statically. - API:
Image::is_cubemap: boolreplaced withImage::kind: TextureKind(Texture2D/Cubemap/Texture3D). - API:
Surfacegainsdepthandslice_stridefields for 3D surfaces (setdepth = 1,slice_stride = 0for 2D). - CLI
--helpoutput wraps to the terminal width. - ASTC encoder defaults tuned for better quality out of the box.
- Passthrough path widened — more input/output combinations skip re-encoding.
Fixed
ctt-compressonatornow builds on older GCC versions.