glGetActiveAttrib: Unterschied zwischen den Versionen
Flo (Diskussion | Beiträge) K (→Beschreibung) |
DGLBot (Diskussion | Beiträge) K (Bot: konvertiere/korrigiere <BR>) |
||
(6 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | = glGetActiveAttribARB = | + | = glGetActiveAttrib (glGetActiveAttribARB) = |
+ | |||
+ | |||
− | |||
== Name == | == Name == | ||
− | ''' | + | '''glGetActiveAttrib''' - Gibt Informationen über eine aktive Attributvariable des angegebenen Programmobjekts aus |
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
+ | |||
+ | procedure '''glGetActiveAttrib'''(''program'' : GLuint; | ||
+ | ''index'' : GLuint; | ||
+ | ''maxLength'' : GLsizei; | ||
+ | ''length'' : PGLsizei; | ||
+ | ''size'' : PGLint; | ||
+ | ''type'' : PGLenum; | ||
+ | ''name'' : PGLchar) | ||
procedure '''glGetActiveAttribARB'''(''program'' : GLhandleARB; | procedure '''glGetActiveAttribARB'''(''program'' : GLhandleARB; | ||
Zeile 14: | Zeile 23: | ||
''size'' : PGLint; | ''size'' : PGLint; | ||
''type'' : PGLenum; | ''type'' : PGLenum; | ||
− | ''name'' : | + | ''name'' : PGLcharARB) |
− | |||
== Parameter == | == Parameter == | ||
Zeile 40: | Zeile 48: | ||
|- | |- | ||
! ''name'' | ! ''name'' | ||
− | | Liefert einen String, der den Namen der Attributvariable enthält. | + | | Liefert einen ([[Null-terminiert]]en) String, der den Namen der Attributvariable enthält. |
|} | |} | ||
− | |||
== Beschreibung == | == Beschreibung == | ||
− | ''' | + | '''glGetActiveAttrib''' liefert Informationen über die aktive Attributvariable, die mit ''index'' angegeben wird. Der Vertexshader, der abgefragt werden soll, ist derjenige, der an das Programmobjekt per ''program'' angehängt wurde. Es ist ist nicht nötig, dass ''program'' schon erfolgreich gelinkt wurde, aber es sollte vorher schon Ziel bei einem Aufruf von [[glLinkProgram]] gewesen sein. Die Größe des Zeichenpuffers - angesteuert durch die Anwendung - wird mit ''maxLength'' angegeben, und der Pointer zu diesem Zeichenpuffer wird in ''name'' ausgegeben. Eine Attributvariable gilt als "aktiv" in einem Vertexshader, wenn es sicher ist, dass auf sie zugegriffen wird, sobald der Vertexshader ausgeführt wird. |
− | Die Anzahl der aktiven Attribute kann man mit dem Aufruf von [[ | + | Die Anzahl der aktiven Attribute kann man mit dem Aufruf von [[glGetProgram]], [[glGetShader]] mit dem Token '''GL_OBJECT_ACTIVE_ATTRIBUTES''' abfragen. Der Wert 0 für ''index'' wählt das erste aktive Attribut und der Wert '''GL_OBJECT_ACTIVE_UNIFORMS''' - 1 wählt das letzte aktive Attribut. Die Länge des längsten Attributnamens kann man mit dem Aufruf von [[glGetProgram]], [[glGetShader]] mit dem Wert '''GL_OBJECT_ACTIVE_ATTRIBUTES_MAX_LENGTH''' erfahren. |
− | ''' | + | '''glGetActiveAttrib''' liefert den Namen der Attributvariable, die mit Index gesucht wurde. Der zurück geleiferte String ist [[Null-terminiert]]. Die aktuelle Anzahl der Zeichen, die in den Puffer geschrieben wurden, wird in ''length'' ausgegeben (Das Null-Terminierungszeichen wird nicht mitgezählt). Wenn die Länge des ausgegeben Strings uninteressant ist, kann man '''nil''' im ''length''-Argument angeben. |
Zeile 57: | Zeile 64: | ||
− | Diese Funktion kann dazu verwendet werden, sowohl eingebaute Attributvariablen (die mit dem Präfix "gl_" beginnen) als auch selbst erzeugte Vertexattributvariablen, die mit [[ | + | Diese Funktion kann dazu verwendet werden, sowohl eingebaute Attributvariablen (die mit dem Präfix "gl_" beginnen) als auch selbst erzeugte Vertexattributvariablen, die mit [[glBindAttribLocation]] angebunden wurden, abzufragen. Die Funktion wird so viele Informationen über die Attributvariable liefern, wie es möglich ist. Wenn keine Informationen verfügbar sind, ist ''length'' gleich 0 und ''name'' ein leerer String. Dieser Fall könnte eintreten, wenn die Funktion nach einer fehlgeschlagenen Linkoperation aufgerufen wird. |
== Hinweise == | == Hinweise == | ||
− | Attributvariablen müssen nicht mit [[ | + | Attributvariablen müssen nicht mit [[glBindAttribLocation]] an generische Attribut-Indexwerte gebunden werden, bevor '''glGetActiveAttribARB''' aufgerufen wird. |
Zeile 66: | Zeile 73: | ||
'''GL_INVALID_VALUE''' wird generiert, wenn ''program'' kein von OpenGL erzeugtes Handle ist. | '''GL_INVALID_VALUE''' wird generiert, wenn ''program'' kein von OpenGL erzeugtes Handle ist. | ||
− | '''GL_INVALID_OPERATION''' wird generiert, wenn ''program'' nicht vom Typ ''' | + | '''GL_INVALID_OPERATION''' wird generiert, wenn ''program'' nicht vom Typ '''GL_PROGRAM_OBJECT''' ist. |
'''GL_INVALID_VALUE''' wird generiert, wenn ''index'' größer oder gleich der aktuellen Anzahl der aktiven Attributvariablen ist. | '''GL_INVALID_VALUE''' wird generiert, wenn ''index'' größer oder gleich der aktuellen Anzahl der aktiven Attributvariablen ist. | ||
− | '''GL_INVALID_OPERATION''' wird generiert wenn | + | '''GL_INVALID_OPERATION''' wird generiert wenn glGetActiveAttrib innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird. |
== Siehe auch == | == Siehe auch == | ||
− | [[ | + | [[glBindAttribLocation]], [[glLinkProgram]], [[glVertexAttrib]], [[glVertexAttribPointer]] |
+ | [[Kategorie:GL|GetActiveAttrib]] | ||
[[Kategorie:GL|GetActiveAttribARB]] | [[Kategorie:GL|GetActiveAttribARB]] |
Aktuelle Version vom 22. April 2006, 19:20 Uhr
Inhaltsverzeichnis
glGetActiveAttrib (glGetActiveAttribARB)
Name
glGetActiveAttrib - Gibt Informationen über eine aktive Attributvariable des angegebenen Programmobjekts aus
Delphi-Spezifikation
procedure glGetActiveAttrib(program : GLuint; index : GLuint; maxLength : GLsizei; length : PGLsizei; size : PGLint; type : PGLenum; name : PGLchar)
procedure glGetActiveAttribARB(program : GLhandleARB; index : GLuint; maxLength : GLsizei; length : PGLsizei; size : PGLint; type : PGLenum; name : PGLcharARB)
Parameter
program | Gibt das Programobjekt an, das abgefragt werden soll. |
---|---|
index | Gibt den Index der Attributvariable an, die abgefragt werden soll. |
maxLength | Gibt maximale Anzahl an Zeichen an, die OpenGL in den String name schreiben darf. |
length | Liefert die Anzahl der Zeichen, die OpenGL in den String name geschrieben hat. |
size | Liefert die Größe der Attributvariable. |
type | Liefert die Datentypen der Attributvariable. |
name | Liefert einen (Null-terminierten) String, der den Namen der Attributvariable enthält. |
Beschreibung
glGetActiveAttrib liefert Informationen über die aktive Attributvariable, die mit index angegeben wird. Der Vertexshader, der abgefragt werden soll, ist derjenige, der an das Programmobjekt per program angehängt wurde. Es ist ist nicht nötig, dass program schon erfolgreich gelinkt wurde, aber es sollte vorher schon Ziel bei einem Aufruf von glLinkProgram gewesen sein. Die Größe des Zeichenpuffers - angesteuert durch die Anwendung - wird mit maxLength angegeben, und der Pointer zu diesem Zeichenpuffer wird in name ausgegeben. Eine Attributvariable gilt als "aktiv" in einem Vertexshader, wenn es sicher ist, dass auf sie zugegriffen wird, sobald der Vertexshader ausgeführt wird.
Die Anzahl der aktiven Attribute kann man mit dem Aufruf von glGetProgram, glGetShader mit dem Token GL_OBJECT_ACTIVE_ATTRIBUTES abfragen. Der Wert 0 für index wählt das erste aktive Attribut und der Wert GL_OBJECT_ACTIVE_UNIFORMS - 1 wählt das letzte aktive Attribut. Die Länge des längsten Attributnamens kann man mit dem Aufruf von glGetProgram, glGetShader mit dem Wert GL_OBJECT_ACTIVE_ATTRIBUTES_MAX_LENGTH erfahren.
glGetActiveAttrib liefert den Namen der Attributvariable, die mit Index gesucht wurde. Der zurück geleiferte String ist Null-terminiert. Die aktuelle Anzahl der Zeichen, die in den Puffer geschrieben wurden, wird in length ausgegeben (Das Null-Terminierungszeichen wird nicht mitgezählt). Wenn die Länge des ausgegeben Strings uninteressant ist, kann man nil im length-Argument angeben.
Das Argument type liefert einen Pointer auf den Datentyp der Attributvariable. Die symbolischen Konstanten GL_FLOAT, GL_FLOAT_VEC2_ARB, GL_FLOAT_VEC3_ARB, GL_FLOAT_VEC4_ARB, GL_FLOAT_MAT2_ARB, GL_FLOAT_MAT3_ARB und GL_FLOAT_MAT4_ARB könnten ausgegeben werden.
Diese Funktion kann dazu verwendet werden, sowohl eingebaute Attributvariablen (die mit dem Präfix "gl_" beginnen) als auch selbst erzeugte Vertexattributvariablen, die mit glBindAttribLocation angebunden wurden, abzufragen. Die Funktion wird so viele Informationen über die Attributvariable liefern, wie es möglich ist. Wenn keine Informationen verfügbar sind, ist length gleich 0 und name ein leerer String. Dieser Fall könnte eintreten, wenn die Funktion nach einer fehlgeschlagenen Linkoperation aufgerufen wird.
Hinweise
Attributvariablen müssen nicht mit glBindAttribLocation an generische Attribut-Indexwerte gebunden werden, bevor glGetActiveAttribARB aufgerufen wird.
Fehlermeldungen
GL_INVALID_VALUE wird generiert, wenn program kein von OpenGL erzeugtes Handle ist.
GL_INVALID_OPERATION wird generiert, wenn program nicht vom Typ GL_PROGRAM_OBJECT ist.
GL_INVALID_VALUE wird generiert, wenn index größer oder gleich der aktuellen Anzahl der aktiven Attributvariablen ist.
GL_INVALID_OPERATION wird generiert wenn glGetActiveAttrib innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Siehe auch
glBindAttribLocation, glLinkProgram, glVertexAttrib, glVertexAttribPointer