glDrawBuffer

Aus DGL Wiki
Version vom 18. Oktober 2013, 16:42 Uhr von Glawesome (Diskussion | Beiträge) ("Not to be confused with", Stereoskopie verlinkt)

Wechseln zu: Navigation, Suche

glDrawBuffer

Warnung.png Nicht verwechseln mit glDrawBuffers!

Name

glDrawBuffer - gibt an, in welche Farbpuffer gezeichnet werden soll.


Delphi-Spezifikation

procedure glDrawBuffer(mode: TGLenum);


Parameter

mode Spezifiziert bis zu vier Farbpuffer in die gezeichnet werden soll. Akzeptiert werden folgende symbolische Konstanten:

GL_NONE, GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, GL_FRONT_AND_BACK, und GL_AUXi, wobei i zwischen 0 und GL_AUX_BUFFERS-1 liegen kann. (GL_AUX_BUFFERS ist nicht die obere Grenze. Benutzen Sie glGet, um die Anzahl der vorhandenen Hilfspuffer (Aux-Buffer) zu bestimmen.)

Vorgabewert ist GL_FRONT für einfach gepufferte (single buffered) Kontexte und GL_BACK für doppelt gepufferte Kontexte (siehe Doppelpufferung).


Beschreibung

Wenn Farben in den Framebuffer geschrieben werden, werden sie in die Farbpuffer, die mittels glDrawBuffer angegeben wurden, eingetragen.

Die Konstanten haben folgende Bedeutung:

GL_NONE

In keinen Farbpuffer wird etwas geschrieben.

GL_FRONT_LEFT

Nur der vordere linke Farbpuffer wird beschrieben.

GL_FRONT_RIGHT

Nur der vordere rechte Farbpuffer wird beschrieben.

GL_BACK_LEFT

Nur der hintere linke Farbpuffer wird beschrieben.

GL_BACK_RIGHT

Nur der hintere rechte Farbpuffer wird beschrieben.

GL_FRONT

Nur der vordere rechte und linke Farbpuffer wird beschrieben. Wenn kein vorderer rechter Farbpuffer existiert, wird nur der linke beschrieben.

GL_BACK

Nur der hintere rechte und linke Farbpuffer wird beschrieben. Wenn kein hinterer rechter Farbpuffer existiert, wird nur der linke beschrieben.

GL_LEFT

Nur der vordere und hintere linke Farbpuffer wird beschrieben. Wenn kein hinterer linker Farbpuffer existiert, wird nur der vordere beschrieben.

GL_RIGHT

Nur der vordere und hintere rechte Farbpuffer wird beschrieben. Wenn kein hinterer rechter Farbpuffer existiert, wird nur der vordere beschrieben.

GL_FRONT_AND_BACK

Alle 4 Farbpuffer (vorn bzw. hinten links und recht) werden beschrieben. Wenn es keine Backpuffer gibt, werden nur die Frontpuffer beschrieben. Wenn es keine rechten Puffer gibt, werden nur die linken beschrieben. Wenn es weder rechte noch Backpuffer gibt, wird nur der vordere, linke Farbpuffer beschrieben.

GL_AUXi

Nur der ite Hilfsfarbpuffer wird beschrieben.


Hinweise

Wenn mehr als ein Farbpuffer zum Zeichnen ausgewählt wurden, wird Blending oder logische Operationen für jeden Puffer unabhängig berechnet und angewandt. Dies kann unterschiedliche Resultate in den verschiedenen Puffern zur Folge haben.

Monoskopische Kontexte besitzen nur linke Buffer.

Stereoskopische Kontexte besitzen linke und rechte Buffer.

Einfach gepufferte Kontexte besitzen nur Frontpuffer.

Doppelt gepufferte Kontexte besitzen Front- und Backpuffer.

Der Kontext wird bei der Initialisierung der GL erstellt.

Es gilt immer: GL_AUXi = GL_AUX0 + i


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn mode ein ungültiger Wert übergeben wird.

GL_INVALID_OPERATION wird generiert, wenn keiner der in mode übergebenen Puffer existiert.

GL_INVALID_OPERATION wird generiert, wenn glDrawBuffer innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.


Zugehörige Wertrückgaben

glGet mit Token GL_DRAW_BUFFER

glGet mit Token GL_AUX_BUFFERS


Siehe auch

glBlendFunc, glColorMask, glIndexMask, glLogicOp, glReadBuffer