Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De kleurenindexmodus specificeert kleuren in een logisch palet met een index naar een specifieke vermelding in een logisch palet. De meeste GDI-programma's maken gebruik van kleurenindexpaletten, maar de RGBA-modus werkt beter voor OpenGL voor verschillende effecten, zoals arcering, verlichting, mist en patroontoewijzing. Als de meest echte kleur niet essentieel is voor uw OpenGL-toepassing, kunt u ervoor kiezen om de kleurindexmodus te gebruiken (bijvoorbeeld voor een topografische kaart die gebruikmaakt van 'valse kleur' om de kleurovergang te benadrukken).
Voorbeeld van Color-Index moduspalet
Met de volgende code wordt een PIXELFORMATDESCRIPTOR structuur ingesteld waarmee de vlag van het i PixelType lid wordt ingesteld op PFD_TYPE_COLORINDEX. Hiermee geeft u op dat de toepassing een kleurenindexpalet gebruikt.
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;
}