ris-ktx2-api 0.1.0-dev.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1338 @@
1
+ /**
2
+ * Creates and loads KTX2 textures.
3
+ *
4
+ * `ris-ktx2` provides the implementation. Call {@link IKtx2Factory.initializeAsync}
5
+ * before {@link IKtx2Factory.loadAsync}, {@link IKtx2Factory.create}, or
6
+ * {@link IKtx2Factory.createFromBuffer}.
7
+ */
8
+ export declare interface IKtx2Factory {
9
+ /**
10
+ * Initializes the factory and loads the native KTX library.
11
+ */
12
+ initializeAsync(): Promise<void>;
13
+ /**
14
+ * Loads a KTX or KTX2 texture.
15
+ *
16
+ * @param blob - A `File` to read, or a URL string to fetch.
17
+ * @returns The loaded texture.
18
+ */
19
+ loadAsync(blob: string | File): Promise<IKtx2Texture>;
20
+ /**
21
+ * Creates a KTX2 texture from {@link IKtxTextureCreateInfo}.
22
+ *
23
+ * @param createInfo - Width, height, format, and mip count.
24
+ * @param storage - Whether to allocate image storage. Optional.
25
+ * @returns The new texture.
26
+ */
27
+ create(createInfo: IKtxTextureCreateInfo, storage?: KtxCreateStorage): IKtx2Texture;
28
+ /**
29
+ * Creates a texture from an in-memory KTX or KTX2 file.
30
+ *
31
+ * @param buffer - File bytes.
32
+ * @returns The loaded texture.
33
+ */
34
+ createFromBuffer(buffer: ArrayBufferView<ArrayBufferLike>): IKtx2Texture;
35
+ }
36
+
37
+ /**
38
+ * A texture loaded from or created as a KTX or KTX2 container.
39
+ *
40
+ * `ris-ktx2` implements this interface on top of libktx. Implementations own
41
+ * the native texture and release it from {@link IKtx2Texture.delete}.
42
+ * Operations that can fail return a {@link KtxErrorCode}.
43
+ */
44
+ export declare interface IKtx2Texture {
45
+ /**
46
+ * File path of the `.ktx` or `.ktx2` texture when it was loaded from a file.
47
+ *
48
+ * Absent for textures created in memory.
49
+ */
50
+ readonly filePath?: string;
51
+ /** Width of the base level, in pixels. */
52
+ readonly width: number;
53
+ /** Height of the base level, in pixels. */
54
+ readonly height: number;
55
+ /** Size of the texture's image data, in bytes. */
56
+ readonly dataSize: number;
57
+ /**
58
+ * Whether the texture must be transcoded before GPU upload.
59
+ *
60
+ * `true` for Basis Universal (ETC1S or UASTC) data that has not yet been
61
+ * transcoded to a GPU block format.
62
+ */
63
+ readonly needsTranscoding: boolean;
64
+ /** Number of mipmap levels. */
65
+ readonly numLevels: number;
66
+ /** Vulkan format of the texture's current image data. */
67
+ readonly vkFormat: VkFormat;
68
+ /**
69
+ * Transcodes Basis Universal data to a GPU format.
70
+ *
71
+ * @param transcodeFormat - Target format.
72
+ * @param transcodeFlags - Transcode options. Pass {@link KtxTranscodeFlags.NONE} for the default.
73
+ * @returns The error code.
74
+ */
75
+ transcodeBasis(transcodeFormat: KtxTranscodeFormat, transcodeFlags: KtxTranscodeFlags): KtxErrorCode;
76
+ /**
77
+ * Supercompresses the texture with Basis Universal using explicit parameters.
78
+ *
79
+ * @param basisParams - ETC1S or UASTC encoder settings.
80
+ * @returns The error code.
81
+ */
82
+ compressBasis(basisParams: IKtxBasisParams): KtxErrorCode;
83
+ /**
84
+ * Supercompresses the texture with Basis Universal at a single quality value.
85
+ *
86
+ * Encodes the source images (typically to ETC1S) and stores them
87
+ * supercompressed inside the KTX2 container. This replaces the original
88
+ * image data and updates the texture metadata, including the DFD.
89
+ *
90
+ * After compression the texture cannot be uploaded directly. Transcode it
91
+ * to a GPU block format such as ASTC, BC7, or ETC2 first.
92
+ *
93
+ * Based on the KTX-Software libktx writer API:
94
+ * https://github.khronos.org/KTX-Software/libktx/group__writer.html#ga405c44d6daf8ddf83dc805810bf4f989
95
+ *
96
+ * @param quality - Compression quality from 1 to 255.
97
+ * `0` selects the underlying default of 128.
98
+ * Lower values are faster and smaller, with lower quality.
99
+ * Higher values are slower and larger, with higher quality.
100
+ * @returns The error code.
101
+ */
102
+ compressBasis(quality: number): KtxErrorCode;
103
+ /**
104
+ * Encodes uncompressed 2D images to ASTC and replaces the original data.
105
+ *
106
+ * On success the texture fields, including the DFD, describe the ASTC
107
+ * encoding. The result can be uploaded to a GPU without a further transcode.
108
+ *
109
+ * libktx `ktxTexture2_CompressAstc` returns
110
+ * {@link KtxErrorCode.INVALID_OPERATION} when the images are already
111
+ * supercompressed, already block-compressed, use a packed format such as
112
+ * RGB565, have a component size other than 8 bits, or are 1D.
113
+ * It returns {@link KtxErrorCode.OUT_OF_MEMORY} when encoding cannot
114
+ * allocate its working buffers.
115
+ *
116
+ * @param quality - Compression quality. `0` through `100` is the normal
117
+ * range: higher is slower and higher quality, lower is faster and lower
118
+ * quality. The libktx parameter is an unsigned integer, and a negative
119
+ * value is treated as greater than `100`.
120
+ * @returns The error code.
121
+ */
122
+ compressAstc(quality: number): KtxErrorCode;
123
+ /**
124
+ * Reads one image from the texture.
125
+ *
126
+ * @param level - Mipmap level. Defaults to `0` in the `ris-ktx2` implementation.
127
+ * @param layer - Array layer. Defaults to `0` in the `ris-ktx2` implementation.
128
+ * @param faceSlice - Face or slice index. Defaults to `0` in the `ris-ktx2` implementation.
129
+ * @returns The image bytes.
130
+ */
131
+ getImage(level?: number, layer?: number, faceSlice?: number): Uint8Array;
132
+ /**
133
+ * Returns the block layout for a transcode target or Vulkan format.
134
+ *
135
+ * {@link KtxTranscodeFormat} and {@link VkFormat} overlap numerically
136
+ * (for example both use `13`). Implementations must tell them apart by
137
+ * which enumeration the caller passed, not by the number alone.
138
+ *
139
+ * @param format - Transcode target or Vulkan format.
140
+ * @returns Block width, height, depth, and byte size for `format`.
141
+ */
142
+ getTextureFormatInfo(format: KtxTranscodeFormat | VkFormat): TextureFormatInfo;
143
+ /**
144
+ * Creates a copy of the texture.
145
+ *
146
+ * @returns The copied texture.
147
+ */
148
+ createCopy(): IKtx2Texture;
149
+ /**
150
+ * Replaces one image with bytes from memory.
151
+ *
152
+ * @param level - Mipmap level.
153
+ * @param layer - Array layer.
154
+ * @param faceSlice - Face or slice index.
155
+ * @param imageData - Image bytes.
156
+ * @returns The error code.
157
+ */
158
+ setImageFromMemory(level: number, layer: number, faceSlice: number, imageData: ArrayBufferView): KtxErrorCode;
159
+ /**
160
+ * Writes the texture container to memory.
161
+ *
162
+ * @returns The KTX or KTX2 file bytes.
163
+ */
164
+ writeToMemory(): ArrayBufferView;
165
+ /**
166
+ * Deflates the KTX2 data with ZLIB.
167
+ *
168
+ * On success, the level index, data size, DFD, data pointer, and
169
+ * supercompression scheme are updated.
170
+ *
171
+ * @param compressionLevel - Compression level from 1 to 9. Lower is faster.
172
+ * @returns The error code.
173
+ */
174
+ deflateZlib(compressionLevel: number): KtxErrorCode;
175
+ /**
176
+ * Deflates the KTX2 data with Zstandard.
177
+ *
178
+ * On success, the level index, data size, DFD, data pointer, and
179
+ * supercompression scheme are updated.
180
+ *
181
+ * @param compressionLevel - Compression level from 1 to 22. Lower is faster.
182
+ * Values above 20 use more memory.
183
+ * @returns The error code.
184
+ */
185
+ deflateZstd(compressionLevel: number): KtxErrorCode;
186
+ /** Deletes the texture and releases its native resources. */
187
+ delete(): void;
188
+ }
189
+
190
+ /**
191
+ * Parameters for Basis Universal supercompression.
192
+ *
193
+ * Field meanings follow libktx `ktxBasisParams`. Every field is optional on
194
+ * this interface; callers that need a non-default ETC1S compression level
195
+ * must set {@link IKtxBasisParams.compressionLevel} explicitly, because `0`
196
+ * is a valid level.
197
+ */
198
+ export declare interface IKtxBasisParams {
199
+ /**
200
+ * ETC1S encoding speed versus quality.
201
+ *
202
+ * libktx 4.3 documents the range as `[0, 5]`. libktx 4.4 documents
203
+ * `[0, 6]`, with the higher levels intended for video. Higher values are
204
+ * slower and produce higher quality. There is no implicit default: `0`
205
+ * is a valid level, so callers set this themselves. The usual KTX default
206
+ * level is `2`.
207
+ */
208
+ compressionLevel?: number;
209
+ /**
210
+ * ETC1S visual quality target.
211
+ *
212
+ * Range is `[1, 255]`. Lower values compress more, run faster, and keep
213
+ * less quality. Higher values compress less, run slower, and keep more
214
+ * quality. This selects the endpoint and selector counts and the RDO
215
+ * thresholds. Setting those lower-level parameters yourself overrides the
216
+ * values chosen from this level. libktx uses the quality level to choose
217
+ * the RDO thresholds only when the level is above `128`; otherwise those
218
+ * thresholds stay at their own defaults. When neither this nor both
219
+ * endpoint and selector counts are set, libktx uses `128`.
220
+ */
221
+ qualityLevel?: number;
222
+ /**
223
+ * `true` to encode UASTC. `false` to encode ETC1S.
224
+ */
225
+ uastc?: boolean;
226
+ /**
227
+ * UASTC encoding options.
228
+ *
229
+ * A combination of {@link KtxUastcFlags}. Level values in bits 0–3 are
230
+ * mutually exclusive. Hints at bit 4 and above can be combined with a
231
+ * level. {@link KtxUastcFlags.FAVOR_UASTC_ERROR} is inside the level mask.
232
+ */
233
+ uastcFlags?: KtxUastcFlags;
234
+ /**
235
+ * Tune codec parameters for normal maps and set the texture DFD accordingly.
236
+ *
237
+ * Disables selector and endpoint RDO. Only valid for linear textures.
238
+ */
239
+ normalMap?: boolean;
240
+ /**
241
+ * Number of threads used for compression.
242
+ *
243
+ * @defaultValue 1
244
+ */
245
+ threadCount?: number;
246
+ /**
247
+ * Swizzle applied before encoding.
248
+ *
249
+ * Four entries, each one of `"r"`, `"g"`, `"b"`, `"a"`, `"0"`, or `"1"`.
250
+ * The KTX C API types the same value as a 4-character string matching
251
+ * `/^[rgba01]{4}$/`. Usable with both ETC1S and UASTC.
252
+ *
253
+ * If both this swizzle and a pre-swizzle are specified,
254
+ * `ktxTexture_CompressBasisEx` raises `KTX_INVALID_OPERATION`.
255
+ */
256
+ inputSwizzle?: string[];
257
+ /**
258
+ * Enable Rate Distortion Optimization post-processing for UASTC.
259
+ */
260
+ uastcRDO?: boolean;
261
+ /**
262
+ * UASTC RDO quality scalar (lambda).
263
+ *
264
+ * Lower values yield higher quality and larger LZ-compressed files.
265
+ * Higher values yield lower quality and smaller LZ-compressed files.
266
+ * A useful range to try is `[0.2, 4]`. The full range is `[0.001, 50]`.
267
+ *
268
+ * @defaultValue 1
269
+ */
270
+ uastcRDOQualityScalar?: number;
271
+ /**
272
+ * When `true`, the encoder may print operation details.
273
+ */
274
+ verbose?: boolean;
275
+ }
276
+
277
+ /**
278
+ * Parameters for creating an empty 2D KTX2 texture.
279
+ */
280
+ export declare interface IKtxTextureCreateInfo {
281
+ /** Base width of the texture, in pixels. */
282
+ baseWidth: number;
283
+ /** Base height of the texture, in pixels. */
284
+ baseHeight: number;
285
+ /**
286
+ * Vulkan format of the image data.
287
+ *
288
+ * When omitted, the `ris-ktx2` implementation uses {@link VkFormat.R8G8B8A8_SRGB}.
289
+ */
290
+ vkFormat?: VkFormat;
291
+ /**
292
+ * Number of mipmap levels.
293
+ *
294
+ * @defaultValue 1
295
+ */
296
+ numLevels?: number;
297
+ }
298
+
299
+ /**
300
+ * How image storage is allocated when a KTX2 texture is created.
301
+ *
302
+ * Values match libktx `ktxTextureCreateStorageEnum`:
303
+ * `KTX_TEXTURE_CREATE_NO_STORAGE` is `0` and
304
+ * `KTX_TEXTURE_CREATE_ALLOC_STORAGE` is `1`.
305
+ */
306
+ export declare enum KtxCreateStorage {
307
+ /** Do not allocate image storage. */
308
+ NO_STORAGE = 0,
309
+ /** Allocate image storage for the texture. */
310
+ ALLOC_STORAGE = 1
311
+ }
312
+
313
+ /**
314
+ * Result codes returned by KTX2 texture operations.
315
+ *
316
+ * Names and numeric values match libktx `ktx_error_code_e`.
317
+ * `KTX_ERROR_MAX_ENUM` is not a member: in libktx it aliases
318
+ * {@link KtxErrorCode.DECOMPRESS_CHECKSUM_ERROR} and is not a distinct result.
319
+ */
320
+ export declare enum KtxErrorCode {
321
+ /** The operation succeeded. */
322
+ SUCCESS = 0,
323
+ /** The file data does not match the KTX specification. */
324
+ FILE_DATA_ERROR = 1,
325
+ /** The file is a pipe or a named pipe. */
326
+ FILE_ISPIPE = 2,
327
+ /** The target file could not be opened. */
328
+ FILE_OPEN_FAILED = 3,
329
+ /** The operation would exceed the maximum file size. */
330
+ FILE_OVERFLOW = 4,
331
+ /** Reading the file failed. */
332
+ FILE_READ_ERROR = 5,
333
+ /** Seeking in the file failed. */
334
+ FILE_SEEK_ERROR = 6,
335
+ /** The file ended before the requested data was read. */
336
+ FILE_UNEXPECTED_EOF = 7,
337
+ /** Writing the file failed. */
338
+ FILE_WRITE_ERROR = 8,
339
+ /** An OpenGL call failed. */
340
+ GL_ERROR = 9,
341
+ /** The operation is not allowed in the current state. */
342
+ INVALID_OPERATION = 10,
343
+ /** A parameter value was not valid. */
344
+ INVALID_VALUE = 11,
345
+ /** A metadata key was missing, or a required GPU entry point was not found. */
346
+ NOT_FOUND = 12,
347
+ /** Not enough memory to complete the operation. */
348
+ OUT_OF_MEMORY = 13,
349
+ /** Transcoding a block-compressed texture failed. */
350
+ TRANSCODE_FAILED = 14,
351
+ /** The file is not a KTX file. */
352
+ UNKNOWN_FILE_FORMAT = 15,
353
+ /** The file requests a texture type this library does not support. */
354
+ UNSUPPORTED_TEXTURE_TYPE = 16,
355
+ /** The feature is not built into this library, or it is not implemented yet. */
356
+ UNSUPPORTED_FEATURE = 17,
357
+ /** An OpenGL or Vulkan dependency is not linked into the application. */
358
+ LIBRARY_NOT_LINKED = 18,
359
+ /** The decompressed byte count does not match the expected size. */
360
+ DECOMPRESS_LENGTH_ERROR = 19,
361
+ /** A checksum did not match while decompressing. */
362
+ DECOMPRESS_CHECKSUM_ERROR = 20
363
+ }
364
+
365
+ /**
366
+ * Flags that select options for Basis Universal transcoding.
367
+ *
368
+ * Numeric values match the libktx `ktx_transcode_flag_bits_e` enumerators.
369
+ * Combine them with bitwise OR when more than one option applies.
370
+ */
371
+ export declare enum KtxTranscodeFlags {
372
+ /** No special transcoding options. */
373
+ NONE = 0,
374
+ /**
375
+ * For PVRTC1, decode a non-power-of-two ETC1S level to the next larger
376
+ * power of two.
377
+ *
378
+ * libktx still documents this option as not implemented. It is ignored
379
+ * when the slice dimensions are already powers of two.
380
+ */
381
+ PVRTC_DECODE_TO_NEXT_POW2 = 2,
382
+ /**
383
+ * When transcoding to an opaque format, decode the alpha slice instead of
384
+ * the color slice if the Basis data has alpha. Has no effect when there
385
+ * is no alpha data.
386
+ */
387
+ TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS = 4,
388
+ /**
389
+ * Request a higher-quality transcode of UASTC to BC1, BC3, ETC2 EAC R11,
390
+ * or ETC2 EAC RG11. Unused by other UASTC transcode targets.
391
+ */
392
+ HIGH_QUALITY = 32
393
+ }
394
+
395
+ /**
396
+ * Target formats for transcoding a Basis Universal (ETC1S or UASTC) texture.
397
+ *
398
+ * Numeric values match the libktx `ktx_transcode_fmt_e` enumerators.
399
+ * Gaps in the numbering are formats libktx does not expose (there is no
400
+ * equivalent `VkFormat` for the omitted targets).
401
+ */
402
+ export declare enum KtxTranscodeFormat {
403
+ /**
404
+ * Opaque ETC1 RGB. Returns alpha data instead when
405
+ * {@link KtxTranscodeFlags.TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS} is set.
406
+ */
407
+ KTX_TTF_ETC1_RGB = 0,
408
+ /**
409
+ * ETC2 RGBA. An EAC alpha block followed by an ETC1 block.
410
+ * Textures without alpha get an opaque alpha channel.
411
+ */
412
+ ETC2_RGBA = 1,
413
+ /**
414
+ * Opaque BC1 RGB. Returns alpha data instead when
415
+ * {@link KtxTranscodeFlags.TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS} is set.
416
+ */
417
+ KTX_TTF_BC1_RGB = 2,
418
+ /**
419
+ * BC3 compressed RGBA.
420
+ * Common on desktop devices. Widely supported block compression for color textures.
421
+ */
422
+ BC3_RGBA = 3,
423
+ /**
424
+ * Single-channel BC4. The red channel is the opaque or alpha green component,
425
+ * depending on {@link KtxTranscodeFlags.TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS}.
426
+ */
427
+ KTX_TTF_BC4_R = 4,
428
+ /**
429
+ * Two-channel BC5 (red and green). Intended for tangent-space normal maps.
430
+ * The texture should have an alpha channel; otherwise green is 255.
431
+ */
432
+ KTX_TTF_BC5_RG = 5,
433
+ /**
434
+ * BC7 compressed RGBA.
435
+ * High quality block compression for color textures.
436
+ * Supports an alpha channel and is suitable for diffuse and physically based textures.
437
+ */
438
+ BC7_RGBA = 6,
439
+ /**
440
+ * Opaque PVRTC1 4bpp RGB. Returns alpha data instead when
441
+ * {@link KtxTranscodeFlags.TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS} is set.
442
+ */
443
+ KTX_TTF_PVRTC1_4_RGB = 8,
444
+ /**
445
+ * PVRTC1 4bpp RGBA. Useful for simple opacity maps.
446
+ * If the texture has no alpha channel, PVRTC1 4bpp RGB is used instead.
447
+ */
448
+ KTX_TTF_PVRTC1_4_RGBA = 9,
449
+ /**
450
+ * ASTC 4×4 RGBA.
451
+ * Common on mobile devices, especially Apple. High quality block compression
452
+ * for color textures, including an alpha channel.
453
+ */
454
+ ASTC_4X4_RGBA = 10,
455
+ /**
456
+ * Uncompressed 32bpp RGBA in raster order (R, G, B, A).
457
+ * Supported on all devices.
458
+ */
459
+ RGBA32 = 13,
460
+ /** Uncompressed 16bpp RGB565 in raster order, with red in the high bits. */
461
+ KTX_TTF_RGB565 = 14,
462
+ /** Uncompressed 16bpp BGR565 in raster order, with red in the low bits. */
463
+ KTX_TTF_BGR565 = 15,
464
+ /** Uncompressed 16bpp RGBA4444 in raster order. */
465
+ KTX_TTF_RGBA4444 = 16,
466
+ /**
467
+ * Opaque PVRTC2 4bpp RGB. Supports arbitrary dimensions, unlike PVRTC1.
468
+ */
469
+ KTX_TTF_PVRTC2_4_RGB = 18,
470
+ /** PVRTC2 4bpp RGBA. Premultiplied alpha is recommended. */
471
+ KTX_TTF_PVRTC2_4_RGBA = 19,
472
+ /**
473
+ * Unsigned ETC2 EAC R11. The red channel is the opaque or alpha green
474
+ * component, depending on
475
+ * {@link KtxTranscodeFlags.TRANSCODE_ALPHA_DATA_TO_OPAQUE_FORMATS}.
476
+ */
477
+ KTX_TTF_ETC2_EAC_R11 = 20,
478
+ /**
479
+ * Unsigned ETC2 EAC RG11. Intended for tangent-space normal maps.
480
+ * The texture should have an alpha channel; otherwise green is 255.
481
+ */
482
+ KTX_TTF_ETC2_EAC_RG11 = 21,
483
+ /**
484
+ * Selects {@link KtxTranscodeFormat.KTX_TTF_ETC1_RGB} or
485
+ * {@link KtxTranscodeFormat.ETC2_RGBA} according to whether the texture has alpha.
486
+ */
487
+ KTX_TTF_ETC = 22,
488
+ /**
489
+ * Selects {@link KtxTranscodeFormat.KTX_TTF_BC1_RGB} or
490
+ * {@link KtxTranscodeFormat.BC3_RGBA} according to whether the texture has alpha.
491
+ */
492
+ BC1_OR_3 = 23,
493
+ /** No transcode format selected. */
494
+ NO_SELECTION = 2147483647
495
+ }
496
+
497
+ /**
498
+ * UASTC encoding configuration flags.
499
+ *
500
+ * Packed bitfield matching libktx `ktx_pack_uastc_flag_bits_e`.
501
+ * Bits 0–3 hold the compression level ({@link KtxUastcFlags.LEVEL_MASK}).
502
+ * {@link KtxUastcFlags.FAVOR_UASTC_ERROR} is `8`, so it sits inside that mask:
503
+ * combining it with a level changes the value `LEVEL_MASK` extracts.
504
+ * Hints at bit 4 and above (`16`, `64`, `128`, `256`) combine with a level
505
+ * with bitwise OR and leave bits 0–3 unchanged.
506
+ */
507
+ export declare enum KtxUastcFlags {
508
+ /**
509
+ * Fastest compression (lowest quality, highest speed). About 43.45 dB.
510
+ */
511
+ LEVEL_FASTEST = 0,
512
+ /**
513
+ * Faster compression. About 46.49 dB.
514
+ */
515
+ LEVEL_FASTER = 1,
516
+ /**
517
+ * Default compression level. About 47.47 dB.
518
+ */
519
+ LEVEL_DEFAULT = 2,
520
+ /**
521
+ * Slower compression (higher quality). About 48.01 dB.
522
+ */
523
+ LEVEL_SLOWER = 3,
524
+ /**
525
+ * Very slow compression (highest quality). About 48.24 dB.
526
+ */
527
+ LEVEL_VERY_SLOW = 4,
528
+ /**
529
+ * Mask for the compression level in bits 0–3.
530
+ */
531
+ LEVEL_MASK = 15,
532
+ /**
533
+ * Optimize encoding for the lowest UASTC reconstruction error.
534
+ */
535
+ FAVOR_UASTC_ERROR = 8,
536
+ /**
537
+ * Optimize encoding for the lowest BC7 decode error.
538
+ */
539
+ FAVOR_BC7_ERROR = 16,
540
+ /**
541
+ * Hint to optimize for faster ETC1 transcoding.
542
+ */
543
+ ETC1_FASTER_HINTS = 64,
544
+ /**
545
+ * Hint to optimize for the fastest ETC1 transcoding.
546
+ */
547
+ ETC1_FASTEST_HINTS = 128,
548
+ /**
549
+ * Disables flip-and-individual optimizations for ETC1 transcoding.
550
+ */
551
+ ETC1_DISABLE_FLIP_AND_INDIVIDUAL = 256
552
+ }
553
+
554
+ /**
555
+ * Describes how a texture format is laid out in memory, in blocks.
556
+ *
557
+ * For uncompressed formats a block is one pixel:
558
+ * `blockWidth` and `blockHeight` are `1`, and `bytesPerBlock` is the bytes per pixel.
559
+ *
560
+ * For compressed formats such as BC7, a block is a group of pixels
561
+ * (typically 4×4) stored in a fixed number of bytes.
562
+ */
563
+ export declare class TextureFormatInfo {
564
+ /** Width of one block, in pixels. */
565
+ readonly blockWidth: number;
566
+ /** Height of one block, in pixels. */
567
+ readonly blockHeight: number;
568
+ /** Depth of one block, in pixels. */
569
+ readonly blockDepth: number;
570
+ /** Size of one block, in bytes. */
571
+ readonly bytesPerBlock: number;
572
+ /**
573
+ * Average number of bytes used per pixel.
574
+ *
575
+ * For uncompressed formats this is the bytes per pixel.
576
+ * For compressed formats this is the average storage cost per pixel.
577
+ */
578
+ get pixelSize(): number;
579
+ /**
580
+ * Creates a block-layout description.
581
+ *
582
+ * @param blockWidth - Block width, in pixels.
583
+ * @param blockHeight - Block height, in pixels.
584
+ * @param blockDepth - Block depth, in pixels.
585
+ * @param bytesPerBlock - Bytes stored in one block.
586
+ */
587
+ constructor(blockWidth: number, blockHeight: number, blockDepth: number, bytesPerBlock: number);
588
+ /**
589
+ * Number of blocks needed to cover `width` pixels.
590
+ *
591
+ * @param width - Texture width, in pixels.
592
+ * @returns Block count, rounded up to a whole block.
593
+ */
594
+ getBlocksPerRow(width: number): number;
595
+ /**
596
+ * Number of block rows needed to cover `height` pixels.
597
+ *
598
+ * @param height - Texture height, in pixels.
599
+ * @returns Block-row count, rounded up to a whole block.
600
+ */
601
+ getBlocksPerColumn(height: number): number;
602
+ /**
603
+ * Number of block slices needed to cover `depth` pixels.
604
+ *
605
+ * @param depth - Texture depth, in pixels.
606
+ * @returns Block-slice count, rounded up to a whole block.
607
+ */
608
+ getBlocksPerSlice(depth: number): number;
609
+ /**
610
+ * Unaligned number of bytes in one row of blocks.
611
+ *
612
+ * @param width - Texture width, in pixels.
613
+ * @returns Bytes per row, without a 256-byte alignment.
614
+ */
615
+ getBytesPerRow(width: number): number;
616
+ /**
617
+ * WebGPU `bytesPerRow` for `width`.
618
+ *
619
+ * WebGPU requires `bytesPerRow` to be a multiple of 256.
620
+ *
621
+ * @param width - Texture width, in pixels.
622
+ * @returns `getBytesPerRow(width)` rounded up to a multiple of 256.
623
+ */
624
+ getAlignedBytesPerRow(width: number): number;
625
+ /**
626
+ * Byte size of one 2D mip level.
627
+ *
628
+ * @param width - Level width, in pixels.
629
+ * @param height - Level height, in pixels.
630
+ * @returns Level size, in bytes.
631
+ */
632
+ getDataSize(width: number, height: number): number;
633
+ /**
634
+ * Byte size of one 3D mip level.
635
+ *
636
+ * @param width - Level width, in pixels.
637
+ * @param height - Level height, in pixels.
638
+ * @param depth - Level depth, in pixels.
639
+ * @returns Level size, in bytes.
640
+ */
641
+ getDataSize3D(width: number, height: number, depth: number): number;
642
+ /**
643
+ * BC7 layout: 4×4 blocks, 16 bytes per block.
644
+ *
645
+ * @returns The BC7 {@link TextureFormatInfo}.
646
+ */
647
+ static bc7(): TextureFormatInfo;
648
+ /**
649
+ * BC3 layout: 4×4 blocks, 16 bytes per block.
650
+ *
651
+ * @returns The BC3 {@link TextureFormatInfo}.
652
+ */
653
+ static bc3(): TextureFormatInfo;
654
+ /**
655
+ * ETC2 RGBA layout: 4×4 blocks, 16 bytes per block.
656
+ *
657
+ * @returns The ETC2 RGBA {@link TextureFormatInfo}.
658
+ */
659
+ static etc2rgba(): TextureFormatInfo;
660
+ /**
661
+ * ASTC 4×4 RGBA layout: 4×4 blocks, 16 bytes per block.
662
+ *
663
+ * @returns The ASTC 4×4 RGBA {@link TextureFormatInfo}.
664
+ */
665
+ static astc4x4rgba(): TextureFormatInfo;
666
+ /**
667
+ * Uncompressed 8-bit 4-channel layout: 1×1 blocks, 4 bytes per pixel.
668
+ *
669
+ * Channel order does not change the size. `B8G8R8A8_*` and
670
+ * `A8B8G8R8_*_PACK32` use this same layout.
671
+ *
672
+ * @returns The 4-byte {@link TextureFormatInfo}.
673
+ */
674
+ static rgba32(): TextureFormatInfo;
675
+ /**
676
+ * `D24_UNORM_S8_UINT` layout: 4 bytes per pixel.
677
+ *
678
+ * @returns The depth/stencil {@link TextureFormatInfo}.
679
+ */
680
+ static depth24Stencil8(): TextureFormatInfo;
681
+ /**
682
+ * `D32_SFLOAT` layout: 4 bytes per pixel.
683
+ *
684
+ * @returns The 32-bit float depth {@link TextureFormatInfo}.
685
+ */
686
+ static depth32float(): TextureFormatInfo;
687
+ /**
688
+ * Block layout for a Vulkan format this package knows how to size.
689
+ *
690
+ * sRGB, signed, integer, and scaled variants share the block size of the
691
+ * matching unsigned normalized format. Channel order does not change the
692
+ * byte size.
693
+ *
694
+ * - `R8G8B8A8_*`, `B8G8R8A8_*`, and `A8B8G8R8_*_PACK32` use {@link TextureFormatInfo.rgba32}.
695
+ * - `D24_UNORM_S8_UINT` uses {@link TextureFormatInfo.depth24Stencil8}.
696
+ * - `D32_SFLOAT` uses {@link TextureFormatInfo.depth32float}.
697
+ * - `BC3_UNORM_BLOCK` and `BC3_SRGB_BLOCK` use {@link TextureFormatInfo.bc3}.
698
+ * - `BC7_UNORM_BLOCK` and `BC7_SRGB_BLOCK` use {@link TextureFormatInfo.bc7}.
699
+ * - `ETC2_R8G8B8A8_UNORM_BLOCK` and `ETC2_R8G8B8A8_SRGB_BLOCK` use {@link TextureFormatInfo.etc2rgba}.
700
+ * - `ASTC_4X4_UNORM_BLOCK`, `ASTC_4X4_SRGB_BLOCK`, and `ASTC_4X4_SFLOAT_BLOCK`
701
+ * use {@link TextureFormatInfo.astc4x4rgba}. `ASTC_4X4_SFLOAT_BLOCK_EXT`
702
+ * is the same value as `ASTC_4X4_SFLOAT_BLOCK`.
703
+ *
704
+ * @param vkFormat - Vulkan format.
705
+ * @returns The matching layout.
706
+ * @throws {Error} When `vkFormat` has no layout in this package.
707
+ */
708
+ static fromVkFormat(vkFormat: VkFormat): TextureFormatInfo;
709
+ }
710
+
711
+ /**
712
+ * Vulkan `VkFormat` enumerators.
713
+ *
714
+ * Names and numeric values match the Vulkan API so they can be stored in
715
+ * KTX2 files and passed through to graphics APIs. Extension enumerators that
716
+ * share a value with a core enumerator are documented as aliases.
717
+ * See THIRD_PARTY_NOTICES.md.
718
+ */
719
+ export declare enum VkFormat {
720
+ /** No format is specified. */
721
+ UNDEFINED = 0,
722
+ /** 4-bit red and green, unsigned normalized, packed into an 8-bit word. */
723
+ R4G4_UNORM_PACK8 = 1,
724
+ /** 4-bit red, green, blue, and alpha, unsigned normalized, packed into a 16-bit word. */
725
+ R4G4B4A4_UNORM_PACK16 = 2,
726
+ /** 4-bit blue, green, red, and alpha, unsigned normalized, packed into a 16-bit word. */
727
+ B4G4R4A4_UNORM_PACK16 = 3,
728
+ /** 5-bit red, 6-bit green, and 5-bit blue, unsigned normalized, packed into a 16-bit word. */
729
+ R5G6B5_UNORM_PACK16 = 4,
730
+ /** 5-bit blue, 6-bit green, and 5-bit red, unsigned normalized, packed into a 16-bit word. */
731
+ B5G6R5_UNORM_PACK16 = 5,
732
+ /** 5-bit red, 5-bit green, 5-bit blue, and 1-bit alpha, unsigned normalized, packed into a 16-bit word. */
733
+ R5G5B5A1_UNORM_PACK16 = 6,
734
+ /** 5-bit blue, 5-bit green, 5-bit red, and 1-bit alpha, unsigned normalized, packed into a 16-bit word. */
735
+ B5G5R5A1_UNORM_PACK16 = 7,
736
+ /** 1-bit alpha, 5-bit red, 5-bit green, and 5-bit blue, unsigned normalized, packed into a 16-bit word. */
737
+ A1R5G5B5_UNORM_PACK16 = 8,
738
+ /** 8-bit red, unsigned normalized. */
739
+ R8_UNORM = 9,
740
+ /** 8-bit red, signed normalized. */
741
+ R8_SNORM = 10,
742
+ /** 8-bit red, unsigned scaled. */
743
+ R8_USCALED = 11,
744
+ /** 8-bit red, signed scaled. */
745
+ R8_SSCALED = 12,
746
+ /** 8-bit red, unsigned integer. */
747
+ R8_UINT = 13,
748
+ /** 8-bit red, signed integer. */
749
+ R8_SINT = 14,
750
+ /** 8-bit red, sRGB. */
751
+ R8_SRGB = 15,
752
+ /** 8-bit red and green, unsigned normalized. */
753
+ R8G8_UNORM = 16,
754
+ /** 8-bit red and green, signed normalized. */
755
+ R8G8_SNORM = 17,
756
+ /** 8-bit red and green, unsigned scaled. */
757
+ R8G8_USCALED = 18,
758
+ /** 8-bit red and green, signed scaled. */
759
+ R8G8_SSCALED = 19,
760
+ /** 8-bit red and green, unsigned integer. */
761
+ R8G8_UINT = 20,
762
+ /** 8-bit red and green, signed integer. */
763
+ R8G8_SINT = 21,
764
+ /** 8-bit red and green, sRGB. */
765
+ R8G8_SRGB = 22,
766
+ /** 8-bit red, green, and blue, unsigned normalized. */
767
+ R8G8B8_UNORM = 23,
768
+ /** 8-bit red, green, and blue, signed normalized. */
769
+ R8G8B8_SNORM = 24,
770
+ /** 8-bit red, green, and blue, unsigned scaled. */
771
+ R8G8B8_USCALED = 25,
772
+ /** 8-bit red, green, and blue, signed scaled. */
773
+ R8G8B8_SSCALED = 26,
774
+ /** 8-bit red, green, and blue, unsigned integer. */
775
+ R8G8B8_UINT = 27,
776
+ /** 8-bit red, green, and blue, signed integer. */
777
+ R8G8B8_SINT = 28,
778
+ /** 8-bit red, green, and blue, sRGB. */
779
+ R8G8B8_SRGB = 29,
780
+ /** 8-bit blue, green, and red, unsigned normalized. */
781
+ B8G8R8_UNORM = 30,
782
+ /** 8-bit blue, green, and red, signed normalized. */
783
+ B8G8R8_SNORM = 31,
784
+ /** 8-bit blue, green, and red, unsigned scaled. */
785
+ B8G8R8_USCALED = 32,
786
+ /** 8-bit blue, green, and red, signed scaled. */
787
+ B8G8R8_SSCALED = 33,
788
+ /** 8-bit blue, green, and red, unsigned integer. */
789
+ B8G8R8_UINT = 34,
790
+ /** 8-bit blue, green, and red, signed integer. */
791
+ B8G8R8_SINT = 35,
792
+ /** 8-bit blue, green, and red, sRGB. */
793
+ B8G8R8_SRGB = 36,
794
+ /** 8-bit red, green, blue, and alpha, unsigned normalized. */
795
+ R8G8B8A8_UNORM = 37,
796
+ /** 8-bit red, green, blue, and alpha, signed normalized. */
797
+ R8G8B8A8_SNORM = 38,
798
+ /** 8-bit red, green, blue, and alpha, unsigned scaled. */
799
+ R8G8B8A8_USCALED = 39,
800
+ /** 8-bit red, green, blue, and alpha, signed scaled. */
801
+ R8G8B8A8_SSCALED = 40,
802
+ /** 8-bit red, green, blue, and alpha, unsigned integer. */
803
+ R8G8B8A8_UINT = 41,
804
+ /** 8-bit red, green, blue, and alpha, signed integer. */
805
+ R8G8B8A8_SINT = 42,
806
+ /** 8-bit red, green, blue, and alpha, sRGB. */
807
+ R8G8B8A8_SRGB = 43,
808
+ /** 8-bit blue, green, red, and alpha, unsigned normalized. */
809
+ B8G8R8A8_UNORM = 44,
810
+ /** 8-bit blue, green, red, and alpha, signed normalized. */
811
+ B8G8R8A8_SNORM = 45,
812
+ /** 8-bit blue, green, red, and alpha, unsigned scaled. */
813
+ B8G8R8A8_USCALED = 46,
814
+ /** 8-bit blue, green, red, and alpha, signed scaled. */
815
+ B8G8R8A8_SSCALED = 47,
816
+ /** 8-bit blue, green, red, and alpha, unsigned integer. */
817
+ B8G8R8A8_UINT = 48,
818
+ /** 8-bit blue, green, red, and alpha, signed integer. */
819
+ B8G8R8A8_SINT = 49,
820
+ /** 8-bit blue, green, red, and alpha, sRGB. */
821
+ B8G8R8A8_SRGB = 50,
822
+ /** 8-bit alpha, blue, green, and red, unsigned normalized, packed into a 32-bit word. */
823
+ A8B8G8R8_UNORM_PACK32 = 51,
824
+ /** 8-bit alpha, blue, green, and red, signed normalized, packed into a 32-bit word. */
825
+ A8B8G8R8_SNORM_PACK32 = 52,
826
+ /** 8-bit alpha, blue, green, and red, unsigned scaled, packed into a 32-bit word. */
827
+ A8B8G8R8_USCALED_PACK32 = 53,
828
+ /** 8-bit alpha, blue, green, and red, signed scaled, packed into a 32-bit word. */
829
+ A8B8G8R8_SSCALED_PACK32 = 54,
830
+ /** 8-bit alpha, blue, green, and red, unsigned integer, packed into a 32-bit word. */
831
+ A8B8G8R8_UINT_PACK32 = 55,
832
+ /** 8-bit alpha, blue, green, and red, signed integer, packed into a 32-bit word. */
833
+ A8B8G8R8_SINT_PACK32 = 56,
834
+ /** 8-bit alpha, blue, green, and red, sRGB, packed into a 32-bit word. */
835
+ A8B8G8R8_SRGB_PACK32 = 57,
836
+ /** 2-bit alpha, 10-bit red, 10-bit green, and 10-bit blue, unsigned normalized, packed into a 32-bit word. */
837
+ A2R10G10B10_UNORM_PACK32 = 58,
838
+ /** 2-bit alpha, 10-bit red, 10-bit green, and 10-bit blue, signed normalized, packed into a 32-bit word. */
839
+ A2R10G10B10_SNORM_PACK32 = 59,
840
+ /** 2-bit alpha, 10-bit red, 10-bit green, and 10-bit blue, unsigned scaled, packed into a 32-bit word. */
841
+ A2R10G10B10_USCALED_PACK32 = 60,
842
+ /** 2-bit alpha, 10-bit red, 10-bit green, and 10-bit blue, signed scaled, packed into a 32-bit word. */
843
+ A2R10G10B10_SSCALED_PACK32 = 61,
844
+ /** 2-bit alpha, 10-bit red, 10-bit green, and 10-bit blue, unsigned integer, packed into a 32-bit word. */
845
+ A2R10G10B10_UINT_PACK32 = 62,
846
+ /** 2-bit alpha, 10-bit red, 10-bit green, and 10-bit blue, signed integer, packed into a 32-bit word. */
847
+ A2R10G10B10_SINT_PACK32 = 63,
848
+ /** 2-bit alpha, 10-bit blue, 10-bit green, and 10-bit red, unsigned normalized, packed into a 32-bit word. */
849
+ A2B10G10R10_UNORM_PACK32 = 64,
850
+ /** 2-bit alpha, 10-bit blue, 10-bit green, and 10-bit red, signed normalized, packed into a 32-bit word. */
851
+ A2B10G10R10_SNORM_PACK32 = 65,
852
+ /** 2-bit alpha, 10-bit blue, 10-bit green, and 10-bit red, unsigned scaled, packed into a 32-bit word. */
853
+ A2B10G10R10_USCALED_PACK32 = 66,
854
+ /** 2-bit alpha, 10-bit blue, 10-bit green, and 10-bit red, signed scaled, packed into a 32-bit word. */
855
+ A2B10G10R10_SSCALED_PACK32 = 67,
856
+ /** 2-bit alpha, 10-bit blue, 10-bit green, and 10-bit red, unsigned integer, packed into a 32-bit word. */
857
+ A2B10G10R10_UINT_PACK32 = 68,
858
+ /** 2-bit alpha, 10-bit blue, 10-bit green, and 10-bit red, signed integer, packed into a 32-bit word. */
859
+ A2B10G10R10_SINT_PACK32 = 69,
860
+ /** 16-bit red, unsigned normalized. */
861
+ R16_UNORM = 70,
862
+ /** 16-bit red, signed normalized. */
863
+ R16_SNORM = 71,
864
+ /** 16-bit red, unsigned scaled. */
865
+ R16_USCALED = 72,
866
+ /** 16-bit red, signed scaled. */
867
+ R16_SSCALED = 73,
868
+ /** 16-bit red, unsigned integer. */
869
+ R16_UINT = 74,
870
+ /** 16-bit red, signed integer. */
871
+ R16_SINT = 75,
872
+ /** 16-bit red, signed floating-point. */
873
+ R16_SFLOAT = 76,
874
+ /** 16-bit red and green, unsigned normalized. */
875
+ R16G16_UNORM = 77,
876
+ /** 16-bit red and green, signed normalized. */
877
+ R16G16_SNORM = 78,
878
+ /** 16-bit red and green, unsigned scaled. */
879
+ R16G16_USCALED = 79,
880
+ /** 16-bit red and green, signed scaled. */
881
+ R16G16_SSCALED = 80,
882
+ /** 16-bit red and green, unsigned integer. */
883
+ R16G16_UINT = 81,
884
+ /** 16-bit red and green, signed integer. */
885
+ R16G16_SINT = 82,
886
+ /** 16-bit red and green, signed floating-point. */
887
+ R16G16_SFLOAT = 83,
888
+ /** 16-bit red, green, and blue, unsigned normalized. */
889
+ R16G16B16_UNORM = 84,
890
+ /** 16-bit red, green, and blue, signed normalized. */
891
+ R16G16B16_SNORM = 85,
892
+ /** 16-bit red, green, and blue, unsigned scaled. */
893
+ R16G16B16_USCALED = 86,
894
+ /** 16-bit red, green, and blue, signed scaled. */
895
+ R16G16B16_SSCALED = 87,
896
+ /** 16-bit red, green, and blue, unsigned integer. */
897
+ R16G16B16_UINT = 88,
898
+ /** 16-bit red, green, and blue, signed integer. */
899
+ R16G16B16_SINT = 89,
900
+ /** 16-bit red, green, and blue, signed floating-point. */
901
+ R16G16B16_SFLOAT = 90,
902
+ /** 16-bit red, green, blue, and alpha, unsigned normalized. */
903
+ R16G16B16A16_UNORM = 91,
904
+ /** 16-bit red, green, blue, and alpha, signed normalized. */
905
+ R16G16B16A16_SNORM = 92,
906
+ /** 16-bit red, green, blue, and alpha, unsigned scaled. */
907
+ R16G16B16A16_USCALED = 93,
908
+ /** 16-bit red, green, blue, and alpha, signed scaled. */
909
+ R16G16B16A16_SSCALED = 94,
910
+ /** 16-bit red, green, blue, and alpha, unsigned integer. */
911
+ R16G16B16A16_UINT = 95,
912
+ /** 16-bit red, green, blue, and alpha, signed integer. */
913
+ R16G16B16A16_SINT = 96,
914
+ /** 16-bit red, green, blue, and alpha, signed floating-point. */
915
+ R16G16B16A16_SFLOAT = 97,
916
+ /** 32-bit red, unsigned integer. */
917
+ R32_UINT = 98,
918
+ /** 32-bit red, signed integer. */
919
+ R32_SINT = 99,
920
+ /** 32-bit red, signed floating-point. */
921
+ R32_SFLOAT = 100,
922
+ /** 32-bit red and green, unsigned integer. */
923
+ R32G32_UINT = 101,
924
+ /** 32-bit red and green, signed integer. */
925
+ R32G32_SINT = 102,
926
+ /** 32-bit red and green, signed floating-point. */
927
+ R32G32_SFLOAT = 103,
928
+ /** 32-bit red, green, and blue, unsigned integer. */
929
+ R32G32B32_UINT = 104,
930
+ /** 32-bit red, green, and blue, signed integer. */
931
+ R32G32B32_SINT = 105,
932
+ /** 32-bit red, green, and blue, signed floating-point. */
933
+ R32G32B32_SFLOAT = 106,
934
+ /** 32-bit red, green, blue, and alpha, unsigned integer. */
935
+ R32G32B32A32_UINT = 107,
936
+ /** 32-bit red, green, blue, and alpha, signed integer. */
937
+ R32G32B32A32_SINT = 108,
938
+ /** 32-bit red, green, blue, and alpha, signed floating-point. */
939
+ R32G32B32A32_SFLOAT = 109,
940
+ /** 64-bit red, unsigned integer. */
941
+ R64_UINT = 110,
942
+ /** 64-bit red, signed integer. */
943
+ R64_SINT = 111,
944
+ /** 64-bit red, signed floating-point. */
945
+ R64_SFLOAT = 112,
946
+ /** 64-bit red and green, unsigned integer. */
947
+ R64G64_UINT = 113,
948
+ /** 64-bit red and green, signed integer. */
949
+ R64G64_SINT = 114,
950
+ /** 64-bit red and green, signed floating-point. */
951
+ R64G64_SFLOAT = 115,
952
+ /** 64-bit red, green, and blue, unsigned integer. */
953
+ R64G64B64_UINT = 116,
954
+ /** 64-bit red, green, and blue, signed integer. */
955
+ R64G64B64_SINT = 117,
956
+ /** 64-bit red, green, and blue, signed floating-point. */
957
+ R64G64B64_SFLOAT = 118,
958
+ /** 64-bit red, green, blue, and alpha, unsigned integer. */
959
+ R64G64B64A64_UINT = 119,
960
+ /** 64-bit red, green, blue, and alpha, signed integer. */
961
+ R64G64B64A64_SINT = 120,
962
+ /** 64-bit red, green, blue, and alpha, signed floating-point. */
963
+ R64G64B64A64_SFLOAT = 121,
964
+ /** 10-bit blue, 11-bit green, and 11-bit red, unsigned floating-point, packed into a 32-bit word. */
965
+ B10G11R11_UFLOAT_PACK32 = 122,
966
+ /** 5-bit shared exponent, 9-bit blue, 9-bit green, and 9-bit red, unsigned floating-point, packed into a 32-bit word. */
967
+ E5B9G9R9_UFLOAT_PACK32 = 123,
968
+ /** 16-bit unsigned normalized depth. */
969
+ D16_UNORM = 124,
970
+ /** 24-bit unsigned normalized depth packed into a 32-bit word with 8 unused bits. */
971
+ X8_D24_UNORM_PACK32 = 125,
972
+ /** 32-bit signed floating-point depth. */
973
+ D32_SFLOAT = 126,
974
+ /** 8-bit unsigned integer stencil. */
975
+ S8_UINT = 127,
976
+ /** 16-bit unsigned normalized depth and 8-bit unsigned integer stencil. */
977
+ D16_UNORM_S8_UINT = 128,
978
+ /** 24-bit unsigned normalized depth and 8-bit unsigned integer stencil. */
979
+ D24_UNORM_S8_UINT = 129,
980
+ /** 32-bit signed floating-point depth and 8-bit unsigned integer stencil. */
981
+ D32_SFLOAT_S8_UINT = 130,
982
+ /** 4×4 BC1 RGB block compression, unsigned normalized (8 bytes per block). */
983
+ BC1_RGB_UNORM_BLOCK = 131,
984
+ /** 4×4 BC1 RGB block compression, sRGB (8 bytes per block). */
985
+ BC1_RGB_SRGB_BLOCK = 132,
986
+ /** 4×4 BC1 RGBA block compression with punch-through alpha, unsigned normalized (8 bytes per block). */
987
+ BC1_RGBA_UNORM_BLOCK = 133,
988
+ /** 4×4 BC1 RGBA block compression with punch-through alpha, sRGB (8 bytes per block). */
989
+ BC1_RGBA_SRGB_BLOCK = 134,
990
+ /** 4×4 BC2 RGBA block compression, unsigned normalized (16 bytes per block). */
991
+ BC2_UNORM_BLOCK = 135,
992
+ /** 4×4 BC2 RGBA block compression, sRGB (16 bytes per block). */
993
+ BC2_SRGB_BLOCK = 136,
994
+ /** 4×4 BC3 RGBA block compression, unsigned normalized (16 bytes per block). */
995
+ BC3_UNORM_BLOCK = 137,
996
+ /** 4×4 BC3 RGBA block compression, sRGB (16 bytes per block). */
997
+ BC3_SRGB_BLOCK = 138,
998
+ /** 4×4 BC4 single-channel block compression, unsigned normalized (8 bytes per block). */
999
+ BC4_UNORM_BLOCK = 139,
1000
+ /** 4×4 BC4 single-channel block compression, signed normalized (8 bytes per block). */
1001
+ BC4_SNORM_BLOCK = 140,
1002
+ /** 4×4 BC5 two-channel block compression, unsigned normalized (16 bytes per block). */
1003
+ BC5_UNORM_BLOCK = 141,
1004
+ /** 4×4 BC5 two-channel block compression, signed normalized (16 bytes per block). */
1005
+ BC5_SNORM_BLOCK = 142,
1006
+ /** 4×4 BC6H HDR block compression, unsigned floating-point (16 bytes per block). */
1007
+ BC6H_UFLOAT_BLOCK = 143,
1008
+ /** 4×4 BC6H HDR block compression, signed floating-point (16 bytes per block). */
1009
+ BC6H_SFLOAT_BLOCK = 144,
1010
+ /** 4×4 BC7 RGBA block compression, unsigned normalized (16 bytes per block). */
1011
+ BC7_UNORM_BLOCK = 145,
1012
+ /** 4×4 BC7 RGBA block compression, sRGB (16 bytes per block). */
1013
+ BC7_SRGB_BLOCK = 146,
1014
+ /** 4×4 ETC2 RGB block compression, unsigned normalized (8 bytes per block). */
1015
+ ETC2_R8G8B8_UNORM_BLOCK = 147,
1016
+ /** 4×4 ETC2 RGB block compression, sRGB (8 bytes per block). */
1017
+ ETC2_R8G8B8_SRGB_BLOCK = 148,
1018
+ /** 4×4 ETC2 RGB block compression with 1-bit alpha, unsigned normalized (8 bytes per block). */
1019
+ ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1020
+ /** 4×4 ETC2 RGB block compression with 1-bit alpha, sRGB (8 bytes per block). */
1021
+ ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1022
+ /** 4×4 ETC2 RGBA block compression, unsigned normalized (16 bytes per block). */
1023
+ ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1024
+ /** 4×4 ETC2 RGBA block compression, sRGB (16 bytes per block). */
1025
+ ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1026
+ /** 4×4 EAC single-channel block compression, unsigned normalized (8 bytes per block). */
1027
+ EAC_R11_UNORM_BLOCK = 153,
1028
+ /** 4×4 EAC single-channel block compression, signed normalized (8 bytes per block). */
1029
+ EAC_R11_SNORM_BLOCK = 154,
1030
+ /** 4×4 EAC two-channel block compression, unsigned normalized (16 bytes per block). */
1031
+ EAC_R11G11_UNORM_BLOCK = 155,
1032
+ /** 4×4 EAC two-channel block compression, signed normalized (16 bytes per block). */
1033
+ EAC_R11G11_SNORM_BLOCK = 156,
1034
+ /** ASTC 4×4 block compression, unsigned normalized (16 bytes per block). */
1035
+ ASTC_4X4_UNORM_BLOCK = 157,
1036
+ /** ASTC 4×4 block compression, sRGB (16 bytes per block). */
1037
+ ASTC_4X4_SRGB_BLOCK = 158,
1038
+ /** ASTC 5×4 block compression, unsigned normalized (16 bytes per block). */
1039
+ ASTC_5X4_UNORM_BLOCK = 159,
1040
+ /** ASTC 5×4 block compression, sRGB (16 bytes per block). */
1041
+ ASTC_5X4_SRGB_BLOCK = 160,
1042
+ /** ASTC 5×5 block compression, unsigned normalized (16 bytes per block). */
1043
+ ASTC_5X5_UNORM_BLOCK = 161,
1044
+ /** ASTC 5×5 block compression, sRGB (16 bytes per block). */
1045
+ ASTC_5X5_SRGB_BLOCK = 162,
1046
+ /** ASTC 6×5 block compression, unsigned normalized (16 bytes per block). */
1047
+ ASTC_6X5_UNORM_BLOCK = 163,
1048
+ /** ASTC 6×5 block compression, sRGB (16 bytes per block). */
1049
+ ASTC_6X5_SRGB_BLOCK = 164,
1050
+ /** ASTC 6×6 block compression, unsigned normalized (16 bytes per block). */
1051
+ ASTC_6X6_UNORM_BLOCK = 165,
1052
+ /** ASTC 6×6 block compression, sRGB (16 bytes per block). */
1053
+ ASTC_6X6_SRGB_BLOCK = 166,
1054
+ /** ASTC 8×5 block compression, unsigned normalized (16 bytes per block). */
1055
+ ASTC_8X5_UNORM_BLOCK = 167,
1056
+ /** ASTC 8×5 block compression, sRGB (16 bytes per block). */
1057
+ ASTC_8X5_SRGB_BLOCK = 168,
1058
+ /** ASTC 8×6 block compression, unsigned normalized (16 bytes per block). */
1059
+ ASTC_8X6_UNORM_BLOCK = 169,
1060
+ /** ASTC 8×6 block compression, sRGB (16 bytes per block). */
1061
+ ASTC_8X6_SRGB_BLOCK = 170,
1062
+ /** ASTC 8×8 block compression, unsigned normalized (16 bytes per block). */
1063
+ ASTC_8X8_UNORM_BLOCK = 171,
1064
+ /** ASTC 8×8 block compression, sRGB (16 bytes per block). */
1065
+ ASTC_8X8_SRGB_BLOCK = 172,
1066
+ /** ASTC 10×5 block compression, unsigned normalized (16 bytes per block). */
1067
+ ASTC_10X5_UNORM_BLOCK = 173,
1068
+ /** ASTC 10×5 block compression, sRGB (16 bytes per block). */
1069
+ ASTC_10X5_SRGB_BLOCK = 174,
1070
+ /** ASTC 10×6 block compression, unsigned normalized (16 bytes per block). */
1071
+ ASTC_10X6_UNORM_BLOCK = 175,
1072
+ /** ASTC 10×6 block compression, sRGB (16 bytes per block). */
1073
+ ASTC_10X6_SRGB_BLOCK = 176,
1074
+ /** ASTC 10×8 block compression, unsigned normalized (16 bytes per block). */
1075
+ ASTC_10X8_UNORM_BLOCK = 177,
1076
+ /** ASTC 10×8 block compression, sRGB (16 bytes per block). */
1077
+ ASTC_10X8_SRGB_BLOCK = 178,
1078
+ /** ASTC 10×10 block compression, unsigned normalized (16 bytes per block). */
1079
+ ASTC_10X10_UNORM_BLOCK = 179,
1080
+ /** ASTC 10×10 block compression, sRGB (16 bytes per block). */
1081
+ ASTC_10X10_SRGB_BLOCK = 180,
1082
+ /** ASTC 12×10 block compression, unsigned normalized (16 bytes per block). */
1083
+ ASTC_12X10_UNORM_BLOCK = 181,
1084
+ /** ASTC 12×10 block compression, sRGB (16 bytes per block). */
1085
+ ASTC_12X10_SRGB_BLOCK = 182,
1086
+ /** ASTC 12×12 block compression, unsigned normalized (16 bytes per block). */
1087
+ ASTC_12X12_UNORM_BLOCK = 183,
1088
+ /** ASTC 12×12 block compression, sRGB (16 bytes per block). */
1089
+ ASTC_12X12_SRGB_BLOCK = 184,
1090
+ /** Packed 4:2:2 format with 8-bit unsigned normalized components in order G, B, G, R. */
1091
+ G8B8G8R8_422_UNORM = 1000156000,
1092
+ /** Packed 4:2:2 format with 8-bit unsigned normalized components in order B, G, R, G. */
1093
+ B8G8R8G8_422_UNORM = 1000156001,
1094
+ /** 4:2:0 format stored as three planes (G, B, and R), 8-bit unsigned normalized samples. */
1095
+ G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1096
+ /** 4:2:0 format stored as two planes (G, and interleaved B and R), 8-bit unsigned normalized samples. */
1097
+ G8_B8R8_2PLANE_420_UNORM = 1000156003,
1098
+ /** 4:2:2 format stored as three planes (G, B, and R), 8-bit unsigned normalized samples. */
1099
+ G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1100
+ /** 4:2:2 format stored as two planes (G, and interleaved B and R), 8-bit unsigned normalized samples. */
1101
+ G8_B8R8_2PLANE_422_UNORM = 1000156005,
1102
+ /** 4:4:4 format stored as three planes (G, B, and R), 8-bit unsigned normalized samples. */
1103
+ G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1104
+ /** red with 10 significant bits and 6 unused bits, unsigned normalized, packed into a 16-bit word. */
1105
+ R10X6_UNORM_PACK16 = 1000156007,
1106
+ /** red and green, each with 10 significant bits and 6 unused bits, unsigned normalized, packed into two 16-bit words. */
1107
+ R10X6G10X6_UNORM_2PACK16 = 1000156008,
1108
+ /** red, green, blue, and alpha, each with 10 significant bits and 6 unused bits, unsigned normalized, packed into four 16-bit words. */
1109
+ R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1110
+ /** Packed 4:2:2 format, unsigned normalized, each component with 10 significant bits and 6 unused bits, component order G, B, G, R. */
1111
+ G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1112
+ /** Packed 4:2:2 format, unsigned normalized, each component with 10 significant bits and 6 unused bits, component order B, G, R, G. */
1113
+ B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1114
+ /** 4:2:0 format stored as three planes (G, B, and R), unsigned normalized samples with 10 significant bits and 6 unused bits. */
1115
+ G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1116
+ /** 4:2:0 format stored as two planes (G, and interleaved B and R), unsigned normalized samples with 10 significant bits and 6 unused bits. */
1117
+ G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1118
+ /** 4:2:2 format stored as three planes (G, B, and R), unsigned normalized samples with 10 significant bits and 6 unused bits. */
1119
+ G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1120
+ /** 4:2:2 format stored as two planes (G, and interleaved B and R), unsigned normalized samples with 10 significant bits and 6 unused bits. */
1121
+ G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1122
+ /** 4:4:4 format stored as three planes (G, B, and R), unsigned normalized samples with 10 significant bits and 6 unused bits. */
1123
+ G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1124
+ /** red with 12 significant bits and 4 unused bits, unsigned normalized, packed into a 16-bit word. */
1125
+ R12X4_UNORM_PACK16 = 1000156017,
1126
+ /** red and green, each with 12 significant bits and 4 unused bits, unsigned normalized, packed into two 16-bit words. */
1127
+ R12X4G12X4_UNORM_2PACK16 = 1000156018,
1128
+ /** red, green, blue, and alpha, each with 12 significant bits and 4 unused bits, unsigned normalized, packed into four 16-bit words. */
1129
+ R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1130
+ /** Packed 4:2:2 format, unsigned normalized, each component with 12 significant bits and 4 unused bits, component order G, B, G, R. */
1131
+ G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1132
+ /** Packed 4:2:2 format, unsigned normalized, each component with 12 significant bits and 4 unused bits, component order B, G, R, G. */
1133
+ B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1134
+ /** 4:2:0 format stored as three planes (G, B, and R), unsigned normalized samples with 12 significant bits and 4 unused bits. */
1135
+ G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1136
+ /** 4:2:0 format stored as two planes (G, and interleaved B and R), unsigned normalized samples with 12 significant bits and 4 unused bits. */
1137
+ G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1138
+ /** 4:2:2 format stored as three planes (G, B, and R), unsigned normalized samples with 12 significant bits and 4 unused bits. */
1139
+ G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1140
+ /** 4:2:2 format stored as two planes (G, and interleaved B and R), unsigned normalized samples with 12 significant bits and 4 unused bits. */
1141
+ G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1142
+ /** 4:4:4 format stored as three planes (G, B, and R), unsigned normalized samples with 12 significant bits and 4 unused bits. */
1143
+ G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1144
+ /** Packed 4:2:2 format with 16-bit unsigned normalized components in order G, B, G, R. */
1145
+ G16B16G16R16_422_UNORM = 1000156027,
1146
+ /** Packed 4:2:2 format with 16-bit unsigned normalized components in order B, G, R, G. */
1147
+ B16G16R16G16_422_UNORM = 1000156028,
1148
+ /** 4:2:0 format stored as three planes (G, B, and R), 16-bit unsigned normalized samples. */
1149
+ G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1150
+ /** 4:2:0 format stored as two planes (G, and interleaved B and R), 16-bit unsigned normalized samples. */
1151
+ G16_B16R16_2PLANE_420_UNORM = 1000156030,
1152
+ /** 4:2:2 format stored as three planes (G, B, and R), 16-bit unsigned normalized samples. */
1153
+ G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1154
+ /** 4:2:2 format stored as two planes (G, and interleaved B and R), 16-bit unsigned normalized samples. */
1155
+ G16_B16R16_2PLANE_422_UNORM = 1000156032,
1156
+ /** 4:4:4 format stored as three planes (G, B, and R), 16-bit unsigned normalized samples. */
1157
+ G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1158
+ /** 4:4:4 format stored as two planes (G, and interleaved B and R), 8-bit unsigned normalized samples. */
1159
+ G8_B8R8_2PLANE_444_UNORM = 1000330000,
1160
+ /** 4:4:4 format stored as two planes (G, and interleaved B and R), unsigned normalized samples with 10 significant bits and 6 unused bits. */
1161
+ G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1162
+ /** 4:4:4 format stored as two planes (G, and interleaved B and R), unsigned normalized samples with 12 significant bits and 4 unused bits. */
1163
+ G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1164
+ /** 4:4:4 format stored as two planes (G, and interleaved B and R), 16-bit unsigned normalized samples. */
1165
+ G16_B16R16_2PLANE_444_UNORM = 1000330003,
1166
+ /** 4-bit alpha, red, green, and blue, unsigned normalized, packed into a 16-bit word. */
1167
+ A4R4G4B4_UNORM_PACK16 = 1000340000,
1168
+ /** 4-bit alpha, blue, green, and red, unsigned normalized, packed into a 16-bit word. */
1169
+ A4B4G4R4_UNORM_PACK16 = 1000340001,
1170
+ /** ASTC 4×4 block compression, signed floating-point (16 bytes per block). */
1171
+ ASTC_4X4_SFLOAT_BLOCK = 1000066000,
1172
+ /** ASTC 5×4 block compression, signed floating-point (16 bytes per block). */
1173
+ ASTC_5X4_SFLOAT_BLOCK = 1000066001,
1174
+ /** ASTC 5×5 block compression, signed floating-point (16 bytes per block). */
1175
+ ASTC_5X5_SFLOAT_BLOCK = 1000066002,
1176
+ /** ASTC 6×5 block compression, signed floating-point (16 bytes per block). */
1177
+ ASTC_6X5_SFLOAT_BLOCK = 1000066003,
1178
+ /** ASTC 6×6 block compression, signed floating-point (16 bytes per block). */
1179
+ ASTC_6X6_SFLOAT_BLOCK = 1000066004,
1180
+ /** ASTC 8×5 block compression, signed floating-point (16 bytes per block). */
1181
+ ASTC_8X5_SFLOAT_BLOCK = 1000066005,
1182
+ /** ASTC 8×6 block compression, signed floating-point (16 bytes per block). */
1183
+ ASTC_8X6_SFLOAT_BLOCK = 1000066006,
1184
+ /** ASTC 8×8 block compression, signed floating-point (16 bytes per block). */
1185
+ ASTC_8X8_SFLOAT_BLOCK = 1000066007,
1186
+ /** ASTC 10×5 block compression, signed floating-point (16 bytes per block). */
1187
+ ASTC_10X5_SFLOAT_BLOCK = 1000066008,
1188
+ /** ASTC 10×6 block compression, signed floating-point (16 bytes per block). */
1189
+ ASTC_10X6_SFLOAT_BLOCK = 1000066009,
1190
+ /** ASTC 10×8 block compression, signed floating-point (16 bytes per block). */
1191
+ ASTC_10X8_SFLOAT_BLOCK = 1000066010,
1192
+ /** ASTC 10×10 block compression, signed floating-point (16 bytes per block). */
1193
+ ASTC_10X10_SFLOAT_BLOCK = 1000066011,
1194
+ /** ASTC 12×10 block compression, signed floating-point (16 bytes per block). */
1195
+ ASTC_12X10_SFLOAT_BLOCK = 1000066012,
1196
+ /** ASTC 12×12 block compression, signed floating-point (16 bytes per block). */
1197
+ ASTC_12X12_SFLOAT_BLOCK = 1000066013,
1198
+ /** 1-bit alpha, 5-bit blue, 5-bit green, and 5-bit red, unsigned normalized, packed into a 16-bit word. */
1199
+ A1B5G5R5_UNORM_PACK16 = 1000470000,
1200
+ /** 8-bit alpha, unsigned normalized. */
1201
+ A8_UNORM = 1000470001,
1202
+ /** PVRTC1 2 bits per pixel, unsigned normalized. */
1203
+ PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1204
+ /** PVRTC1 4 bits per pixel, unsigned normalized. */
1205
+ PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1206
+ /** PVRTC2 2 bits per pixel, unsigned normalized. */
1207
+ PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1208
+ /** PVRTC2 4 bits per pixel, unsigned normalized. */
1209
+ PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1210
+ /** PVRTC1 2 bits per pixel, sRGB. */
1211
+ PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1212
+ /** PVRTC1 4 bits per pixel, sRGB. */
1213
+ PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1214
+ /** PVRTC2 2 bits per pixel, sRGB. */
1215
+ PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1216
+ /** PVRTC2 4 bits per pixel, sRGB. */
1217
+ PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1218
+ /** Two 16-bit signed fixed-point components (red and green). Each component has 10 integer bits and 5 fractional bits (NVIDIA). */
1219
+ R16G16_SFIXED5_NV = 1000464000,
1220
+ /** Alias of {@link VkFormat.ASTC_4X4_SFLOAT_BLOCK}. */
1221
+ ASTC_4X4_SFLOAT_BLOCK_EXT = 1000066000,
1222
+ /** Alias of {@link VkFormat.ASTC_5X4_SFLOAT_BLOCK}. */
1223
+ ASTC_5X4_SFLOAT_BLOCK_EXT = 1000066001,
1224
+ /** Alias of {@link VkFormat.ASTC_5X5_SFLOAT_BLOCK}. */
1225
+ ASTC_5X5_SFLOAT_BLOCK_EXT = 1000066002,
1226
+ /** Alias of {@link VkFormat.ASTC_6X5_SFLOAT_BLOCK}. */
1227
+ ASTC_6X5_SFLOAT_BLOCK_EXT = 1000066003,
1228
+ /** Alias of {@link VkFormat.ASTC_6X6_SFLOAT_BLOCK}. */
1229
+ ASTC_6X6_SFLOAT_BLOCK_EXT = 1000066004,
1230
+ /** Alias of {@link VkFormat.ASTC_8X5_SFLOAT_BLOCK}. */
1231
+ ASTC_8X5_SFLOAT_BLOCK_EXT = 1000066005,
1232
+ /** Alias of {@link VkFormat.ASTC_8X6_SFLOAT_BLOCK}. */
1233
+ ASTC_8X6_SFLOAT_BLOCK_EXT = 1000066006,
1234
+ /** Alias of {@link VkFormat.ASTC_8X8_SFLOAT_BLOCK}. */
1235
+ ASTC_8X8_SFLOAT_BLOCK_EXT = 1000066007,
1236
+ /** Alias of {@link VkFormat.ASTC_10X5_SFLOAT_BLOCK}. */
1237
+ ASTC_10X5_SFLOAT_BLOCK_EXT = 1000066008,
1238
+ /** Alias of {@link VkFormat.ASTC_10X6_SFLOAT_BLOCK}. */
1239
+ ASTC_10X6_SFLOAT_BLOCK_EXT = 1000066009,
1240
+ /** Alias of {@link VkFormat.ASTC_10X8_SFLOAT_BLOCK}. */
1241
+ ASTC_10X8_SFLOAT_BLOCK_EXT = 1000066010,
1242
+ /** Alias of {@link VkFormat.ASTC_10X10_SFLOAT_BLOCK}. */
1243
+ ASTC_10X10_SFLOAT_BLOCK_EXT = 1000066011,
1244
+ /** Alias of {@link VkFormat.ASTC_12X10_SFLOAT_BLOCK}. */
1245
+ ASTC_12X10_SFLOAT_BLOCK_EXT = 1000066012,
1246
+ /** Alias of {@link VkFormat.ASTC_12X12_SFLOAT_BLOCK}. */
1247
+ ASTC_12X12_SFLOAT_BLOCK_EXT = 1000066013,
1248
+ /** Alias of {@link VkFormat.G8B8G8R8_422_UNORM}. */
1249
+ G8B8G8R8_422_UNORM_KHR = 1000156000,
1250
+ /** Alias of {@link VkFormat.B8G8R8G8_422_UNORM}. */
1251
+ B8G8R8G8_422_UNORM_KHR = 1000156001,
1252
+ /** Alias of {@link VkFormat.G8_B8_R8_3PLANE_420_UNORM}. */
1253
+ G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1254
+ /** Alias of {@link VkFormat.G8_B8R8_2PLANE_420_UNORM}. */
1255
+ G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1256
+ /** Alias of {@link VkFormat.G8_B8_R8_3PLANE_422_UNORM}. */
1257
+ G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1258
+ /** Alias of {@link VkFormat.G8_B8R8_2PLANE_422_UNORM}. */
1259
+ G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1260
+ /** Alias of {@link VkFormat.G8_B8_R8_3PLANE_444_UNORM}. */
1261
+ G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1262
+ /** Alias of {@link VkFormat.R10X6_UNORM_PACK16}. */
1263
+ R10X6_UNORM_PACK16_KHR = 1000156007,
1264
+ /** Alias of {@link VkFormat.R10X6G10X6_UNORM_2PACK16}. */
1265
+ R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1266
+ /** Alias of {@link VkFormat.R10X6G10X6B10X6A10X6_UNORM_4PACK16}. */
1267
+ R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1268
+ /** Alias of {@link VkFormat.G10X6B10X6G10X6R10X6_422_UNORM_4PACK16}. */
1269
+ G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1270
+ /** Alias of {@link VkFormat.B10X6G10X6R10X6G10X6_422_UNORM_4PACK16}. */
1271
+ B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1272
+ /** Alias of {@link VkFormat.G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16}. */
1273
+ G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1274
+ /** Alias of {@link VkFormat.G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16}. */
1275
+ G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1276
+ /** Alias of {@link VkFormat.G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16}. */
1277
+ G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1278
+ /** Alias of {@link VkFormat.G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16}. */
1279
+ G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1280
+ /** Alias of {@link VkFormat.G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16}. */
1281
+ G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1282
+ /** Alias of {@link VkFormat.R12X4_UNORM_PACK16}. */
1283
+ R12X4_UNORM_PACK16_KHR = 1000156017,
1284
+ /** Alias of {@link VkFormat.R12X4G12X4_UNORM_2PACK16}. */
1285
+ R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1286
+ /** Alias of {@link VkFormat.R12X4G12X4B12X4A12X4_UNORM_4PACK16}. */
1287
+ R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1288
+ /** Alias of {@link VkFormat.G12X4B12X4G12X4R12X4_422_UNORM_4PACK16}. */
1289
+ G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1290
+ /** Alias of {@link VkFormat.B12X4G12X4R12X4G12X4_422_UNORM_4PACK16}. */
1291
+ B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1292
+ /** Alias of {@link VkFormat.G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16}. */
1293
+ G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1294
+ /** Alias of {@link VkFormat.G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16}. */
1295
+ G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1296
+ /** Alias of {@link VkFormat.G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16}. */
1297
+ G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1298
+ /** Alias of {@link VkFormat.G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16}. */
1299
+ G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1300
+ /** Alias of {@link VkFormat.G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16}. */
1301
+ G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1302
+ /** Alias of {@link VkFormat.G16B16G16R16_422_UNORM}. */
1303
+ G16B16G16R16_422_UNORM_KHR = 1000156027,
1304
+ /** Alias of {@link VkFormat.B16G16R16G16_422_UNORM}. */
1305
+ B16G16R16G16_422_UNORM_KHR = 1000156028,
1306
+ /** Alias of {@link VkFormat.G16_B16_R16_3PLANE_420_UNORM}. */
1307
+ G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1308
+ /** Alias of {@link VkFormat.G16_B16R16_2PLANE_420_UNORM}. */
1309
+ G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1310
+ /** Alias of {@link VkFormat.G16_B16_R16_3PLANE_422_UNORM}. */
1311
+ G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1312
+ /** Alias of {@link VkFormat.G16_B16R16_2PLANE_422_UNORM}. */
1313
+ G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1314
+ /** Alias of {@link VkFormat.G16_B16_R16_3PLANE_444_UNORM}. */
1315
+ G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
1316
+ /** Alias of {@link VkFormat.G8_B8R8_2PLANE_444_UNORM}. */
1317
+ G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000,
1318
+ /** Alias of {@link VkFormat.G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16}. */
1319
+ G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001,
1320
+ /** Alias of {@link VkFormat.G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16}. */
1321
+ G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002,
1322
+ /** Alias of {@link VkFormat.G16_B16R16_2PLANE_444_UNORM}. */
1323
+ G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003,
1324
+ /** Alias of {@link VkFormat.A4R4G4B4_UNORM_PACK16}. */
1325
+ A4R4G4B4_UNORM_PACK16_EXT = 1000340000,
1326
+ /** Alias of {@link VkFormat.A4B4G4R4_UNORM_PACK16}. */
1327
+ A4B4G4R4_UNORM_PACK16_EXT = 1000340001,
1328
+ /** Alias of {@link VkFormat.R16G16_SFIXED5_NV}. */
1329
+ R16G16_S10_5_NV = 1000464000,
1330
+ /** Alias of {@link VkFormat.A1B5G5R5_UNORM_PACK16}. */
1331
+ A1B5G5R5_UNORM_PACK16_KHR = 1000470000,
1332
+ /** Alias of {@link VkFormat.A8_UNORM}. */
1333
+ A8_UNORM_KHR = 1000470001,
1334
+ /** Largest enumerator value. Not a texture format. */
1335
+ MAX_ENUM = 2147483647
1336
+ }
1337
+
1338
+ export { }