ktx-parse.cjs.map 75 KB

1
  1. {"version":3,"file":"ktx-parse.cjs","sources":["../src/constants.ts","../src/container.ts","../src/buffer-reader.ts","../src/constants-internal.ts","../src/util.ts","../src/read.ts","../src/write.ts"],"sourcesContent":["///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\n\nexport const KHR_SUPERCOMPRESSION_NONE = 0;\nexport const KHR_SUPERCOMPRESSION_BASISLZ = 1;\nexport const KHR_SUPERCOMPRESSION_ZSTD = 2;\nexport const KHR_SUPERCOMPRESSION_ZLIB = 3;\n\n///////////////////////////////////////////////////\n// Data Format Descriptor (DFD).\n///////////////////////////////////////////////////\n\nexport const KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT = 0;\nexport const KHR_DF_VENDORID_KHRONOS = 0;\nexport const KHR_DF_VERSION = 2;\n\nexport const KHR_DF_MODEL_UNSPECIFIED = 0;\nexport const KHR_DF_MODEL_RGBSDA = 1;\n// ...\nexport const KHR_DF_MODEL_ETC1 = 160;\nexport const KHR_DF_MODEL_ETC2 = 161;\nexport const KHR_DF_MODEL_ASTC = 162;\nexport const KHR_DF_MODEL_ETC1S = 163;\nexport const KHR_DF_MODEL_UASTC = 166;\n\nexport const KHR_DF_FLAG_ALPHA_STRAIGHT = 0;\nexport const KHR_DF_FLAG_ALPHA_PREMULTIPLIED = 1;\n\nexport const KHR_DF_TRANSFER_UNSPECIFIED = 0;\nexport const KHR_DF_TRANSFER_LINEAR = 1;\nexport const KHR_DF_TRANSFER_SRGB = 2;\nexport const KHR_DF_TRANSFER_ITU = 3;\nexport const KHR_DF_TRANSFER_NTSC = 4;\nexport const KHR_DF_TRANSFER_SLOG = 5;\nexport const KHR_DF_TRANSFER_SLOG2 = 6;\nexport const KHR_DF_TRANSFER_BT1886 = 7;\nexport const KHR_DF_TRANSFER_HLG_OETF = 8;\nexport const KHR_DF_TRANSFER_HLG_EOTF = 9;\nexport const KHR_DF_TRANSFER_PQ_EOTF = 10;\nexport const KHR_DF_TRANSFER_PQ_OETF = 11;\nexport const KHR_DF_TRANSFER_DCIP3 = 12;\nexport const KHR_DF_TRANSFER_PAL_OETF = 13;\nexport const KHR_DF_TRANSFER_PAL625_EOTF = 14;\nexport const KHR_DF_TRANSFER_ST240 = 15;\nexport const KHR_DF_TRANSFER_ACESCC = 16;\nexport const KHR_DF_TRANSFER_ACESCCT = 17;\nexport const KHR_DF_TRANSFER_ADOBERGB = 18;\n\nexport const KHR_DF_PRIMARIES_UNSPECIFIED = 0;\nexport const KHR_DF_PRIMARIES_BT709 = 1;\nexport const KHR_DF_PRIMARIES_BT601_EBU = 2;\nexport const KHR_DF_PRIMARIES_BT601_SMPTE = 3;\nexport const KHR_DF_PRIMARIES_BT2020 = 4;\nexport const KHR_DF_PRIMARIES_CIEXYZ = 5;\nexport const KHR_DF_PRIMARIES_ACES = 6;\nexport const KHR_DF_PRIMARIES_ACESCC = 7;\nexport const KHR_DF_PRIMARIES_NTSC1953 = 8;\nexport const KHR_DF_PRIMARIES_PAL525 = 9;\nexport const KHR_DF_PRIMARIES_DISPLAYP3 = 10;\nexport const KHR_DF_PRIMARIES_ADOBERGB = 11;\n\nexport const KHR_DF_CHANNEL_RGBSDA_RED = 0;\nexport const KHR_DF_CHANNEL_RGBSDA_GREEN = 1;\nexport const KHR_DF_CHANNEL_RGBSDA_BLUE = 2;\nexport const KHR_DF_CHANNEL_RGBSDA_STENCIL = 13;\nexport const KHR_DF_CHANNEL_RGBSDA_DEPTH = 14;\nexport const KHR_DF_CHANNEL_RGBSDA_ALPHA = 15;\n\nexport const KHR_DF_SAMPLE_DATATYPE_FLOAT = 0x80;\nexport const KHR_DF_SAMPLE_DATATYPE_SIGNED = 0x40;\nexport const KHR_DF_SAMPLE_DATATYPE_EXPONENT = 0x20;\nexport const KHR_DF_SAMPLE_DATATYPE_LINEAR = 0x10;\n\n///////////////////////////////////////////////////\n// VK FORMAT.\n///////////////////////////////////////////////////\n\nexport const VK_FORMAT_UNDEFINED = 0;\nexport const VK_FORMAT_R4G4_UNORM_PACK8 = 1;\nexport const VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2;\nexport const VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3;\nexport const VK_FORMAT_R5G6B5_UNORM_PACK16 = 4;\nexport const VK_FORMAT_B5G6R5_UNORM_PACK16 = 5;\nexport const VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6;\nexport const VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7;\nexport const VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8;\nexport const VK_FORMAT_R8_UNORM = 9;\nexport const VK_FORMAT_R8_SNORM = 10;\nexport const VK_FORMAT_R8_UINT = 13;\nexport const VK_FORMAT_R8_SINT = 14;\nexport const VK_FORMAT_R8_SRGB = 15;\nexport const VK_FORMAT_R8G8_UNORM = 16;\nexport const VK_FORMAT_R8G8_SNORM = 17;\nexport const VK_FORMAT_R8G8_UINT = 20;\nexport const VK_FORMAT_R8G8_SINT = 21;\nexport const VK_FORMAT_R8G8_SRGB = 22;\nexport const VK_FORMAT_R8G8B8_UNORM = 23;\nexport const VK_FORMAT_R8G8B8_SNORM = 24;\nexport const VK_FORMAT_R8G8B8_UINT = 27;\nexport const VK_FORMAT_R8G8B8_SINT = 28;\nexport const VK_FORMAT_R8G8B8_SRGB = 29;\nexport const VK_FORMAT_B8G8R8_UNORM = 30;\nexport const VK_FORMAT_B8G8R8_SNORM = 31;\nexport const VK_FORMAT_B8G8R8_UINT = 34;\nexport const VK_FORMAT_B8G8R8_SINT = 35;\nexport const VK_FORMAT_B8G8R8_SRGB = 36;\nexport const VK_FORMAT_R8G8B8A8_UNORM = 37;\nexport const VK_FORMAT_R8G8B8A8_SNORM = 38;\nexport const VK_FORMAT_R8G8B8A8_UINT = 41;\nexport const VK_FORMAT_R8G8B8A8_SINT = 42;\nexport const VK_FORMAT_R8G8B8A8_SRGB = 43;\nexport const VK_FORMAT_B8G8R8A8_UNORM = 44;\nexport const VK_FORMAT_B8G8R8A8_SNORM = 45;\nexport const VK_FORMAT_B8G8R8A8_UINT = 48;\nexport const VK_FORMAT_B8G8R8A8_SINT = 49;\nexport const VK_FORMAT_B8G8R8A8_SRGB = 50;\nexport const VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58;\nexport const VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59;\nexport const VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62;\nexport const VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63;\nexport const VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64;\nexport const VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65;\nexport const VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68;\nexport const VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69;\nexport const VK_FORMAT_R16_UNORM = 70;\nexport const VK_FORMAT_R16_SNORM = 71;\nexport const VK_FORMAT_R16_UINT = 74;\nexport const VK_FORMAT_R16_SINT = 75;\nexport const VK_FORMAT_R16_SFLOAT = 76;\nexport const VK_FORMAT_R16G16_UNORM = 77;\nexport const VK_FORMAT_R16G16_SNORM = 78;\nexport const VK_FORMAT_R16G16_UINT = 81;\nexport const VK_FORMAT_R16G16_SINT = 82;\nexport const VK_FORMAT_R16G16_SFLOAT = 83;\nexport const VK_FORMAT_R16G16B16_UNORM = 84;\nexport const VK_FORMAT_R16G16B16_SNORM = 85;\nexport const VK_FORMAT_R16G16B16_UINT = 88;\nexport const VK_FORMAT_R16G16B16_SINT = 89;\nexport const VK_FORMAT_R16G16B16_SFLOAT = 90;\nexport const VK_FORMAT_R16G16B16A16_UNORM = 91;\nexport const VK_FORMAT_R16G16B16A16_SNORM = 92;\nexport const VK_FORMAT_R16G16B16A16_UINT = 95;\nexport const VK_FORMAT_R16G16B16A16_SINT = 96;\nexport const VK_FORMAT_R16G16B16A16_SFLOAT = 97;\nexport const VK_FORMAT_R32_UINT = 98;\nexport const VK_FORMAT_R32_SINT = 99;\nexport const VK_FORMAT_R32_SFLOAT = 100;\nexport const VK_FORMAT_R32G32_UINT = 101;\nexport const VK_FORMAT_R32G32_SINT = 102;\nexport const VK_FORMAT_R32G32_SFLOAT = 103;\nexport const VK_FORMAT_R32G32B32_UINT = 104;\nexport const VK_FORMAT_R32G32B32_SINT = 105;\nexport const VK_FORMAT_R32G32B32_SFLOAT = 106;\nexport const VK_FORMAT_R32G32B32A32_UINT = 107;\nexport const VK_FORMAT_R32G32B32A32_SINT = 108;\nexport const VK_FORMAT_R32G32B32A32_SFLOAT = 109;\nexport const VK_FORMAT_R64_UINT = 110;\nexport const VK_FORMAT_R64_SINT = 111;\nexport const VK_FORMAT_R64_SFLOAT = 112;\nexport const VK_FORMAT_R64G64_UINT = 113;\nexport const VK_FORMAT_R64G64_SINT = 114;\nexport const VK_FORMAT_R64G64_SFLOAT = 115;\nexport const VK_FORMAT_R64G64B64_UINT = 116;\nexport const VK_FORMAT_R64G64B64_SINT = 117;\nexport const VK_FORMAT_R64G64B64_SFLOAT = 118;\nexport const VK_FORMAT_R64G64B64A64_UINT = 119;\nexport const VK_FORMAT_R64G64B64A64_SINT = 120;\nexport const VK_FORMAT_R64G64B64A64_SFLOAT = 121;\nexport const VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122;\nexport const VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123;\nexport const VK_FORMAT_D16_UNORM = 124;\nexport const VK_FORMAT_X8_D24_UNORM_PACK32 = 125;\nexport const VK_FORMAT_D32_SFLOAT = 126;\nexport const VK_FORMAT_S8_UINT = 127;\nexport const VK_FORMAT_D16_UNORM_S8_UINT = 128;\nexport const VK_FORMAT_D24_UNORM_S8_UINT = 129;\nexport const VK_FORMAT_D32_SFLOAT_S8_UINT = 130;\nexport const VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131;\nexport const VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132;\nexport const VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133;\nexport const VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134;\nexport const VK_FORMAT_BC2_UNORM_BLOCK = 135;\nexport const VK_FORMAT_BC2_SRGB_BLOCK = 136;\nexport const VK_FORMAT_BC3_UNORM_BLOCK = 137;\nexport const VK_FORMAT_BC3_SRGB_BLOCK = 138;\nexport const VK_FORMAT_BC4_UNORM_BLOCK = 139;\nexport const VK_FORMAT_BC4_SNORM_BLOCK = 140;\nexport const VK_FORMAT_BC5_UNORM_BLOCK = 141;\nexport const VK_FORMAT_BC5_SNORM_BLOCK = 142;\nexport const VK_FORMAT_BC6H_UFLOAT_BLOCK = 143;\nexport const VK_FORMAT_BC6H_SFLOAT_BLOCK = 144;\nexport const VK_FORMAT_BC7_UNORM_BLOCK = 145;\nexport const VK_FORMAT_BC7_SRGB_BLOCK = 146;\nexport const VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147;\nexport const VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148;\nexport const VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149;\nexport const VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150;\nexport const VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151;\nexport const VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152;\nexport const VK_FORMAT_EAC_R11_UNORM_BLOCK = 153;\nexport const VK_FORMAT_EAC_R11_SNORM_BLOCK = 154;\nexport const VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155;\nexport const VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156;\nexport const VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157;\nexport const VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158;\nexport const VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159;\nexport const VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160;\nexport const VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161;\nexport const VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162;\nexport const VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163;\nexport const VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164;\nexport const VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165;\nexport const VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166;\nexport const VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167;\nexport const VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168;\nexport const VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169;\nexport const VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170;\nexport const VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171;\nexport const VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172;\nexport const VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173;\nexport const VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174;\nexport const VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175;\nexport const VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176;\nexport const VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177;\nexport const VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178;\nexport const VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179;\nexport const VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180;\nexport const VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181;\nexport const VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182;\nexport const VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183;\nexport const VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184;\nexport const VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007;\nexport const VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008;\nexport const VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009;\nexport const VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010;\nexport const VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011;\nexport const VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017;\nexport const VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018;\nexport const VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019;\nexport const VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020;\nexport const VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021;\nexport const VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000;\nexport const VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001;\nexport const VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002;\nexport const VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003;\nexport const VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004;\nexport const VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005;\nexport const VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006;\nexport const VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007;\nexport const VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000;\nexport const VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001;\nexport const VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002;\nexport const VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003;\nexport const VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004;\nexport const VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005;\nexport const VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006;\nexport const VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007;\nexport const VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008;\nexport const VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009;\nexport const VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010;\nexport const VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011;\nexport const VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012;\nexport const VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013;\nexport const VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000;\nexport const VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001;\n","import {\n\tKHR_DF_FLAG_ALPHA_STRAIGHT,\n\tKHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT,\n\tKHR_DF_MODEL_UNSPECIFIED,\n\tKHR_DF_PRIMARIES_BT709,\n\tKHR_DF_TRANSFER_SRGB,\n\tKHR_DF_VENDORID_KHRONOS,\n\tKHR_DF_VERSION,\n\tKHR_SUPERCOMPRESSION_NONE,\n\tVK_FORMAT_UNDEFINED,\n} from './constants.js';\n\n/**\n * Represents an unpacked KTX 2.0 texture container. Data for individual mip levels are stored in\n * the `.levels` array, typically compressed in Basis Universal formats. Additional properties\n * provide metadata required to process, transcode, and upload these textures.\n */\nexport class KTX2Container {\n\t/**\n\t * Specifies the image format using Vulkan VkFormat enum values. When using Basis Universal\n\t * texture formats, `vkFormat` must be VK_FORMAT_UNDEFINED.\n\t */\n\tpublic vkFormat = VK_FORMAT_UNDEFINED;\n\n\t/**\n\t * Size of the data type in bytes used to upload the data to a graphics API. When `vkFormat` is\n\t * VK_FORMAT_UNDEFINED, `typeSize` must be 1.\n\t */\n\tpublic typeSize = 1;\n\n\t/** Width of the texture image for level 0, in pixels. */\n\tpublic pixelWidth = 0;\n\n\t/** Height of the texture image for level 0, in pixels. */\n\tpublic pixelHeight = 0;\n\n\t/** Depth of the texture image for level 0, in pixels (3D textures only). */\n\tpublic pixelDepth = 0;\n\n\t/** Number of array elements (array textures only). */\n\tpublic layerCount = 0;\n\n\t/**\n\t * Number of cubemap faces. For cubemaps and cubemap arrays, `faceCount` must be 6. For all\n\t * other textures, `faceCount` must be 1. Cubemap faces are stored in +X, -X, +Y, -Y, +Z, -Z\n\t * order.\n\t */\n\tpublic faceCount = 1;\n\n\t/** Indicates which supercompression scheme has been applied to mip level images, if any. */\n\tpublic supercompressionScheme = KHR_SUPERCOMPRESSION_NONE;\n\n\t/** Mip levels, ordered largest (original) to smallest (~1px). */\n\tpublic levels: KTX2Level[] = [];\n\n\t/** Data Format Descriptor. */\n\tpublic dataFormatDescriptor: KTX2DataFormatDescriptorBasicFormat[] = [\n\t\t{\n\t\t\tvendorId: KHR_DF_VENDORID_KHRONOS,\n\t\t\tdescriptorType: KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT,\n\t\t\tdescriptorBlockSize: 0,\n\t\t\tversionNumber: KHR_DF_VERSION,\n\t\t\tcolorModel: KHR_DF_MODEL_UNSPECIFIED,\n\t\t\tcolorPrimaries: KHR_DF_PRIMARIES_BT709,\n\t\t\ttransferFunction: KHR_DF_TRANSFER_SRGB,\n\t\t\tflags: KHR_DF_FLAG_ALPHA_STRAIGHT,\n\t\t\ttexelBlockDimension: [0, 0, 0, 0],\n\t\t\tbytesPlane: [0, 0, 0, 0, 0, 0, 0, 0],\n\t\t\tsamples: [],\n\t\t},\n\t];\n\n\t/** Key/Value Data. */\n\tpublic keyValue: { [key: string]: string | Uint8Array } = {};\n\n\t/** Supercompression Global Data. */\n\tpublic globalData: KTX2GlobalDataBasisLZ | null = null;\n}\n\n///////////////////////////////////////////////////\n// Mip Levels.\n///////////////////////////////////////////////////\n\nexport interface KTX2Level {\n\t/** Compressed data of the mip level. */\n\tlevelData: Uint8Array;\n\n\t/**\n\t * Size of the mip level after reflation from supercompression, if applicable. When\n\t * `supercompressionType` is BASISLZ, `uncompressedByteLength` must be 0. When\n\t * `supercompressionType` is `NONE`, `uncompressedByteLength` must match the `levelData` byte\n\t * length.\n\t *\n\t * _**NOTICE:** this implies that for formats such as UASTC, `uncompressedByteLength` may\n\t * indicate size after ZSTD reflation (and of transcoded ASTC data), but does _not_ indicate\n\t * size of decoded RGBA32 pixels._\n\t */\n\tuncompressedByteLength: number;\n}\n\n///////////////////////////////////////////////////\n// Data Format Descriptor (DFD).\n///////////////////////////////////////////////////\n\nexport interface KTX2DataFormatDescriptorBasicFormat {\n\tvendorId: number;\n\tdescriptorType: number;\n\tversionNumber: number;\n\t/** @deprecated Inferred. */\n\tdescriptorBlockSize: number;\n\tcolorModel: number;\n\tcolorPrimaries: number;\n\ttransferFunction: number;\n\tflags: number;\n\ttexelBlockDimension: [number, number, number, number];\n\tbytesPlane: [number, number, number, number, number, number, number, number];\n\tsamples: KTX2BasicFormatSample[];\n}\n\nexport interface KTX2BasicFormatSample {\n\tbitOffset: number;\n\tbitLength: number;\n\t/** @deprecated Renamed to 'channelType'. */\n\tchannelID?: number;\n\tchannelType: number;\n\tsamplePosition: number[];\n\tsampleLower: number;\n\tsampleUpper: number;\n}\n\n///////////////////////////////////////////////////\n// Supercompression Global Data.\n///////////////////////////////////////////////////\n\nexport interface KTX2GlobalDataBasisLZ {\n\tendpointCount: number;\n\tselectorCount: number;\n\timageDescs: KTX2GlobalDataBasisLZImageDesc[];\n\tendpointsData: Uint8Array;\n\tselectorsData: Uint8Array;\n\ttablesData: Uint8Array;\n\textendedData: Uint8Array;\n}\n\ninterface KTX2GlobalDataBasisLZImageDesc {\n\timageFlags: number;\n\trgbSliceByteOffset: number;\n\trgbSliceByteLength: number;\n\talphaSliceByteOffset: number;\n\talphaSliceByteLength: number;\n}\n","export class BufferReader {\n\tprivate _dataView: DataView;\n\tprivate _littleEndian: boolean;\n\tpublic _offset: number;\n\n\tconstructor(data: Uint8Array, byteOffset: number, byteLength: number, littleEndian: boolean) {\n\t\tthis._dataView = new DataView(data.buffer, data.byteOffset + byteOffset, byteLength);\n\t\tthis._littleEndian = littleEndian;\n\t\tthis._offset = 0;\n\t}\n\n\t_nextUint8() {\n\t\tconst value = this._dataView.getUint8(this._offset);\n\t\tthis._offset += 1;\n\t\treturn value;\n\t}\n\n\t_nextUint16() {\n\t\tconst value = this._dataView.getUint16(this._offset, this._littleEndian);\n\t\tthis._offset += 2;\n\t\treturn value;\n\t}\n\n\t_nextUint32() {\n\t\tconst value = this._dataView.getUint32(this._offset, this._littleEndian);\n\t\tthis._offset += 4;\n\t\treturn value;\n\t}\n\n\t_nextUint64() {\n\t\tconst left = this._dataView.getUint32(this._offset, this._littleEndian);\n\t\tconst right = this._dataView.getUint32(this._offset + 4, this._littleEndian);\n\t\t// TODO(cleanup): Just test this...\n\t\t// const value = this._littleEndian ? left + (2 ** 32 * right) : (2 ** 32 * left) + right;\n\t\tconst value = left + 2 ** 32 * right;\n\t\tthis._offset += 8;\n\t\treturn value;\n\t}\n\n\t_nextInt32() {\n\t\tconst value = this._dataView.getInt32(this._offset, this._littleEndian);\n\t\tthis._offset += 4;\n\t\treturn value;\n\t}\n\n\t_skip(bytes: number) {\n\t\tthis._offset += bytes;\n\t\treturn this;\n\t}\n\n\t_scan(maxByteLength: number, term = 0x00): Uint8Array {\n\t\tconst byteOffset = this._offset;\n\t\tlet byteLength = 0;\n\t\twhile (this._dataView.getUint8(this._offset) !== term && byteLength < maxByteLength) {\n\t\t\tbyteLength++;\n\t\t\tthis._offset++;\n\t\t}\n\n\t\tif (byteLength < maxByteLength) this._offset++;\n\n\t\treturn new Uint8Array(this._dataView.buffer, this._dataView.byteOffset + byteOffset, byteLength);\n\t}\n}\n","///////////////////////////////////////////////////\n// Common.\n///////////////////////////////////////////////////\n\n// Injected at compile time, from $npm_package_version.\ndeclare const PACKAGE_VERSION: string;\n\nexport const KTX_WRITER = `KTX-Parse v${PACKAGE_VERSION}`;\n\nexport const NUL = new Uint8Array([0x00]);\n\n///////////////////////////////////////////////////\n// KTX2 Header.\n///////////////////////////////////////////////////\n\nexport const KTX2_ID = [\n\t// '´', 'K', 'T', 'X', '2', '0', 'ª', '\\r', '\\n', '\\x1A', '\\n'\n\t0xab, 0x4b, 0x54, 0x58, 0x20, 0x32, 0x30, 0xbb, 0x0d, 0x0a, 0x1a, 0x0a,\n];\n\nexport const HEADER_BYTE_LENGTH = 68; // 13 * 4 + 2 * 8\n","/** Encodes text to an ArrayBuffer. */\nexport function encodeText(text: string): Uint8Array {\n\tif (typeof TextEncoder !== 'undefined') {\n\t\treturn new TextEncoder().encode(text);\n\t}\n\treturn Buffer.from(text);\n}\n\n/** Decodes an ArrayBuffer to text. */\nexport function decodeText(buffer: Uint8Array): string {\n\tif (typeof TextDecoder !== 'undefined') {\n\t\treturn new TextDecoder().decode(buffer);\n\t}\n\treturn Buffer.from(buffer).toString('utf8');\n}\n\n/** Concatenates N ArrayBuffers. */\nexport function concat(buffers: (ArrayBuffer | Uint8Array)[]): Uint8Array {\n\tlet totalByteLength = 0;\n\tfor (const buffer of buffers) {\n\t\ttotalByteLength += buffer.byteLength;\n\t}\n\n\tconst result = new Uint8Array(totalByteLength);\n\tlet byteOffset = 0;\n\n\tfor (const buffer of buffers) {\n\t\tresult.set(new Uint8Array(buffer), byteOffset);\n\t\tbyteOffset += buffer.byteLength;\n\t}\n\n\treturn result;\n}\n","import { BufferReader } from './buffer-reader.js';\nimport { KHR_DF_SAMPLE_DATATYPE_SIGNED } from './constants.js';\nimport { KTX2_ID } from './constants-internal.js';\nimport { KTX2Container, KTX2DataFormatDescriptorBasicFormat } from './container.js';\nimport { decodeText } from './util.js';\n\n/**\n * Parses a KTX 2.0 file, returning an unpacked {@link KTX2Container} instance with all associated\n * data. The container's mip levels and other binary data are pointers into the original file, not\n * copies, so the original file should not be overwritten after reading.\n *\n * @param data Bytes of KTX 2.0 file, as Uint8Array or Buffer.\n */\nexport function read(data: Uint8Array): KTX2Container {\n\t///////////////////////////////////////////////////\n\t// KTX 2.0 Identifier.\n\t///////////////////////////////////////////////////\n\n\tconst id = new Uint8Array(data.buffer, data.byteOffset, KTX2_ID.length);\n\tif (\n\t\tid[0] !== KTX2_ID[0] || // '´'\n\t\tid[1] !== KTX2_ID[1] || // 'K'\n\t\tid[2] !== KTX2_ID[2] || // 'T'\n\t\tid[3] !== KTX2_ID[3] || // 'X'\n\t\tid[4] !== KTX2_ID[4] || // ' '\n\t\tid[5] !== KTX2_ID[5] || // '2'\n\t\tid[6] !== KTX2_ID[6] || // '0'\n\t\tid[7] !== KTX2_ID[7] || // 'ª'\n\t\tid[8] !== KTX2_ID[8] || // '\\r'\n\t\tid[9] !== KTX2_ID[9] || // '\\n'\n\t\tid[10] !== KTX2_ID[10] || // '\\x1A'\n\t\tid[11] !== KTX2_ID[11] // '\\n'\n\t) {\n\t\tthrow new Error('Missing KTX 2.0 identifier.');\n\t}\n\n\tconst container = new KTX2Container();\n\n\t///////////////////////////////////////////////////\n\t// Header.\n\t///////////////////////////////////////////////////\n\n\tconst headerByteLength = 17 * Uint32Array.BYTES_PER_ELEMENT;\n\tconst headerReader = new BufferReader(data, KTX2_ID.length, headerByteLength, true);\n\n\tcontainer.vkFormat = headerReader._nextUint32();\n\tcontainer.typeSize = headerReader._nextUint32();\n\tcontainer.pixelWidth = headerReader._nextUint32();\n\tcontainer.pixelHeight = headerReader._nextUint32();\n\tcontainer.pixelDepth = headerReader._nextUint32();\n\tcontainer.layerCount = headerReader._nextUint32();\n\tcontainer.faceCount = headerReader._nextUint32();\n\n\tconst levelCount = headerReader._nextUint32();\n\n\tcontainer.supercompressionScheme = headerReader._nextUint32();\n\n\tconst dfdByteOffset = headerReader._nextUint32();\n\tconst dfdByteLength = headerReader._nextUint32();\n\tconst kvdByteOffset = headerReader._nextUint32();\n\tconst kvdByteLength = headerReader._nextUint32();\n\tconst sgdByteOffset = headerReader._nextUint64();\n\tconst sgdByteLength = headerReader._nextUint64();\n\n\t///////////////////////////////////////////////////\n\t// Level Index.\n\t///////////////////////////////////////////////////\n\n\tconst levelByteLength = levelCount * 3 * 8;\n\tconst levelReader = new BufferReader(data, KTX2_ID.length + headerByteLength, levelByteLength, true);\n\n\tfor (let i = 0; i < levelCount; i++) {\n\t\tcontainer.levels.push({\n\t\t\tlevelData: new Uint8Array(\n\t\t\t\tdata.buffer,\n\t\t\t\tdata.byteOffset + levelReader._nextUint64(),\n\t\t\t\tlevelReader._nextUint64()\n\t\t\t),\n\t\t\tuncompressedByteLength: levelReader._nextUint64(),\n\t\t});\n\t}\n\n\t///////////////////////////////////////////////////\n\t// Data Format Descriptor (DFD).\n\t///////////////////////////////////////////////////\n\n\tconst dfdReader = new BufferReader(data, dfdByteOffset, dfdByteLength, true);\n\n\tconst dfd: KTX2DataFormatDescriptorBasicFormat = {\n\t\tvendorId: dfdReader._skip(4 /* totalSize */)._nextUint16(),\n\t\tdescriptorType: dfdReader._nextUint16(),\n\t\tversionNumber: dfdReader._nextUint16(),\n\t\tdescriptorBlockSize: dfdReader._nextUint16(),\n\t\tcolorModel: dfdReader._nextUint8(),\n\t\tcolorPrimaries: dfdReader._nextUint8(),\n\t\ttransferFunction: dfdReader._nextUint8(),\n\t\tflags: dfdReader._nextUint8(),\n\t\ttexelBlockDimension: [\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t],\n\t\tbytesPlane: [\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t\tdfdReader._nextUint8(),\n\t\t],\n\t\tsamples: [],\n\t};\n\n\tconst sampleStart = 6;\n\tconst sampleWords = 4;\n\tconst numSamples = (dfd.descriptorBlockSize / 4 - sampleStart) / sampleWords;\n\n\tfor (let i = 0; i < numSamples; i++) {\n\t\tconst sample = {\n\t\t\tbitOffset: dfdReader._nextUint16(),\n\t\t\tbitLength: dfdReader._nextUint8(),\n\t\t\tchannelType: dfdReader._nextUint8(),\n\t\t\tsamplePosition: [\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t\tdfdReader._nextUint8(),\n\t\t\t],\n\t\t\tsampleLower: -Infinity,\n\t\t\tsampleUpper: Infinity,\n\t\t};\n\n\t\tif (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {\n\t\t\tsample.sampleLower = dfdReader._nextInt32();\n\t\t\tsample.sampleUpper = dfdReader._nextInt32();\n\t\t} else {\n\t\t\tsample.sampleLower = dfdReader._nextUint32();\n\t\t\tsample.sampleUpper = dfdReader._nextUint32();\n\t\t}\n\n\t\tdfd.samples[i] = sample;\n\t}\n\n\tcontainer.dataFormatDescriptor.length = 0;\n\tcontainer.dataFormatDescriptor.push(dfd);\n\n\t///////////////////////////////////////////////////\n\t// Key/Value Data (KVD).\n\t///////////////////////////////////////////////////\n\n\tconst kvdReader = new BufferReader(data, kvdByteOffset, kvdByteLength, true);\n\n\twhile (kvdReader._offset < kvdByteLength) {\n\t\tconst keyValueByteLength = kvdReader._nextUint32();\n\t\tconst keyData = kvdReader._scan(keyValueByteLength);\n\t\tconst key = decodeText(keyData);\n\n\t\tconst valueData = kvdReader._scan(keyValueByteLength - keyData.byteLength);\n\t\tcontainer.keyValue[key] = key.match(/^ktx/i) ? decodeText(valueData) : valueData;\n\n\t\t// 4-byte alignment.\n\t\tif (kvdReader._offset % 4) kvdReader._skip(4 - (kvdReader._offset % 4));\n\t}\n\n\t///////////////////////////////////////////////////\n\t// Supercompression Global Data (SGD).\n\t///////////////////////////////////////////////////\n\n\tif (sgdByteLength <= 0) return container;\n\n\tconst sgdReader = new BufferReader(data, sgdByteOffset, sgdByteLength, true);\n\n\tconst endpointCount = sgdReader._nextUint16();\n\tconst selectorCount = sgdReader._nextUint16();\n\tconst endpointsByteLength = sgdReader._nextUint32();\n\tconst selectorsByteLength = sgdReader._nextUint32();\n\tconst tablesByteLength = sgdReader._nextUint32();\n\tconst extendedByteLength = sgdReader._nextUint32();\n\n\tconst imageDescs = [];\n\tfor (let i = 0; i < levelCount; i++) {\n\t\timageDescs.push({\n\t\t\timageFlags: sgdReader._nextUint32(),\n\t\t\trgbSliceByteOffset: sgdReader._nextUint32(),\n\t\t\trgbSliceByteLength: sgdReader._nextUint32(),\n\t\t\talphaSliceByteOffset: sgdReader._nextUint32(),\n\t\t\talphaSliceByteLength: sgdReader._nextUint32(),\n\t\t});\n\t}\n\n\tconst endpointsByteOffset = sgdByteOffset + sgdReader._offset;\n\tconst selectorsByteOffset = endpointsByteOffset + endpointsByteLength;\n\tconst tablesByteOffset = selectorsByteOffset + selectorsByteLength;\n\tconst extendedByteOffset = tablesByteOffset + tablesByteLength;\n\n\tconst endpointsData = new Uint8Array(data.buffer, data.byteOffset + endpointsByteOffset, endpointsByteLength);\n\tconst selectorsData = new Uint8Array(data.buffer, data.byteOffset + selectorsByteOffset, selectorsByteLength);\n\tconst tablesData = new Uint8Array(data.buffer, data.byteOffset + tablesByteOffset, tablesByteLength);\n\tconst extendedData = new Uint8Array(data.buffer, data.byteOffset + extendedByteOffset, extendedByteLength);\n\n\tcontainer.globalData = {\n\t\tendpointCount,\n\t\tselectorCount,\n\t\timageDescs,\n\t\tendpointsData,\n\t\tselectorsData,\n\t\ttablesData,\n\t\textendedData,\n\t};\n\n\treturn container;\n}\n","import { HEADER_BYTE_LENGTH, KTX2_ID, KTX_WRITER, NUL } from './constants-internal.js';\nimport { KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT, KHR_DF_SAMPLE_DATATYPE_SIGNED } from './constants.js';\nimport { KTX2Container } from './container.js';\nimport { concat, encodeText } from './util.js';\n\ninterface WriteOptions {\n\tkeepWriter?: boolean;\n}\nconst DEFAULT_OPTIONS: WriteOptions = { keepWriter: false };\n\n/**\n * Serializes a {@link KTX2Container} instance to a KTX 2.0 file. Mip levels and other binary data\n * are copied into the resulting Uint8Array, so the original container can safely be edited or\n * destroyed after it is serialized.\n *\n * Options:\n * - keepWriter: If true, 'KTXWriter' key/value field is written as provided by the container.\n * \t\tOtherwise, a string for the current ktx-parse version is generated. Default: false.\n *\n * @param container\n * @param options\n */\nexport function write(container: KTX2Container, options: WriteOptions = {}): Uint8Array {\n\toptions = { ...DEFAULT_OPTIONS, ...options };\n\n\t///////////////////////////////////////////////////\n\t// Supercompression Global Data (SGD).\n\t///////////////////////////////////////////////////\n\n\tlet sgdBuffer = new ArrayBuffer(0);\n\tif (container.globalData) {\n\t\tconst sgdHeaderBuffer = new ArrayBuffer(20 + container.globalData.imageDescs.length * 5 * 4);\n\t\tconst sgdHeaderView = new DataView(sgdHeaderBuffer);\n\t\tsgdHeaderView.setUint16(0, container.globalData.endpointCount, true);\n\t\tsgdHeaderView.setUint16(2, container.globalData.selectorCount, true);\n\t\tsgdHeaderView.setUint32(4, container.globalData.endpointsData.byteLength, true);\n\t\tsgdHeaderView.setUint32(8, container.globalData.selectorsData.byteLength, true);\n\t\tsgdHeaderView.setUint32(12, container.globalData.tablesData.byteLength, true);\n\t\tsgdHeaderView.setUint32(16, container.globalData.extendedData.byteLength, true);\n\n\t\tfor (let i = 0; i < container.globalData.imageDescs.length; i++) {\n\t\t\tconst imageDesc = container.globalData.imageDescs[i];\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 0, imageDesc.imageFlags, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 4, imageDesc.rgbSliceByteOffset, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 8, imageDesc.rgbSliceByteLength, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 12, imageDesc.alphaSliceByteOffset, true);\n\t\t\tsgdHeaderView.setUint32(20 + i * 5 * 4 + 16, imageDesc.alphaSliceByteLength, true);\n\t\t}\n\n\t\tsgdBuffer = concat([\n\t\t\tsgdHeaderBuffer,\n\t\t\tcontainer.globalData.endpointsData,\n\t\t\tcontainer.globalData.selectorsData,\n\t\t\tcontainer.globalData.tablesData,\n\t\t\tcontainer.globalData.extendedData,\n\t\t]);\n\t}\n\n\t///////////////////////////////////////////////////\n\t// Key/Value Data (KVD).\n\t///////////////////////////////////////////////////\n\n\tconst keyValueData: Uint8Array[] = [];\n\tlet keyValue = container.keyValue;\n\n\tif (!options.keepWriter) {\n\t\tkeyValue = { ...container.keyValue, KTXwriter: KTX_WRITER };\n\t}\n\n\tfor (const key in keyValue) {\n\t\tconst value = keyValue[key];\n\t\tconst keyData = encodeText(key);\n\t\tconst valueData = typeof value === 'string' ? encodeText(value) : value;\n\t\tconst kvByteLength = keyData.byteLength + 1 + valueData.byteLength + 1;\n\t\tconst kvPadding = kvByteLength % 4 ? 4 - (kvByteLength % 4) : 0; // align(4)\n\t\tkeyValueData.push(\n\t\t\tconcat([\n\t\t\t\tnew Uint32Array([kvByteLength]),\n\t\t\t\tkeyData,\n\t\t\t\tNUL,\n\t\t\t\tvalueData,\n\t\t\t\tNUL,\n\t\t\t\tnew Uint8Array(kvPadding).fill(0x00), // align(4)\n\t\t\t])\n\t\t);\n\t}\n\n\tconst kvdBuffer = concat(keyValueData);\n\n\t///////////////////////////////////////////////////\n\t// Data Format Descriptor (DFD).\n\t///////////////////////////////////////////////////\n\n\tif (\n\t\tcontainer.dataFormatDescriptor.length !== 1 ||\n\t\tcontainer.dataFormatDescriptor[0].descriptorType !== KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT\n\t) {\n\t\tthrow new Error('Only BASICFORMAT Data Format Descriptor output supported.');\n\t}\n\n\tconst dfd = container.dataFormatDescriptor[0];\n\n\tconst dfdBuffer = new ArrayBuffer(28 + dfd.samples.length * 16);\n\tconst dfdView = new DataView(dfdBuffer);\n\tconst descriptorBlockSize = 24 + dfd.samples.length * 16;\n\n\tdfdView.setUint32(0, dfdBuffer.byteLength, true);\n\tdfdView.setUint16(4, dfd.vendorId, true);\n\tdfdView.setUint16(6, dfd.descriptorType, true);\n\tdfdView.setUint16(8, dfd.versionNumber, true);\n\tdfdView.setUint16(10, descriptorBlockSize, true);\n\n\tdfdView.setUint8(12, dfd.colorModel);\n\tdfdView.setUint8(13, dfd.colorPrimaries);\n\tdfdView.setUint8(14, dfd.transferFunction);\n\tdfdView.setUint8(15, dfd.flags);\n\n\tif (!Array.isArray(dfd.texelBlockDimension)) {\n\t\tthrow new Error('texelBlockDimension is now an array. For dimensionality `d`, set `d - 1`.');\n\t}\n\n\tdfdView.setUint8(16, dfd.texelBlockDimension[0]);\n\tdfdView.setUint8(17, dfd.texelBlockDimension[1]);\n\tdfdView.setUint8(18, dfd.texelBlockDimension[2]);\n\tdfdView.setUint8(19, dfd.texelBlockDimension[3]);\n\n\tfor (let i = 0; i < 8; i++) dfdView.setUint8(20 + i, dfd.bytesPlane[i]);\n\n\tfor (let i = 0; i < dfd.samples.length; i++) {\n\t\tconst sample = dfd.samples[i];\n\t\tconst sampleByteOffset = 28 + i * 16;\n\n\t\tif (sample.channelID) {\n\t\t\tthrow new Error('channelID has been renamed to channelType.');\n\t\t}\n\n\t\tdfdView.setUint16(sampleByteOffset + 0, sample.bitOffset, true);\n\t\tdfdView.setUint8(sampleByteOffset + 2, sample.bitLength);\n\t\tdfdView.setUint8(sampleByteOffset + 3, sample.channelType);\n\n\t\tdfdView.setUint8(sampleByteOffset + 4, sample.samplePosition[0]);\n\t\tdfdView.setUint8(sampleByteOffset + 5, sample.samplePosition[1]);\n\t\tdfdView.setUint8(sampleByteOffset + 6, sample.samplePosition[2]);\n\t\tdfdView.setUint8(sampleByteOffset + 7, sample.samplePosition[3]);\n\n\t\tif (sample.channelType & KHR_DF_SAMPLE_DATATYPE_SIGNED) {\n\t\t\tdfdView.setInt32(sampleByteOffset + 8, sample.sampleLower, true);\n\t\t\tdfdView.setInt32(sampleByteOffset + 12, sample.sampleUpper, true);\n\t\t} else {\n\t\t\tdfdView.setUint32(sampleByteOffset + 8, sample.sampleLower, true);\n\t\t\tdfdView.setUint32(sampleByteOffset + 12, sample.sampleUpper, true);\n\t\t}\n\t}\n\n\t///////////////////////////////////////////////////\n\t// Data alignment.\n\t///////////////////////////////////////////////////\n\n\tconst dfdByteOffset = KTX2_ID.length + HEADER_BYTE_LENGTH + container.levels.length * 3 * 8;\n\tconst kvdByteOffset = dfdByteOffset + dfdBuffer.byteLength;\n\tlet sgdByteOffset = sgdBuffer.byteLength > 0 ? kvdByteOffset + kvdBuffer.byteLength : 0;\n\tif (sgdByteOffset % 8) sgdByteOffset += 8 - (sgdByteOffset % 8); // align(8)\n\n\t///////////////////////////////////////////////////\n\t// Level Index.\n\t///////////////////////////////////////////////////\n\n\tconst levelData: Uint8Array[] = [];\n\tconst levelIndex = new DataView(new ArrayBuffer(container.levels.length * 3 * 8));\n\n\tlet levelDataByteOffset = (sgdByteOffset || kvdByteOffset + kvdBuffer.byteLength) + sgdBuffer.byteLength;\n\tfor (let i = 0; i < container.levels.length; i++) {\n\t\tconst level = container.levels[i];\n\t\tlevelData.push(level.levelData);\n\t\tlevelIndex.setBigUint64(i * 24 + 0, BigInt(levelDataByteOffset), true);\n\t\tlevelIndex.setBigUint64(i * 24 + 8, BigInt(level.levelData.byteLength), true);\n\t\tlevelIndex.setBigUint64(i * 24 + 16, BigInt(level.uncompressedByteLength), true);\n\t\tlevelDataByteOffset += level.levelData.byteLength;\n\t}\n\n\t///////////////////////////////////////////////////\n\t// Header.\n\t///////////////////////////////////////////////////\n\n\tconst headerBuffer = new ArrayBuffer(HEADER_BYTE_LENGTH);\n\tconst headerView = new DataView(headerBuffer);\n\theaderView.setUint32(0, container.vkFormat, true);\n\theaderView.setUint32(4, container.typeSize, true);\n\theaderView.setUint32(8, container.pixelWidth, true);\n\theaderView.setUint32(12, container.pixelHeight, true);\n\theaderView.setUint32(16, container.pixelDepth, true);\n\theaderView.setUint32(20, container.layerCount, true);\n\theaderView.setUint32(24, container.faceCount, true);\n\theaderView.setUint32(28, container.levels.length, true);\n\theaderView.setUint32(32, container.supercompressionScheme, true);\n\n\theaderView.setUint32(36, dfdByteOffset, true);\n\theaderView.setUint32(40, dfdBuffer.byteLength, true);\n\theaderView.setUint32(44, kvdByteOffset, true);\n\theaderView.setUint32(48, kvdBuffer.byteLength, true);\n\theaderView.setBigUint64(52, BigInt(sgdBuffer.byteLength > 0 ? sgdByteOffset : 0), true);\n\theaderView.setBigUint64(60, BigInt(sgdBuffer.byteLength), true);\n\n\t///////////////////////////////////////////////////\n\t// Compose.\n\t///////////////////////////////////////////////////\n\n\treturn new Uint8Array(\n\t\tconcat([\n\t\t\tnew Uint8Array(KTX2_ID).buffer,\n\t\t\theaderBuffer,\n\t\t\tlevelIndex.buffer,\n\t\t\tdfdBuffer,\n\t\t\tkvdBuffer,\n\t\t\tsgdByteOffset > 0\n\t\t\t\t? new ArrayBuffer(sgdByteOffset - (kvdByteOffset + kvdBuffer.byteLength)) // align(8)\n\t\t\t\t: new ArrayBuffer(0),\n\t\t\tsgdBuffer,\n\t\t\t...levelData,\n\t\t])\n\t);\n}\n"],"names":["KHR_SUPERCOMPRESSION_NONE","KHR_SUPERCOMPRESSION_BASISLZ","KHR_SUPERCOMPRESSION_ZSTD","KHR_SUPERCOMPRESSION_ZLIB","KHR_DF_KHR_DESCRIPTORTYPE_BASICFORMAT","KHR_DF_VENDORID_KHRONOS","KHR_DF_VERSION","KHR_DF_MODEL_UNSPECIFIED","KHR_DF_MODEL_RGBSDA","KHR_DF_MODEL_ETC1","KHR_DF_MODEL_ETC2","KHR_DF_MODEL_ASTC","KHR_DF_MODEL_ETC1S","KHR_DF_MODEL_UASTC","KHR_DF_FLAG_ALPHA_STRAIGHT","KHR_DF_FLAG_ALPHA_PREMULTIPLIED","KHR_DF_TRANSFER_UNSPECIFIED","KHR_DF_TRANSFER_LINEAR","KHR_DF_TRANSFER_SRGB","KHR_DF_TRANSFER_ITU","KHR_DF_TRANSFER_NTSC","KHR_DF_TRANSFER_SLOG","KHR_DF_TRANSFER_SLOG2","KHR_DF_TRANSFER_BT1886","KHR_DF_TRANSFER_HLG_OETF","KHR_DF_TRANSFER_HLG_EOTF","KHR_DF_TRANSFER_PQ_EOTF","KHR_DF_TRANSFER_PQ_OETF","KHR_DF_TRANSFER_DCIP3","KHR_DF_TRANSFER_PAL_OETF","KHR_DF_TRANSFER_PAL625_EOTF","KHR_DF_TRANSFER_ST240","KHR_DF_TRANSFER_ACESCC","KHR_DF_TRANSFER_ACESCCT","KHR_DF_TRANSFER_ADOBERGB","KHR_DF_PRIMARIES_UNSPECIFIED","KHR_DF_PRIMARIES_BT709","KHR_DF_PRIMARIES_BT601_EBU","KHR_DF_PRIMARIES_BT601_SMPTE","KHR_DF_PRIMARIES_BT2020","KHR_DF_PRIMARIES_CIEXYZ","KHR_DF_PRIMARIES_ACES","KHR_DF_PRIMARIES_ACESCC","KHR_DF_PRIMARIES_NTSC1953","KHR_DF_PRIMARIES_PAL525","KHR_DF_PRIMARIES_DISPLAYP3","KHR_DF_PRIMARIES_ADOBERGB","KHR_DF_CHANNEL_RGBSDA_RED","KHR_DF_CHANNEL_RGBSDA_GREEN","KHR_DF_CHANNEL_RGBSDA_BLUE","KHR_DF_CHANNEL_RGBSDA_STENCIL","KHR_DF_CHANNEL_RGBSDA_DEPTH","KHR_DF_CHANNEL_RGBSDA_ALPHA","KHR_DF_SAMPLE_DATATYPE_FLOAT","KHR_DF_SAMPLE_DATATYPE_SIGNED","KHR_DF_SAMPLE_DATATYPE_EXPONENT","KHR_DF_SAMPLE_DATATYPE_LINEAR","VK_FORMAT_UNDEFINED","VK_FORMAT_R4G4_UNORM_PACK8","VK_FORMAT_R4G4B4A4_UNORM_PACK16","VK_FORMAT_B4G4R4A4_UNORM_PACK16","VK_FORMAT_R5G6B5_UNORM_PACK16","VK_FORMAT_B5G6R5_UNORM_PACK16","VK_FORMAT_R5G5B5A1_UNORM_PACK16","VK_FORMAT_B5G5R5A1_UNORM_PACK16","VK_FORMAT_A1R5G5B5_UNORM_PACK16","VK_FORMAT_R8_UNORM","VK_FORMAT_R8_SNORM","VK_FORMAT_R8_UINT","VK_FORMAT_R8_SINT","VK_FORMAT_R8_SRGB","VK_FORMAT_R8G8_UNORM","VK_FORMAT_R8G8_SNORM","VK_FORMAT_R8G8_UINT","VK_FORMAT_R8G8_SINT","VK_FORMAT_R8G8_SRGB","VK_FORMAT_R8G8B8_UNORM","VK_FORMAT_R8G8B8_SNORM","VK_FORMAT_R8G8B8_UINT","VK_FORMAT_R8G8B8_SINT","VK_FORMAT_R8G8B8_SRGB","VK_FORMAT_B8G8R8_UNORM","VK_FORMAT_B8G8R8_SNORM","VK_FORMAT_B8G8R8_UINT","VK_FORMAT_B8G8R8_SINT","VK_FORMAT_B8G8R8_SRGB","VK_FORMAT_R8G8B8A8_UNORM","VK_FORMAT_R8G8B8A8_SNORM","VK_FORMAT_R8G8B8A8_UINT","VK_FORMAT_R8G8B8A8_SINT","VK_FORMAT_R8G8B8A8_SRGB","VK_FORMAT_B8G8R8A8_UNORM","VK_FORMAT_B8G8R8A8_SNORM","VK_FORMAT_B8G8R8A8_UINT","VK_FORMAT_B8G8R8A8_SINT","VK_FORMAT_B8G8R8A8_SRGB","VK_FORMAT_A2R10G10B10_UNORM_PACK32","VK_FORMAT_A2R10G10B10_SNORM_PACK32","VK_FORMAT_A2R10G10B10_UINT_PACK32","VK_FORMAT_A2R10G10B10_SINT_PACK32","VK_FORMAT_A2B10G10R10_UNORM_PACK32","VK_FORMAT_A2B10G10R10_SNORM_PACK32","VK_FORMAT_A2B10G10R10_UINT_PACK32","VK_FORMAT_A2B10G10R10_SINT_PACK32","VK_FORMAT_R16_UNORM","VK_FORMAT_R16_SNORM","VK_FORMAT_R16_UINT","VK_FORMAT_R16_SINT","VK_FORMAT_R16_SFLOAT","VK_FORMAT_R16G16_UNORM","VK_FORMAT_R16G16_SNORM","VK_FORMAT_R16G16_UINT","VK_FORMAT_R16G16_SINT","VK_FORMAT_R16G16_SFLOAT","VK_FORMAT_R16G16B16_UNORM","VK_FORMAT_R16G16B16_SNORM","VK_FORMAT_R16G16B16_UINT","VK_FORMAT_R16G16B16_SINT","VK_FORMAT_R16G16B16_SFLOAT","VK_FORMAT_R16G16B16A16_UNORM","VK_FORMAT_R16G16B16A16_SNORM","VK_FORMAT_R16G16B16A16_UINT","VK_FORMAT_R16G16B16A16_SINT","VK_FORMAT_R16G16B16A16_SFLOAT","VK_FORMAT_R32_UINT","VK_FORMAT_R32_SINT","VK_FORMAT_R32_SFLOAT","VK_FORMAT_R32G32_UINT","VK_FORMAT_R32G32_SINT","VK_FORMAT_R32G32_SFLOAT","VK_FORMAT_R32G32B32_UINT","VK_FORMAT_R32G32B32_SINT","VK_FORMAT_R32G32B32_SFLOAT","VK_FORMAT_R32G32B32A32_UINT","VK_FORMAT_R32G32B32A32_SINT","VK_FORMAT_R32G32B32A32_SFLOAT","VK_FORMAT_R64_UINT","VK_FORMAT_R64_SINT","VK_FORMAT_R64_SFLOAT","VK_FORMAT_R64G64_UINT","VK_FORMAT_R64G64_SINT","VK_FORMAT_R64G64_SFLOAT","VK_FORMAT_R64G64B64_UINT","VK_FORMAT_R64G64B64_SINT","VK_FORMAT_R64G64B64_SFLOAT","VK_FORMAT_R64G64B64A64_UINT","VK_FORMAT_R64G64B64A64_SINT","VK_FORMAT_R64G64B64A64_SFLOAT","VK_FORMAT_B10G11R11_UFLOAT_PACK32","VK_FORMAT_E5B9G9R9_UFLOAT_PACK32","VK_FORMAT_D16_UNORM","VK_FORMAT_X8_D24_UNORM_PACK32","VK_FORMAT_D32_SFLOAT","VK_FORMAT_S8_UINT","VK_FORMAT_D16_UNORM_S8_UINT","VK_FORMAT_D24_UNORM_S8_UINT","VK_FORMAT_D32_SFLOAT_S8_UINT","VK_FORMAT_BC1_RGB_UNORM_BLOCK","VK_FORMAT_BC1_RGB_SRGB_BLOCK","VK_FORMAT_BC1_RGBA_UNORM_BLOCK","VK_FORMAT_BC1_RGBA_SRGB_BLOCK","VK_FORMAT_BC2_UNORM_BLOCK","VK_FORMAT_BC2_SRGB_BLOCK","VK_FORMAT_BC3_UNORM_BLOCK","VK_FORMAT_BC3_SRGB_BLOCK","VK_FORMAT_BC4_UNORM_BLOCK","VK_FORMAT_BC4_SNORM_BLOCK","VK_FORMAT_BC5_UNORM_BLOCK","VK_FORMAT_BC5_SNORM_BLOCK","VK_FORMAT_BC6H_UFLOAT_BLOCK","VK_FORMAT_BC6H_SFLOAT_BLOCK","VK_FORMAT_BC7_UNORM_BLOCK","VK_FORMAT_BC7_SRGB_BLOCK","VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK","VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK","VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK","VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK","VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK","VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK","VK_FORMAT_EAC_R11_UNORM_BLOCK","VK_FORMAT_EAC_R11_SNORM_BLOCK","VK_FORMAT_EAC_R11G11_UNORM_BLOCK","VK_FORMAT_EAC_R11G11_SNORM_BLOCK","VK_FORMAT_ASTC_4x4_UNORM_BLOCK","VK_FORMAT_ASTC_4x4_SRGB_BLOCK","VK_FORMAT_ASTC_5x4_UNORM_BLOCK","VK_FORMAT_ASTC_5x4_SRGB_BLOCK","VK_FORMAT_ASTC_5x5_UNORM_BLOCK","VK_FORMAT_ASTC_5x5_SRGB_BLOCK","VK_FORMAT_ASTC_6x5_UNORM_BLOCK","VK_FORMAT_ASTC_6x5_SRGB_BLOCK","VK_FORMAT_ASTC_6x6_UNORM_BLOCK","VK_FORMAT_ASTC_6x6_SRGB_BLOCK","VK_FORMAT_ASTC_8x5_UNORM_BLOCK","VK_FORMAT_ASTC_8x5_SRGB_BLOCK","VK_FORMAT_ASTC_8x6_UNORM_BLOCK","VK_FORMAT_ASTC_8x6_SRGB_BLOCK","VK_FORMAT_ASTC_8x8_UNORM_BLOCK","VK_FORMAT_ASTC_8x8_SRGB_BLOCK","VK_FORMAT_ASTC_10x5_UNORM_BLOCK","VK_FORMAT_ASTC_10x5_SRGB_BLOCK","VK_FORMAT_ASTC_10x6_UNORM_BLOCK","VK_FORMAT_ASTC_10x6_SRGB_BLOCK","VK_FORMAT_ASTC_10x8_UNORM_BLOCK","VK_FORMAT_ASTC_10x8_SRGB_BLOCK","VK_FORMAT_ASTC_10x10_UNORM_BLOCK","VK_FORMAT_ASTC_10x10_SRGB_BLOCK","VK_FORMAT_ASTC_12x10_UNORM_BLOCK","VK_FORMAT_ASTC_12x10_SRGB_BLOCK","VK_FORMAT_ASTC_12x12_UNORM_BLOCK","VK_FORMAT_ASTC_12x12_SRGB_BLOCK","VK_FORMAT_R10X6_UNORM_PACK16","VK_FORMAT_R10X6G10X6_UNORM_2PACK16","VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16","VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16","VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16","VK_FORMAT_R12X4_UNORM_PACK16","VK_FORMAT_R12X4G12X4_UNORM_2PACK16","VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16","VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16","VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16","VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG","VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG","VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG","VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG","VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG","VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG","VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG","VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG","VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT","VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT","VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT","VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT","KTX2Container","vkFormat","typeSize","pixelWidth","pixelHeight","pixelDepth","layerCount","faceCount","supercompressionScheme","levels","dataFormatDescriptor","vendorId","descriptorType","descriptorBlockSize","versionNumber","colorModel","colorPrimaries","transferFunction","flags","texelBlockDimension","bytesPlane","samples","keyValue","globalData","BufferReader","constructor","data","byteOffset","byteLength","littleEndian","_dataView","_littleEndian","_offset","DataView","buffer","_nextUint8","value","getUint8","_nextUint16","getUint16","_nextUint32","getUint32","_nextUint64","left","right","_nextInt32","getInt32","_skip","bytes","_scan","maxByteLength","term","Uint8Array","KTX_WRITER","NUL","KTX2_ID","HEADER_BYTE_LENGTH","encodeText","text","TextEncoder","encode","Buffer","from","decodeText","TextDecoder","decode","toString","concat","buffers","totalByteLength","result","set","read","id","length","Error","container","headerByteLength","Uint32Array","BYTES_PER_ELEMENT","headerReader","levelCount","dfdByteOffset","dfdByteLength","kvdByteOffset","kvdByteLength","sgdByteOffset","sgdByteLength","levelByteLength","levelReader","i","push","levelData","uncompressedByteLength","dfdReader","dfd","sampleStart","sampleWords","numSamples","sample","bitOffset","bitLength","channelType","samplePosition","sampleLower","Infinity","sampleUpper","kvdReader","keyValueByteLength","keyData","key","valueData","match","sgdReader","endpointCount","selectorCount","endpointsByteLength","selectorsByteLength","tablesByteLength","extendedByteLength","imageDescs","imageFlags","rgbSliceByteOffset","rgbSliceByteLength","alphaSliceByteOffset","alphaSliceByteLength","endpointsByteOffset","selectorsByteOffset","tablesByteOffset","extendedByteOffset","endpointsData","selectorsData","tablesData","extendedData","DEFAULT_OPTIONS","keepWriter","write","options","sgdBuffer","ArrayBuffer","sgdHeaderBuffer","sgdHeaderView","setUint16","setUint32","imageDesc","keyValueData","KTXwriter","kvByteLength","kvPadding","fill","kvdBuffer","dfdBuffer","dfdView","setUint8","Array","isArray","sampleByteOffset","channelID","setInt32","levelIndex","levelDataByteOffset","level","setBigUint64","BigInt","headerBuffer","headerView"],"mappings":"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"}