Estructura DDPIXELFORMAT (ksmedia.h)
La estructura DDPIXELFORMAT describe el formato de píxel de un objeto DirectDrawSurface .
Sintaxis
typedef struct _DDPIXELFORMAT {
DWORD dwSize;
DWORD dwFlags;
DWORD dwFourCC;
union {
DWORD dwRGBBitCount;
DWORD dwYUVBitCount;
DWORD dwZBufferBitDepth;
DWORD dwAlphaBitDepth;
};
union {
DWORD dwRBitMask;
DWORD dwYBitMask;
};
union {
DWORD dwGBitMask;
DWORD dwUBitMask;
};
union {
DWORD dwBBitMask;
DWORD dwVBitMask;
};
union {
DWORD dwRGBAlphaBitMask;
DWORD dwYUVAlphaBitMask;
DWORD dwRGBZBitMask;
DWORD dwYUVZBitMask;
};
} DDPIXELFORMAT, *LPDDPIXELFORMAT;
Miembros
dwSize
Especifica el tamaño en bytes de la estructura DDPIXELFORMAT. El controlador debe inicializar este miembro antes de usar la estructura.
DirectX 9.0 y versiones posteriores solo. Especifica, en la entrada, la versión del entorno de ejecución de Microsoft DirectX que usa la aplicación. Este miembro se establece en DD_RUNTIME_VERSION, que es 0x00000900 para DirectX 9.0, en el miembro de formato de la estructura de DD_GETFORMATDATA para una consulta de D3DGDI2_TYPE_GETFORMAT.
dwFlags
Indica un conjunto de marcas que especifican marcas de control opcionales. Este miembro es un OR bit a bit de cualquiera de los siguientes valores:
Marca | Significado |
---|---|
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 | Los componentes de color del píxel se multiplican previamente por el valor alfa del píxel. Si se establece esta marca, también se debe establecer la marca DDPF_ALPHAPIXELS. Si no se establece esta marca, pero se establece la marca de DDPF_ALPHAPIXELS, los componentes de color del formato de píxel no se multiplican previamente por alfa. En este caso, los componentes de color deben multiplicarse por el valor alfa en el momento en que se realiza una operación de combinación alfa. |
DDPF_BUMPDUDV | Los datos de dUdV de mapa de aumento en el formato de píxeles son válidos. |
DDPF_BUMPHEIGHT | Los datos de alto del mapa de aumento en el formato de píxeles son válidos. |
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 formatos de textura. Esta marca no se expone a las aplicaciones. |
DDPF_FOURCC | El código FOURCC es válido. |
DDPF_LUMINANCE | Los datos de luminancia en formato de píxeles son válidos. Utilice esta marca para superficies solo de luminancia o luminancia-plus-alfa; a continuación, la profundidad de bits se especifica en el miembro dwLuminanceBitCount . |
DDPF_LUMINANCEPIXELS | Los datos de luminancia en formato de píxeles son válidos. Utilice esta marca al colgar la luminancia, por ejemplo, superficies de mapa de golpes. A continuación, la máscara de bits de la parte de la luminancia del píxel se especifica en el miembro dwBumpLuminanceBitMask . |
DDPF_NOVEL_TEXTURE_FORMAT | Indica un nuevo formato de superficie que el entorno de ejecución podría no exponer a todas las aplicaciones. |
DDPF_PALETTEINDEXED1 | La superficie tiene un color de 1 bits indizado. |
DDPF_PALETTEINDEXED2 | La superficie tiene un color de 2 bits indizado. |
DDPF_PALETTEINDEXED4 | La superficie tiene un color de 4 bits indizado. |
DDPF_PALETTEINDEXED8 | La superficie tiene un índice de color de 8 bits. |
DDPF_PALETTEINDEXEDTO8 | La superficie tiene un color de 1, 2 o 4 bits indexado a 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íxel. 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. |
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 solo búfer z. |
DDPF_ZPIXELS | La superficie está en formato RGBZ. |
dwFourCC
Especifica un código de formato de superficie que incluye cualquiera de los códigos del tipo enumerado D3DFORMAT. Algunos códigos FOURCC forman parte de D3DFORMAT. Para más información sobre D3DFORMAT, consulte la documentación del SDK. Los proveedores de hardware también pueden definir y proporcionar códigos de formato específicos de su hardware.
dwRGBBitCount
Especifica el número de bits RGB por píxel (4, 8, 16, 24 o 32).
dwYUVBitCount
Especifica el número de bits YUV por píxel.
dwZBufferBitDepth
Especifica la profundidad de bits del búfer Z (8, 16, 24 o 32 bits).
dwAlphaBitDepth
Especifica la profundidad del bit de canal Alfa.
dwRBitMask
Especifica la máscara para bits rojos.
dwYBitMask
Especifica la máscara para bits Y.
dwGBitMask
Especifica la máscara para bits verdes.
dwUBitMask
Especifica la máscara para bits U.
dwBBitMask
Especifica la máscara para bits azules.
dwVBitMask
Especifica la máscara para los bits V.
dwRGBAlphaBitMask
Máscara para el canal alfa.
dwYUVAlphaBitMask
Máscara para el canal alfa.
dwRGBZBitMask
Máscara para el canal Z.
dwYUVZBitMask
Máscara para el canal Z.
Comentarios
El entorno de ejecución de DirectX 8.0 y versiones posteriores impone las siguientes reglas en la lista de operaciones (op):
Solo se permite una endian-ness (grande o pequeña) para cualquier formato DS, por ejemplo, D15S1 o S1D15, no ambos independientes de otros bits.
Una lista solo debe incluir D3DFORMAT_OP_DISPLAYMODE para exactamente un formato de 16bpp (por ejemplo, no debe enumerar 5:5:5 y 5:6:5).
Una lista no debe contener ningún formato alfa con D3DFORMAT_OP_DISPLAYMODE o D3DFORMAT_OP_3DACCELLERATION establecido.
La marca D3DFORMAT_OP_3DACCELLERATION solo se puede establecer cuando también se establece la marca de D3DFORMAT_OP_DISPLAYMODE.
Si el controlador admite un D16 bloqueable, debe notificar D3DFMT_D16_LOCKABLE en la lista de operaciones; de lo contrario, debe notificar D3DFMT_D16.
Los controladores que admiten el muestreo múltiple deben rellenar MultiSampleCaps en los formatos de galería de símbolos/profundidad para los que se puede admitir el muestreo múltiple. Esto permite que el entorno de ejecución detecte si un controlador admite el muestreo múltiple para combinaciones de formatos de destino de representación y búfer Z. Para obtener más información sobre las restricciones relacionadas con el muestreo múltiple de blt extendido, consulte la descripción de D3DPRASTERCAPS_STRETCHBLTMULTISAMPLE cap en los rástercaps incluidos en la estructura de D3DCAPS8 en la documentación del SDK.
El tipo enumerado D3DMULTISAMPLE_TYPE definido en d3d8types.h se usa al establecer los bits en wFlipMSTypes y wBltMSTypes. Para especificar la compatibilidad con un número específico de muestras por píxel, basta con cambiar lógicamente 1 por el valor adecuado del tipo enumerado D3DMULTISAMPLE_TYPE menor 1 y OR en el campo adecuado (wFlipMSTypes y wBltMSTypes).
Por ejemplo, si el controlador admite dos y cuatro muestras por píxel al voltear (modo de pantalla completa) y cuatro muestras por píxel cuando se bifurque (modo de ventana) en X8R8G8B8 superficie, se notificará la siguiente entrada en la lista de formatos de superficie.
DDPIXELFORMAT ddpf;
ZeroMemory(&ddpf, sizeof(ddpf));
ddpf.dwSize = sizeof(DDPIXELFORMAT);
ddpf.dwFlags = DDPF_D3DFORMAT;
ddpf.dwFourCC = D3DFMT_X8R8G8B8;
ddpf.dwOperations = D3DFORMAT_OP_DISPLAYMODE |
D3DFORMAT_OP_3DACCELERATION;
ddpf.MultiSampleCaps.wFlipMSTypes = (1 << (D3DMULTISAMPLE_4_SAMPLES âˆ' 1))
| (1 << (D3DMULTISAMPLE_2_SAMPLES âˆ' 1));
ddpf.MultiSampleCaps.wBltMSTypes = (1 << (D3DMULTISAMPLE_4_SAMPLES âˆ' 1));
No es necesario especificar 1 << (D3DMULTISAMPLE_NONE - 1) al notificar formatos. Se supone que cualquier formato notificado también se puede usar sin muestreo múltiple. Si el hardware admite la representación multimuestra con un búfer z, los formatos de búfer z notificados también deben incluir los ejemplos admitidos por píxeles.
Requisitos
Requisito | Valor |
---|---|
Header | ksmedia.h (incluya Ddraw.h) |