Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La modalità color-index specifica i colori in una tavolozza logica con un indice per una voce specifica della tavolozza logica. La maggior parte dei programmi GDI usa tavolozze di indici di colore, ma la modalità RGBA funziona meglio per OpenGL per diversi effetti, ad esempio ombreggiatura, illuminazione, nebbia e mapping delle trame. Se il colore più vero non è critico per l'applicazione OpenGL, è possibile scegliere di usare la modalità di indice colore, ad esempio per una mappa topografica che usa il "colore falso" per evidenziare la sfumatura di elevazione.
Esempio di tavolozza della modalità Color-Index
Nel codice seguente viene impostata una strutturaPIXELFORMATDESCRIPTOR che imposta il flag del membro iPixelType su PFD_TYPE_COLORINDEX. Specifica che l'applicazione usa una tavolozza degli indici di colore.
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;
}