glColorPointer: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Beschreibung)
(Hintergrundwissen: VBO ohne glInterleavedArrays hinzugefügt)
 
(9 dazwischenliegende Versionen von 7 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Unvollständig}}
 
 
= glColorPointer =
 
= glColorPointer =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glColorPointer''' - definiert ein Feld das Farben enthält.
 
'''glColorPointer''' - definiert ein Feld das Farben enthält.
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glColorPointer'''(''size'': TGLint; ''_type'': TGLenum; ''stride'': TGLsizei; const ''_pointer'': PGLvoid);
 
  procedure '''glColorPointer'''(''size'': TGLint; ''_type'': TGLenum; ''stride'': TGLsizei; const ''_pointer'': PGLvoid);
  
<br>
+
 
 +
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 16: Zeile 18:
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''size''  
 
! ''size''  
| Gibt an aus wievielen Komponenten die Farbe besteht. (Muss 3 oder 4 sein)
+
| Gibt an, aus wievielen Komponenten die Farbe besteht. (Muss 3 oder 4 sein)
 
|-
 
|-
 
! ''_type''  
 
! ''_type''  
Zeile 22: Zeile 24:
 
|-
 
|-
 
! ''stride''  
 
! ''stride''  
| bestimmt den byteabstand zwischen aufeinenderfolgenden farben. wenn stride 0(Standard) ist, wird angenommen, dass die Farben in dem Array dicht gepackt liegen.
+
| bestimmt den Byteabstand zwischen aufeinenderfolgenden Farben. Wenn stride 0(Standard) ist, wird angenommen, dass die Farben in dem Array dicht gepackt liegen.
 
|-
 
|-
 
! ''_pointer''  
 
! ''_pointer''  
Zeile 28: Zeile 30:
 
|}
 
|}
  
<br>
 
  
== Beschreibung ==
 
glColorPointer bestimmt den Ort und das Datenformat eines Farbkomponenten-Arrays, das zum Rendern benutzt werden soll. size bestimmt die anzahl an komponenten pro farbe und muss 3 oder 4 sein. type bestimmt den datentyp jeder Komponente. stride legt legt den abstand zwischen den Farben fest, was ermöglicht, dass Vertices und Attribute im einem einzelnen oder verschiedenen Arrays liegen.(Einzelspeicherung kann in einigen Implemetnationen effizienter sein; siehe glInterleavedArrays)
 
  
Wenn ein Farb-Array festgelegt wird, werden size, type, stride und pointer als Clientseitiger State gespeichert.
 
  
Um das Farb-Array ein- und auszuschalten, kann [[glEnableClientState]] und [[glDisableClientState]] mit dem Argument GL_COLOR_ARRAY aufgerufen werden. Wenn es aktiviert ist, wird das Farb-Array bei Aufrufen von [[glDrawArrays]], [[glDrawelements]] und [[glArrayElement]] benutzt.
+
== Beschreibung ==
 +
'''glColorPointer''' bestimmt den Ort und das Datenformat eines Farbkomponenten-Arrays, das zum Rendern benutzt werden soll. ''size'' bestimmt die Anzahl an Komponenten pro Farbe und muss 3 oder 4 sein. ''_type'' bestimmt den Datentyp jeder Farbkomponente. ''stride'' legt den Abstand zwischen den Farben fest, was ermöglicht, dass Vertices und Attribute im einem einzelnen oder aber verschiedenen Arrays liegen.(Einzelspeicherung kann in einigen Implemetationen effizienter sein; siehe [[glInterleavedArrays]])
  
<b><i>Originaltext zur Überprüfung und Korrektur: glColorPointer specifies the location and data format of an array of color components to use when rendering. size specifies the number of components per color, and must be 3 or 4. type specifies the data type of each color component, and stride specifies the byte stride from one color to the next allowing vertexes and attributes to be packed into a single array or stored in separate arrays. (Single-array storage may be more efficient on some implementations; see glInterleavedArrays.)
+
Wenn ein Buffer Object für GL_ARRAY_BUFFER gebunden ist (siehe [[glBindBuffer]]) während glColorPointer aufgerufen wird, wird ''pointer'' als ein Byte-Offset vom Beginn zum ersten Color-Element im Puffer behandelt. Weiterhin wird die Bindung des Buffer Objects (GL_ARRAY_BUFFER_BINDING) als Farb-Vertex-Array Client-Side Zustand (GL_COLOR_ARRAY_BUFFER_BINDING) gespeichert.
  
