Estructura DDPIXELFORMAT (ddraw.h)

La estructura DDPIXELFORMAT describe el formato de píxel de un objeto DirectDrawSurface para el método IDirectDrawSurface7::GetPixelFormat .

Nota En lugar de usar esta estructura para descodificar archivos con el formato de archivo de DirectDraw Surface (DDS), debes usar una estructura alternativa que no se base en Ddraw.h. Para obtener más información sobre las estructuras alternativas para DDS, consulte DDS.
 

Sintaxis

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;

Miembros

dwSize

Tamaño de la estructura, en bytes. Este miembro debe inicializarse antes de usar la estructura.

dwFlags

Las marcas siguientes para describir controles opcionales para esta estructura.

DDPF_ALPHA

El formato de píxel describe una superficie de solo alfa.

DDPF_ALPHAPIXELS

La superficie tiene información del canal alfa en formato de píxel.

DDPF_ALPHAPREMULT

La superficie usa el formato alfa premultiplicado. Es decir, los componentes de color de cada píxel se multiplican previamente por el componente alfa.

DDPF_BUMPLUMINANCE

Los datos de luminancia en el formato de píxeles son válidos y el miembro dwLuminanceBitMask describe los bits de luminancia válidos para una superficie de solo luminancia o luminancia alfa.

DDPF_BUMPDUDV

Los datos de mapa de bump-map en el formato de píxeles son válidos. La información de mapa de impacto se encuentra en los miembros dwBumpBitCount, dwBumpDuBitMask, dwBumpDvBitMask y dwBumpLuminanceBitMask .

DDPF_COMPRESSED

La superficie acepta datos de píxeles en el formato especificado y los comprime durante la operación de escritura.

DDPF_D3DFORMAT

Indica una entrada de funcionalidad de formato DirectX 8.0 y versiones posteriores en la lista de formato de textura. Esta marca no se expone a las aplicaciones y se define en Ddrawi.h.

DDPF_FOURCC

El miembro dwFourCC es válido y contiene un código FOURCC que describe un formato de píxel no RGB.

DDPF_LUMINANCE

El formato de píxel describe una superficie de solo luminancia o luminancia alfa.

DDPF_PALETTEINDEXED1

La superficie tiene un índice de color de 1 bits.

DDPF_PALETTEINDEXED2

La superficie tiene un índice de color de 2 bits.

DDPF_PALETTEINDEXED4

La superficie tiene un índice de color de 4 bits.

DDPF_PALETTEINDEXED8

La superficie tiene un índice de color de 8 bits.

DDPF_PALETTEINDEXEDTO8

La superficie está indizada en color de 1, 2 o 4 bits en una paleta de 8 bits.

DDPF_RGB

Los datos RGB de la estructura de formato de píxeles son válidos.

DDPF_RGBTOYUV

La superficie acepta datos RGB y los traduce durante la operación de escritura en datos YUV. El formato de los datos que se van a escribir se encuentra en la estructura de formato de píxeles. Se establece la marca DDPF_RGB.

DDPF_STENCILBUFFER

La superficie codifica la galería de símbolos y la información de profundidad en cada píxel del búfer z. Esta marca solo se puede usar si también se especifica la marca DDPF_ZBUFFER.

DDPF_YUV

Los datos de YUV en la estructura de formato de píxeles son válidos.

DDPF_ZBUFFER

El formato de píxel describe una superficie de búfer z.

DDPF_ZPIXELS

La superficie contiene información z en los píxeles.

dwFourCC

Un código FourCC.

DUMMYUNIONNAMEN

DUMMYUNIONNAMEN.dwRGBBitCount

Bits RGB por píxel (4, 8, 16, 24 o 32).

DUMMYUNIONNAMEN.dwYUVBitCount

Bits YUV por píxel (4, 8, 16, 24 o 32).

DUMMYUNIONNAMEN.dwZBufferBitDepth

Profundidad de bits del búfer Z (8, 16, 24 o 32).

DUMMYUNIONNAMEN.dwAlphaBitDepth

Profundidad de bits de canal alfa (1, 2, 4 o 8) para una superficie de solo alfa (DDPF_ALPHA). Para los formatos de píxeles que contienen información alfa intercalada con datos de color (DDPF_ALPHAPIXELS), cuente los bits del miembro dwRGBAlphaBitMask para obtener la profundidad de bits del componente alfa. Para obtener más información sobre cómo determinar la profundidad de bits alfa, vea Comentarios.

DUMMYUNIONNAMEN.dwLuminanceBitCount

Bits de luminancia totales por píxel. Este miembro solo se aplica a las superficies de solo luminancia y luminancia-alfa.

