glGetUniformLocation: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) K (→Hinweise) |
Flash (Diskussion | Beiträge) () |
||
Zeile 32: | Zeile 32: | ||
== Hinweise == | == Hinweise == | ||
− | glGetUniformLocation wird | + | '''glGetUniformLocation''' wird ab OpenGL-Version 2.0 unterstützt. |
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | GL_INVALID_VALUE | + | '''GL_INVALID_VALUE''' wird generiert wenn ''program'' kein von OpenGL generierter Wert ist. |
− | GL_INVALID_OPERATION | + | '''GL_INVALID_OPERATION''' wird generiert wenn ''program'' kein Programmobjekt ist. |
− | + | '''GL_INVALID_OPERATIO''' wird generiert wenn ''program'' nicht erfolgreich gelinkt werden konnte. | |
− | GL_INVALID_OPERATION | + | '''GL_INVALID_OPERATION''' wird generiert wenn ''location'' nicht zu einer gültigen Uniform-Variablen-Lokation des Programmobjekts gehört. |
− | GL_INVALID_OPERATION | + | '''GL_INVALID_OPERATION''' wird generiert wenn '''glGetUniformLocation''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.. |
<br> | <br> | ||
+ | |||
+ | == Zugehörige Wertrückgaben== | ||
+ | [[glGetActiveUniform]] mit den Argumenten ''program'' und dem Index einer aktiven Uniform-Variable. | ||
+ | |||
+ | [[glGetProgram]] mit den Argumenten ''program'' und '''GL_ACTIVE_UNIFORMS''' oder '''GL_ACTIVE_UNIFORM_MAX_LENGTH'''. | ||
+ | |||
+ | [[glGetUniform]] mit den Argumenten ''program'' und dem Namen einer Uniform-Variable. | ||
+ | |||
+ | [[glIsProgram]] | ||
+ | |||
+ | |||
+ | ==Siehe auch== | ||
+ | [[glLinkProgram]], [[glUniform]] | ||
+ | |||
+ | |||
+ | [[Kategorie:GL|GetUniformLocation]] |
Version vom 16. August 2005, 20:28 Uhr
Inhaltsverzeichnis
Name
glGetUniformLocation - liefert den Ablageort einer uniform- Variable.
Delphi-Spezifikation
function glGetUniformLocation(program: TGLuint; name: PGLchar): GLint;
Parameter
program | Gibt den Shader an, der die Variable enthält. |
name | Gibt den Namen der Variable an, deren Ablageort man herausfinden will. |
Beschreibung
glGetUniformLocation liefert einen Integer-Wert, der dem Ablageort einer Variable innerhalb eines Shaders (program) entspricht.
name ist eine normale, C(++)-kompatible Variable, als case-sensitive und ohne Leerzeichen.
Die Funktion liefert den Wert -1, wenn name als Variable nicht existiert oder wenn name eine der vordefinerten Variablen, die mit "gl_" beginnen, ist.
Sollte man glGetUniformLocation auf Strukturen oder Arrays oder Werte innerhalb Strukturen oder Arrays anwenden wollen, muss man das für jedes Feld innerhalb der Struktur machen, in name ist hier die ganze Bezeichnung anzugeben, inklusive "[]" bzw ".".
Die aktuellen Positionen der uniform-Variablen sind so lange unbekannt, bis der Shader gelinkt wird.
Den Rückgabewert von glGetUniformLocation kann man in glUniform einsetzen, um einer uniform-Variable einen Wert zuzuweisen, oder in glGetUniform, um den Wert einer uniform-Variable auszulesen.
Hinweise
glGetUniformLocation wird ab OpenGL-Version 2.0 unterstützt.
Fehlermeldungen
GL_INVALID_VALUE wird generiert wenn program kein von OpenGL generierter Wert ist.
GL_INVALID_OPERATION wird generiert wenn program kein Programmobjekt ist.
GL_INVALID_OPERATIO wird generiert wenn program nicht erfolgreich gelinkt werden konnte.
GL_INVALID_OPERATION wird generiert wenn location nicht zu einer gültigen Uniform-Variablen-Lokation des Programmobjekts gehört.
GL_INVALID_OPERATION wird generiert wenn glGetUniformLocation innerhalb eines glBegin-glEnd Blocks aufgerufen wird..
Zugehörige Wertrückgaben
glGetActiveUniform mit den Argumenten program und dem Index einer aktiven Uniform-Variable.
glGetProgram mit den Argumenten program und GL_ACTIVE_UNIFORMS oder GL_ACTIVE_UNIFORM_MAX_LENGTH.
glGetUniform mit den Argumenten program und dem Namen einer Uniform-Variable.