Hallo Leute.
Ich kämpfe mich grade durch die DirectX9 Doku. Hab zu SwapEffect.Discard folgendes gefunden:
...
An application can use the Discard swap effect to avoid these overheads and to enable the display driver to choose the most efficient presentation technique for the swap chain.
...
Hab mir das jetzt folgendermaßen übersetzt (nur der fettgedruckte Text):
...ermöglicht dem Grafiktreiber automatisch die effizienteste Darstellungstechnik des Buffer-Wechsels auszuwählen. (naja sehr grob übersetzt 😄)
Kann mir evtl. kurz mal einer den Unterschied zwischen SwapEffect.Discard, SwapEffect.Copy und SwapEffect.Flip erklären. Komme in der Doku nicht weiter. 🙁
THX für eure Hilfe.
SGT_BOB
*************************
Ich bin root, ich darf das... 😜
root>_
*************************
In der Regel hat man zwei Buffer. Einen Frontbuffer, der das enthält, was man auf dem Bildschirm sieht und einen Backbuffer, in dem eine Szene gerendert wird. Ist man mit dem Rendern fertig, muss dass Bild zum Frontbuffer gebracht werden. Da gibt es zwei Möglichkeiten:
a) Man kopiert den Inhalt des Backbuffers in einem Rutsch in den Frontbuffer. Das macht SwapEffect.Copy
b) Man sagt ganz einfach, dass der Backbuffer jetzt der Frontbuffer ist. Der Grafikkarte wird also gesagt, sie soll nicht mehr das anzeigen, was im (ehemaligen) Frontbuffer steht, sondern das, was im (ehemaligen) Backbuffer steht. Das mach SwapEffect.Flip.
Beide Methoden garantieren außerdem, dass der Inhalt der Backbuffer erhalten bleibt, was Performanceeinbußen nach sich ziehen kann.
Am besten ist man tatsächlich mit SwapEffect.Discard bedient. Der Treiber macht das Beste für dich, dafür garantiert er nicht, dass der Inhalt der Backbuffer gleich bleibt. Das macht allerdings nichts, da man eh nicht vom Backbuffer lesen sollte und den Buffer vor dem Rendern erst vollständig löscht (Clear())
MfG VizOne
Hey danke für die super Erklärung. 👍
Also lag ich gar nicht so verkehrt. Dann werd ich mich mal weiter in Direct3D knien. 😁
1.000 THX...
SGT_BOB
*************************
Ich bin root, ich darf das... 😜
root>_
*************************