Sobre o projeto

DirectXTex é uma biblioteca C++ de código compartilhado da Microsoft para ler e gravar arquivos .DDS e realizar operações de processamento de conteúdo de texturas. Suas capacidades declaradas incluem redimensionamento, conversão de formato, geração de mip-map, compressão de blocos para recursos de textura em tempo de execução do Direct3D e conversão de height-map para normal-map. A biblioteca usa APIs do Windows Image Component (WIC) e também inclui leitores e gravadores de .TGA e .HDR, já que esses formatos são comuns em pipelines de textura, mas não têm codecs WIC integrados. O repositório é organizado em torno da biblioteca principal, além de várias ferramentas de exemplo e carregadores em tempo de execução: - DirectXTex: a biblioteca principal, com um leitor/gravador DDS completo, incluindo conversões de formatos legados, leitores/gravadores TGA e HDR, um leitor/gravador de bitmap baseado em WIC (BMP, JPEG, PNG, TIFF, HD Photo) e funções de processamento de textura. Apenas DirectXTex.h e DirectXTex.inl são descritos como cabeçalhos públicos; a maioria dos outros é interna. - Auxiliary: arquivos-fonte opcionais, como funções de carregamento de adaptador usando OpenEXR e extensões de tiling de textura do Xbox. - Common: cabeçalhos-fonte compartilhados usados pela biblioteca e pelas ferramentas. - Texconv: um utilitário de textura de linha de comando baseado em DirectXTex, com suporte a argumentos semelhantes aos da ferramenta legada texconvex.exe, com diferenças nos argumentos -10/-11 e nos nomes de filtros, além de suporte a JPEG XR (HD Photo). - Texassemble: um utilitário de linha de comando para criar cubemaps, volume maps ou texture arrays a partir de imagens de entrada individuais. - Texdiag: um utilitário de linha de comando para analisar conteúdos de imagem, principalmente para depuração. - DDSView: um visualizador simples baseado em Direct3D 11 para arquivos DDS, com navegação por teclado para array textures e volume maps. - DDSTextureLoader: um carregador DDS leve em tempo de execução para Direct3D 9, 11 e 12 que não realiza conversões de dados de pixel em tempo de execução e oferece suporte a 1D, 2D, volume maps, cubemaps, níveis de mipmap, texture arrays e formatos BC. - ScreenGrab: módulos de gravação de textura para Direct3D 9, 11 e 12, principalmente para capturas de tela, gravando DDS ou formatos de imagem suportados pelo WIC. - WICTextureLoader: um carregador de textura 2D para Direct3D 9, 11 e 12 que usa WIC para carregar bitmaps, redimensionar com base no feature level ou em um parâmetro explícito, converter formato para um DXGI_FORMAT se necessário e criar uma textura 2D. Ele não oferece suporte a texturas 1D, volume textures, cubemaps ou texture arrays. Os requisitos de build indicados no README incluem Visual Studio 2022 ou 2026, clang for Windows v12 ou posterior, ou MinGW, com o Windows 11 SDK (22000) ou posterior exigido para Visual Studio. Também pode ser compilado para o Windows Subsystem for Linux usando GCC 11 ou posterior. Projetos CMake exigem versão 3.21 ou posterior. Os componentes foram projetados para funcionar sem conteúdo do DirectX SDK legado. A documentação está hospedada na wiki do GitHub. O README também documenta a instalação da skill CoPilot CLI, notas de versão cobrindo mudanças de API (como flags de bitmask de enum tipadas e a mudança CREATETEX_FLAGS), descontinuação de certos pacotes NuGet em favor do vcpkg, aposentadoria do suporte a Windows 7 e Windows 8.0 e opções longas no estilo GNU para as ferramentas de linha de comando. O projeto é licenciado sob MIT e aceita contribuições sob um CLA, com testes enviados para um repositório separado de suíte de testes.