Freigeben über


Front-, Back- und andere Puffer

OpenGL speichert und bearbeitet Pixeldaten in einem Framebuffer. Der Framebuffer besteht aus einem Satz logischer Puffer: Farbe, Tiefe, Akkumulation und Schablonenpuffer. Der Farbpuffer selbst besteht aus einem Satz logischer Puffer; Dieser Satz 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 stellt möglicherweise nicht alle diese Puffer zur Verfügung. Beispielsweise unterstützt die aktuelle Version der Microsoft-Implementierung von OpenGL in Windows keine stereoskopischen Bilder, sodass ein Pixelformat keine linken und rechten Farbpuffer aufweisen kann. Darüber hinaus unterstützt die aktuelle Version keine Hilfspuffer. Weitere Informationen zu OpenGL-Puffern und den darauf ausgeführten OpenGL-Funktionen finden Sie im OpenGL Reference Manual und im OpenGL Programming Guide.

Die Implementierung von OpenGL in Windows unterstützt die doppelte Pufferung von Images. Dies ist eine Technik, bei der eine Anwendung Pixel in einen Offscreenpuffer zeichnet und dann, wenn dieses Bild für die Anzeige bereit ist, den Inhalt des Offscreenpuffers in einen Bildschirmpuffer kopiert. Die doppelte Pufferung ermöglicht reibungslose Bildänderungen, die für animierte Bilder besonders wichtig sind.

Zwei Farbpuffer sind für Anwendungen verfügbar, die doppelte Pufferung verwenden: einen Frontpuffer und einen Hintergrundpuffer. Standardmäßig werden Zeichnungsbefehle an den Hintergrundpuffer (den Offscreenpuffer) weitergeleitet, während der Frontpuffer auf dem Bildschirm angezeigt wird. Wenn der Offscreenpuffer für die Anzeige bereit ist, rufen Sie SwapBuffersauf, und Windows kopiert den Inhalt des Offscreenpuffers in den Bildschirmpuffer.

Die generische Implementierung verwendet eine geräteunabhängige Bitmap (DIB) als Hintergrundpuffer und den Bildschirm als Frontpuffer. Hardwaregeräte und ihre Treiber können unterschiedliche Ansätze verwenden.

Bei der Doppeltpufferung handelt es sich um eine Pixelformateigenschaft. Zum Anfordern der doppelten Pufferung für ein Pixelformat legen Sie das PFD_DOUBLEBUFFER Flag im PIXELFORMATDESCRIPTOR Datenstruktur in einem Aufruf von ChoosePixelFormatfest.

Die OpenGL-Kernfunktion, glDrawBuffer, wählt Puffer zum Schreiben und Löschen aus.

Pufferfunktionen