Estructura PIXELFORMATDESCRIPTOR (wingdi.h)
La estructura PIXELFORMATDESCRIPTOR describe el formato de píxel de una superficie de dibujo.
Sintaxis
typedef struct tagPIXELFORMATDESCRIPTOR {
WORD nSize;
WORD nVersion;
DWORD dwFlags;
BYTE iPixelType;
BYTE cColorBits;
BYTE cRedBits;
BYTE cRedShift;
BYTE cGreenBits;
BYTE cGreenShift;
BYTE cBlueBits;
BYTE cBlueShift;
BYTE cAlphaBits;
BYTE cAlphaShift;
BYTE cAccumBits;
BYTE cAccumRedBits;
BYTE cAccumGreenBits;
BYTE cAccumBlueBits;
BYTE cAccumAlphaBits;
BYTE cDepthBits;
BYTE cStencilBits;
BYTE cAuxBuffers;
BYTE iLayerType;
BYTE bReserved;
DWORD dwLayerMask;
DWORD dwVisibleMask;
DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
Miembros
nSize
Especifica el tamaño de esta estructura de datos. Este valor debe establecerse en sizeof(PIXELFORMATDESCRIPTOR).
nVersion
Especifica la versión de esta estructura de datos. Este valor debe establecerse en 1.
dwFlags
Conjunto de marcas de bits que especifican las propiedades del búfer de píxeles. Las propiedades generalmente no son mutuamente excluyentes; puede establecer cualquier combinación de marcas de bits, con las excepciones indicadas. Se definen las siguientes constantes de marca de bits.
Valor | Significado |
---|---|
PFD_DRAW_TO_WINDOW
|
El búfer puede dibujar en una ventana o superficie del dispositivo. |
PFD_DRAW_TO_BITMAP
|
El búfer puede dibujar en un mapa de bits de memoria. |
PFD_SUPPORT_GDI
|
El búfer admite el dibujo GDI. Esta marca y PFD_DOUBLEBUFFER se excluyen mutuamente en la implementación genérica actual. |
PFD_SUPPORT_OPENGL
|
El búfer admite el dibujo de OpenGL. |
PFD_GENERIC_ACCELERATED
|
El formato de píxel es compatible con un controlador de dispositivo que acelera la implementación genérica. Si esta marca está desactivada y se establece la marca PFD_GENERIC_FORMAT, el formato de píxel solo es compatible con la implementación genérica. |
PFD_GENERIC_FORMAT
|
El formato de píxeles es compatible con la implementación de software de GDI, que también se conoce como implementación genérica. Si este bit está claro, el formato de píxel es compatible con un controlador de dispositivo o hardware. |
PFD_NEED_PALETTE
|
El búfer usa píxeles RGBA en un dispositivo administrado por paletas. Se requiere una paleta lógica para lograr los mejores resultados para este tipo de píxel. Los colores de la paleta deben especificarse según los valores de los miembros cRedBits, cRedShift, cGreenBits, cGreenShift, cBluebits y cBlueShift . La paleta debe crearse y realizarse en el contexto del dispositivo antes de llamar a wglMakeCurrent. |
PFD_NEED_SYSTEM_PALETTE
|
Se define en los descriptores de formato de píxeles del hardware que admiten una paleta de hardware solo en modo de 256 colores. Para que estos sistemas usen la aceleración de hardware, la paleta de hardware debe estar en un orden fijo (por ejemplo, 3-3-2) cuando está en modo RGBA o debe coincidir con la paleta lógica cuando está en modo de índice de color. Cuando se establece esta marca, debe llamar a SetSystemPaletteUse en el programa para forzar una asignación uno a uno de la paleta lógica y la paleta del sistema. Si el hardware de OpenGL admite varias paletas de hardware y el controlador de dispositivo puede asignar paletas de hardware de repuesto para OpenGL, esta marca suele estar clara.
Esta marca no está establecida en los formatos de píxeles genéricos. |
PFD_DOUBLEBUFFER
|
El búfer se almacena en búfer doble. Esta marca y PFD_SUPPORT_GDI son mutuamente excluyentes en la implementación genérica actual. |
PFD_STEREO
|
El búfer es estereoscópico. Esta marca no se admite en la implementación genérica actual. |
PFD_SWAP_LAYER_BUFFERS
|
Indica si un dispositivo puede intercambiar planos de capa individuales con formatos de píxeles que incluyen planos de superposición o subposición con doble búfer. De lo contrario, todos los planos de capa se intercambian juntos como un grupo. Cuando se establece esta marca, se admite wglSwapLayerBuffers . |
Puede especificar las marcas de bits siguientes al llamar a ChoosePixelFormat.
Valor | Significado |
---|---|
PFD_DEPTH_DONTCARE
|
El formato de píxel solicitado puede tener o no un búfer de profundidad. Para seleccionar un formato de píxel sin un búfer de profundidad, debe especificar esta marca. El formato de píxel solicitado puede tener o sin un búfer de profundidad. De lo contrario, solo se tienen en cuenta los formatos de píxeles con un búfer de profundidad. |
PFD_DOUBLEBUFFER_DONTCARE
|
El formato de píxel solicitado puede estar almacenado en búfer único o doble. |
PFD_STEREO_DONTCARE
|
El formato de píxel solicitado puede ser monoscópico o estereoscópico. |
Con la función de extensión glAddSwapHintRectWIN , se incluyen dos marcas nuevas para la estructura de formato de píxel PIXELFORMATDESCRIPTOR .
Valor | Significado |
---|---|
PFD_SWAP_COPY
|
Especifica el contenido del búfer de reserva en el plano de color principal con doble búfer después de un intercambio de búfer. El intercambio de los búferes de color hace que el contenido del búfer de reserva se copie en el búfer frontal. El contenido del búfer de reserva no se ve afectado por el intercambio. PFD_SWAP_COPY es solo una sugerencia y es posible que un controlador no lo proporcione. |
PFD_SWAP_EXCHANGE
|
Especifica el contenido del búfer de reserva en el plano de color principal con doble búfer después de un intercambio de búfer. El intercambio de los búferes de color provoca el intercambio del contenido del búfer de reserva con el contenido del búfer frontal. Después del intercambio, el contenido del búfer de reserva contiene el contenido del búfer frontal antes del intercambio. PFD_SWAP_EXCHANGE es solo una sugerencia y es posible que un controlador no lo proporcione. |
iPixelType
Especifica el tipo de datos de píxeles. Se definen los siguientes tipos.
Valor | Significado |
---|---|
PFD_TYPE_RGBA
|
Píxeles RGBA. Cada píxel tiene cuatro componentes en este orden: rojo, verde, azul y alfa. |
PFD_TYPE_COLORINDEX
|
Píxeles de índice de color. Cada píxel usa un valor de índice de color. |
cColorBits
Especifica el número de planos de bits de color en cada búfer de color. Para los tipos de píxeles RGBA, es el tamaño del búfer de color, excepto los planos de bits alfa. Para píxeles de índice de color, es el tamaño del búfer de índice de color.
cRedBits
Especifica el número de planos de bits rojos en cada búfer de color RGBA.
cRedShift
Especifica el recuento de desplazamientos de los planos de bits rojos en cada búfer de color RGBA.
cGreenBits
Especifica el número de planos de bits verdes en cada búfer de color RGBA.
cGreenShift
Especifica el recuento de desplazamientos de los planos de bits verdes en cada búfer de color RGBA.
cBlueBits
Especifica el número de planos de bits azules en cada búfer de color RGBA.
cBlueShift
Especifica el recuento de desplazamientos de los planos de bits azules en cada búfer de color RGBA.
cAlphaBits
Especifica el número de planos de bits alfa en cada búfer de color RGBA. No se admiten los planos de bits alfa.
cAlphaShift
Especifica el recuento de desplazamientos de los planos de bits alfa en cada búfer de color RGBA. No se admiten los planos de bits alfa.
cAccumBits
Especifica el número total de planos de bits en el búfer de acumulación.
cAccumRedBits
Especifica el número de planos de bits rojos en el búfer de acumulación.
cAccumGreenBits
Especifica el número de planos de bits verdes en el búfer de acumulación.
cAccumBlueBits
Especifica el número de planos de bits azules en el búfer de acumulación.
cAccumAlphaBits
Especifica el número de planos de bits alfa en el búfer de acumulación.
cDepthBits
Especifica la profundidad del búfer de profundidad (eje Z).
cStencilBits
Especifica la profundidad del búfer de galería de símbolos.
cAuxBuffers
Especifica el número de búferes auxiliares. No se admiten búferes auxiliares.
iLayerType
ignorado. Las implementaciones anteriores de OpenGL usaron este miembro, pero ya no se usa.
bReserved
Especifica el número de planos superpuestos y de superposición. Los bits de 0 a 3 especifican hasta 15 planos de superposición y bits de 4 a 7 especifican hasta 15 planos de superposición.
dwLayerMask
ignorado. Las implementaciones anteriores de OpenGL usaron este miembro, pero ya no se usa.
dwVisibleMask
Especifica el color o índice transparentes de un plano de superposición. Cuando el tipo de píxel es RGBA, dwVisibleMask es un valor de color RGB transparente. Cuando el tipo de píxel es índice de color, es un valor de índice transparente.
dwDamageMask
ignorado. Las implementaciones anteriores de OpenGL usaron este miembro, pero ya no se usa.
Comentarios
Tenga en cuenta detenidamente, como se documentó anteriormente, que ciertas propiedades de formato de píxeles no se admiten en la implementación genérica actual. La implementación genérica es la implementación de software GDI de Microsoft de OpenGL. Los fabricantes de hardware pueden mejorar partes de OpenGL y pueden admitir algunas propiedades de formato de píxel no compatibles con la implementación genérica.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado | wingdi.h |