This release improves command-line processing by allowing UTF-16 strings as arguments, adds support for the B4A4R4G4 pixel format, and includes support for 16-bit per component images and types. In particular 16 BPC PNG loading and saving is now available using the SPNG library. Functions to retrieve XDG base directories have been added and a natural sorting implementation is included.
Features and Fixes
- tCmdLine can parse UTF-16 argv strings.
- Detection of 16-bit per component png images (R16G16B16 and R16G16B16A16).
- Support R4G4B4A4 (BARG) ktx1 files.
- 16-bit colour/pixel types. tColour3s and tColour4s.
- Support 16 BPC PNG loads.
- PNG loading supports auto gamma/sRGB compression. Source and current colour profiles set correctly.
- Fixed row reversal loading for PNG files.
- Write support for 16-bit per component PNG files. 24, 32, 48, and 64 bpp PNGs may now be saved. Uses the SPNG library.
- Upgraded libpng to version 1.6.42.
- Picture copy-region with channels and optional use of anchors. Unit tests added.
- Respect horizontal and vertical flip bits when loading TGA files.
- Updated libktx to v 4.3.2.
- Update bcdec to v0.97.
- Added a descriptions array for all pixel formats.
- String compare functions now guaranteed to return -1, 0, or 1 rather than the more vague <0, 0, or >0.
- Externally exposed tPathStd functions. Added platform (path) string compare functions tPstrcmp and tPstrncmp to tStandard. Added tPathsEqual and tComparePaths to tFile.
- Added numerous mipmap dimension computation functions. Includes tGetNumMipmapLevels, tGetNextMipmapLevelDim(s), and tGetMipmapDim(s).
- tImageQOI now using colour profile instead of colour space.
- Improved usefulness of tBaseImage by placing ColourProfile and PixelFormat members in the base. Simplifies all derived image-loading classes.
- Better colour profile reporting for APNG, ASTC, BMP, DDS, GIF, PKM, PVR, and QOI.
- Added implementation of a 'natural' string compare function originally contributed by github user ClangPan.
- Similar behaviour between the tString Left and ExtractLeft functions. In both cases an empty string is returned if the marker is not present. Same update for Right and ExtractRight.
- Added the natural string compare function tNstrcmp. It sorts similarly to Windows natural sorting and uses a single loop.
- Added teList and tzList. They are basically tLists with different default constructor modes (External and Static) so that you can put lists of different modes in a C++ array (which calls the default constructors on initialization).
- Added virtual functions IsMipmapped, IsCubemap, GetLayers, and GetCubemapLayers to tBaseImage. This will allow simplification of client code that can now be unaware of the exact tImage type.
- Accessors for reading and parsing environment variables from the XDG Base Directory specification. Appropriate defaults, also defined by the spec, will be used if the environment variable is not set or is empty.
- Added tCreateDirs for creating multiple directories in one go.
- Fixed issue loading palettized (indexed colour) PNG files that have transparency. Specifically the tRNS chunk is being parsed.
Full Changelog: v0.8.17...v0.8.18