Compartilhar via


Estrutura DDPIXELFORMAT (ddraw.h)

A estrutura DDPIXELFORMAT descreve o formato de pixel de um objeto DirectDrawSurface para o método IDirectDrawSurface7::GetPixelFormat .

Nota Em vez de usar essa estrutura para decodificar arquivos com o formato de arquivo (.dds) do DirectDraw Surface (DDS), você deve usar uma estrutura alternativa que não dependa de Ddraw.h. Para obter mais informações sobre estruturas alternativas para DDS, consulte DDS.
 

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