glGetProgram: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Spezifikation u. Link angepasst)
K (kleinere Korrekturen)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
  
 
== Name ==
 
== Name ==
'''glGetProgram''' - Liefert Eigenschaften eines Programmobjekts.
+
'''glGetProgramiv''' - Liefert Eigenschaften eines Programmobjekts.
  
  
Zeile 10: Zeile 10:
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  
  procedure '''glGetProgram'''(''program'': TGLuint; ''pname'': TGLenum; ''params'': PGLint);
+
  procedure '''glGetProgramiv'''(''program'': TGLuint; ''pname'': TGLenum; ''params'': PGLint);
  
  
Zeile 18: Zeile 18:
 
{| border="1" rules="all"
 
{| border="1" rules="all"
 
! ''program''  
 
! ''program''  
| Bestimmt das Programmobjekt dessen Daten ermittelt werden sollen.
+
| Bestimmt das Programmobjekt, dessen Daten ermittelt werden sollen.
 
|-
 
|-
 
! ''pname''  
 
! ''pname''  
| Bestimmt was abgefragt werden soll. Akzeptierte symbolische Namen sind '''GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.'''
+
| Bestimmt, was abgefragt werden soll. Akzeptierte symbolische Namen sind '''GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ATTACHED_SHADERS, GL_DELETE_STATUS, GL_INFO_LOG_LENGTH, GL_LINK_STATUS, GL_VALIDATE_STATUS''' und mit der Extension [[GL_ARB_geometry_shader4]] weiterhin die symbolischen Namen '''GL_GEOMETRY_INPUT_TYPE_ARB, GL_GEOMETRY_OUTPUT_TYPE_ARB''' und '''GL_GEOMETRY_VERTICES_OUT_ARB'''.
 
|-
 
|-
 
! ''params''  
 
! ''params''  
Zeile 30: Zeile 30:
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glGetProgram''' liefert in ''params'' den Wert einer Eigenschaft eins bestimmten Programmobjekts. Die folgenden Werte für ''pname'' sind definiert:
+
'''glGetProgram''' liefert in ''params'' den Wert einer Eigenschaft eines bestimmten Programmobjekts. Die folgenden Werte für ''pname'' sind definiert:
  
'''GL_DELETE_STATUS'''
+
=== GL_ACTIVE_ATTRIBUTE_MAX_LENGTH ===
  
:''params'' liefert GL_TRUE falls ''program'' zum freigeben markiert wurde, sonst '''GL_FALSE'''.
+
:''params'' liefert die Länge des längsten aktiven Attributnamen für ''program'' inklusive des [[Null-terminiert|abschließenden Nullzeichens]]. (Das entspricht der benötigten Größe des Zeichenpuffers, um den längsten Attributnamen zu speichern.) Falls kein aktives Attribut existiert, wird 0 zurück geliefert.
  
'''GL_LINK_STATUS'''
+
=== GL_ACTIVE_ATTRIBUTES ===
  
:''params'' liefert GL_TRUE falls die letzte Link-Operation auf ''program'' erfolgreich war, sonst '''GL_FALSE'''.
+
:''params'' liefert die Anzahl der aktiven Attributvariablen für ''program''.
 +
 
 +
=== GL_ACTIVE_UNIFORM_MAX_LENGTH ===
 +
 
 +
:''params'' liefert die Länge des längsten Namens einer aktiven Uniformvariable für ''program'' inklusive des [[Null-terminiert|abschließenden Nullzeichens]]. (Das entspricht der benötigten Größe des Zeichenpuffers, um den längsten Namen zu speichern.) Falls keine aktive Uniformvariable existiert, wird 0 zurück geliefert.
 +
 
 +
=== GL_ACTIVE_UNIFORMS ===
 +
 
 +
:''params'' liefert die Anzahl aktiver Uniformvariablen für ''program''.
  
'''GL_VALIDATE_STATUS'''
+
=== GL_ATTACHED_SHADERS ===
  
:''params'' liefert GL_TRUE falls die letzte Validierungs-Operation auf ''program'' erfolgreich war, sonst '''GL_FALSE'''.
+
:''params'' liefert die Anzahl der Shader-Objekte, die an ''program'' gebunden sind.
  
'''GL_INFO_LOG_LENGTH'''
+
=== GL_DELETE_STATUS ===
  
:''params'' liefert die Anzahl der Zeichen im InfoLog von ''program'' einschließlich des 0/Terminierungszeichens (Dies entspricht der Größe des Zeichenpuffers der benötigt wird um das InfoLog zu speichern). Falls ''program'' kein InfoLog hat, wird der Wert 0 zurück geliefert.
+
:''params'' liefert '''GL_TRUE''', falls ''program'' zum Freigeben markiert wurde, sonst '''GL_FALSE'''.
  
'''GL_ATTACHED_SHADERS'''
+
=== GL_GEOMETRY_INPUT_TYPE_ARB ===
 +
:''params'' liefert den zuletzt mit [[glProgramParameterARB]] gesetzten Typ der Input-Primitiven für [[Geometry Shader]]. Mögliche Rückgabewerte sind '''GL_POINTS ''', '''GL_LINES''', '''GL_LINES_ADJACENCY_ARB''', '''GL_TRIANGLES''' und '''GL_TRIANGLES_ADJACENCY_ARB'''. Steht nur im Zusammenhang mit der Extension [[GL_ARB_geometry_shader4]] zur Verfügung.
  
:''params'' liefert die Anzahl der Shader-Objekte die an ''program'' gebunden sind.
+
=== GL_GEOMETRY_OUTPUT_TYPE_ARB ===
 +
:''params'' liefert den zuletzt mit [[glProgramParameterARB]] gesetzten Typ der Output-Primitiven für [[Geometry Shader]]. Mögliche Rückgabewerte sind '''GL_POINTS''', '''GL_LINE_STRIP''' und '''GL_TRIANGLE_STRIP'''. Steht nur im Zusammenhang mit der Extension [[GL_ARB_geometry_shader4]] zur Verfügung.
  
'''GL_ACTIVE_ATTRIBUTES'''
+
=== GL_GEOMETRY_VERTICES_OUT_ARB ===
 +
:''params'' liefert die zuletzt mit [[glProgramParameterARB]] gesetzte maximale Anzahl von Output-Vertices für [[Geometry Shader]]. Steht nur im Zusammenhang mit der Extension [[GL_ARB_geometry_shader4]] zur Verfügung.
  
:''params'' liefert die Anzahl der aktiven Attributvariablen für ''program''.
+
=== GL_INFO_LOG_LENGTH ===
  
'''GL_ACTIVE_ATTRIBUTE_MAX_LENGTH'''
+
:''params'' liefert die Anzahl der Zeichen im InfoLog von ''program'' einschließlich des [[Null-terminiert|terminierenden Nullbytes]]. (Dies entspricht der Größe des Zeichenpuffers, der benötigt wird, um das InfoLog zu speichern.) Falls ''program'' kein InfoLog hat, wird der Wert 0 zurück geliefert.
  
:''params'' liefert die Länge des längsten aktiven Attributnamen für ''program'' inklusive des 0/Terminierungszeichens (Das entspricht der benötigten Größe des Zeichenpuffers um den längsten Attributnamen zu speichern). Falls kein aktives Attribut existiert wird 0 zurück geliefert.
+
=== GL_LINK_STATUS ===
  
'''GL_ACTIVE_UNIFORMS'''
+
:''params'' liefert '''GL_TRUE''', falls die letzte Link-Operation auf ''program'' erfolgreich war, sonst '''GL_FALSE'''.
  
:''params'' liefert die Anzahl aktiver Uniformvariablen für ''program''.
+
=== GL_VALIDATE_STATUS ===
  
'''GL_ACTIVE_UNIFORM_MAX_LENGTH'''
+
:''params'' liefert '''GL_TRUE''', falls die letzte Validierungs-Operation auf ''program'' erfolgreich war, sonst '''GL_FALSE'''.
  
:''params'' liefert die länge des längsten Namens einer aktiven Uniformvariable für ''program'' inklusive des 0/Terminierungszeichens (Das entspricht der benötigten Größe des Zeichenpuffers um den längsten Namen zu speichern). Falls keine aktive Uniformvariable existiert wird 0 zurück geliefert.
 
  
<br>
 
  
 
== Hinweise ==
 
== Hinweise ==
 
'''glGetProgram''' ist erst ab OpenGL Version 2.0 oder höher verfügbar.
 
'''glGetProgram''' ist erst ab OpenGL Version 2.0 oder höher verfügbar.
  
Falls ein Fehler auftritt werden keine Änderungen am Inhalt von ''params'' gemacht.
+
Falls ein Fehler auftritt, werden keine Änderungen am Inhalt von ''params'' gemacht.
  
  
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_ENUM''' wird generiert wenn ''pname'' kein akzeptierter Wert ist.<br>
+
'''GL_INVALID_ENUM''' wird generiert, wenn ''pname'' kein akzeptierter Wert ist.
'''GL_INVALID_VALUE''' wird generiert wenn ''program'' kein von OpenGL generierter Wert ist.<br>
+
 
'''GL_INVALID_OPERATION''' wird generiert wenn ''program'' kein Programmobjekt bezeichnet.<br>
+
'''GL_INVALID_VALUE''' wird generiert, wenn ''program'' kein von OpenGL generierter Wert ist.
'''GL_INVALID_OPERATION''' wird generiert wenn '''glGetProgram''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.  
+
 
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn ''program'' kein Programmobjekt bezeichnet.
 +
 
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetProgram''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.  
  
  
Zeile 99: Zeile 111:
  
 
== Siehe auch ==
 
== Siehe auch ==
[[glAttachShader]], [[glCreateProgram]], [[glDeleteProgram]], [[glGetShader]], [[glLinkProgram]], [[glValidateProgram]]
+
[[glAttachShader]], [[glCreateProgram]], [[glDeleteProgram]], [[glGetShader]], [[glLinkProgram]], [[glProgramParameterARB]], [[glValidateProgram]]
 +
 
 +
'''Hintergrundwissen :''' [[Shader]]
  
 
[[Kategorie:GL|GetProgram]]
 
[[Kategorie:GL|GetProgram]]
 +
[[Kategorie:GL2.0|GetProgram]]
 +
[[Kategorie:SHADER_OBJECTS|GetProgram]]

Aktuelle Version vom 26. Juli 2011, 09:16 Uhr

glGetProgram

Name

glGetProgramiv - Liefert Eigenschaften eines Programmobjekts.


Delphi-Spezifikation

procedure glGetProgramiv(program: TGLuint; pname: TGLenum; params: PGLint);


Parameter

program Bestimmt das Programmobjekt, dessen Daten ermittelt werden sollen.
pname Bestimmt, was abgefragt werden soll. Akzeptierte symbolische Namen sind GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_UNIFORM_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ATTACHED_SHADERS, GL_DELETE_STATUS, GL_INFO_LOG_LENGTH, GL_LINK_STATUS, GL_VALIDATE_STATUS und mit der Extension GL_ARB_geometry_shader4 weiterhin die symbolischen Namen GL_GEOMETRY_INPUT_TYPE_ARB, GL_GEOMETRY_OUTPUT_TYPE_ARB und GL_GEOMETRY_VERTICES_OUT_ARB.
params Enthält das Ergebnis der Anfrage.


Beschreibung

glGetProgram liefert in params den Wert einer Eigenschaft eines bestimmten Programmobjekts. Die folgenden Werte für pname sind definiert:

GL_ACTIVE_ATTRIBUTE_MAX_LENGTH

params liefert die Länge des längsten aktiven Attributnamen für program inklusive des abschließenden Nullzeichens. (Das entspricht der benötigten Größe des Zeichenpuffers, um den längsten Attributnamen zu speichern.) Falls kein aktives Attribut existiert, wird 0 zurück geliefert.

GL_ACTIVE_ATTRIBUTES

params liefert die Anzahl der aktiven Attributvariablen für program.

GL_ACTIVE_UNIFORM_MAX_LENGTH

params liefert die Länge des längsten Namens einer aktiven Uniformvariable für program inklusive des abschließenden Nullzeichens. (Das entspricht der benötigten Größe des Zeichenpuffers, um den längsten Namen zu speichern.) Falls keine aktive Uniformvariable existiert, wird 0 zurück geliefert.

GL_ACTIVE_UNIFORMS

params liefert die Anzahl aktiver Uniformvariablen für program.

GL_ATTACHED_SHADERS

params liefert die Anzahl der Shader-Objekte, die an program gebunden sind.

GL_DELETE_STATUS

params liefert GL_TRUE, falls program zum Freigeben markiert wurde, sonst GL_FALSE.

GL_GEOMETRY_INPUT_TYPE_ARB

params liefert den zuletzt mit glProgramParameterARB gesetzten Typ der Input-Primitiven für Geometry Shader. Mögliche Rückgabewerte sind GL_POINTS , GL_LINES, GL_LINES_ADJACENCY_ARB, GL_TRIANGLES und GL_TRIANGLES_ADJACENCY_ARB. Steht nur im Zusammenhang mit der Extension GL_ARB_geometry_shader4 zur Verfügung.

GL_GEOMETRY_OUTPUT_TYPE_ARB

params liefert den zuletzt mit glProgramParameterARB gesetzten Typ der Output-Primitiven für Geometry Shader. Mögliche Rückgabewerte sind GL_POINTS, GL_LINE_STRIP und GL_TRIANGLE_STRIP. Steht nur im Zusammenhang mit der Extension GL_ARB_geometry_shader4 zur Verfügung.

GL_GEOMETRY_VERTICES_OUT_ARB

params liefert die zuletzt mit glProgramParameterARB gesetzte maximale Anzahl von Output-Vertices für Geometry Shader. Steht nur im Zusammenhang mit der Extension GL_ARB_geometry_shader4 zur Verfügung.

GL_INFO_LOG_LENGTH

params liefert die Anzahl der Zeichen im InfoLog von program einschließlich des terminierenden Nullbytes. (Dies entspricht der Größe des Zeichenpuffers, der benötigt wird, um das InfoLog zu speichern.) Falls program kein InfoLog hat, wird der Wert 0 zurück geliefert.

GL_LINK_STATUS

params liefert GL_TRUE, falls die letzte Link-Operation auf program erfolgreich war, sonst GL_FALSE.

GL_VALIDATE_STATUS

params liefert GL_TRUE, falls die letzte Validierungs-Operation auf program erfolgreich war, sonst GL_FALSE.


Hinweise

glGetProgram ist erst ab OpenGL Version 2.0 oder höher verfügbar.

Falls ein Fehler auftritt, werden keine Änderungen am Inhalt von params gemacht.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn pname kein akzeptierter Wert ist.

GL_INVALID_VALUE wird generiert, wenn program kein von OpenGL generierter Wert ist.

GL_INVALID_OPERATION wird generiert, wenn program kein Programmobjekt bezeichnet.

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


Zugehörige Wertrückgaben

glGetActiveAttrib mit dem Argument program

glGetActiveUniform mit dem Argument program

glGetAttachedShaders mit dem Argument program

glGetProgramInfoLog mit dem Argument program

glIsProgram


Siehe auch

glAttachShader, glCreateProgram, glDeleteProgram, glGetShader, glLinkProgram, glProgramParameterARB, glValidateProgram

Hintergrundwissen : Shader