Mipmaps
В DirectX 2, DirectDraw поддерживает поверхности текстуры mipmapped. Mipmap - последовательность текстур, каждая из которых - прогрессивно более низкая разрешающая способность, предварительно фильтрованное представление того же самого изображения. Mipmapping - в вычислительном отношении дешевый путь улучшения качества представленных текстур. Каждое изображение или предварительно фильтровано, или уровень, или мощность в mipmap в два меньшее чем предыдущий уровень. В DirectDraw, mipmaps представляется как цепочка присоединенных поверхностей. Самая высокая текстура разрешающей способности - в главе цепочки и имеет, как присоединение, следующий уровень mipmap, который имеет, в свою очередь, присоединяется, которое является следующим уровнем в mipmap, и так далее до самого низкого уровня разрешающей способности mipmap.
Чтобы создавать поверхность, представляющую одиночный уровень mipmap, определите флажок DDSCAPS_MIPMAP в поверхностном описании, переданном к IDirectDraw:: CreateSurface. Так как mipmap - тоже текстуры, флажок DDSCAPS_TEXTURE должен также быть определен. Возможно создать каждый уровень вручную и формировать цепочку IDirectDrawSurface:: AddAttachedSurface. Однако, IDirectDraw:: CreateSurface метод может использоваться, чтобы формировать всю mipmap цепочку в одиночной операции.
Следующий пример показывает формирование цепочки пять mipmap уровней размером 256ґ256, 128ґ128, 64ґ64, 32ґ32 и 16ґ16.
DDSURFACEDESC ddsd;
LPDIRECTDRAWSURFACE lpDDMipMap;
ZeroMemory(&ddsd, sizeof(ddsd));
ddsd.dwSize = sizeof(ddsd);
ddsd.dwFlags = DDSD_CAPS | DDSD_MIPMAPCOUNT;
ddsd.dwMipMapCount = 5;
ddsd.ddsCaps.dwCaps = DDSCAPS_TEXTURE |