Об этом проекте
DirectXTex — это библиотека C++ с общим исходным кодом от Microsoft для чтения и записи файлов .DDS и выполнения операций обработки содержимого текстур. Заявленные возможности включают изменение размера, преобразование форматов, генерацию мипмапов, блочное сжатие для ресурсов текстур среды выполнения Direct3D и преобразование карт высот в карты нормалей. Библиотека использует API Windows Image Component (WIC), а также включает средства чтения и записи .TGA и .HDR, поскольку эти форматы распространены в конвейерах обработки текстур, но не имеют встроенных кодеков WIC.
Репозиторий организован вокруг основной библиотеки, а также нескольких примеров инструментов и загрузчиков среды выполнения:
- DirectXTex: основная библиотека с полнофункциональным средством чтения и записи DDS, включая преобразования устаревших форматов, средства чтения и записи TGA и HDR, средство чтения и записи растровых изображений на основе WIC (BMP, JPEG, PNG, TIFF, HD Photo) и функции обработки текстур. Публичными заголовками описаны только DirectXTex.h и DirectXTex.inl; большинство остальных являются внутренними.
- Auxiliary: необязательные исходные файлы, такие как функции загрузки адаптеров с использованием OpenEXR и расширения тайлинга текстур Xbox.
- Common: общие исходные заголовки, используемые библиотекой и инструментами.
- Texconv: утилита командной строки для работы с текстурами на основе DirectXTex, поддерживающая аргументы, аналогичные устаревшему инструменту texconvex.exe, с отличиями в аргументах -10/-11 и именах фильтров, а также поддержкой JPEG XR (HD Photo).
- Texassemble: утилита командной строки для создания кубических карт, объёмных карт или массивов текстур из отдельных входных изображений.
- Texdiag: утилита командной строки для анализа содержимого изображений, в первую очередь для отладки.
- DDSView: простой просмотрщик файлов DDS на основе Direct3D 11 с навигацией с клавиатуры для массивов текстур и объёмных карт.
- DDSTextureLoader: облегчённый загрузчик DDS среды выполнения для Direct3D 9, 11 и 12, который не выполняет преобразования данных пикселей во время выполнения и поддерживает 1D, 2D, объёмные карты, кубические карты, уровни мипмапов, массивы текстур и форматы BC.
- ScreenGrab: модули записи текстур для Direct3D 9, 11 и 12, в первую очередь для снимков экрана, записывающие DDS или форматы изображений, поддерживаемые WIC.
- WICTextureLoader: загрузчик 2D-текстур для Direct3D 9, 11 и 12, который использует WIC для загрузки растровых изображений, изменения размера на основе уровня функциональности или явного параметра, преобразования формата в DXGI_FORMAT при необходимости и создания 2D-текстуры. Он не поддерживает 1D-текстуры, объёмные текстуры, кубические карты или массивы текстур.
Требования к сборке, отмеченные в README, включают Visual Studio 2022 или 2026, clang for Windows v12 или более поздней версии либо MinGW, при этом для Visual Studio требуется Windows 11 SDK (22000) или более поздней версии. Его также можно собрать для подсистемы Windows для Linux с использованием GCC 11 или более поздней версии. Проекты CMake требуют версии 3.21 или более поздней. Компоненты разработаны так, чтобы работать без содержимого устаревшего DirectX SDK.
Документация размещена в вики GitHub. README также описывает установку навыка CoPilot CLI, примечания к выпускам, охватывающие изменения API (такие как типизированные флаги битовых масок перечислений и изменение CREATETEX_FLAGS), устаревание некоторых пакетов NuGet в пользу vcpkg, прекращение поддержки Windows 7 и Windows 8.0, а также длинные опции в стиле GNU для инструментов командной строки. Проект лицензирован по MIT и принимает вклад в соответствии с CLA, при этом тесты отправляются в отдельный репозиторий набора тестов.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.