Das Pixelformat. OPENGL Einstieg

Gegeben,DC = Devicecontext, der Gerätekontexthandle (Variable (H)ANDLE (D)evice (C)ontext),ermittelt mit GetDC()

BOOL PixelFormat(HDC hdc)
{
/*2*/ PIXELFORMATDESCRIPTOR pfd, *ppfd; /*3*/ int pixelformat;
/*4*/ ppfd = &pfd;
/*5*/ ppfd->nSize = sizeof(PIXELFORMATDESCRIPTOR); /*6*/ ppfd->nVersion = 1; /*7*/ ppfd->dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER; /*8*/ ppfd->dwLayerMask = PFD_MAIN_PLANE; // Dokumentation, ignoriert /*9*/ ppfd->iPixelType = PFD_TYPE_COLORINDEX; // /*10*/ ppfd->cColorBits = 32; /*11*/ ppfd->cDepthBits = 16; /*12*/ ppfd->cAccumBits = 0; /*13*/ ppfd->cStencilBits = 0; /*14*/ ppfd->cColorBits = 8; /*15*/ ppfd->cDepthBits = 16; /*16*/ ppfd->cAccumBits = 0; /*17*/ ppfd->cStencilBits = 0;
/*2*/ pixelformat = ChoosePixelFormat(hdc, ppfd);
/*2*/ if ( (pixelformat = ChoosePixelFormat(hdc, ppfd)) == 0 ) { /*2*/ MessageBox(GetModuleName(NULL), "ChoosePixelFormat Fehler", "FEHLER", MB_OK); /*2*/ return FALSE; }
/*2*/ if (SetPixelFormat(hdc, pixelformat, ppfd) == FALSE) { /*2*/ MessageBox(GetModuleName(NULL), "SetPixelFormat Fehler", "FEHLER", MB_OK); return FALSE; /*2*/ }
return TRUE; }

/*2*/ Siehe MSDN, nicht dokumentiert, vorläufig
/*3*/ Hilfsvariable
/*7*/
PFD_DRAW_TO_WINDOW   		Verwende den Buffer für ein Fenster oder ein Gerät
PFD_DRAW_TO_BITMAP   		Verwende den Buffer für eine Bitmap, im Arbeitsspeicher 
PFD_SUPPORT_GDI      		Für GDI Unterstützung, lt.MS Dokumentation.  PFD_SUPPORT_GDI und PFD_DOUBLEBUFFER schließen sich gegenseitig aus. 
PFD_SUPPORT_OPENGL   		Für OPENGL  Unterstützung
PFD_GENERIC_ACCELERATED         Für  Geräte, die "generic implementation"verwenden.   Wenn nicht gesetzt und PDF_GENERIC_FORMAT ist  gesetzt, GDI Unterstützung
PFD_GENERIC_FORMAT              Unterstützung GDI Format. Nicht gesetzt, Treiberunterstützung
PFD_NEED_PALETTE                Für RGBA  Einstellungen.  Logische  Palette  ist notwendig,  weitere Informationen hier. Erstelle Palette.
PFD_NEED_SYSTEM_PALETTE Für 256 Bit Farbeeinstellungen. Vergleiche PFD_NEED_PALETTE. Nicht verwendet im GDI Format PFD_DOUBLEBUFFER Double Buffer, notwendig bei OPENGL, verträgt sich nicht mit PFD_SUPPORT_GDI PFD_STEREO Stereo Buffer. Keine GDI Unterstützung PFD_SWAP_LAYER_BUFFERS Für wglSwapLayerBuffer.

Sondereinstellungen, Depth, Doublebuffer und Stereo Einstellungen werden ignoriert.
PFD_DEPTH_DONTCARE PFD_DOUBLEBUFFER_DONTCARE PFD_STEREO_DONTCARE

Nachfolgende Parameter sind Herstellerabhängig, daher oft schlecht dokumentiert
/*14*/ cColorBits Anzahl Farbbits (8, 16, 24, 32, 32 Empfehlung
Falls RGBA Modus, und Palette gesetzt:

cRedBits cRedShift cGreenBit cGreenShift cBlueBits cBlueShift cAlphaBits cAlphaShift
/*16*/ Accumulation Buffer, setzen, 8, 16, 24, 32.. Hersteller Dokumentationen

cAccumBits
cAccumRedBits cAccumGreenBits cAccumBlueBits cAccumAlphaBits
/*15*/ cDepthBits
/*17*/ cStencilBits
/*nicht angeben */ cAuxBuffers Auxiliary buffers. Werden unter Windows nicht unterstützt.

iLayerType
Wird nicht mehr verwendet.
bReserved
Reserviert.
/*8*/ dwLayerMask
Wird nicht mehr verwendet.
dwVisibleMask
Bei RGBA Modus, dwVisibleMask ist ein transparenten RGB Farbwert. Bei Modus COLOR INDEX,Wert ist ein transparenter Index Farbwert.
dwDamageMask
Wird nicht mehr verwendet.