When a color array is specified, size, type, stride, and pointer are saved as client-side state.
+
Wenn ein Farb-Array festgelegt wird, werden ''size'', ''_type'', ''stride'' und ''_pointer'' als klientseitiger Status gespeichert.
  
To enable and disable the color array, call glEnableClientState and glDisableClientState with the argument GL_COLOR_ARRAY. If enabled, the color array is used when glDrawArrays, glDrawElements, or glArrayElement is called. </i></b>
+
Um das Farb-Array ein- und auszuschalten, können [[glEnableClientState]] und [[glDisableClientState]] mit dem Argument '''GL_COLOR_ARRAY''' aufgerufen werden. Wenn aktiviert, wird das Farb-Array bei Aufrufen von [[glDrawArrays]], [[glDrawElements]] und [[glArrayElement]] benutzt.
 
 
<br>
 
  
 
== Hinweise ==
 
== Hinweise ==
Zeile 57: Zeile 54:
 
Farbfeld Parameter werden klientseitig gespeichert und können deshalb nicht mit [[glPushAttrib]] und [[glPopAttrib]] gespeichert bzw. wiederhergestellt werden. Benutzen Sie stattdessen [[glPushClientAttrib]] und [[glPopClientAttrib]].
 
Farbfeld Parameter werden klientseitig gespeichert und können deshalb nicht mit [[glPushAttrib]] und [[glPopAttrib]] gespeichert bzw. wiederhergestellt werden. Benutzen Sie stattdessen [[glPushClientAttrib]] und [[glPopClientAttrib]].
  
