dds 0.2.0

DDS de/encoder written in 100% safe Rust
Documentation
# Supported Formats

<!-- This file is generated by `tests/format.rs`. -->

**Legend:**
- **Format:** The name of the format
- **Color:** The native channels and precision of the image data
- **bpp:** The number of bits per pixel
- **Header:** The header version(s) that supports this format (☑️ if both DX9 and DX10 support it)
- **FourCC:** The FourCC code for this format, if applicable
- **Encoding:** Whether this format supports encoding
- **Dithering:** Whether encoding with dithering is supported
- **Split:** Whether format supports splitting the image into lines for parallel encoding
- **Size Mult:** Only images with dimensions that are multiples of this value can be encoded (if no value is shown, the format supports any size)

| Format                        | Color     | bpp | Header | FourCC | Encoding | Dithering  | Split  | Size Mult
| ----------------------------- | --------- | --- | ------ | ------ | -------- | ---------- | ------ | ---------
|*Uncompressed*              |           |     |        |        |          |            |        |
| R8G8B8_UNORM                  | RGB   U8  | 24  | DX9    |        | ✔️       | ✔️         | ✔️     |
| B8G8R8_UNORM                  | RGB   U8  | 24  | DX9    |        | ✔️       | ✔️         | ✔️     |
| R8G8B8A8_UNORM                | RGBA  U8  | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R8G8B8A8_SNORM                | RGBA  U8  | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| B8G8R8A8_UNORM                | RGBA  U8  | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| B8G8R8X8_UNORM                | RGB   U8  | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| B5G6R5_UNORM                  | RGB   U8  | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| B5G5R5A1_UNORM                | RGBA  U8  | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| B4G4R4A4_UNORM                | RGBA  U8  | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| A4B4G4R4_UNORM                | RGBA  U8  | 16  | DX10   |        | ✔️       | ✔️         | ✔️     |
| R8_SNORM                      | Gray  U8  | 8   | DX10   |        | ✔️       | ✔️         | ✔️     |
| R8_UNORM                      | Gray  U8  | 8   | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R8G8_UNORM                    | RGB   U8  | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R8G8_SNORM                    | RGB   U8  | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| A8_UNORM                      | Alpha U8  | 8   | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16_UNORM                     | Gray  U16 | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16_SNORM                     | Gray  U16 | 16  | DX10   |        | ✔️       | ✔️         | ✔️     |
| R16G16_UNORM                  | RGB   U16 | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16G16_SNORM                  | RGB   U16 | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16G16B16A16_UNORM            | RGBA  U16 | 64  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16G16B16A16_SNORM            | RGBA  U16 | 64  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R10G10B10A2_UNORM             | RGBA  U16 | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R11G11B10_FLOAT               | RGB   F32 | 32  | DX10   |        | ✔️       | ✔️         | ✔️     |
| R9G9B9E5_SHAREDEXP            | RGB   F32 | 32  | DX10   |        | ✔️       | ✔️         | ✔️     |
| R16_FLOAT                     | Gray  F32 | 16  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16G16_FLOAT                  | RGB   F32 | 32  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R16G16B16A16_FLOAT            | RGBA  F32 | 64  | ☑️     |        | ✔️       | ✔️         | ✔️     |
| R32_FLOAT                     | Gray  F32 | 32  | ☑️     |        | ✔️       |            | ✔️     |
| R32G32_FLOAT                  | RGB   F32 | 64  | ☑️     |        | ✔️       |            | ✔️     |
| R32G32B32_FLOAT               | RGB   F32 | 96  | DX10   |        | ✔️       |            | ✔️     |
| R32G32B32A32_FLOAT            | RGBA  F32 | 128 | ☑️     |        | ✔️       |            | ✔️     |
| R10G10B10_XR_BIAS_A2_UNORM    | RGBA  F32 | 32  | DX10   |        | ✔️       | ✔️         | ✔️     |
| AYUV                          | RGBA  U8  | 32  | DX10   |        | ✔️       | ✔️         | ✔️     |
| Y410                          | RGBA  U16 | 32  | DX10   |        | ✔️       | ✔️         | ✔️     |
| Y416                          | RGBA  U16 | 64  | DX10   |        | ✔️       | ✔️         | ✔️     |
|*Subsampled*                |           |     |        |        |          |            |        |
| R1_UNORM                      | Gray  U8  | 1   | DX10   |        | ✔️       | ✔️         | ✔️     |
| R8G8_B8G8_UNORM               | RGB   U8  | 16  | ☑️     | RGBG   | ✔️       |            | ✔️     |
| G8R8_G8B8_UNORM               | RGB   U8  | 16  | ☑️     | GRGB   | ✔️       |            | ✔️     |
| UYVY                          | RGB   U8  | 16  | DX9    | UYVY   | ✔️       |            | ✔️     |
| YUY2                          | RGB   U8  | 16  | ☑️     | YUY2   | ✔️       |            | ✔️     |
| Y210                          | RGB   U16 | 32  | DX10   |        | ✔️       |            | ✔️     |
| Y216                          | RGB   U16 | 32  | DX10   |        | ✔️       |            | ✔️     |
|*Bi-planar*                 |           |     |        |        |          |            |        |
| NV12                          | RGB   U8  | 12  | DX10   |        | ✔️       |            || 2x2
| P010                          | RGB   U16 | 24  | DX10   |        | ✔️       |            || 2x2
| P016                          | RGB   U16 | 24  | DX10   |        | ✔️       |            || 2x2
|*Block Compression*         |           |     |        |        |          |            |        |
| BC1_UNORM                     | RGBA  U8  | 4   | ☑️     | DXT1   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC2_UNORM                     | RGBA  U8  | 8   | ☑️     | DXT3   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC2_UNORM_PREMULTIPLIED_ALPHA | RGBA  U8  | 8   | ☑️     | DXT2   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC3_UNORM                     | RGBA  U8  | 8   | ☑️     | DXT5   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC3_UNORM_PREMULTIPLIED_ALPHA | RGBA  U8  | 8   | ☑️     | DXT4   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC4_UNORM                     | Gray  U8  | 4   | ☑️     | BC4U   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC4_SNORM                     | Gray  U8  | 4   | ☑️     | BC4S   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC5_UNORM                     | RGB   U8  | 8   | ☑️     | BC5U   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC5_SNORM                     | RGB   U8  | 8   | ☑️     | BC5S   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC6H_UF16                     | RGB   F32 | 8   | DX10   |        ||            |        |
| BC6H_SF16                     | RGB   F32 | 8   | DX10   |        ||            |        |
| BC7_UNORM                     | RGBA  U8  | 8   | DX10   |        | ✔️       | ✔️ (local) | ✔️ (4) |
|*ASTC*                      |           |     |        |        |          |            |        |
| ASTC_4X4_UNORM                | RGBA  U8  | 8   | DX10   |        ||            |        |
| ASTC_5X4_UNORM                | RGBA  U8  | 6.4 | DX10   |        ||            |        |
| ASTC_5X5_UNORM                | RGBA  U8  | 5.1 | DX10   |        ||            |        |
| ASTC_6X5_UNORM                | RGBA  U8  | 4.3 | DX10   |        ||            |        |
| ASTC_6X6_UNORM                | RGBA  U8  | 3.6 | DX10   |        ||            |        |
| ASTC_8X5_UNORM                | RGBA  U8  | 3.2 | DX10   |        ||            |        |
| ASTC_8X6_UNORM                | RGBA  U8  | 2.7 | DX10   |        ||            |        |
| ASTC_8X8_UNORM                | RGBA  U8  | 2   | DX10   |        ||            |        |
| ASTC_10X5_UNORM               | RGBA  U8  | 2.6 | DX10   |        ||            |        |
| ASTC_10X6_UNORM               | RGBA  U8  | 2.1 | DX10   |        ||            |        |
| ASTC_10X8_UNORM               | RGBA  U8  | 1.6 | DX10   |        ||            |        |
| ASTC_10X10_UNORM              | RGBA  U8  | 1.3 | DX10   |        ||            |        |
| ASTC_12X10_UNORM              | RGBA  U8  | 1.1 | DX10   |        ||            |        |
| ASTC_12X12_UNORM              | RGBA  U8  | 0.9 | DX10   |        ||            |        |
|*Non-standard*              |           |     |        |        |          |            |        |
| BC3_UNORM_RXGB                | RGB   U8  | 8   | DX9    | RXGB   | ✔️       | ✔️ (local) | ✔️ (4) |
| BC3_UNORM_NORMAL              | RGB   U8  | 8   | ☑️     |        | ✔️       | ✔️ (local) | ✔️ (4) |