Текстуры - странный глюк
От: Дм.Григорьев  
Дата: 23.05.05 19:59
Оценка:
Всем привет!

Помогите плиз Direct3D9-чайнику. Делаю кнопки 40x40 из текстур 64x64. Текстуры прозрачные, комбинируются из двух JPEG-ресурсов — один содержит картинку и грузится в D3DFMT_A8R8G8B8, другой — маска, грузится в D3DFMT_L8.

У меня выводится нормально (XP SP2, GeForce FX 5700; на кривое выравнивание просьба не смотреть, сам уже допёр), а у друга (XP SP1, GeForce4 Ti 4200) — черт-те что:



Комбинирую так (после каждого вызова у меня в коде стоит ASSERT(SUCCESS(hr)), всё прорабатывает без ошибок):

D3DSURFACE_DESC sd;
D3DLOCKED_RECT txr, txar;  // txr - main texture txar - Alpha texture
tx->GetLevelDesc(0, &sd);
tx->LockRect(0, &txr, NULL, 0);
txa->LockRect(0, &txar, NULL, 0);

for (int offset = sd.Width * sd.Height - 1;  offset >= 0;  offset--)
{
    ((DWORD*)txr.pBits)[offset] = (((DWORD*)txr.pBits)[offset] & 0x00ffffff) | (((BYTE*)txar.pBits)[offset] << 24);
}

_tx->UnlockRect(0);
txa->UnlockRect(0);


Подскажите плиз, куда копать.
Заранее спасибо.
http://dimgel.ru/lib.web — thin, stateless, strictly typed Scala web framework.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.