Owner directive. With BASISU_USE_WUFFS_LDR_LOADER=1, print_png_info() uses only
get_ldr_image_info(): it prints the true dimensions (even beyond the decode cap,
plus a "can't be loaded" line when they exceed BASISU_WUFFS_LDR_MAX_DIM) or
"Failed parsing PNG file" if Wuffs rejects the header. pv_png::get_png_info and
print_png_loader_info() are no longer used for -info in that configuration;
channels/bit depth/color type/tRNS/gAMA lines are not printed (the adapter stays
thin). With =0 the function body is public master's, unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
With BASISU_USE_WUFFS_LDR_LOADER=1, -info on a PNG keeps the pvpngreader
header details and adds one line from get_ldr_image_info(): the true
dimensions, whether they exceed the loader's decode cap, or that Wuffs
rejects the header (so -info no longer reports a PNG as fine that the
loader then refuses). When pvpngreader's own header parser fails (its 32768
max dimension, ancillary chunk CRCs) the loader's view is still printed, so
e.g. a 65535x65535 PNG header reports its true dimensions ("exceeds the
maximum loadable dimension") instead of only "Failed parsing PNG file".
=0 is unchanged.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This update impacts the UASTC HDR 4x4, UASTC HDR 6x6i, and XUASTC LDR formats. New KTX2 files in these specific formats using v2.1 can't be loaded using v2.0, however we've kept backwards compatibility with all of our previously written KTX2 files. (v2.1 can transcode all previously written files.)
This is part of our effort to be compatible with Khronos's specification.
bc6hf encoder's smooth block path updated to handle inputs with texels close to MAX_HALF_FLOAT.
Adding command line options to basisu tool so it can write either v2.0 or v1.6 compatible UASTC HDR 6x6i files. The default is v1.6.
Updating WebGL KTX2 testbed so on ASTC devices it automatically switches between sRGB or linear internal formats for the created texture.
- If -output_file is specified and there's more than 1 input, it errors out as this would overwrite the output file multiple times
- Tex types cubemap/3D default to tex_array mode
This change implements -resample X Y command line support in addition to
-resample_factor, when a more sophisticated algorithm is needed to
compute the desired image size.
For example, these can be used to round the image to a multiple of 4 or
to a power of 2 for improved compatibility with various graphics APIs.
- Minor fix to basisu_frontend::optimize_selector_codebook() so the new_selector_cluster_indices array is initialized correctly. (The backend doesn't use this array so no harm was being done.)
- Optimized ETC1S encoder (3-4.5x faster)
- Added optional SSE 4.1 support to encoder
- Switched from std::vector to a custom vector in the encoder and transcoder
- Added CppSPMD (SSE only for now)
- UASTC RDO is now more effective, but the command line parameter controlling qualiy has changed (to "lambda")
Encoder is now a library in the "encoder" directory
JavaScript wrappers now expose the entire codec: encoder, transcoder, container independent transcoding, and .basis file information