glDrawBuffer: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K (→Hinweise) |
(Änderung 25918 von Glawesome (Diskussion) rückgängig gemacht.) |
||
(10 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= glDrawBuffer = | = glDrawBuffer = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
'''glDrawBuffer''' - gibt an, in welche [[Farbpuffer]] gezeichnet werden soll. | '''glDrawBuffer''' - gibt an, in welche [[Farbpuffer]] gezeichnet werden soll. | ||
− | + | ||
+ | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
'''procedure''' glDrawBuffer(''mode'': TGLenum); | '''procedure''' glDrawBuffer(''mode'': TGLenum); | ||
− | + | ||
+ | |||
== Parameter == | == Parameter == | ||
− | + | {| border=1 rules=all | |
− | + | ! ''mode'' | |
− | + | | Spezifiziert bis zu vier [[Farbpuffer]] in die gezeichnet werden soll. Akzeptiert werden folgende symbolische Konstanten: <br> | |
− | + | '''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.) <br> | |
− | '''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.) <br> | + | |
+ | '''Vorgabewert''' ist '''GL_FRONT''' für einfach gepufferte (single buffered) Kontexte und '''GL_BACK''' für doppelt gepufferte Kontexte (siehe [[Doppelpufferung]]). | ||
+ | |} | ||
− | |||
− | |||
− | |||
− | |||
== Beschreibung == | == Beschreibung == | ||
Zeile 28: | Zeile 29: | ||
Die Konstanten haben folgende Bedeutung: | Die Konstanten haben folgende Bedeutung: | ||
− | + | === GL_NONE === | |
: In keinen Farbpuffer wird etwas geschrieben. | : In keinen Farbpuffer wird etwas geschrieben. | ||
− | + | === GL_FRONT_LEFT === | |
− | |||
: Nur der vordere linke Farbpuffer wird beschrieben. | : Nur der vordere linke Farbpuffer wird beschrieben. | ||
− | + | === GL_FRONT_RIGHT === | |
− | |||
: Nur der vordere rechte Farbpuffer wird beschrieben. | : Nur der vordere rechte Farbpuffer wird beschrieben. | ||
+ | === GL_BACK_LEFT === | ||
+ | : Nur der hintere linke Farbpuffer wird beschrieben. | ||
− | + | === GL_BACK_RIGHT === | |
− | : Nur der hintere | + | : 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 Farbpuffer wird beschrieben. | + | : 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 rechte | + | : 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 '''i'''te Hilfsfarbpuffer wird beschrieben. | |
− | |||
− | |||
+ | == Hinweise == | ||
+ | Wenn mehr als ein [[Farbpuffer]] zum Zeichnen ausgewählt wurden, wird [[Blenden|Blending]] oder logische Operationen für jeden Puffer unabhängig berechnet und angewandt. Dies kann unterschiedliche Resultate in den verschiedenen Puffern zur Folge haben. | ||
− | + | [[monoskop|Monoskopische]] Kontexte besitzen nur linke Buffer. | |
− | |||
+ | [[stereoskop|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_AUX'''i = '''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 == | == Zugehörige Wertrückgaben == | ||
− | [[glGet]] mit Token [[glGet#GL_DRAW_BUFFER|GL_DRAW_BUFFER]] | + | [[glGet]] mit Token [[glGet#GL_DRAW_BUFFER|GL_DRAW_BUFFER]] |
+ | |||
[[glGet]] mit Token [[glGet#GL_AUX_BUFFERS|GL_AUX_BUFFERS]] | [[glGet]] mit Token [[glGet#GL_AUX_BUFFERS|GL_AUX_BUFFERS]] | ||
− | + | ||
== Siehe auch == | == Siehe auch == | ||
− | + | [[glBlendFunc]], [[glColorMask]], [[glIndexMask]], [[glLogicOp]], [[glReadBuffer]] | |
+ | |||
+ | [[Kategorie:GL|DrawBuffer]] | ||
+ | [[Kategorie:GL1.0|DrawBuffer]] | ||
+ | [[Kategorie:GL3|DrawBuffer]] |
Aktuelle Version vom 18. Oktober 2013, 16:47 Uhr
Inhaltsverzeichnis
glDrawBuffer
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