Front-, Back- und Andere Puffer
OpenGL speichert und bearbeitet Pixeldaten in einem Framepuffer. Der Framepuffer besteht aus einem Satz logischer Puffer: Farb-, Tiefen-, Akkumulations- und Schablonenpuffer. Der Farbpuffer selbst besteht aus einem Satz logischer Puffer. Diese Gruppe kann eine front-left-, eine front-right-, eine back-left-, eine back-right- und einige Anzahl von Hilfspuffern enthalten. Ein bestimmtes Pixelformat oder eine OpenGL-Implementierung stellen möglicherweise nicht alle diese Puffer zur Verfügung. Beispielsweise unterstützt die aktuelle Version der Microsoft-Implementierung von OpenGL in Windows keine stereokopischen Bilder, sodass ein Pixelformat keine linken und rechten Farbpuffer aufweisen kann. Darüber hinaus unterstützt die aktuelle Version keine zusätzlichen Puffer. Weitere Informationen zu OpenGL-Puffern und den Damit betriebenen OpenGL-Funktionen finden Sie im OpenGL-Referenzhandbuch und im OpenGL-Programmierhandbuch.
Die Microsoft-Implementierung von OpenGL in Windows unterstützt die doppelte Pufferung von Images. Dies ist eine Technik, bei der eine Anwendung Pixel in einen Off-Screen-Puffer zeichnet und dann, wenn dieses Bild für die Anzeige bereit ist, den Inhalt des Off-Screen-Puffers in einen Bildschirmpuffer kopiert. Die doppelte Pufferung ermöglicht reibungslose Bildänderungen, die besonders wichtig für animierte Bilder sind.
Zwei Farbpuffer sind für Anwendungen verfügbar, die doppelte Pufferung verwenden: einen Frontpuffer und einen Backpuffer. Standardmäßig werden Zeichnungsbefehle an den Hintergrundpuffer (den Off-Screen-Puffer) weitergeleitet, während der Frontpuffer auf dem Bildschirm angezeigt wird. Wenn der Off-Screen-Puffer für die Anzeige bereit ist, rufen Sie SwapBuffersauf, und Windows kopiert den Inhalt des Off-Screen-Puffers in den Bildschirmpuffer.
Die generische Implementierung verwendet eine geräteunabhängige Bitmap (DIB) als Hintergrundpuffer und die Bildschirmanzeige als Frontpuffer. Hardwaregeräte und ihre Treiber verwenden möglicherweise unterschiedliche Ansätze.
Die doppelte Pufferung ist eine Eigenschaft im Pixelformat. Um eine doppelte Pufferung für ein Pixelformat anzufordern, legen Sie das PFD _ DOUBLEBUFFER-Flag in der PIXELFORMATDESCRIPTOR-Datenstruktur in einem Aufruf auf ChoosePixelFormatfest.
Die OpenGL-Kernfunktion glDrawBufferwählt Puffer zum Schreiben und Löschen aus.