glTexCoordPointer: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Delphi-Spezifikation)
K (Hintergrundwissen: VBO ohne glInterleavedArrays hinzugefügt)
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glTexCoordPointer =
 
= glTexCoordPointer =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glTexCoordPointer''' - Definiert ein Array mit Texturkoordinaten
 
'''glTexCoordPointer''' - Definiert ein Array mit Texturkoordinaten
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  procedure '''glTexCoordPointer'''(''size'' : GLint; ''type'' : GLenum; ''stride'' : GLsizei ; '''const''' ''_pointer'' : GLvoid)
+
  procedure '''glTexCoordPointer'''(''size'' : GLint; ''type'' : GLenum; ''stride'' : GLsizei; '''const''' ''_pointer'' : GLvoid)
 
<br>
 
<br>
  
Zeile 26: Zeile 28:
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
Zeile 63: Zeile 66:
 
'''GL_INVALID_OPERATION''' '''könnte''' generiert werden, wenn '''glTexCoordPointer''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. (Siehe dazu die Hinweise!)  
 
'''GL_INVALID_OPERATION''' '''könnte''' generiert werden, wenn '''glTexCoordPointer''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. (Siehe dazu die Hinweise!)  
  
<br>
+
 
 +
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
Zeile 74: Zeile 78:
  
 
== Siehe auch ==
 
== Siehe auch ==
 +
 +
Hintergrundwissen: [[VBO ohne glInterleavedArrays]]
 +
 
[[glArrayElement]], [[glColorPointer]], [[glDrawArrays]], [[glDrawElements]], [[glEdgeFlagPointer]], [[glEnable]], [[glGetPointerv]], [[glIndexPointer]], [[glNormalPointer]], [[glPopClientAttrib]], [[glPushClientAttrib]], [[glTexCoord]], [[glVertexPointer]]
 
[[glArrayElement]], [[glColorPointer]], [[glDrawArrays]], [[glDrawElements]], [[glEdgeFlagPointer]], [[glEnable]], [[glGetPointerv]], [[glIndexPointer]], [[glNormalPointer]], [[glPopClientAttrib]], [[glPushClientAttrib]], [[glTexCoord]], [[glVertexPointer]]
 
<br>
 
<br>
 
[[Kategorie:GL|TexCoordPointer]]
 
[[Kategorie:GL|TexCoordPointer]]

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

glTexCoordPointer

Name

glTexCoordPointer - Definiert ein Array mit Texturkoordinaten


Delphi-Spezifikation

procedure glTexCoordPointer(size : GLint; type : GLenum; stride : GLsizei; const _pointer : GLvoid)


Parameter

size Gibt die Anzahl der Koordinaten pro Array-Element an. Muss 1, 2, 3 oder 4 sein. Der Standard-Wert ist 4.
type Gibt den Datentyp der Texturkoordinaten an. Die symbolischen Konstanten GL_FLOAT, GL_INT, GL_SHORT und GL_DOUBLE sind zulässig. Der Standard-Wert ist GL_FLOAT.
stride Gibt den Byte-Abstand (byte-offset) zwischen aufeinander folgenden Array-Elementen an. Ist stride 0, liegen die Bytes direkt hntereinander. Der Standard-Wert ist 0.
_pointer Gibt den Pointer zur ersten Koordinate im ersten Element des Arrays an.



Beschreibung

glTexCoordPointer legt den Ort und das Datenformat eines Arrays mit Texturkoordinaten fest, die beim Rendern verwendet werden.

size gibt die Anzahl der Koordinaten pro Element an und muss 1, 2, 3 oder 4 sein.

type gibt den Datentyp der Texturkoordinaten und stride den Byte-Abstand von einem Array-Element zum nachfolgenden an. Dies ermöglicht es, Vertexdaten und Vertexattribute entweder zusammen in einem Array oder verteilt auf mehreren Arrays zu speichern. (Speicherung in einem Array dürfte in einigen Anwendungen effizienter sein, siehe glInterleavedArrays.)

Wenn ein Texturkoordinaten-Array erzeugt wird, werden size, type, stride und _pointer client-seitig gespeichert.


Um das Texturkoordinaten-Array zu deaktivieren bzw. aktivieren, ruft man glEnableClientState und glDisableClientState mit den Argument GL_TEXTURE_COORD_ARRAY auf. Falls aktiviert, wird auf das Texturkoordinaten-Array bei Aufrufen von glDrawArrays, glDrawElements oder glArrayElement zugegriffen.


Benutzen sie glDrawArrays wenn sie eine Sequenz von Primitiven (alle vom selben Typ) aus vordefinierten Vertex- und Vertexattributfeldern erstellen wollen. Benutzen sie glArrayElement um Primitive durch Indexierung von Vertex- und Vertexattributfeldern zu erstellen und benutzen sie glDrawElements um eine Folge von Primitiven (des selben Typs) durch Indexierung von Vertex- und Vertexattributfeldern zu erstellen.

Hinweise

glTexCoordPointer ist nur verfügbar, wenn die OpenGL-Version 1.1 oder höher ist.

Das Texturkoordinaten-Array ist standardmäßig deaktiviert und wird beim Aufruf von glArrayElement, glDrawElements oder glDrawArrays nicht angesteuert.

Der Aufruf von glTexCoordPointer zwischen einem glBegin-glEnd nicht zulässig, ein Fehler kann generiert werden oder auch nicht. Wenn kein Fehler generiert wird, ist das Ergbnis der Funktion undefiniert.

glTexCoordPointer is normalerweise auf Client-Seite ohne Protokoll implementiert.

Die Parameter der Texturkoordinaten-Arrays werden Client-Seitig gespeichert und werden deswegen bei einem Aufruf von glPushAttrib bzw. glPopAttrib nicht gespeichert bzw. wiederhergestellt. Man benutze stattdessen glPushClientAttrib und glPopClientAttrib.

Fehlermeldungen

GL_INVALID_VALUE wird generiert, wenn size nicht 1, 2, 3 oder 4 ist.
GL_INVALID_ENUM wird generiert, wenn type keinen zulässigen Wert hat.
GL_INVALID_VALUE wird generiert, wenn stride negativ ist.
GL_INVALID_OPERATION könnte generiert werden, wenn glTexCoordPointer innerhalb eines glBegin-glEnd Blocks aufgerufen wird. (Siehe dazu die Hinweise!)



Zugehörige Wertrückgaben

glIsEnabled mit Argument GL_TEXTURE_COORD_ARRAY
glGet mit Token GL_TEXTURE_COORD_ARRAY_SIZE
glGet mit Token GL_TEXTURE_COORD_ARRAY_TYPE
glGet mit Token GL_TEXTURE_COORD_ARRAY_STRIDE
glGetPointerv mit Argument GL_TEXTURE_COORD_ARRAY_POINTER

Siehe auch

Hintergrundwissen: VBO ohne glInterleavedArrays

glArrayElement, glColorPointer, glDrawArrays, glDrawElements, glEdgeFlagPointer, glEnable, glGetPointerv, glIndexPointer, glNormalPointer, glPopClientAttrib, glPushClientAttrib, glTexCoord, glVertexPointer