Всем привет!
Помогите плиз 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);
Подскажите плиз, куда копать.
Заранее спасибо.