All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- WebGL build errors (unresolved symbols during linking) due to outdated native library
- Marked
TextureBase.LoadBytesRoutine
obsolete in favor ofTextureBase.LoadFromBytes
- Made
TextureBase.LoadBytesRoutine
public again to preserve API compatibility
- Low-level API that gives finer control over the loading process (alternative to
TextureBase.LoadBytesRoutine
) ManagedNativeArray
wrapper for efficient access of managedbyte[]
from C# Jobs- Basis Universal texture (.basis) Editor import
- Support for loading any single image/layer/mipmap level of textures of any type (arrays, cubemaps, volumes)
- Support for discarding mipmap level chain (and import just one mipmap level)
- Support for importing Basis Universal texture types 2darray, 3d, video, cubemap (single images only at the moment)
- Many property getters on
KtxTexture
(e.g.needsTranscoding
,hasAlpha
,isCubemap
) - Experimental support for importing uncompressed KTX 2.0 textures (limited set of formats for now; #47)
- De-prioritized texture formats
RGBA4444
andBGR565
to avoid incorrect channel usage or low quality. Transcoding toRGBA32
instead. - Bumped minimum required Unity version to 2019.4 LTS
- Textures with alpha channel are shown blended (with checkerboard background) in the inspector now (
alphaIsTransparency
is enabled; #64) - Avoid extra memcopy of input data by using
ManagedNativeArray
inLoadFromStreamingAssets
andLoadFromUrl
- Improved texture format usage detection (linear vs. sRGB sampling)
- Loading of native library on Linux (thanks @Blackclaws for #60)
- Fix undefined variable error when building project
- Compiler error due to C# 7.3 incompatible code
Ported changes from 1.2.0
- Editor Import via
ScriptableImporter
(thanks @hybridherbst]hybridherbst for #45) - Error Codes (in
TextureResult.errorCode
)
- In release builds there's no console logging anymore (use the
errorCode
instead). In Debug builds and the Editor you still get detailed error messages.
- Will not transcode textures with sizes that are not a multiple of four to incompatible DXT5 or BC7 formats anymore
- Re-compiled macOS native library in release mode (
MinSizeRel
; wasDebug
). Expect improved performance.
- Apple Silicon Unity Editor decoding
- WebGL library is built with Emscripten 2.0.19 now
- Minimum required version is Unity 2021.2
- Apple Silicon Unity Editor decoding
- Marked
TextureBase.LoadBytesRoutine
obsolete in favor ofTextureBase.LoadFromBytes
- Made
TextureBase.LoadBytesRoutine
public again to preserve API compatibility
- Low-level API that gives finer control over the loading process (alternative to
TextureBase.LoadBytesRoutine
) ManagedNativeArray
wrapper for efficient access of managedbyte[]
from C# Jobs- Basis Universal texture (.basis) Editor import
- Support for loading any single image/layer/mipmap level of textures of any type (arrays, cubemaps, volumes)
- Support for discarding mipmap level chain (and import just one mipmap level)
- Support for importing Basis Universal texture types 2darray, 3d, video, cubemap (single images only at the moment)
- Many property getters on
KtxTexture
(e.g.needsTranscoding
,hasAlpha
,isCubemap
) - Experimental support for importing uncompressed KTX 2.0 textures (limited set of formats for now; #47)
- De-prioritized texture formats
RGBA4444
andBGR565
to avoid incorrect channel usage or low quality. Transcoding toRGBA32
instead. - Bumped minimum required Unity version to 2019.4 LTS
- Textures with alpha channel are shown blended (with checkerboard background) in the inspector now (
alphaIsTransparency
is enabled; #64) - Avoid extra memcopy of input data by using
ManagedNativeArray
inLoadFromStreamingAssets
andLoadFromUrl
- Improved texture format usage detection (linear vs. sRGB sampling)
- Fix undefined variable error when building project
- Compiler error due to C# 7.3 incompatible code
- Editor Import via
ScriptableImporter
(thanks @hybridherbst]hybridherbst for #45) - Error Codes (in
TextureResult.errorCode
)
- In release builds there's no console logging anymore (use the
errorCode
instead). In Debug builds and the Editor you still get detailed error messages.
- Will not transcode textures with sizes that are not a multiple of four to incompatible DXT5 or BC7 formats anymore
- Re-compiled macOS native library in release mode (
MinSizeRel
; wasDebug
). Expect improved performance.
- Error message when users try to run KtxUnity 1.x Unity >=2021.2 combination targeting WebGL
- Updated KTX-Software-Unity to 0.4.2 (only the relevant iOS binaries)
- Bitcode is now embed in all iOS binaries (fixes #37)
- Support for Lumin / Magic Leap
- Support for Apple Silicon on macOS via a universal library
- Updated KTX-Software-Unity to 0.4.1
- Prevent crash during mipmap reverting on recent llvm/emscripten versions
- Not transcoding to ETC1/ETC2/BC1 if resolution is not a multiple of four
- Switched to data-model-independent types in C binding to avoid crashes on certain platforms
- Support for Universal Windows Platform (x64,x86,ARM,ARM64)
- Switched API to
async
calls that return aTextureResult
directly (instead of onTextureLoaded event) - Doesn't require a MonoBehaviour for running coroutines anymore
- Raised minimum required version to 2019.2 (the version that switched to scripting runtime version .NET 4.6)
- Updated KTX-Software-Unity native libs to 0.3.0
- Updated KTX-Software-Unity native libs to 0.2.4
- Added missing native functions (on Linux)
- Support for Universal Windows Platform (x64)
- Expressive error messages when loading unsupported KTX 1.0 or non-supercompressed KTX 2.0 file
- Updated KTX-Software-Unity native libs to 0.2.2
- Added missing basis transcoding functions on Windows (fixes #21)
- UASTC mode with alpha channel
- No changes. Bump release to trick OpenUPM to create package for 0.8.1
- Removed annoying warning about
UnityPackage.meta
file
- Texture orientation is now exposed. This allows users to correct (=flip) them (fixes #18)
- Support for KTX specification 2.0 pr-draft2 (fixes #16)
- Support for Basis Universal UASTC supercompression mode (higher quality)
- Native binary libs are now provided by KTX-Software-Unity 0.1.0
- The KTX specification changed (from ~draft20 to pr-draft2), thus older KTX files cannot be loaded anymore.
- Unsupported basis file texture types (non 2D Images) raise a proper error now
- Removed support for 32-bit Desktop platforms (Windows, Linux)
- Support for linear sampling
- Support for
ETC1_RGB
with sRGB sampling viaRGB_ETC2_SRGB
- Support for
ETC2_EAC_R11
andETC2_EAC_RG11
(there's no interface yet to explicitly choose one- or two-channel textures)
- Support for mip-map levels
- Updated KTX library (now at KTX 2.0 specification draft 18)
- Support for Universal Windows Platform (not verified/tested myself)
TextureBase.LoadBytesRoutine
is public now to allow deeper integration
- Ensured backwards compatibility with Unity 2018.2
- Renamed project to KtxUnity
- Using less memory by freeing up texture after GPU upload
- Support for loading KTX 2.0 files with Basis Universal super-compression
- Thread support via Unity Job system
- Support for Android armeabi-v7a and x86
- Support for Linux 32/64 bit
- Added support for Windows 32/64 bit
- Docs on how to use it
- Restructured project to be a valid Unity package
- Changelog. All previous work was not versioned.