DDS Format Overview
This topic provides information about the native DDS codec available through the Windows Imaging Component (WIC).
Codec Identity
The following table provides codec identification information.
Component | Description |
---|---|
Formal Name(s) | DirectDraw Surface |
File Name Extension(s) | dds |
MIME type | image/vnd.ms-dds |
The following table lists the GUIDs used to identify the native DDS codec components.
Component | Friendly Name | GUID |
---|---|---|
Container Format | GUID_ContainerFormatDds | 9967cb95-2e85-4ac8-8ca283d7ccd425c9 |
Decoder | CLSID_WICDdsDecoder | 9053699f-a341-429d-9e90ee437cf80c73 |
Encoder | CLSID_WICDdsEncoder | a61dde94-66ce-4ac1-881b71680588895e |
Pixel Format Support
Note that the DDS format supports any valid DXGI_FORMAT value. However, the WIC DDS codec only supports decoding and encoding files containing the following formats:
- DXGI_FORMAT_BC1_UNORM
- DXGI_FORMAT_BC2_UNORM
- DXGI_FORMAT_BC3_UNORM
Encoding
The WIC encoding APIs are designed to be codec-independent and therefore image encoding for WIC-enabled codecs is essentially the same. For more information about image encoding using the WIC API, see the Encoding Overview.
The DDS file format has unique requirements that arise from its support for concepts such as mipmaps and texture arrays. To fully exercise control over DDS image encoding, you should use the IWICDdsEncoder interface to set DDS-specific encoding parameters.
Decoding
The WIC decoding APIs are designed to be codec-independent and image decoding for WIC-enabled codecs is essentially the same. For more information about image decoding, see the Decoding Overview. For more information about using decoded image data, see the Bitmap Sources Overview.
Block compressed data access
In addition to supporting the standard WIC codec interfaces, the DDS decoder provides direct access to the native block compressed data using the DDS-specific interfaces, IWICDdsDecoder and IWICDdsFrameDecode. To use these interfaces, call QueryInterface off of IWICBitmapDecoder and IWICBitmapFrameDecode, respectively.