Files
2025-11-30 08:35:03 +02:00

12 KiB

Changelog

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.

[3.3.0] - 2024-02-28

Added

  • Embedded Linux support
  • Apple tvOS support
  • Android x86 and x86_64 support
  • Runtime tests that load KTX 2.0 files

Changed

  • Moved Editor scripts into namespace KtxUnity.Editor
  • Updated binaries to version 1.2.1.

Fixed

  • Code format in markdown files
  • Apple iOS device and simulator SDK binaries are properly included/excluded, depending on target SDK.
  • Compilation succeeds on non-supported platforms
  • System.EntryPointNotFoundException for symbols ktx_get_image_offset and ktx_get_image_size on Windows.
  • Using GraphicsFormatUsage (instead of the obsolete FormatUsage) in 2023.2 or newer.
  • Crashes and undefined behavior caused by incorrect marshaling when using the IL2CPP scripting.

[3.2.2] - 2023-11-14

Fixed

  • Fixed CI failing on isolation tests because of the WebGL sub-package import. Now imports the package synchronously in batch mode.

[3.2.1] - 2023-11-06

Changed

  • Applied consistent code formatting.
  • Updated to WebGL sub-packages from 1.0.0 to 1.0.1.

[3.2.0] - 2023-09-14

Changed

  • Updated binaries to version 1.1.1.
  • Updated WebGL sub-packages to version 1.0.0.

[3.1.0] - 2023-08-25

Added

  • WebGL native libraries are now installed via sub-packages
  • Full Apache 2.0 license text

Changed

  • Extended support back to Unity 2020.3 LTS
  • Unexposed KtxUnity.Tests.PlaceholderEditorTests

Removed

  • WebGL native libraries
  • Obsolete console error about downgrading package for certain Unity versions
  • Native binaries don't contain etcdec anymore

[3.0.0] - 2023-03-29

Added

  • TextureBase.Load... overloads that accepts an explicit transcode target texture format

Changed

  • [Breaking] Reduced public API to minimum requirement.
  • Added missing XML documentation for remaining public API.
  • Updated KTX-Software-Unity to 1.1.0

Removed

  • Utility classes TextureLoaderBase, TextureFileLoader and TextureUrlLoader were moved to KtxUnityDemo project
  • TextureBase.LoadBytesRoutine (was replaced by LoadFromBytes previously)

[2.2.3] - 2022-11-18

Fixed

  • WebGL build errors (unresolved symbols during linking) due to outdated native library

[2.2.2] - 2022-09-29

Changed

  • Marked TextureBase.LoadBytesRoutine obsolete in favor of TextureBase.LoadFromBytes

Fixed

  • Made TextureBase.LoadBytesRoutine public again to preserve API compatibility

[2.2.1] - 2022-09-28

Added

  • Low-level API that gives finer control over the loading process (alternative to TextureBase.LoadBytesRoutine)
  • ManagedNativeArray wrapper for efficient access of managed byte[] 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)

Changed

  • De-prioritized texture formats RGBA4444 and BGR565 to avoid incorrect channel usage or low quality. Transcoding to RGBA32 instead.
  • Bumped minimum required Unity version to 2019.4 LTS

Fixed

  • 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 in LoadFromStreamingAssets and LoadFromUrl
  • Improved texture format usage detection (linear vs. sRGB sampling)
  • Loading of native library on Linux (thanks @Blackclaws for #60)

[2.1.2] - 2022-04-14

Fixed

  • Fix undefined variable error when building project
  • Compiler error due to C# 7.3 incompatible code

[2.1.1] - 2022-04-14

Ported changes from 1.2.0

Added

  • Editor Import via ScriptableImporter (thanks @hybridherbst]hybridherbst for #45)
  • Error Codes (in TextureResult.errorCode)

Changed

  • 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.

Fixed

  • 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; was Debug). Expect improved performance.

[2.0.1] - 2021-11-23

Fixed

  • Apple Silicon Unity Editor decoding

[2.0.0] - 2021-10-28

Changed

  • WebGL library is built with Emscripten 2.0.19 now
  • Minimum required version is Unity 2021.2

[1.3.2] - 2023-04-11

Fixed

  • Apple Silicon Unity Editor decoding

[1.3.1] - 2022-11-29

Changed

  • Marked TextureBase.LoadBytesRoutine obsolete in favor of TextureBase.LoadFromBytes

