Freigeben über


Spiegeln

Die Verwendung eines Hintergrundpuffers, der mit einem Frontpuffer umgedreht werden kann, ist die beste Möglichkeit, DirectDraw zu nutzen. Das Seitendrehen ist für eine reibungslose, reißfreie Animation in Spielen und Videowiedergabe unerlässlich.

Die primäre Oberfläche ist der Bereich des Arbeitsspeichers, aus dem gelesen wird, um den bildschirm zu zeichnen, der derzeit angezeigt wird. Wenn eine primäre Oberfläche über einen oder mehrere angeschlossene Rückpuffer verfügt, handelt es sich um eine flippbare Oberfläche.

Flipping-Strukturen werden zum Seiten flipen in DirectDraw verwendet. Konzeptionell können sie als verknüpfte Listen aus Oberflächen betrachtet werden. Der Frontpuffer ist der "sichtbare" Puffer. Der Hintergrundpuffer und alle angeschlossenen flippbaren Oberflächen müssen die gleiche Größe und Pixeltiefe wie der vordere Puffer aufweisen. Die meisten modernen Grafikkarten verfügen über genügend Arbeitsspeicher für flippbare Vorder- und Rückseitenpuffer im Modus mit hoher Auflösung.

Alle Arten von Oberflächen können in DirectDraw gekippt werden; Seitendrehen ist der häufige Sonderfall. Für instance ist das Flipping nicht auf die primäre Oberfläche auf Karten beschränkt, die Überlagerungen unterstützen, oder auf 3D-fähigen Anzeigekarten mit Texturspeicher. In diesen Fällen können Überlagerungen und Texturen auf die gleiche Weise wie die primäre Oberfläche mit demselben Treibereinstiegspunkt gedreht werden.

Oberflächen, die nicht zum Kippen verwendet werden, können eine beliebige Dimension aufweisen und nicht aufflippbare Objekte wie Bilddaten speichern. Bilddaten können auch im Systemspeicher gespeichert werden, aber in diesem Fall kann DirectDraw die Hardwareemulationsschicht (HEL) verwenden, da Hardware-Blitter normalerweise nicht den Systemspeicher erreichen können, um die Bilddaten zu durchschneiden. Einige Karten ermöglichen Hardware-Blittern einen direkten Speicherzugriff (DMA) auf den Systemspeicher, sodass DirectDraw eine Überprüfung auf DMA durchführt.

Die folgende Abbildung veranschaulicht die Beziehung zwischen zwei flippbaren Oberflächen.

Diagramm, das die Beziehung zwischen zwei flippbaren Oberflächen in DirectDraw zeigt.

Wenn ein vorderer Puffer über einen oder mehrere Backpuffer verfügt, handelt es sich um eine flippbare Oberfläche, wie in der vorherigen Abbildung gezeigt. Der Hintergrundpuffer und alle angeschlossenen flippbaren Oberflächen müssen die gleiche Größe und Pixeltiefe wie der vordere Puffer aufweisen. Eine Hintergrundpufferoberfläche wird mithilfe eines Flips zur primären Oberfläche. Ein Flip ändert einfach einen Zeiger, sodass er auf eine andere flippbare Oberfläche zeigt, wodurch die neue Oberfläche angezeigt wird. Auf den vorderen Puffer (der nicht mehr die primäre Oberfläche ist) kann dann zugegriffen werden, und es können neue Daten in ihn geschrieben werden.

Das Kippen löst die meisten Probleme beim Bildschirmflimmern. Die Möglichkeit, auf einer Oberfläche zu rendern, die nicht angezeigt wird, ermöglicht eine glatte, reißfreie Animation für das Spielen und die Videowiedergabe.