Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El modo de índice de color especifica colores en una paleta lógica con un índice a una entrada de paleta lógica específica. La mayoría de los programas GDI usan paletas de índices de colores, pero el modo RGBA funciona mejor para OpenGL para varios efectos, como sombreado, iluminación, niebla y asignación de texturas. Si tener el color más verdadero no es crítico para la aplicación OpenGL, puede optar por usar el modo de índice de color (por ejemplo, para un mapa topográfico que usa "color falso" para resaltar el degradado de elevación).
Ejemplo de paleta de modo Color-Index
El código siguiente configura una estructura PIXELFORMATDESCRIPTOR que establece la marca del miembro iPixelType en PFD_TYPE_COLORINDEX. Esto especifica que la aplicación usa una paleta de índices de colores.
BOOL bSetupPixelFormat(HDC hdc)
{
PIXELFORMATDESCRIPTOR pfd, *ppfd;
int pixelformat;
ppfd = &pfd;
ppfd->nSize = sizeof(PIXELFORMATDESCRIPTOR);
ppfd->nVersion = 1;
ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER;
ppfd->dwLayerMask = PFD_MAIN_PLANE;
/* Set to color-index mode and use the default color palette. */
ppfd->iPixelType = PFD_TYPE_COLORINDEX;
ppfd->cColorBits = 8;
ppfd->cDepthBits = 16;
ppfd->cAccumBits = 0;
ppfd->cStencilBits = 0;
pixelformat = ChoosePixelFormat(hdc, ppfd);
if ( (pixelformat = ChoosePixelFormat(hdc, ppfd)) == 0 )
{
MessageBox(NULL, "ChoosePixelFormat failed", "Error", MB_OK);
return FALSE;
}
if (SetPixelFormat(hdc, pixelformat, ppfd) == FALSE)
{
MessageBox(NULL, "SetPixelFormat failed", "Error", MB_OK);
return FALSE;
}
return TRUE;
}