Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Tryb indeksu kolorów określa kolory na palecie logicznej z indeksem do określonego wpisu palety logicznej. Większość programów GDI używa palet indeksu kolorów, ale tryb RGBA działa lepiej dla OpenGL w przypadku kilku efektów, takich jak cieniowanie, oświetlenie, mgła i mapowanie tekstur. Jeśli kolor truest nie ma krytycznego dla aplikacji OpenGL, możesz użyć trybu indeksu kolorów (na przykład w przypadku mapy topograficznej, która używa "fałszywego koloru", aby podkreślić gradient wysokości).
Przykład palety trybu Color-Index
Poniższy kod konfiguruje PIXELFORMATDESCRIPTOR struktury, która ustawia flagę elementu członkowskiego iPixelType na PFD_TYPE_COLORINDEX. Określa to, że aplikacja używa palety color-index.
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;
}