Compartir a través de


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
0x00000004
El búfer puede dibujar en una ventana o superficie del dispositivo.
PFD_DRAW_TO_BITMAP
0x00000008
El búfer puede dibujar en un mapa de bits de memoria.
PFD_SUPPORT_GDI
0x00000010
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
0x00000020
El búfer admite el dibujo de OpenGL.
PFD_GENERIC_ACCELERATED
0x00001000
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
0x00000040
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
0x00000080
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
0x00000100
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
0x00000001
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
0x00000002
El búfer es estereoscópico. Esta marca no se admite en la implementación genérica actual.
PFD_SWAP_LAYER_BUFFERS
0x00000800
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
0x20000000
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
0x40000000
El formato de píxel solicitado puede estar almacenado en búfer único o doble.
PFD_STEREO_DONTCARE
0x80000000
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
0x00000400
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
0x00000200
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
0
Píxeles RGBA. Cada píxel tiene cuatro componentes en este orden: rojo, verde, azul y alfa.
PFD_TYPE_COLORINDEX
1
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

Consulte también

ChoosePixelFormat

DescribePixelFormat

GetPixelFormat

OpenGL en Windows

SetPixelFormat

Estructuras