glGetUniformLocation
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 nur ab OpenGL - Version2.0 oder höher unterstützt.
Wenn ein Fehler auftritt, werden die Wert von params nicht geändert
Fehlermeldungen
GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.
GL_INVALID_OPERATION is generated if program is not a program object.
GL_INVALID_OPERATION is generated if program has not been successfully linked.
GL_INVALID_OPERATION is generated if location does not correspond to a valid uniform variable location for the specified program object.
GL_INVALID_OPERATION is generated if glGetUniformLocation is executed between the execution of glBegin and the corresponding execution of glEnd.