Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Farbindexmodus gibt Farben in einer logischen Palette mit einem Index für einen bestimmten Eintrag in der Logischen Palette an. Die meisten GDI-Programme verwenden Farbindexpaletten, aber der RGBA-Modus eignet sich besser für OpenGL für mehrere Effekte, z. B. Schattierung, Beleuchtung, Nebel und Texturzuordnung. Wenn die wahrste Farbe für Ihre OpenGL-Anwendung nicht von entscheidender Bedeutung ist, können Sie den Farbindexmodus verwenden (z. B. für eine topografische Karte, die "falsche Farbe" verwendet, um den Höhenverlauf hervorzuheben).
Beispiel für Color-Index Moduspalette
Der folgende Code richtet eine PIXELFORMATDESCRIPTOR- Struktur ein, die das Flag des iPixelType--Elements auf PFD_TYPE_COLORINDEX festlegt. Dadurch wird angegeben, dass die Anwendung eine Farbindexpalette verwendet.
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;
}