DDS -- DirectDraw Surface

Driver short name

DDS

Build dependencies

Crunch Lib

The DirectDraw Surface file format (uses the filename extension DDS), from Microsoft, is a standard for storing data compressed with the lossy S3 Texture Compression (S3TC) algorithm. The DDS format and compression are provided by the crunch library.

Support for reading has been added in GDAL 3.1. Previous versions have write-only support.

The driver supports the following texture formats: DXT1, DXT1A, DXT3 (default), DXT5 and ETC1. You can set the texture format using the creation option FORMAT.

The driver supports the following compression quality: SUPERFAST, FAST, NORMAL (default), BETTER and UBER. You can set the compression quality using the creation option QUALITY.

More information about Crunch Lib (see below for build instructions of a working fork of that repository)

NOTE: Implemented as ddsdataset.cpp.

Driver capabilities

Supports CreateCopy()

This driver supports the GDALDriver::CreateCopy() operation

Build instructions

Building crunch can be a bit difficult. The build_fixes branch of https://github.com/rouault/crunch/ includes a CMake build system, as well as a few fixes that are not found in the upstream repository

Build crunch

Linux

git clone -b build_fixes https://github.com/rouault/crunch
cd crunch
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/install-crunch -DCMAKE_BUILD_TYPE=Release
make -j8 install

Windows

git clone -b build_fixes https://github.com/rouault/crunch
cd crunch
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=c:\dev\install-crunch -G "Visual Studio 15 2017 Win64"
cmake --build . --config Release --target install

Build GDAL against crunch

Linux

./configure --with-dds=$HOME/install-crunch

Windows

In nmake.local, add the following lines:

CRUNCH_INC = -Ic:\dev\install-crunch\include\crunch
CRUNCH_LIB = c:\dev\install-crunch\lib\crunch.lib