|
Языки программирования Изучаем С++, Sql, php, Lua, Python |
|
Опции темы | Поиск в этой теме | Опции просмотра |
24.03.2012, 13:48 | #1 |
Ученый
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
|
DXT декомпрессия
В общем решил начать изучать OpenGL, но все понемногу. Решил разобраться как устроен modelviewer. Естественно, использую Qt4 и его модуль, но вопрос сейчас не по 3D графике
Не могу прочитать BLP %) Точней могу, но не понимаю как правильно оперировать с данными. Использую squish библиотеку для декомпрессии изображения, но наверное делаю что-то не так. Никак не получается вывести картинку - вместо нее набор цветопикселей Вот код (может кому-то он ничего не скажет, но суть, я думаю, поймете) Код:
QPixmap Texture::getImage() { int mipmax = m_header.hasMips ? 16 : 1; QDataStream stream(m_buffer); stream.setByteOrder(QDataStream::LittleEndian); QVector<quint8> data; quint8 d = 0; for (quint8 i = 0; i < mipmax; i++) { stream.skipRawData(m_header.offsets[i]); for (quint32 j = 0; j < m_header.lengths[i]; j++) { stream >> d; data << d; } } QVector<quint8> v; v.resize(m_header.width * m_header.height * 16 * 4); squish::DecompressImage(&v[0], m_header.width, m_header.height, data.data(), m_header.encoding); QImage img(v.data(), m_header.width, m_header.height, QImage::Format::Format_ARGB32); return QPixmap::fromImage(img); } PS WMV 0.4 http://wowmv.svn.sourceforge.net/viewvc/wowmv/src/ WMV Latest http://code.google.com/p/wowmodelviewer/source/browse/ SQUISH http://code.google.com/p/libsquish/
__________________
SpellWork Qt4 Последний раз редактировалось Sid; 24.03.2012 в 13:52. |