glGetUniformLocationARB: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (GlGetUniformLocationARB wurde nach glGetUniformLocationARB verschoben)
K (Siehe auch)
Zeile 44: Zeile 44:
 
[[glGetActiveUniformARB]], [[glGetUniformARB]], [[glLinkProgramARB]], [[glUniformARB]]
 
[[glGetActiveUniformARB]], [[glGetUniformARB]], [[glLinkProgramARB]], [[glUniformARB]]
  
[[Kategorie:GL|getUniformLocationARB]]
+
[[Kategorie:GL|GetUniformLocationARB]]

Version vom 28. Dezember 2005, 14:50 Uhr

glGetUniformLocationARB


Name

glGetUniformLocationARB - Liefert den Ablageort einer Uniform-Variable


Delphi-Spezifikation

function glGetUniformLocationARB(program : GLhandleARB; const name : PGLcharARB) : GLint


Parameter

program Gibt das Handle des abzufragenden Programmobjekts an.
name Zeigt auf einen 0-terminierten String, der den Namen der Uniform-Variable enthält, deren Ablageort abgefragt werden soll.


Beschreibung

glGetUniformLocationARB liefert einen Integer-Wert, der auf den Ablageort im Speicher verweist. Der Array-Element-Operator "[]" und der Struktur-Operator "." kann in name verwendet werden, um Elemente innerhalb eines Arrays oder Felder innherhalb einer Struktur auszuwählen. Leerzeichen sind nicht erlaubt. Den Ablageort erhält man, wenn man den name des Arrays - optional gefolgt von "[0]" - verwendet. Das Ergebnis dieser Operatoren darf keine andere Struktur, kein ein Array von Strukturen und auch keine Unterkomponente eines Vektors oder einer Matrix. Wenn die Uniform-Variable name nicht im Programmobjekt zu finden ist, oder name mit dem reservierten Präfix "gl_" beginnt, wird das Ergebnis -1 zurückgeliefert.


Der aktuelle Ablageort vom Uniform-Variablen im Speicher ist solange unbekannt, bis das Programmobjekt gelinkt wurde. Ist das Linken einmal durchgeführt worden, dann kann der Befehl glGetUniformLocationARB dazuverwendet werden, den Ablageort der Uniform-Variable zu erfahren. Dieser Ablageort kann in glUniformARB dazu verwendet werden, den Wert einer Uniform-Variable zu setzen, oder in glGetUniformARB, um den aktuellen Wert einer Uniform-Variable abzufragen. Wenn ein Programmobjekt erfolgreich gelinkt wirde, bleiben die Speicherorte von Uniform-Variablen fest (und ihre Werte können abgefragt werden), bis das nächste mal gelinkt wird. glGetUniformLocationARB kann dazu verwendet werden, ein Programmobjekt abzufragen, unabhängig davon, ob das Programmobjekt im Moment in Verwendung ist.


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_ARB ist.

GL_INVALID_OPERATION wird generiert, wenn program nicht erfolgreich gelinkt wurde.

GL_INVALID_OPERATION wird generiert, wenn name keinen Speicherort im aktuellen Programmobjekt hat.

GL_INVALID_OPERATION wird generiert wenn glGetUniformLocationARB innerhalb eines glBegin-glEnd Blocks aufgerufen wird.


Siehe auch

glGetActiveUniformARB, glGetUniformARB, glLinkProgramARB, glUniformARB