не пойму, жив проект openil или перестал поддерживаться? на сайте последняя новость почти 2-х летней давности.
стоит ли связываться с практически неподдерживаемой библиотекой? или я заблуждаюсь?
_ps_
К сожалению, в OpenIL есть глюки (собственно, мне не посчастливилось наткнуться на многие), последняя версия вышла очень давно. Я бы не советовал.
Zeux
есть ли достойная альтернатива? бесплатная, желательно opensource и с хорошей лицензией для коммерческого использования.
Zeux
пора тебе твой убер-ил продавать начинать :)
Zeux
что за убер-ил? может пора выдать на общее обозрение? -))
_ps_
Посмотри FreeImage, ну плюс может еще есть неплохие. Game Texture Loader. Еще что-то.
Все зависит от того, что тебе нужно. Я за 4 дня написал поддержку 4 форматов (BMP, DDS, TGA, JPEG), притом загрузка работает быстрее, чем в DevIL (несмотря на отсутствие каких-либо неочевидных оптимизаций), и грузит больше файлов.
Zeux
вот загрузку и нужно. у меня есть какая-то реализованная загрузка файлов. просто боюсь упустить какие-нибудь нюансы с форматами. ну и dds не такой уж тривиальный. а глубоко разбираться с форматами не хочется. время жалко. -)
FreeImage - вроде по описанию не плох. можно попробовать покопаться. спасибо.
Помогите плиз решить такую проблему
вот код
Lv_Image_info *LoadImage(Lv_String filename)
{
ilInit();
ilEnable(IL_ORIGIN_SET);
ilOriginFunc(IL_ORIGIN_LOWER_LEFT);
//ilSwapColors
ilLoadImage((ILstring)filename.c_str());
Lv_Image_info *pResult = new Lv_Image_info;
ZeroMemory(pResult, sizeof(Lv_Image_info));
pResult->Width = ilGetInteger(IL_IMAGE_WIDTH);
pResult->Height = ilGetInteger(IL_IMAGE_HEIGHT);
pResult->BytesPerPixel = ilGetInteger(IL_IMAGE_BPP);
pResult->pData = new char[pResult->Width*pResult->Height*pResult->BytesPerPixel];
memcpy(pResult->pData, (char*)ilGetData(), pResult->Width*pResult->Height*pResult->BytesPerPixel);
ilShutDown();
return pResult;
};
Эты процедура возвращает указатель на структуру, в которой хранится указатель на буффер с самоу картинкой, высотой, шириной и глубиной цвета картинки. При создании текстуры делаю так
long Create(LPDIRECT3DDEVICE9 pDev, D3DFORMAT format, Lv_Image_loader::Lv_Image_info *pImgInfo)
{
if(FAILED(D3DXCreateTexture(pDev, pImgInfo->Width, pImgInfo->Height, 0, 0, format, D3DPOOL_MANAGED, &pTEX)))
{
return 1;
}
Width = pImgInfo->Width;
Height = pImgInfo->Height;
BytesPerPixel= pImgInfo->BytesPerPixel;
fmtFormat = format;
D3DLOCKED_RECT pLR;
pTEX->LockRect(0, &pLR, 0, 0);
memcpy(pLR.pBits, pImgInfo->pData, Width*Height*BytesPerPixel);
pTEX->UnlockRect(0);
return 0;
};
Если вместо D3DXCreateTexture юзать LPDIRECT3DDEVICE9::CreateTexture, то текстура просто не создаётся в кстройстве. Хз что делать :'(
Прикольная штука этот OpenIL, но только вот мой загрузчик намного быстрее грузит. И тормозов в общем итоге OpenIL добавляет, может я чего-то не доработал? Или тормоза с OpenIL - это обычная вещь?
1) Классная статья. Спасибо.
2) При запуске примера вылезает ошибка :
"Точка входа в процедуру <много всяких знаков но название основное __glutInitWithExit> не найдена в библиотеке DLL glut.dll"
Че делать ?
3) При попытки скомпилировать проект самому , компилятор не может найти glut.h, хотя он у меня напихан везде где только можно !
Dr.WoLf
твой код. твои ошибки. у всех все работало.
Neonic
Вторая ошибка (которую я описал выше) выскакивает у меня при запуске примера из архива...
Третья ошибка появляется у меня , когда я просто хочу сам скомпилировать код из этой статьи...У меня все подключено, но glut.h он все равно не находит...
Извиняюсь, если было.
Земечено, что загруженные JPEG и PNG получаются перевернутыми. У кого-нибудь такое было? Конечно, можно использовать iluFlipImage(), но это если заранее знаешь, какой формат загружаешь.
Кто как справляется с данной проблемой?
PRIZRAK
Попробуй
ilEnable(IL_ORIGIN_SET); ilSetInteger( IL_ORIGIN_MODE, IL_ORIGIN_UPPER_LEFT);
Zeux
Сработало, спасибо!
Тема в архиве.