DUMMYUNIONNAMEN.dwBumpBitCount

Total de bits de mapa de golpes por píxel en una superficie de mapa de golpes.

DUMMYUNIONNAMEN.dwPrivateFormatBitCount

Bits por píxel de formatos de controlador privado. Solo es válido en la lista de formato de textura y si se establece DDPF_D3DFORMAT.

DUMMYUNIONNAMEN.dwRBitMask

Máscara para bits rojos.

DUMMYUNIONNAMEN.dwYBitMask

Máscara para bits Y.

DUMMYUNIONNAMEN.dwStencilBitDepth

Profundidad de bits del búfer de galería de símbolos. Este miembro especifica cuántos bits se reservan dentro de cada píxel del búfer z para la información de galería de símbolos (el número total de bits z es igual a dwZBufferBitDepth menos dwStencilBitDepth).

DUMMYUNIONNAMEN.dwLuminanceBitMask

Máscara para bits de luminancia.

DUMMYUNIONNAMEN.dwBumpDuBitMask

Máscara para bits U-delta de mapa de golpes.

DUMMYUNIONNAMEN.dwOperations

Marcas que especifican las operaciones que se pueden realizar en superficies con el formato de píxel DDPF_D3DFORMAT. Las banderas se definen en Ddrawi.h.

DUMMYUNIONNAMEN.dwGBitMask

Máscara para bits verdes.

DUMMYUNIONNAMEN.dwUBitMask

Máscara para bits U.

DUMMYUNIONNAMEN.dwZBitMask

Máscara para bits z.

DUMMYUNIONNAMEN.dwBumpDvBitMask

Máscara para bits de V-delta de mapa de golpes.

DUMMYUNIONNAMEN.MultiSampleCaps

Estructura que contiene los dos miembros siguientes. Esta estructura se usa para especificar superficies que se pueden usar al realizar la representación multimuestra. Cada bit de las máscaras de 16 bits indica la compatibilidad con el muestreo múltiple con un número específico de muestras. Por ejemplo, el bit 0 indica la compatibilidad con el muestreo múltiple con solo una muestra, el bit 1 indica la compatibilidad del muestreo múltiple con dos muestras, etc. El controlador puede indicar más de un nivel admitido mediante la combinación de los bits mediante un or bit a bit.

DUMMYUNIONNAMEN.MultiSampleCaps.wFlipMSTypes

Máscara de 16 bits para el muestreo múltiple en modo de pantalla completa (volteo).

DUMMYUNIONNAMEN.MultiSampleCaps.wBltMSTypes

Máscara de 16 bits para el muestreo múltiple en modo de bloqueo de bits (ventana).

DUMMYUNIONNAMEN.dwBBitMask

Máscara para bits azules.

DUMMYUNIONNAMEN.dwVBitMask

Máscara para bits V.

DUMMYUNIONNAMEN.dwStencilBitMask

Máscara para bits de galería de símbolos dentro de cada píxel de búfer z.

DUMMYUNIONNAMEN.dwBumpLuminanceBitMask

Máscara para la luminancia en un píxel de mapa de golpes.

DUMMYUNIONNAMEN.dwRGBAlphaBitMask

Máscara RGB para el canal alfa.

DUMMYUNIONNAMEN.dwYUVAlphaBitMask

Máscara YUV para el canal alfa.

DUMMYUNIONNAMEN.dwLuminanceAlphaBitMask

Máscara de luminancia para el canal alfa.

DUMMYUNIONNAMEN.dwRGBZBitMask

Máscara RGB para el canal z.

DUMMYUNIONNAMEN.dwYUVZBitMask

Máscara YUV para el canal z.

Comentarios

El miembro dwAlphaBitDepth refleja la profundidad de bits de un formato de píxeles de solo alfa (DDPF_ALPHA). Para los formatos de píxeles que incluyen el componente alfa con componentes de color (DDPF_ALPHAPIXELS), la profundidad del bit alfa se obtiene contando los bits de los distintos miembros de máscara. En el ejemplo de código siguiente se devuelve el número de bits establecido en una máscara de bits determinada.

WORD GetNumberOfBits( DWORD dwMask )
{
    WORD wBits = 0;
    while( dwMask )
    {
        dwMask = dwMask & ( dwMask - 1 );  
        wBits++;
    }
    return wBits;
}

Las uniones de DDPIXELFORMAT se han actualizado para trabajar con compiladores que no admiten uniones sin nombre. Si el compilador no admite uniones sin nombre, defina el token NONAMELESSUNION antes de incluir el archivo de encabezado Ddraw.h.

Requisitos

   
Encabezado ddraw.h