Witam, pisze sobie gierke i mam problem ponieważ grafika w BMP troszke dużo zajmuje przydała by mi się jakaś kompresja. W dokumentacji DX7 wyczytałem o czymś takim jak DXT5. Są to podobno jakieś powierzchnie na których da się zapisywać skompresowane obrazy. Próbowałem utworzyć taką powierzchnie ale program mi się nie chce uruchamiać.
DDPIXELFORMAT ddPixelFormat = {0};
ddPixelFormat.dwSize = sizeof(DDPIXELFORMAT);
ddPixelFormat.dwFlags = DDPF_FOURCC;
ddPixelFormat.dwFourCC = FOURCC_DXT5;
ddPixelFormat.dwYUVBitCount = 32;
dds.dwSize = sizeof(dds);
dds.dwFlags = DDSD_CAPS |
DDSD_HEIGHT |
DDSD_WIDTH |
DDSD_PIXELFORMAT;
dds.ddsCaps.dwCaps = DDSCAPS_OFFSCREENPLAIN;
dds.dwWidth = Width;
dds.dwHeight = Height;
memcpy(&(dds.ddpfPixelFormat), &ddPixelFormat, sizeof(DDPIXELFORMAT));
HRESULT hResult = DD_OK;
hResult = lpdd->CreateSurface(&dds,&lp,NULL);
Niestety to nie działa. Nie wiem czy w ogóle jestem na dobrym tropie. Jeżeli ktoś miał kiedyś podobny problem i zrobił jakoś kompresje tak żeby nie trzeba było tych strasznych BMP używać to prosił bym o pomoc...