@semihal

Как загрузить DDS файл в c++ builder?

Полазив по интернету так ничего и не нашёл...

Суть проблемы:
Нужно открыть DDS файл... Содержимое собственно в себе содержит "пак иконок". Эти иконки нужно будет использовать в приложении в качестве картинок.

Пути решений:
Пытался найти пути решений, но так и не нашёл...

Подскажите, кто знает, как подгрузить этот "пак иконок" в программу средствами c++
  • Вопрос задан
  • 2645 просмотров
Решения вопроса 1
@MarkusD Куратор тега C++
все время мелю чепуху :)
DDS - Direct Draw Surface - это формат контейнера, заполненного одним или несколькими изображениями, снабженного специальным DDS заголовком.
Как правило, в таком формате хранятся сжатые аппаратно-декодируемыми методами текстуры (S3TC, PVR, ATC, ETC). Вместе с тем, контейнер позволяет хранить и несжатые цветовые данные.
Тип метода сжатия указан в DDS-заголовке, в полле "_fourcc", в виде четырехсимвольной строки.

Пример описания DDS-заголовка:
https://github.com/FrankStain/tex-conv/blob/master...

Пример непосредственной загрузки DDS файла:
https://github.com/FrankStain/tex-conv/blob/master...

При загрузке DDS-файла, первым этапом читаем заголовок, все что дальше заголовка - это изображени(е|я).
Если в заголовке файла указан формат сжатия данных, то перед их ручным использованием данные надо распаковать. Несжатые данные (RGB(1|4|8)(A) форматы) можно использовать прямо из файла.
Писать распаковщик формата сжатия своими руками - дело затруднительное. Легче взять готовые библиотеки у непосредственных разработчиков или посредников этих форматов.
ATC распаковывается с помощью Adreno SDK ( https://developer.qualcomm.com/download ).
PVR распаковывается с помощью PowerVR SDK ( community.imgtec.com/developers/powervr/graphics-sdk ).
DXT или S3TC обрабатывают как оба вышеперечисленных пакета, так и DirectX SDK. Так же существует набор утилит от nVidia - Texture Tools ( https://developer.nvidia.com/legacy-texture-tools ).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
heksen
@heksen
Ответ написан
Комментировать
AxisPod
@AxisPod
Проще сконвертить в поддерживаемый формат.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы