Чтение из сжатых архивов - PullRequest
1 голос
/ 15 декабря 2008

Я хочу поместить содержимое всех моих программ в сжатый архивный файл, так как он начинает становиться достаточно большим. Я знаю, что есть несколько библиотек вроде zlib, но я не знаю, как заставить их делать то, что я хочу:

  • Возможность загружать текстуры / модели и т. Д. Из файла, используя im3 методы d3dx, такие как D3DXCreateTextureFromFileEx. Я действительно не хочу писать собственные загрузчики изображений для разных форматов, которые мне нужны, поэтому мне нужен какой-то способ совместимости с этими методами d3d. Я знаю, что у них есть способ загрузки из файла в памяти, было бы целесообразно как-то извлечь файл в память и загрузить его?

  • Уметь использовать потоки c ++ с файлами в сжатом архиве, например:
    файл std :: zipstream ("data.zip:sounds/beep.wav", std :: ios :: in | std :: ios :: binary);

Ответы [ 3 ]

2 голосов
/ 15 декабря 2008

Я бы порекомендовал посмотреть на игры с открытым исходным кодом (например, quake3). Некоторые из них упаковывают ресурсы и имеют рабочие реализации «виртуальной файловой системы», как отметил Вилкс. Вы можете получить некоторые идеи.

0 голосов
/ 15 декабря 2008

Есть статья под названием Программирование виртуальной файловой системы , заархивированная на flipcode , которая должна предоставить то, что вам нужно. Если у вас есть вопросы, относящиеся к этой статье, многие бывшие участники флип-кода теперь часто посещают форумы на DevMaster.net .

0 голосов
/ 15 декабря 2008

Есть готовые библиотеки для такого рода вещей. Боюсь, я не знаю ни одного имени, но я предлагаю поискать в Google ключевые слова "виртуальная файловая система".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...