Fixed

  • Made TextureBase.LoadBytesRoutine public again to preserve API compatibility

[1.3.0] - 2022-11-28

Added

  • Low-level API that gives finer control over the loading process (alternative to TextureBase.LoadBytesRoutine)
  • ManagedNativeArray wrapper for efficient access of managed byte[] 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)

Changed

  • De-prioritized texture formats RGBA4444 and BGR565 to avoid incorrect channel usage or low quality. Transcoding to RGBA32 instead.
  • Bumped minimum required Unity version to 2019.4 LTS

Fixed

  • 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 in LoadFromStreamingAssets and LoadFromUrl
  • Improved texture format usage detection (linear vs. sRGB sampling)

[1.2.3] - 2022-04-14

Fixed

  • Fix undefined variable error when building project

[1.2.2] - 2022-04-14

Fixed

  • Compiler error due to C# 7.3 incompatible code

[1.2.1] - 2022-04-14

Added

  • Editor Import via ScriptableImporter (thanks @hybridherbst]hybridherbst for #45)
  • Error Codes (in TextureResult.errorCode)

Changed

  • 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.

Fixed

  • 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; was Debug). Expect improved performance.

[1.1.2] - 2021-10-27

Added

  • Error message when users try to run KtxUnity 1.x Unity >=2021.2 combination targeting WebGL

[1.1.1] - 2021-07-16

Changed

  • Updated KTX-Software-Unity to 0.4.2 (only the relevant iOS binaries)

Fixed

  • Bitcode is now embed in all iOS binaries (fixes #37)

[1.1.0] - 2021-07-02

Added

  • Support for Lumin / Magic Leap
  • Support for Apple Silicon on macOS via a universal library

Changed

  • Updated KTX-Software-Unity to 0.4.1

Fixed

  • 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

[1.0.0] - 2021-02-03

Added

  • Support for Universal Windows Platform (x64,x86,ARM,ARM64)

Changed

  • Switched API to async calls that return a TextureResult 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

[0.9.1] - 2020-11-12

Changed

  • Updated KTX-Software-Unity native libs to 0.2.4

Fixed

  • Added missing native functions (on Linux)

[0.9.0] - 2020-11-04

Added

  • Support for Universal Windows Platform (x64)
  • Expressive error messages when loading unsupported KTX 1.0 or non-supercompressed KTX 2.0 file

Changed

  • Updated KTX-Software-Unity native libs to 0.2.2

Fixed

  • Added missing basis transcoding functions on Windows (fixes #21)
  • UASTC mode with alpha channel

[0.8.2] - 2020-10-23

  • No changes. Bump release to trick OpenUPM to create package for 0.8.1

[0.8.1] - 2020-10-23

Fixed

  • Removed annoying warning about UnityPackage.meta file

[0.8.0] - 2020-10-23

Added

  • 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)

Changed

  • 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)

[0.7.0] - 2020-04-26

Added

  • Support for linear sampling
  • Support for ETC1_RGB with sRGB sampling via RGB_ETC2_SRGB
  • Support for ETC2_EAC_R11 and ETC2_EAC_RG11 (there's no interface yet to explicitly choose one- or two-channel textures)

[0.6.0] - 2020-03-01

Added

  • Support for mip-map levels

Changed

  • Updated KTX library (now at KTX 2.0 specification draft 18)

[0.5.0] - 2020-02-22

Added

  • Support for Universal Windows Platform (not verified/tested myself)

Changed

  • TextureBase.LoadBytesRoutine is public now to allow deeper integration

Fixed

  • Ensured backwards compatibility with Unity 2018.2

[0.4.0] - 2019-11-10

Changed

  • Renamed project to KtxUnity
  • Using less memory by freeing up texture after GPU upload

Added

  • Support for loading KTX 2.0 files with Basis Universal super-compression

[0.3.0] - 2019-06-30

Added

  • Thread support via Unity Job system
  • Support for Android armeabi-v7a and x86

[0.2.0] - 2019-06-25

Added

  • Support for Linux 32/64 bit

[0.1.0] - 2019-06-23

Added

  • Added support for Windows 32/64 bit
  • Docs on how to use it

Changed

  • Restructured project to be a valid Unity package

[0.0.1] - 2019-06-21

Added

  • Changelog. All previous work was not versioned.