<br>
+
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_VALUE''' wird generiert wenn ''size'' nicht 3 oder 4 ist.<br>
+
'''GL_INVALID_VALUE''' wird generiert wenn ''size'' nicht 3 oder 4 ist.
'''GL_INVALID_ENUM''' wird generiert wenn ''type'' ein ungültiger Wert zugewiesen wird.<br>
+
 
'''GL_INVALID_VALUE''' wird generiert wenn ''stride'' negativ ist.<br>
+
'''GL_INVALID_ENUM''' wird generiert wenn ''_type'' ein ungültiger Wert zugewiesen wird.
 +
 
 +
'''GL_INVALID_VALUE''' wird generiert wenn ''stride'' negativ ist.
 +
 
  
<br>
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glIsEnabled]] mit dem Token '''GL_COLOR_ARRAY'''<br>
+
[[glIsEnabled]] mit dem Token '''GL_COLOR_ARRAY'''
[[glGet]] mit Token [[glGet#GL_COLOR_ARRAY_SIZE|GL_COLOR_ARRAY_SIZE]]<br>
+
 
[[glGet]] mit Token [[glGet#GL_COLOR_ARRAY_TYPE|GL_COLOR_ARRAY_TYPE]]<br>
+
[[glGet]] mit Token [[glGet#GL_COLOR_ARRAY_SIZE|GL_COLOR_ARRAY_SIZE]]
[[glGet]] mit Token [[glGet#GL_COLOR_ARRAY_STRIDE|GL_COLOR_ARRAY_STRIDE]]<br>
+
 
[[glGetPointerv]] mit dem Token '''GL_COLOR_ARRAY_POINTER'''<br>
+
[[glGet]] mit Token [[glGet#GL_COLOR_ARRAY_TYPE|GL_COLOR_ARRAY_TYPE]]
 +
 
 +
[[glGet]] mit Token [[glGet#GL_COLOR_ARRAY_STRIDE|GL_COLOR_ARRAY_STRIDE]]
 +
 
 +
[[glGetPointerv]] mit dem Token '''GL_COLOR_ARRAY_POINTER'''
 +
 
  
<br>
 
  
 
== Siehe auch ==
 
== Siehe auch ==
 +
 +
Hintergrundwissen: [[VBO ohne glInterleavedArrays]]
 +
 
[[glArrayElement]], [[glDrawArrays]], [[glDrawElements]], [[glEdgeFlagPointer]], [[glEnable]], [[glGetPointerv]], [[glIndexPointer]], [[glInterleavedArrays]], [[glNormalPointer]], [[glPopClientAttrib]], [[glPushClientAttrib]], [[glTexCoordPointer]], [[glVertexPointer]]
 
[[glArrayElement]], [[glDrawArrays]], [[glDrawElements]], [[glEdgeFlagPointer]], [[glEnable]], [[glGetPointerv]], [[glIndexPointer]], [[glInterleavedArrays]], [[glNormalPointer]], [[glPopClientAttrib]], [[glPushClientAttrib]], [[glTexCoordPointer]], [[glVertexPointer]]
  
 
[[Kategorie:GL|ColorPointer]]
 
[[Kategorie:GL|ColorPointer]]
 +
[[Kategorie:GL1.1|ColorPointer]]

Aktuelle Version vom 19. Mai 2010, 10:47 Uhr

glColorPointer

Name

glColorPointer - definiert ein Feld das Farben enthält.


Delphi-Spezifikation

procedure glColorPointer(size: TGLint; _type: TGLenum; stride: TGLsizei; const _pointer: PGLvoid);



Parameter

size Gibt an, aus wievielen Komponenten die Farbe besteht. (Muss 3 oder 4 sein)
_type Bestimmt den Datentyp jeder Farbcomponente im Feld. Als Symbolische Konstanten werden GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT und GL_DOUBLE akzeptiert.
stride bestimmt den Byteabstand zwischen aufeinenderfolgenden Farben. Wenn stride 0(Standard) ist, wird angenommen, dass die Farben in dem Array dicht gepackt liegen.
_pointer Bestimmt einen Zeiger auf die erste Farbkomponente, der ersten Farbe im Feld.



Beschreibung

glColorPointer bestimmt den Ort und das Datenformat eines Farbkomponenten-Arrays, das zum Rendern benutzt werden soll. size bestimmt die Anzahl an Komponenten pro Farbe und muss 3 oder 4 sein. _type bestimmt den Datentyp jeder Farbkomponente. stride legt den Abstand zwischen den Farben fest, was ermöglicht, dass Vertices und Attribute im einem einzelnen oder aber verschiedenen Arrays liegen.(Einzelspeicherung kann in einigen Implemetationen effizienter sein; siehe glInterleavedArrays)

Wenn ein Buffer Object für GL_ARRAY_BUFFER gebunden ist (siehe glBindBuffer) während glColorPointer aufgerufen wird, wird pointer als ein Byte-Offset vom Beginn zum ersten Color-Element im Puffer behandelt. Weiterhin wird die Bindung des Buffer Objects (GL_ARRAY_BUFFER_BINDING) als Farb-Vertex-Array Client-Side Zustand (GL_COLOR_ARRAY_BUFFER_BINDING) gespeichert.

Wenn ein Farb-Array festgelegt wird, werden size, _type, stride und _pointer als klientseitiger Status gespeichert.

Um das Farb-Array ein- und auszuschalten, können glEnableClientState und glDisableClientState mit dem Argument GL_COLOR_ARRAY aufgerufen werden. Wenn aktiviert, wird das Farb-Array bei Aufrufen von glDrawArrays, glDrawElements und glArrayElement benutzt.

Hinweise

glColorPointer ist erst ab OpenGL Version 1.1 oder später verfügbar.

Im Initialisierungszustand ist das Farbfeld deaktiviert und wird von glArrayElement, glDrawArrays bzw. glDrawElements nicht benutzt, wenn diese Befehle aufgerufen werden.

Ein Aufruf von glColorPointer innerhalb eines glBegin-glEnd Blocks ist nicht erlaubt. Trotzdem kann es sein, dass kein Fehler generiert wird. Wenn dies geschieht, ist die Operation undefiniert.

glColorPointer ist normalerweise auf der Klientseite implementiert.

Farbfeld Parameter werden klientseitig gespeichert und können deshalb nicht mit glPushAttrib und glPopAttrib gespeichert bzw. wiederhergestellt werden. Benutzen Sie stattdessen glPushClientAttrib und glPopClientAttrib.


Fehlermeldungen

GL_INVALID_VALUE wird generiert wenn size nicht 3 oder 4 ist.

GL_INVALID_ENUM wird generiert wenn _type ein ungültiger Wert zugewiesen wird.

GL_INVALID_VALUE wird generiert wenn stride negativ ist.


Zugehörige Wertrückgaben

glIsEnabled mit dem Token GL_COLOR_ARRAY

glGet mit Token GL_COLOR_ARRAY_SIZE

glGet mit Token GL_COLOR_ARRAY_TYPE

glGet mit Token GL_COLOR_ARRAY_STRIDE

glGetPointerv mit dem Token GL_COLOR_ARRAY_POINTER


Siehe auch

Hintergrundwissen: VBO ohne glInterleavedArrays

glArrayElement, glDrawArrays, glDrawElements, glEdgeFlagPointer, glEnable, glGetPointerv, glIndexPointer, glInterleavedArrays, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glTexCoordPointer, glVertexPointer