Estrutura DDPIXELFORMAT (ddraw.h)
A estrutura DDPIXELFORMAT descreve o formato de pixel de um objeto DirectDrawSurface para o método IDirectDrawSurface7::GetPixelFormat .
Sintaxe
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;
Membros
dwSize
Tamanho da estrutura, em bytes. Esse membro deve ser inicializado antes que a estrutura seja usada.
dwFlags
Os sinalizadores a seguir para descrever controles opcionais para essa estrutura.
DDPF_ALPHA
O formato de pixel descreve uma superfície somente alfa.
DDPF_ALPHAPIXELS
A superfície tem informações de canal alfa no formato de pixel.
DDPF_ALPHAPREMULT
A superfície usa o formato alfa pré-multiplicado. Ou seja, os componentes de cor em cada pixel são pré-multiplicados pelo componente alfa.
DDPF_BUMPLUMINANCE
Os dados de luminância no formato pixel são válidos e o membro dwLuminanceBitMask descreve bits de luminância válidos para uma superfície somente luminância ou luminância-alfa.
DDPF_BUMPDUDV
Os dados de mapa de colisão no formato de pixel são válidos. As informações do mapa de colisão estão nos membros dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask e dwBumpLuminanceBitMask .
DDPF_COMPRESSED
A superfície aceita dados de pixel no formato especificado e compacta-os durante a operação de gravação.
DDPF_D3DFORMAT
Indica uma entrada de funcionalidade de formato DirectX 8.0 e posterior na lista de formato de textura. Esse sinalizador não é exposto a aplicativos e é definido em Ddrawi.h.
DDPF_FOURCC
O membro dwFourCC é válido e contém um código FOURCC que descreve um formato de pixel não RGB.
DDPF_LUMINANCE
O formato de pixel descreve uma superfície somente luminância ou luminância-alfa.
DDPF_PALETTEINDEXED1
A superfície é indexada por cores de 1 bit.
DDPF_PALETTEINDEXED2
A superfície é indexada por cores de 2 bits.
DDPF_PALETTEINDEXED4
A superfície é indexada por cores de 4 bits.
DDPF_PALETTEINDEXED8
A superfície é indexada por cores de 8 bits.
DDPF_PALETTEINDEXEDTO8
A superfície é indexada por cores de 1, 2 ou 4 bits para uma paleta de 8 bits.
DDPF_RGB
Os dados RGB na estrutura de formato de pixel são válidos.
DDPF_RGBTOYUV
A superfície aceita dados RGB e os converte durante a operação de gravação em dados YUV. O formato dos dados a serem gravados está contido na estrutura de formato de pixel. O sinalizador DDPF_RGB está definido.
DDPF_STENCILBUFFER
A superfície codifica informações de estêncil e profundidade em cada pixel do buffer z. Esse sinalizador só poderá ser usado se o sinalizador DDPF_ZBUFFER também for especificado.
DDPF_YUV
Os dados YUV na estrutura de formato de pixel são válidos.
DDPF_ZBUFFER
O formato de pixel descreve uma superfície de buffer z.
DDPF_ZPIXELS
A superfície contém informações z nos pixels.
dwFourCC
Um código FourCC.
DUMMYUNIONNAMEN
DUMMYUNIONNAMEN.dwRGBBitCount
Bits RGB por pixel (4, 8, 16, 24 ou 32).
DUMMYUNIONNAMEN.dwYUVBitCount
Bits YUV por pixel (4, 8, 16, 24 ou 32).
DUMMYUNIONNAMEN.dwZBufferBitDepth
Profundidade de bits do buffer Z (8, 16, 24 ou 32).
DUMMYUNIONNAMEN.dwAlphaBitDepth
Profundidade de bits do canal alfa (1, 2, 4 ou 8) para uma superfície somente alfa (DDPF_ALPHA). Para formatos de pixel que contêm informações alfa intercaladas com dados de cor (DDPF_ALPHAPIXELS), conte os bits no membro dwRGBAlphaBitMask para obter a profundidade de bit do componente alfa. Para obter mais informações sobre como determinar a profundidade do bit alfa, consulte Comentários.
DUMMYUNIONNAMEN.dwLuminanceBitCount
Total de bits de luminância por pixel. Esse membro aplica-se somente a superfícies somente luminância e luminância-alfa.
DUMMYUNIONNAMEN.dwBumpBitCount
Total de bits de mapa de colisão por pixel em uma superfície de mapa de colisão.
DUMMYUNIONNAMEN.dwPrivateFormatBitCount
Bits por pixel de formatos de driver privado. Válido somente na lista de formato de textura e se DDPF_D3DFORMAT estiver definido.
DUMMYUNIONNAMEN.dwRBitMask
Máscara para bits vermelhos.
DUMMYUNIONNAMEN.dwYBitMask
Mascarar para bits Y.
DUMMYUNIONNAMEN.dwStencilBitDepth
Profundidade de bit do buffer de estêncil. Esse membro especifica quantos bits são reservados em cada pixel do buffer z para obter informações de estêncil (o número total de bits z é igual a dwZBufferBitDepth menos dwStencilBitDepth).
DUMMYUNIONNAMEN.dwLuminanceBitMask
Máscara para bits de luminância.
DUMMYUNIONNAMEN.dwBumpDuBitMask
Máscara para bits U-delta de mapa de colisão.
DUMMYUNIONNAMEN.dwOperations
Sinalizadores que especificam as operações que podem ser executadas em superfícies com o formato de pixel DDPF_D3DFORMAT. Os sinalizadores são definidos em Ddrawi.h.
DUMMYUNIONNAMEN.dwGBitMask
Máscara para bits verdes.
DUMMYUNIONNAMEN.dwUBitMask
Máscara para bits U.
DUMMYUNIONNAMEN.dwZBitMask
Mascarar para bits z.
DUMMYUNIONNAMEN.dwBumpDvBitMask
Máscara para bits V-delta de mapa de colisão.
DUMMYUNIONNAMEN.MultiSampleCaps
Uma estrutura que contém os dois membros a seguir. Essa estrutura é usada para especificar superfícies que podem ser usadas ao executar a renderização multisample. Cada bit nas máscaras de 16 bits indica suporte a várias amostras com um número específico de amostras. Por exemplo, bit 0 indica suporte a multisampling com apenas uma única amostra, bit 1 indica o suporte de multisampling com dois exemplos e assim por diante. O driver pode indicar mais de um nível com suporte combinando os bits usando um OR bit a bit.
DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes
Uma máscara de 16 bits para multiamostramento no modo de tela inteira (inversão).
DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes
Uma máscara de 16 bits para multiamostragem do modo de janela (transferência de bloco de bits).
DUMMYUNIONNAMEN.dwBBitMask
Máscara para bits azuis.
DUMMYUNIONNAMEN.dwVBitMask
Mascarar para bits V.
DUMMYUNIONNAMEN.dwStencilBitMask
Mascarar bits de estêncil em cada pixel de buffer z.
DUMMYUNIONNAMEN.dwBumpLuminanceBitMask
Máscara para luminância em um pixel de mapa de colisão.
DUMMYUNIONNAMEN.dwRGBAlphaBitMask
Máscara RGB para o canal alfa.
DUMMYUNIONNAMEN.dwYUVAlphaBitMask
Máscara YUV para o canal alfa.
DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask
Máscara de luminância para o canal alfa.
DUMMYUNIONNAMEN.dwRGBZBitMask
Máscara RGB para o canal z.
DUMMYUNIONNAMEN.dwYUVZBitMask
Máscara YUV para o canal z.
Comentários
O membro dwAlphaBitDepth reflete a profundidade do bit de um formato de pixel somente alfa (DDPF_ALPHA). Para formatos de pixel que incluem o componente alfa com componentes de cor (DDPF_ALPHAPIXELS), a profundidade do bit alfa é obtida contando os bits nos vários membros de máscara. O exemplo de código a seguir retorna o número de bits definidos em uma máscara de bits determinada.
WORD GetNumberOfBits( DWORD dwMask )
{
WORD wBits = 0;
while( dwMask )
{
dwMask = dwMask & ( dwMask - 1 );
wBits++;
}
return wBits;
}
Os sindicatos em DDPIXELFORMAT foram atualizados para trabalhar com compiladores que não dão suporte a uniões sem nome. Se o compilador não der suporte a uniões sem nome, defina o token NONAMELESSUNION antes de incluir o arquivo de cabeçalho Ddraw.h.
Requisitos
Cabeçalho | ddraw.h |