glDrawBuffer: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Siehe auch)
(Änderung 25918 von Glawesome (Diskussion) rückgängig gemacht.)
 
(9 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glDrawBuffer =
 
= glDrawBuffer =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glDrawBuffer''' - gibt an, in welche [[Farbpuffer]] gezeichnet werden soll.
 
'''glDrawBuffer''' - gibt an, in welche [[Farbpuffer]] gezeichnet werden soll.
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  '''procedure''' glDrawBuffer(''mode'': TGLenum);
 
  '''procedure''' glDrawBuffer(''mode'': TGLenum);
  
<br>
+
 
 +
 
 
== Parameter ==
 
== Parameter ==
<table border=1 rules=all>
+
{| border=1 rules=all
<tr>
+
! ''mode''
<td>''mode''</td>
+
| Spezifiziert bis zu vier [[Farbpuffer]] in die gezeichnet werden soll. Akzeptiert werden folgende symbolische Konstanten: <br>
<td>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]]).
 +
|}
  
'''Vorgabewert''' ist '''GL_FRONT''' für einfach gepufferte (single buffered) Kontexte und '''GL_BACK''' für doppelt gepufferte Kontexte. (siehe [[Doublebuffering]])</td>
 
</tr>
 
</table>
 
  
<br>
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
Zeile 28: Zeile 29:
 
Die Konstanten haben folgende Bedeutung:
 
Die Konstanten haben folgende Bedeutung:
  
'''GL_NONE'''
+
=== GL_NONE ===
 
: In keinen Farbpuffer wird etwas geschrieben.
 
: In keinen Farbpuffer wird etwas geschrieben.
  
 
+
=== GL_FRONT_LEFT ===
'''GL_FRONT_LEFT'''
 
 
: Nur der vordere linke Farbpuffer wird beschrieben.
 
: Nur der vordere linke Farbpuffer wird beschrieben.
  
 
+
=== GL_FRONT_RIGHT ===
'''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_LEFT'''
+
=== GL_BACK_RIGHT ===
: Nur der hintere linke Farbpuffer wird beschrieben.
+
: 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_RIGHT'''
+
=== 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_FRONT'''
+
=== GL_RIGHT ===
: Nur der vordere rechte und linke Farbpuffer wird beschrieben. Wenn kein vorderer rechter Farbpuffer existiert wird nur der linke beschrieben.
+
: 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_BACK'''
+
=== GL_AUXi ===
: Nur der hintere rechte und linke Farbpuffer wird beschrieben. Wenn kein hinterer rechter Farbpuffer existiert wird nur der linke beschrieben.
+
: Nur der '''i'''te Hilfsfarbpuffer wird beschrieben.
  
  
'''GL_LEFT'''
 
: Nur der vordere und hintere linke Farbpuffer wird beschrieben. Wenn kein hinterer linker Farbpuffer existiert wird nur der vordere 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.
  
'''GL_RIGHT'''
+
[[monoskop|Monoskopische]] Kontexte besitzen nur linke Buffer.
: Nur der vordere und hintere rechte Farbpuffer wird beschrieben. Wenn kein hinterer rechter Farbpuffer existiert wird nur der vordere beschrieben.
 
  
 +
[[stereoskop|Stereoskopische]] Kontexte besitzen linke und rechte Buffer.
  
'''GL_FRONT_AND_BACK'''
+
Einfach gepufferte Kontexte besitzen nur Frontpuffer.
: 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.
 
  
 +
Doppelt gepufferte Kontexte besitzen Front- und Backpuffer.
  
'''GL_AUX'''i
+
Der Kontext wird bei der Initialisierung der GL erstellt.
: Nur der '''i'''te Hilfsfarbpuffer wird beschrieben.
 
  
 +
Es gilt immer: '''GL_AUX'''i = '''GL_AUX0''' + i
  
  
<br>
 
== 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 Resultete in den verschiedenen Puffern zur folge haben.
 
  
[[monoskop|Monoskopische]] Kontexte besitzen nur linke Buffer.<br>
+
== Fehlermeldungen ==
[[stereoskop|Stereoskopische]] Kontexte besitzen linke und rechte Buffer.<br>
+
'''GL_INVALID_ENUM''' wird generiert, wenn ''mode'' ein ungültiger Wert übergeben wird.
Einfach gepufferte Kontexte besitzen nur Frontpuffer.<br>
 
Doppelt gepufferte Kontexte besitzen Front- und Backpuffer.<br>
 
  
Der Kontext wird bei der Initialisierung der GL erstellt.
+
'''GL_INVALID_OPERATION''' wird generiert, wenn keiner der in ''mode'' übergebenen Puffer existiert.
  
Es gilt immer: '''GL_AUX'''i = '''GL_AUX0''' + i
+
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glDrawBuffer''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.
  
<br>
 
  
== Fehlermeldungen ==
 
GL_INVALID_ENUM wird generiert wenn ''mode'' ein ungültiger Wert übergeben wird.<br>
 
GL_INVALID_OPERATION wird generiert wenn keiner der in ''mode'' übergebenen Üuffer existiert. <br>
 
GL_INVALID_OPERATION wird generiert wenn '''glDrawBuffer''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.
 
  
<br>
 
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGet]] mit Token [[glGet#GL_DRAW_BUFFER|GL_DRAW_BUFFER]]<br>
+
[[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]]
  
<br>
+
 
  
 
== Siehe auch ==
 
== Siehe auch ==
 
[[glBlendFunc]], [[glColorMask]], [[glIndexMask]], [[glLogicOp]], [[glReadBuffer]]
 
[[glBlendFunc]], [[glColorMask]], [[glIndexMask]], [[glLogicOp]], [[glReadBuffer]]
 +
 +
[[Kategorie:GL|DrawBuffer]]
 +
[[Kategorie:GL1.0|DrawBuffer]]
 +
[[Kategorie:GL3|DrawBuffer]]

Aktuelle Version vom 18. Oktober 2013, 16:47 Uhr

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