About this project
DirectXTex is a shared-source C++ library from Microsoft for reading and writing .DDS files and performing texture content processing operations. Its stated capabilities include resizing, format conversion, mip-map generation, block compression for Direct3D runtime texture resources, and height-map to normal-map conversion. The library uses Windows Image Component (WIC) APIs and also includes .TGA and .HDR readers and writers, since those formats are common in texture pipelines but lack built-in WIC codecs.
The repository is organized around the core library plus several sample tools and runtime loaders:
- DirectXTex: the main library, with a full-featured DDS reader/writer including legacy format conversions, TGA and HDR readers/writers, a WIC-based bitmap reader/writer (BMP, JPEG, PNG, TIFF, HD Photo), and texture processing functions. Only DirectXTex.h and DirectXTex.inl are described as public headers; most others are internal.
- Auxiliary: optional source files such as adapter loading functions using OpenEXR and Xbox texture tiling extensions.
- Common: shared source headers used by the library and tools.
- Texconv: a command-line texture utility based on DirectXTex, supporting arguments similar to the legacy texconvex.exe tool, with differences in the -10/-11 arguments and filter names, plus JPEG XR (HD Photo) support.
- Texassemble: a command-line utility for creating cubemaps, volume maps, or texture arrays from individual input images.
- Texdiag: a command-line utility for analyzing image contents, primarily for debugging.
- DDSView: a simple Direct3D 11-based viewer for DDS files, with keyboard navigation for array textures and volume maps.
- DDSTextureLoader: a lightweight runtime DDS loader for Direct3D 9, 11, and 12 that performs no runtime pixel data conversions and supports 1D, 2D, volume maps, cubemaps, mipmap levels, texture arrays, and BC formats.
- ScreenGrab: texture writing modules for Direct3D 9, 11, and 12, primarily for screenshots, writing DDS or WIC-supported image formats.
- WICTextureLoader: a 2D texture loader for Direct3D 9, 11, and 12 that uses WIC to load bitmaps, resize based on feature level or an explicit parameter, format-convert to a DXGI_FORMAT if required, and create a 2D texture. It does not support 1D textures, volume textures, cubemaps, or texture arrays.
Build requirements noted in the README include Visual Studio 2022 or 2026, clang for Windows v12 or later, or MinGW, with the Windows 11 SDK (22000) or later required for Visual Studio. It can also be built for Windows Subsystem for Linux using GCC 11 or later. CMake projects require version 3.21 or later. The components are designed to work without content from the legacy DirectX SDK.
Documentation is hosted on the GitHub wiki. The README also documents CoPilot CLI skill installation, release notes covering API changes (such as typed enum bitmask flags and the CREATETEX_FLAGS change), deprecation of certain NuGet packages in favor of vcpkg, retirement of Windows 7 and Windows 8.0 support, and GNU-style long options for the command-line tools. The project is MIT licensed and welcomes contributions under a CLA, with tests submitted to a separate test-suite repository.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.