Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Языки программирования

Важная информация

Языки программирования Изучаем С++, Sql, php, Lua, Python

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.03.2012, 13:48   #1
Sid
Ученый
 
Аватар для Sid
 
Регистрация: 02.04.2010
Сообщений: 237
Сказал(а) спасибо: 41
Поблагодарили 99 раз(а) в 44 сообщениях
Sid Скоро придёт к известностиSid Скоро придёт к известности
По умолчанию 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);
}
Смотрел как в modelviewer считывается BLP, но там декомпрессия через opengl происходит, и этих методов нет в модуле Qt. Поэтому использовал библиотеку. Вопрос - правилен этот код хоть на пару процентов?))

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.
Sid вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 13:35. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot