Об этом проекте

## Обзор Это официальный репозиторий Khronos для KTX (Khronos Texture) — легковесного контейнерного формата для текстур, используемых с OpenGL, Vulkan и другими GPU API. Файл KTX хранит все параметры, необходимые для загрузки текстуры, и один файл может содержать что угодно: от простой 2D-текстуры базового уровня до текстурного массива кубических карт с мипмапами. ## Что включает программное обеспечение - **libktx** — небольшая библиотека на C для чтения и записи файлов KTX и для создания на их основе текстур OpenGL, OpenGL ES и Vulkan. - **libktx.js / libktx.wasm** — сборка libktx в WebAssembly с обёрткой на JavaScript. - **msc_basis_transcoder.js / .wasm** — транскодер WebAssembly плюс обёртка на JavaScript для форматов Basis Universal, предназначенный для парсеров KTX, написанных на JavaScript. - **libktx.jar и libktx-jni** — обёртка для Java и библиотека нативного интерфейса. - **pyktx** — обёртка для Python. - **ktx** — универсальный инструмент командной строки для управления файлами KTX2 с подкомандами: compare, convert, create, deflate, extract, encode, transcode, info, validate и help. ## Форматы текстур Содержащиеся текстуры могут быть в формате Basis Universal, в блочно-сжатых форматах, поддерживаемых семейством OpenGL и API и расширениями Vulkan, либо в несжатом одноплоскостном формате. Basis Universal в настоящее время охватывает LZ/ETC1S (блочное сжатие плюс суперсжатие) и UASTC (блочно-сжатый формат). Форматы, отличные от LZ/ETC1S, могут быть суперсжаты с помощью Zstd и ZLIB. ## Распространение и документация Бинарные пакеты инструментов, библиотеки и заголовков для разработки публикуются на странице Releases проекта, где также размещены пакеты, содержащие обёртки JavaScript и бинарные файлы .wasm. Документация, созданная Doxygen и охватывающая API и использование инструментов, доступна онлайн. Установщики для настольных систем включают несколько компонентов; по умолчанию устанавливаются только инструмент ktx и среда выполнения libktx, а другие компоненты, такие как заголовки для разработки и обёртка для Java, можно выбрать через опцию Customize в установщике. ## Примечания о репозитории Для полного извлечения репозитория после клонирования необходимо установить Git LFS (версии 1.1 или более поздней); если он отсутствовал при первой проверке, выполните после этого `git lfs checkout`. Тесты соответствия для инструмента командной строки ktx находятся в отдельном репозитории KTX-Software-CTS, включённом как подмодуль git, который по умолчанию не требуется для сборки библиотек или инструментов. Некоторые файлы используют раскрытие ключевого слова `$Date$` через smudge/clean-фильтры, настраиваемые с помощью скриптов install-gitconfig и скриптов smudge_date для Unix-подобных оболочек и Windows PowerShell. Вспомогательные скрипты включают `scripts/gk` для поиска по исходному коду с пропуском каталогов сборки, .git, external и tests/cts, и `scripts/ktx-compare-git` — обёртку, позволяющую использовать `ktx compare` как драйвер git diff для файлов KTX2. Поддержка осуществляется через GitHub Discussions, а о проблемах сообщается через GitHub issues. Информация о внесении вклада, лицензировании и сборке описана в файлах CONTRIBUTING, LICENSE и BUILDING.