Compressed textures in DirectDraw7

0

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...

0

A czy nie lepiej sprobowac formatu jpg? W necie jest chyba troche bibliotek free.

0

Nie bo jpg ma kompresje stratną a w grach nie raz trzeba aby jakiś kolor był przezroczysty. Poza tym takie kompresje podobno również w pamięci zmniejszają rozmiar obrazu a nie tylko na dysku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1