|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июл 14, 2004 22:11:46 41 урок Nehe. Возможно вопрос глупый, но я в упор не могу понять в чем же дело... Вроде пишу все так как надо, но не работает:(( Кто-нибудь делал? Может у кого-нибудь есть исходник, чтобы где поразбираться было? А то в своем я уже запарился ковыряться... Вот часть где грузим картинку... ================== invoke MultiByteToWideChar, CP_ACP, 0, szPath, -1,addr wszPath, sizeof wszPath invoke OleLoadPicturePath, ADDR wszPath, 0, 0, 0, ADDR IID_IPicture, ADDR hPicture invoke GetDC,0 invoke CreateCompatibleDC, eax mov hDC2, eax invoke glGetIntegerv,GL_MAX_TEXTURE_SIZE, addr MaxTexDim Далее переводим ширину и высоту загруженной картинки в пиксели и подгоняем, чтобы ширина и высота стали кратными ближайшей степени двойки. ;(bInfo BITMAPINFO <>) mov bInfo.bmiHeader.biSize, sizeof BITMAPINFOHEADER mov bInfo.bmiHeader.biBitCount, 32 m2m bInfo.bmiHeader.biWidth ,TextureAtr.x ;ширина и высота будующей текстуры m2m bInfo.bmiHeader.biHeight,TextureAtr.y mov bInfo.bmiHeader.biCompression,BI_RGB mov bInfo.bmiHeader.biPlanes, 1 invoke CreateDIBSection ,hDC2, addr bInfo, DIB_RGB_COLORS,addr pbv, 0, 0 mov hBmp,eax invoke SelectObject,hDC2, eax mov ebx, PicsAtr.y ;высота картинки xor ebx, 11111111111111111111111111111111b inc ebx comcall IPicture.Render, hPicture, eax, hDC2, 0, 0, TextureAtr.x, TextureAtr.y, 0,PicsAtr.y , PicsAtr.x, ebx, 0 ;тут надо преобразовать из BGR в RGB invoke glGenTextures,1, addr texid invoke glBindTexture,GL_TEXTURE_2D, texid invoke glTexParameteri,GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR invoke glTexParameteri,GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR invoke glTexImage2D,GL_TEXTURE_2D, 0, 3, TextureAtr.x, TextureAtr.y, 0, GL_RGBA, GL_UNSIGNED_BYTE, pbv Далее удаляем все что не нужно... После всего этого вроде как происходит попытка наложить чего-то, но это что-то напоминает маленький кусочек выдранный из картинки и растянутый... Может кто-нибудь подскажет где тут неправильно? Или исходник скинет... |
|
|
Дата: Июл 15, 2004 00:15:43 А почему xor ebx, 11111111111111111111111111111111b inc ebx А не neg ebx |
|
|
Дата: Июл 15, 2004 00:27:21 А разница большая? Подсказать почему не функционирует можешь? |
|
|
Дата: Июл 15, 2004 01:08:52 41 урок вроде volumetric fog. имхо, не париться лучше, а свзяка: CreateFile ReadFile CloseFile или CreateFile CreateFileMapping MapViewOfFile ... для bmp вполне хватает |
|
|
Дата: Июл 15, 2004 01:22:56 Могу только выложить работающий исходник. Но там выводится на DC и OpenGL не используется |
|
|
Дата: Июл 15, 2004 01:26:49 Да 41 - это туман, но там часть про загрузку текстур... Так в том-то и дело, что хотелось бы не только BMP грузить... Вообще все вроде работает, но текстура не ложиться:(( Картинка грузиться, размеры беруться. В пиксели правильно переводится. Ближайшая степень двойки расчитывается правильно. CreateDIBSection вроде без ошибок... Тогда в чем же дело????? |
|
|
Дата: Июл 15, 2004 01:33:08 На DC и я выводил и все работало:(( Но выложи свой исходник на всякий случай, может чего-нибудь там увижу, что не замечаю у себя... А про xor inc == neg - это у меня просто привычка писать простыми командами, которыми часто пользуюсь... Ведь разницы все равно большой думаю нет. |
|
|
Дата: Июл 15, 2004 01:45:53 |
|
|
Дата: Июл 15, 2004 14:44:33 Loger Спасибо. Только пример отказался запускаться... Но главное исходники. У меня вроде чуть-чуть не так было сделано... jekyll имхо, не париться лучше, а свзяка: CreateFile ReadFile CloseFile Может вышлешь такой исходник? А я попытаюсь покопаться в нем, в своих, и в том что прислал Loger, может все-таки удасться понять в чем дело и дописать эту ерунду(уже какой день вожусь, ум за разум заходит просто, иначе бы сюда не написал)... |
|
|
Дата: Июл 15, 2004 22:59:58 sds В моём исходнике убери флаг GMEM_DISCARDABLE в вызове GlobalAlloc. |
|
|
Дата: Июл 16, 2004 15:00:10 Loger Понятно. Я грузил JPEG из файла даже IStream вроде не использовал, да и без Render по-моему все работало... Так что можно по-другому переписать... jekyll Столько бился с IPicture, решил попробовать как ты говорил через CreateFile,ReadFile,CloseFile (на мой взгляд лучше чем второй вариант), так за пять минут все написал:)) Текстуры прекрасно грузятся, все очень-очень просто... Но я так и не понял ПОЧЕМУ через IPicture не сработало:((((( Потом как-нибудь еще поразбираюсь попозже... Если кто-то поймет в чем дело, пожалуйста дайте знать... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.105 |