Структура DDPIXELFORMAT (ddraw.h)
Структура DDPIXELFORMAT описывает формат пикселей объекта DirectDrawSurface для метода IDirectDrawSurface7::GetPixelFormat .
Синтаксис
typedef struct _DDPIXELFORMAT {
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
#if ...
union {
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
DWORD dwLuminanceBitCount;
DWORD dwBumpBitCount;
DWORD dwPrivateFormatBitCount;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
DWORD dwStencilBitDepth;
DWORD dwLuminanceBitMask;
DWORD dwBumpDuBitMask;
DWORD dwOperations;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
DWORD dwZBitMask;
DWORD dwBumpDvBitMask;
struct {
WORD wFlipMSTypes;
WORD wBltMSTypes;
} MultiSampleCaps;
} DUMMYUNIONNAMEN;
#elif
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
DWORD dwStencilBitMask;
DWORD dwBumpLuminanceBitMask;
} DUMMYUNIONNAMEN;
#else
union {
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwLuminanceAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
} DUMMYUNIONNAMEN;
#endif
} DDPIXELFORMAT;
Члены
dwSize
Размер структуры в байтах. Этот элемент необходимо инициализировать перед использованием структуры.
dwFlags
Следующие флаги описывают необязательные элементы управления для этой структуры.
DDPF_ALPHA
Формат пикселей описывает поверхность, доступную только для альфа-канала.
DDPF_ALPHAPIXELS
На поверхности содержатся сведения о альфа-канале в формате пикселей.
DDPF_ALPHAPREMULT
Поверхность использует предварительно заданный альфа-формат. То есть компоненты цвета в каждом пикселе предварительно замедляются альфа-компонентом.
DDPF_BUMPLUMINANCE
Данные о яркости в формате пикселей допустимы, а член dwLuminanceBitMask описывает допустимые биты яркости для поверхности только для яркости или альфа-яркости.
DDPF_BUMPDUDV
Допустимы данные на схеме бамп-карты в формате пикселей. Сведения о схеме bump-map содержатся в элементах dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask и dwBumpLuminanceBitMask .
DDPF_COMPRESSED
Поверхность принимает пиксельные данные в указанном формате и сжимает их во время операции записи.
DDPF_D3DFORMAT
Указывает запись возможности форматирования DirectX 8.0 и более поздних версий в списке форматов текстур. Этот флаг не предоставляется приложениям и определен в Ddrawi.h.
DDPF_FOURCC
Член dwFourCC является допустимым и содержит код FOURCC, описывающий формат пикселей, отличный от RGB.
DDPF_LUMINANCE
Формат пикселей описывает поверхность только для яркости или альфа-яркости.
DDPF_PALETTEINDEXED1
Поверхность имеет 1-битовый индекс цвета.
DDPF_PALETTEINDEXED2
Поверхность имеет 2-разрядный цветовый индекс.
DDPF_PALETTEINDEXED4
Поверхность имеет 4-разрядную цветоиндексированную.
DDPF_PALETTEINDEXED8
Поверхность имеет 8-разрядный цветовый индекс.
DDPF_PALETTEINDEXEDTO8
Поверхность имеет 1, 2 или 4-разрядную цветовую индексированную на 8-битовую палитру.
DDPF_RGB
Данные RGB в структуре формата пикселей являются допустимыми.
DDPF_RGBTOYUV
Поверхность принимает данные RGB и преобразует их во время операции записи в данные YUV. Формат записываемых данных содержится в структуре формата пикселей. Установлен флаг DDPF_RGB.
DDPF_STENCILBUFFER
Поверхность кодирует трафарет и сведения о глубине в каждом пикселе z-буфера. Этот флаг можно использовать только в том случае, если также указан флаг DDPF_ZBUFFER.
DDPF_YUV
Допустимы данные YUV в структуре формата пикселей.
DDPF_ZBUFFER
Формат пикселей описывает поверхность z-буфера.
DDPF_ZPIXELS
Поверхность содержит информацию z в пикселях.
dwFourCC
Код FourCC.
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
Бит RGB на пиксель (4, 8, 16, 24 или 32).
DUMMYUNIONNAMEN.dwYUVBitCount
Число битов YUV на пиксель (4, 8, 16, 24 или 32).
DUMMYUNIONNAMEN.dwZBufferBitDepth
Битовая глубина Z-буфера (8, 16, 24 или 32).
DUMMYUNIONNAMEN.dwAlphaBitDepth
Битовая глубина альфа-канала (1, 2, 4 или 8) для поверхности, доступной только для альфа-канала (DDPF_ALPHA). Для форматов пикселей, содержащих альфа-данные, чередующиеся с цветными данными (DDPF_ALPHAPIXELS), подсчитайте биты в элементе dwRGBAlphaBitMask , чтобы получить битовую глубину альфа-компонента. Дополнительные сведения об определении глубины альфа-бита см. в разделе Примечания.
DUMMYUNIONNAMEN.dwLuminanceBitCount
Общее количество бит яркости на пиксель. Этот элемент применяется только к поверхностям только для яркости и luminance-alpha.
DUMMYUNIONNAMEN.dwBumpBitCount
Общее количество битов на карту ударов на пиксель в поверхности рельефной карты.
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
Бит на пиксель форматов частных драйверов. Допустимо только в списке форматов текстур и, если задано DDPF_D3DFORMAT.
DUMMYUNIONNAMEN.dwRBitMask
Маска для красных битов.
DUMMYUNIONNAMEN.dwYBitMask
Маска для битов Y.
DUMMYUNIONNAMEN.dwStencilBitDepth
Битовая глубина буфера трафарета. Этот элемент указывает, сколько битов зарезервировано в каждом пикселе z-буфера для сведений о наборе элементов (общее число z-битов равно dwZBufferBitDepth минус dwStencilBitDepth).
DUMMYUNIONNAMEN.dwLuminanceBitMask
Маска для битов яркости.
DUMMYUNIONNAMEN.dwBumpDuBitMask
Маска для битов U-delta карты.
DUMMYUNIONNAMEN.dwOperations
Флаги, указывающие операции, которые могут выполняться на поверхностях с DDPF_D3DFORMAT форматом пикселей. Флаги определены в файле Ddrawi.h.
DUMMYUNIONNAMEN.dwGBitMask
Маска для зеленых битов.
DUMMYUNIONNAMEN.dwUBitMask
Маска для битов U.
DUMMYUNIONNAMEN.dwZBitMask
Маска для Z-битов.
DUMMYUNIONNAMEN.dwBumpDvBitMask
Маска для битов V-delta карты от бамп-карты.
DUMMYUNIONNAMEN.MultiSampleCaps
Структура , содержащая следующие два элемента. Эта структура используется для указания поверхностей, которые можно использовать при выполнении многопримерной отрисовки. Каждый бит в 16-разрядных масках указывает на поддержку множественной дискретизации с определенным количеством выборок. Например, бит 0 указывает на поддержку множественной выборки только с одной выборкой, бит 1 указывает на поддержку множественной выборки с двумя выборками и т. д. Драйвер может указать несколько поддерживаемых уровней, объединяя биты с помощью побитового ИЛИ.
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
16-разрядная маска для многоэкранного режима (перелистывания).
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
16-разрядная маска для многофакторной дискретизации в оконном режиме (передача битовых блоков).
DUMMYUNIONNAMEN.dwBBitMask
Маска для синих битов.
DUMMYUNIONNAMEN.dwVBitMask
Маска для V-битов.
DUMMYUNIONNAMEN.dwStencilBitMask
Маска для битов трафарета в каждом пикселе z-буфера.
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
Маскировка для яркости в пикселе карты бампера.
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
Маска RGB для альфа-канала.
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
Маска YUV для альфа-канала.
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
Маска яркости для альфа-канала.
DUMMYUNIONNAMEN.dwRGBZBitMask
Маска RGB для канала z.
DUMMYUNIONNAMEN.dwYUVZBitMask
Маска YUV для канала z.
Комментарии
Элемент dwAlphaBitDepth отражает битовую глубину только альфа-формата пикселей (DDPF_ALPHA). Для форматов пикселей, включающих альфа-компонент с компонентами цвета (DDPF_ALPHAPIXELS), глубина альфа-бита получается путем подсчета битов в различных элементах маски. В следующем примере кода возвращается количество битов, заданное в заданной битовой маске.
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
Объединения в DDPIXELFORMAT были обновлены для работы с компиляторами, которые не поддерживают безымяные объединения. Если компилятор не поддерживает безымяние объединения, определите токен NONAMELESSUNION перед включением файла заголовка Ddraw.h.
Требования
Верхняя часть | ddraw.h |