Assets: KTX2 compressed texture format
Material textures currently decode via stb_image (PNG/JPG/...) to RGBA8 (engine/assets/ImageLoader.zig). Add support for KTX2 containers carrying GPU-compressed (BCn / ASTC, optionally Basis Universal transcoded) texture data.
Scope
- Parse KTX2 containers; expose format, mip levels, and compressed payload.
- GPU path: upload compressed blocks directly to SDL3GPU textures (BCn on desktop) instead of decoding to RGBA8.
- Software path: decode/transcode to RGBA8 as a fallback.
- Slot in behind the existing
loadTexture/loadTextureFromMemoryseam so materials/importers are format-agnostic. - Register
.ktx2in the image asset type + importer.
Acceptance
- A.ktx2 texture binds in a material and renders in both the viewport and built game; mips respected.
Note: the c:assets label already lists 'glTF, KTX2' as in scope.
Edited by Bruno Massa