336 lines
12 KiB
C#
336 lines
12 KiB
C#
// SPDX-FileCopyrightText: 2023 Unity Technologies and the KTX for Unity authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
|
|
namespace KtxUnity
|
|
{
|
|
|
|
enum KtxClassId
|
|
{
|
|
KtxTexture1 = 1,
|
|
KtxTexture2 = 2
|
|
}
|
|
|
|
/// <summary>
|
|
/// KTX error codes (taken from native ktx.h)
|
|
/// </summary>
|
|
enum KtxErrorCode
|
|
{
|
|
Success = 0, /*!< Operation was successful. */
|
|
FileDataError, /*!< The data in the file is inconsistent with the spec. */
|
|
FileIsPipe, /*!< The file is a pipe or named pipe. */
|
|
FileOpenFailed, /*!< The target file could not be opened. */
|
|
FileOverflow, /*!< The operation would exceed the max file size. */
|
|
FileReadError, /*!< An error occurred while reading from the file. */
|
|
FileSeekError, /*!< An error occurred while seeking in the file. */
|
|
FileUnexpectedEof, /*!< File does not have enough data to satisfy request. */
|
|
FileWriteError, /*!< An error occurred while writing to the file. */
|
|
GLError, /*!< GL operations resulted in an error. */
|
|
InvalidOperation, /*!< The operation is not allowed in the current state. */
|
|
InvalidValue, /*!< A parameter value was not valid */
|
|
NotFound, /*!< Requested key was not found */
|
|
OutOfMemory, /*!< Not enough memory to complete the operation. */
|
|
TranscodeFailed, /*!< Transcoding of block compressed texture failed. */
|
|
UnknownFileFormat, /*!< The file not a KTX file */
|
|
UnsupportedTextureType, /*!< The KTX file specifies an unsupported texture type. */
|
|
UnsupportedFeature, /*!< Feature not included in in-use library or not yet implemented. */
|
|
LibraryNotLinked, /*!< Library dependency (OpenGL or Vulkan) not linked into application. */
|
|
ErrorMaxEnum = LibraryNotLinked /*!< For safety checks. */
|
|
}
|
|
|
|
enum KtxSuperCompressionScheme
|
|
{
|
|
None = 0, /*!< No supercompression. */
|
|
Basis = 1, /*!< Basis Universal supercompression. */
|
|
LZMA = 2, /*!< LZMA supercompression. */
|
|
ZLib = 3, /*!< Zlib supercompression. */
|
|
ZStd = 4, /*!< ZStd supercompression. */
|
|
BeginRange = None,
|
|
EndRange = ZStd,
|
|
BeginVendorRange = 0x10000,
|
|
EndVendorRange = 0x1ffff,
|
|
BeginReserved = 0x20000,
|
|
}
|
|
|
|
/// <summary>
|
|
/// Source: KTX-Software, vkformat_enum.h
|
|
/// </summary>
|
|
enum VkFormat
|
|
{
|
|
Undefined = 0,
|
|
R4G4UNormPack8 = 1,
|
|
R4G4B4A4UNormPack16 = 2,
|
|
B4G4R4A4UNormPack16 = 3,
|
|
R5G6B5UNormPack16 = 4,
|
|
B5G6R5UNormPack16 = 5,
|
|
R5G5B5A1UNormPack16 = 6,
|
|
B5G5R5A1UNormPack16 = 7,
|
|
A1R5G5B5UNormPack16 = 8,
|
|
R8UNorm = 9,
|
|
R8SNorm = 10,
|
|
R8UScaled = 11,
|
|
R8SScaled = 12,
|
|
R8UInt = 13,
|
|
R8SInt = 14,
|
|
R8Srgb = 15,
|
|
R8G8UNorm = 16,
|
|
R8G8SNorm = 17,
|
|
R8G8UScaled = 18,
|
|
R8G8SScaled = 19,
|
|
R8G8UInt = 20,
|
|
R8G8SInt = 21,
|
|
R8G8Srgb = 22,
|
|
R8G8B8UNorm = 23,
|
|
R8G8B8SNorm = 24,
|
|
R8G8B8UScaled = 25,
|
|
R8G8B8SScaled = 26,
|
|
R8G8B8UInt = 27,
|
|
R8G8B8SInt = 28,
|
|
R8G8B8Srgb = 29,
|
|
B8G8R8UNorm = 30,
|
|
B8G8R8SNorm = 31,
|
|
B8G8R8UScaled = 32,
|
|
B8G8R8SScaled = 33,
|
|
B8G8R8UInt = 34,
|
|
B8G8R8SInt = 35,
|
|
B8G8R8Srgb = 36,
|
|
R8G8B8A8UNorm = 37,
|
|
R8G8B8A8SNorm = 38,
|
|
R8G8B8A8UScaled = 39,
|
|
R8G8B8A8SScaled = 40,
|
|
R8G8B8A8UInt = 41,
|
|
R8G8B8A8SInt = 42,
|
|
R8G8B8A8Srgb = 43,
|
|
B8G8R8A8UNorm = 44,
|
|
B8G8R8A8SNorm = 45,
|
|
B8G8R8A8UScaled = 46,
|
|
B8G8R8A8SScaled = 47,
|
|
B8G8R8A8UInt = 48,
|
|
B8G8R8A8SInt = 49,
|
|
B8G8R8A8Srgb = 50,
|
|
A8B8G8R8UNormPack32 = 51,
|
|
A8B8G8R8SNormPack32 = 52,
|
|
A8B8G8R8UScaledPack32 = 53,
|
|
A8B8G8R8SScaledPack32 = 54,
|
|
A8B8G8R8UIntPack32 = 55,
|
|
A8B8G8R8SIntPack32 = 56,
|
|
A8B8G8R8SrgbPack32 = 57,
|
|
A2R10G10B10UNormPack32 = 58,
|
|
A2R10G10B10SNormPack32 = 59,
|
|
A2R10G10B10UScaledPack32 = 60,
|
|
A2R10G10B10SScaledPack32 = 61,
|
|
A2R10G10B10UIntPack32 = 62,
|
|
A2R10G10B10SIntPack32 = 63,
|
|
A2B10G10R10UNormPack32 = 64,
|
|
A2B10G10R10SNormPack32 = 65,
|
|
A2B10G10R10UScaledPack32 = 66,
|
|
A2B10G10R10SScaledPack32 = 67,
|
|
A2B10G10R10UIntPack32 = 68,
|
|
A2B10G10R10SIntPack32 = 69,
|
|
R16UNorm = 70,
|
|
R16SNorm = 71,
|
|
R16UScaled = 72,
|
|
R16SScaled = 73,
|
|
R16UInt = 74,
|
|
R16SInt = 75,
|
|
R16SFloat = 76,
|
|
R16G16UNorm = 77,
|
|
R16G16SNorm = 78,
|
|
R16G16UScaled = 79,
|
|
R16G16SScaled = 80,
|
|
R16G16UInt = 81,
|
|
R16G16SInt = 82,
|
|
R16G16SFloat = 83,
|
|
R16G16B16UNorm = 84,
|
|
R16G16B16SNorm = 85,
|
|
R16G16B16UScaled = 86,
|
|
R16G16B16SScaled = 87,
|
|
R16G16B16UInt = 88,
|
|
R16G16B16SInt = 89,
|
|
R16G16B16SFloat = 90,
|
|
R16G16B16A16UNorm = 91,
|
|
R16G16B16A16SNorm = 92,
|
|
R16G16B16A16UScaled = 93,
|
|
R16G16B16A16SScaled = 94,
|
|
R16G16B16A16UInt = 95,
|
|
R16G16B16A16SInt = 96,
|
|
R16G16B16A16SFloat = 97,
|
|
R32UInt = 98,
|
|
R32SInt = 99,
|
|
R32SFloat = 100,
|
|
R32G32UInt = 101,
|
|
R32G32SInt = 102,
|
|
R32G32SFloat = 103,
|
|
R32G32B32UInt = 104,
|
|
R32G32B32SInt = 105,
|
|
R32G32B32SFloat = 106,
|
|
R32G32B32A32UInt = 107,
|
|
R32G32B32A32SInt = 108,
|
|
R32G32B32A32SFloat = 109,
|
|
R64UInt = 110,
|
|
R64SInt = 111,
|
|
R64SFloat = 112,
|
|
R64G64UInt = 113,
|
|
R64G64SInt = 114,
|
|
R64G64SFloat = 115,
|
|
R64G64B64UInt = 116,
|
|
R64G64B64SInt = 117,
|
|
R64G64B64SFloat = 118,
|
|
R64G64B64A64UInt = 119,
|
|
R64G64B64A64SInt = 120,
|
|
R64G64B64A64SFloat = 121,
|
|
B10G11R11UFloatPack32 = 122,
|
|
E5B9G9R9UFloatPack32 = 123,
|
|
D16UNorm = 124,
|
|
X8D24UNormPack32 = 125,
|
|
D32SFloat = 126,
|
|
S8UInt = 127,
|
|
D16UNormS8UInt = 128,
|
|
D24UNormS8UInt = 129,
|
|
D32SFloatS8UInt = 130,
|
|
BC1RgbUNormBlock = 131,
|
|
BC1RGBSrgbBlock = 132,
|
|
BC1RgbaUNormBlock = 133,
|
|
BC1RGBASrgbBlock = 134,
|
|
BC2UNormBlock = 135,
|
|
BC2SrgbBlock = 136,
|
|
BC3UNormBlock = 137,
|
|
BC3SrgbBlock = 138,
|
|
BC4UNormBlock = 139,
|
|
BC4SNormBlock = 140,
|
|
BC5UNormBlock = 141,
|
|
BC5SNormBlock = 142,
|
|
BC6HUFloatBlock = 143,
|
|
BC6HSFloatBlock = 144,
|
|
BC7UNormBlock = 145,
|
|
BC7SrgbBlock = 146,
|
|
ETC2R8G8B8UNormBlock = 147,
|
|
ETC2R8G8B8SrgbBlock = 148,
|
|
ETC2R8G8B8A1UNormBlock = 149,
|
|
ETC2R8G8B8A1SrgbBlock = 150,
|
|
ETC2R8G8B8A8UNormBlock = 151,
|
|
ETC2R8G8B8A8SrgbBlock = 152,
|
|
EACR11UNormBlock = 153,
|
|
EACR11SNormBlock = 154,
|
|
EACR11G11UNormBlock = 155,
|
|
EACR11G11SNormBlock = 156,
|
|
Astc4X4UNormBlock = 157,
|
|
Astc4X4SrgbBlock = 158,
|
|
Astc5X4UNormBlock = 159,
|
|
Astc5X4SrgbBlock = 160,
|
|
Astc5X5UNormBlock = 161,
|
|
Astc5X5SrgbBlock = 162,
|
|
Astc6X5UNormBlock = 163,
|
|
Astc6X5SrgbBlock = 164,
|
|
Astc6X6UNormBlock = 165,
|
|
Astc6X6SrgbBlock = 166,
|
|
Astc8X5UNormBlock = 167,
|
|
Astc8X5SrgbBlock = 168,
|
|
Astc8X6UNormBlock = 169,
|
|
Astc8X6SrgbBlock = 170,
|
|
Astc8X8UNormBlock = 171,
|
|
Astc8X8SrgbBlock = 172,
|
|
Astc10X5UNormBlock = 173,
|
|
Astc10X5SrgbBlock = 174,
|
|
Astc10X6UNormBlock = 175,
|
|
Astc10X6SrgbBlock = 176,
|
|
Astc10X8UNormBlock = 177,
|
|
Astc10X8SrgbBlock = 178,
|
|
Astc10X10UNormBlock = 179,
|
|
Astc10X10SrgbBlock = 180,
|
|
Astc12X10UNormBlock = 181,
|
|
Astc12X10SrgbBlock = 182,
|
|
Astc12X12UNormBlock = 183,
|
|
Astc12X12SrgbBlock = 184,
|
|
G8B8G8R8422UNorm = 1000156000,
|
|
B8G8R8G8422UNorm = 1000156001,
|
|
G8B8R83Plane420UNorm = 1000156002,
|
|
G8B8R82Plane420UNorm = 1000156003,
|
|
G8B8R83Plane422UNorm = 1000156004,
|
|
G8B8R82Plane422UNorm = 1000156005,
|
|
G8B8R83Plane444UNorm = 1000156006,
|
|
R10X6UNormPack16 = 1000156007,
|
|
R10X6G10X6UNorm2Pack16 = 1000156008,
|
|
R10X6G10X6B10X6A10X6UNorm4Pack16 = 1000156009,
|
|
G10X6B10X6G10X6R10X6422UNorm4Pack16 = 1000156010,
|
|
B10X6G10X6R10X6G10X6422UNorm4Pack16 = 1000156011,
|
|
G10X6B10X6R10X63Plane420UNorm3Pack16 = 1000156012,
|
|
G10X6B10X6R10X62Plane420UNorm3Pack16 = 1000156013,
|
|
G10X6B10X6R10X63Plane422UNorm3Pack16 = 1000156014,
|
|
G10X6B10X6R10X62Plane422UNorm3Pack16 = 1000156015,
|
|
G10X6B10X6R10X63Plane444UNorm3Pack16 = 1000156016,
|
|
R12X4UNormPack16 = 1000156017,
|
|
R12X4G12X4UNorm2Pack16 = 1000156018,
|
|
R12X4G12X4B12X4A12X4UNorm4Pack16 = 1000156019,
|
|
G12X4B12X4G12X4R12X4422UNorm4Pack16 = 1000156020,
|
|
B12X4G12X4R12X4G12X4422UNorm4Pack16 = 1000156021,
|
|
G12X4B12X4R12X43Plane420UNorm3Pack16 = 1000156022,
|
|
G12X4B12X4R12X42Plane420UNorm3Pack16 = 1000156023,
|
|
G12X4B12X4R12X43Plane422UNorm3Pack16 = 1000156024,
|
|
G12X4B12X4R12X42Plane422UNorm3Pack16 = 1000156025,
|
|
G12X4B12X4R12X43Plane444UNorm3Pack16 = 1000156026,
|
|
G16B16G16R16422UNorm = 1000156027,
|
|
B16G16R16G16422UNorm = 1000156028,
|
|
G16B16R163Plane420UNorm = 1000156029,
|
|
G16B16R162Plane420UNorm = 1000156030,
|
|
G16B16R163Plane422UNorm = 1000156031,
|
|
G16B16R162Plane422UNorm = 1000156032,
|
|
G16B16R163Plane444UNorm = 1000156033,
|
|
PVRTC12BppUNormBlockImg = 1000054000,
|
|
PVRTC14BppUNormBlockImg = 1000054001,
|
|
PVRTC22BppUNormBlockImg = 1000054002,
|
|
PVRTC24BppUNormBlockImg = 1000054003,
|
|
PVRTC12BppSrgbBlockImg = 1000054004,
|
|
PVRTC14BppSrgbBlockImg = 1000054005,
|
|
PVRTC22BppSrgbBlockImg = 1000054006,
|
|
PVRTC24BppSrgbBlockImg = 1000054007,
|
|
Astc4X4SFloatBlockExt = 1000066000,
|
|
Astc5X4SFloatBlockExt = 1000066001,
|
|
Astc5X5SFloatBlockExt = 1000066002,
|
|
Astc6X5SFloatBlockExt = 1000066003,
|
|
Astc6X6SFloatBlockExt = 1000066004,
|
|
Astc8X5SFloatBlockExt = 1000066005,
|
|
Astc8X6SFloatBlockExt = 1000066006,
|
|
Astc8X8SFloatBlockExt = 1000066007,
|
|
Astc10X5SFloatBlockExt = 1000066008,
|
|
Astc10X6SFloatBlockExt = 1000066009,
|
|
Astc10X8SFloatBlockExt = 1000066010,
|
|
Astc10X10SFloatBlockExt = 1000066011,
|
|
Astc12X10SFloatBlockExt = 1000066012,
|
|
Astc12X12SFloatBlockExt = 1000066013,
|
|
Astc3X3X3UNormBlockExt = 1000288000,
|
|
Astc3X3X3SrgbBlockExt = 1000288001,
|
|
Astc3X3X3SFloatBlockExt = 1000288002,
|
|
Astc4X3X3UNormBlockExt = 1000288003,
|
|
Astc4X3X3SrgbBlockExt = 1000288004,
|
|
Astc4X3X3SFloatBlockExt = 1000288005,
|
|
Astc4X4X3UNormBlockExt = 1000288006,
|
|
Astc4X4X3SrgbBlockExt = 1000288007,
|
|
Astc4X4X3SFloatBlockExt = 1000288008,
|
|
Astc4X4X4UNormBlockExt = 1000288009,
|
|
Astc4X4X4SrgbBlockExt = 1000288010,
|
|
Astc4X4X4SFloatBlockExt = 1000288011,
|
|
Astc5X4X4UNormBlockExt = 1000288012,
|
|
Astc5X4X4SrgbBlockExt = 1000288013,
|
|
Astc5X4X4SFloatBlockExt = 1000288014,
|
|
Astc5X5X4UNormBlockExt = 1000288015,
|
|
Astc5X5X4SrgbBlockExt = 1000288016,
|
|
Astc5X5X4SFloatBlockExt = 1000288017,
|
|
Astc5X5X5UNormBlockExt = 1000288018,
|
|
Astc5X5X5SrgbBlockExt = 1000288019,
|
|
Astc5X5X5SFloatBlockExt = 1000288020,
|
|
Astc6X5X5UNormBlockExt = 1000288021,
|
|
Astc6X5X5SrgbBlockExt = 1000288022,
|
|
Astc6X5X5SFloatBlockExt = 1000288023,
|
|
Astc6X6X5UNormBlockExt = 1000288024,
|
|
Astc6X6X5SrgbBlockExt = 1000288025,
|
|
Astc6X6X5SFloatBlockExt = 1000288026,
|
|
Astc6X6X6UNormBlockExt = 1000288027,
|
|
Astc6X6X6SrgbBlockExt = 1000288028,
|
|
Astc6X6X6SFloatBlockExt = 1000288029,
|
|
A4R4G4B4UNormPack16Ext = 1000340000,
|
|
A4B4G4R4UNormPack16Ext = 1000340001,
|
|
MaxEnum = 0x7FFFFFFF
|
|
}
|
|
}
|