glEdgeFlagPointer: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(neuer Artikel)
 
K (Kategorisierung unter GL1.1; Ergänzung von Wertrückgaben; kleinere Tippfehler beseitigt.)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glEdgeFlagPointer =
 
= glEdgeFlagPointer =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
 
'''glEdgeFlagPointer''' - definiert einen Zeiger auf ein Feld von EdgeFlags. (siehe [[glEdgeFlag]])
 
'''glEdgeFlagPointer''' - definiert einen Zeiger auf ein Feld von EdgeFlags. (siehe [[glEdgeFlag]])
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
 
  procedure '''glEdgeFlagPointer'''(''stride'': TGLsizei; const ''_pointer'': PGLvoid);
 
  procedure '''glEdgeFlagPointer'''(''stride'': TGLsizei; const ''_pointer'': PGLvoid);
  
<br>
+
 
  
 
== Parameter ==
 
== Parameter ==
 
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''stride''  
 
! ''stride''  
Zeile 21: Zeile 22:
 
|}
 
|}
  
<br>
 
 
== Beschreibung ==
 
 
'''glEdgeFlagPointer''' bestimmt Ort und Inhalt eines Feldes mit Booleanwerten welches EdgeFlags (siehe [[glEdgeFlag]]) darstellt die wärend des Renders benutzt werden sollen. ''stride'' bestimmt den Abstand der Bytes zwischen aufeinanderfolgenden Flags. Dies Erlaubt es [[Vertices]] und Vertexeigenschaften in ein bzw. mehrere Felder zu speichern. (Das speichern in einem Feld kann bei einigen Implementationen effizienter sein. siehe [[glInterleavedArrays]])
 
 
Wenn ein EdgeFlag Array spezifiziert wird, werden ''stride'' und ''_pointer'' als klientseitige Zustände gespeichert.
 
  
<b><i> Orginaltext:
 
  
      glEdgeFlagPointer specifies the location and  data  of an  array  of
 
      boolean edge  flags  to use when rendering. stride specifies the byte
 
      stride from one edge flag to the next allowing vertices and  attributes
 
      to  be  packed into a single array or stored in separate arrays. (Sin-(Single-array
 
      gle-array storage may be more efficient on  some implementations;  see
 
      glInterleavedArrays.)
 
 
      When  an edge flag array is specified, stride and pointer are saved as
 
      client-side state.</i></b>
 
  
Um das EdgeFlag Array zu aktivieren bzw. deaktivieren rufen Sie [[glEnableClientState]] und [[glDisableClientState]] mit dem Argument '''GL_EDGE_FLAG_ARRAY''' auf. Wenn aktiviert wird das EdgeFlag Array bei Aufrufen von [[glDrawArrays]], [[glDrawElements]], oder [[glArrayElement]] benutzt.
+
== Beschreibung ==
 +
'''glEdgeFlagPointer''' bestimmt Ort und Inhalt eines Feldes mit Booleanwerten, welches EdgeFlags (siehe [[glEdgeFlag]]) darstellt, die während des Renders benutzt werden sollen. ''stride'' bestimmt den Abstand der Bytes zwischen aufeinanderfolgenden Flags. Dies erlaubt es [[Vertices]] und Vertexeigenschaften in ein bzw. mehrere Felder zu speichern. (Das Speichern in einem Feld kann bei einigen Implementationen effizienter sein, siehe [[glInterleavedArrays]].)
  
<b><i> Orginaltext:
+
Wenn ein EdgeFlag-Array spezifiziert wird, werden ''stride'' und ''_pointer'' als klientseitige Zustände gespeichert.
  
      To enable and disable the edge flag array, call glEnableClientState and
+
Um das EdgeFlag Array zu aktivieren bzw. deaktivieren, rufen Sie [[glEnableClientState]] und [[glDisableClientState]] mit dem Argument '''GL_EDGE_FLAG_ARRAY''' auf. Wenn aktiviert wird das EdgeFlag-Array bei Aufrufen von [[glDrawArrays]][[glDrawElements]], oder [[glArrayElement]] benutzt.
      glDisableClientState with the argument GL_EDGE_FLAG_ARRAY. If enabled,
 
      the edge flag array  is used  when  glDrawArrays,  glDrawElements, or
 
      glArrayElement is called.</i></b>
 
  
Benutzen Sie [[glDrawArrays]] um eine Sequenz von Primitiven (alle vom selben Typ) aus vordefinierten Vertex- und Vertexattributfelder zu konstruieren.  
+
Benutzen Sie [[glDrawArrays]], um eine Sequenz von Primitiven (alle vom selben Typ) aus vordefinierten Vertex- und Vertexattributfeldern zu konstruieren.  
  
Benutzen Sie [[glArrayElement]] um Primitive durch Indizierung von Vertices und Vertexattributen zu spezifizieren.
+
Benutzen Sie [[glArrayElement]], um Primitive durch Indizierung von Vertices und Vertexattributen zu spezifizieren.
  
Benutzen Sie [[glDrawElements]] um eine Sequenz von Primitiven durch Indizierung von Vertices und Vertexattributen zu konstruieren.
+
Benutzen Sie [[glDrawElements]], um eine Sequenz von Primitiven durch Indizierung von Vertices und Vertexattributen zu konstruieren.
  
<b><i> Orginaltext:
 
  
      Use glDrawArrays to construct a sequence of primitives (all of the same
 
      type) from  prespecified vertex and  vertex  attribute arrays.  Use
 
      glArrayElement  to  specify  primitives by indexing vertices and vertex
 
      attributes and glDrawElements to construct a sequence of primitives  by
 
      indexing vertices and vertex attributes.</i></b>
 
  
<br>
 
 
== Hinweise ==
 
== Hinweise ==
 
'''glEdgeFlagPointer''' ist erst ab OpenGL Version 1.1 oder höher verfügbar.
 
'''glEdgeFlagPointer''' ist erst ab OpenGL Version 1.1 oder höher verfügbar.
Zeile 70: Zeile 45:
 
Das EdgeFlag Array ist standardmäßig deaktiviert und wird bei Aufrufen von [[glArrayElement]], [[glDrawElements]] oder [[glDrawArrays]] nicht benutzt.
 
Das EdgeFlag Array ist standardmäßig deaktiviert und wird bei Aufrufen von [[glArrayElement]], [[glDrawElements]] oder [[glDrawArrays]] nicht benutzt.
  
Ein Aufruf von '''glEdgeFlagPointer''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks ist nicht erlaubt. Ein Fehler kann, muss aber nicht generiert werden. Wenn kein Fehler generiert wurde ist die Operation undefiniert.
+
Ein Aufruf von '''glEdgeFlagPointer''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks ist nicht erlaubt. Ein Fehler kann, muss aber nicht generiert werden. Wenn kein Fehler generiert wurde, ist die Operation undefiniert.
  
'''glEdgeFlagPointer''' ist normalerweise Klientseitig implementiert.
+
'''glEdgeFlagPointer''' ist normalerweise klientseitig implementiert.
  
 
Parameter für das EdgeFlag Array sind klientseitige Zustände und werden deshalb nicht von [[glPushMatrix]] bzw. [[glPopMatrix]] gespeichert bzw. wiederhergestellt. Benutzen Sie statt dessen [[glPushClientAttrib]] und [[glPopClientAttrib]].
 
Parameter für das EdgeFlag Array sind klientseitige Zustände und werden deshalb nicht von [[glPushMatrix]] bzw. [[glPopMatrix]] gespeichert bzw. wiederhergestellt. Benutzen Sie statt dessen [[glPushClientAttrib]] und [[glPopClientAttrib]].
  
<br>
+
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_ENUM''' wird generiert wenn ''stride'' negativ ist.<br>
+
'''GL_INVALID_ENUM''' wird generiert, wenn ''stride'' negativ ist.
<i>'''GL_INVALID_OPERATION''' kann generiert werden wenn '''glEdgeFlagPointer''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. (siehe Hinweise)</i>
+
 
 +
'''GL_INVALID_OPERATION''' ''kann(!)'' generiert werden, wenn '''glEdgeFlagPointer''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. (Siehe Hinweise.)
 +
 
  
<br>
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glIsEnabled]] mit Token '''GL_EDGE_FLAG_ARRAY'''<br>
+
[[glIsEnabled]] mit Token [[glIsEnabled#GL_EDGE_FLAG_ARRAY|GL_EDGE_FLAG_ARRAY]]
[[glGet]] mit Token [[glGet#GL_EDGE_FLAG_ARRAY_STRIDE|GL_EDGE_FLAG_ARRAY_STRIDE]] <br>
+
 
[[glGetPointerv]] mit Token '''GL_EDGE_FLAG_ARRAY_POINTER'''<br>
+
[[glGet]] mit Token [[glGet#GL_EDGE_FLAG_ARRAY_STRIDE|GL_EDGE_FLAG_ARRAY_STRIDE]]
 +
 
 +
[[glGet]] mit Token [[glGet#GL_EDGE_FLAG_ARRAY_BUFFER_BINDING|GL_EDGE_FLAG_ARRAY_BUFFER_BINDING]]
 +
 
 +
[[glGet]] mit Token [[glGet#GL_ARRAY_BUFFER_BINDING|GL_ARRAY_BUFFER_BINDING]]
 +
 
 +
[[glGetPointerv]] mit Token '''GL_EDGE_FLAG_ARRAY_POINTER'''
 +
 
  
<br>
 
  
 
== Siehe auch ==
 
== Siehe auch ==
Zeile 95: Zeile 78:
  
 
[[Kategorie:GL|EdgeFlagPointer]]
 
[[Kategorie:GL|EdgeFlagPointer]]
 +
[[Kategorie:GL1.1|EdgeFlagPointer]]

Aktuelle Version vom 3. Juni 2008, 23:16 Uhr

glEdgeFlagPointer

Name

glEdgeFlagPointer - definiert einen Zeiger auf ein Feld von EdgeFlags. (siehe glEdgeFlag)


Delphi-Spezifikation

procedure glEdgeFlagPointer(stride: TGLsizei; const _pointer: PGLvoid);


Parameter

stride Definiert den Byteoffset zwischen aufeinanderfolgenden Einträgen im Feld. Wenn stride 0 ist (Initialzustand) wird dies so interpretiert, dass die EdgeFlags ohne Zwischenraum im Feld zusammengepackt sind. Der Initialzustand ist 0.
_pointer Ist ein Zeiger auf den ersten Eintrag in das EdgeFlag Array. (Für C-Programmierer: Der Initialzustand ist 0)



Beschreibung

glEdgeFlagPointer bestimmt Ort und Inhalt eines Feldes mit Booleanwerten, welches EdgeFlags (siehe glEdgeFlag) darstellt, die während des Renders benutzt werden sollen. stride bestimmt den Abstand der Bytes zwischen aufeinanderfolgenden Flags. Dies erlaubt es Vertices und Vertexeigenschaften in ein bzw. mehrere Felder zu speichern. (Das Speichern in einem Feld kann bei einigen Implementationen effizienter sein, siehe glInterleavedArrays.)

Wenn ein EdgeFlag-Array spezifiziert wird, werden stride und _pointer als klientseitige Zustände gespeichert.

Um das EdgeFlag Array zu aktivieren bzw. deaktivieren, rufen Sie glEnableClientState und glDisableClientState mit dem Argument GL_EDGE_FLAG_ARRAY auf. Wenn aktiviert wird das EdgeFlag-Array bei Aufrufen von glDrawArrays, glDrawElements, oder glArrayElement benutzt.

Benutzen Sie glDrawArrays, um eine Sequenz von Primitiven (alle vom selben Typ) aus vordefinierten Vertex- und Vertexattributfeldern zu konstruieren.

Benutzen Sie glArrayElement, um Primitive durch Indizierung von Vertices und Vertexattributen zu spezifizieren.

Benutzen Sie glDrawElements, um eine Sequenz von Primitiven durch Indizierung von Vertices und Vertexattributen zu konstruieren.


Hinweise

glEdgeFlagPointer ist erst ab OpenGL Version 1.1 oder höher verfügbar.

Das EdgeFlag Array ist standardmäßig deaktiviert und wird bei Aufrufen von glArrayElement, glDrawElements oder glDrawArrays nicht benutzt.

Ein Aufruf von glEdgeFlagPointer innerhalb eines glBegin-glEnd-Blocks ist nicht erlaubt. Ein Fehler kann, muss aber nicht generiert werden. Wenn kein Fehler generiert wurde, ist die Operation undefiniert.

glEdgeFlagPointer ist normalerweise klientseitig implementiert.

Parameter für das EdgeFlag Array sind klientseitige Zustände und werden deshalb nicht von glPushMatrix bzw. glPopMatrix gespeichert bzw. wiederhergestellt. Benutzen Sie statt dessen glPushClientAttrib und glPopClientAttrib.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn stride negativ ist.

GL_INVALID_OPERATION kann(!) generiert werden, wenn glEdgeFlagPointer innerhalb eines glBegin-glEnd-Blocks aufgerufen wird. (Siehe Hinweise.)


Zugehörige Wertrückgaben

glIsEnabled mit Token GL_EDGE_FLAG_ARRAY

glGet mit Token GL_EDGE_FLAG_ARRAY_STRIDE

glGet mit Token GL_EDGE_FLAG_ARRAY_BUFFER_BINDING

glGet mit Token GL_ARRAY_BUFFER_BINDING

glGetPointerv mit Token GL_EDGE_FLAG_ARRAY_POINTER


Siehe auch

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