<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=glProgramParameterARB</id>
		<title>glProgramParameterARB - Versionsgeschichte</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/index.php?action=history&amp;feed=atom&amp;title=glProgramParameterARB"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glProgramParameterARB&amp;action=history"/>
		<updated>2026-04-29T20:28:09Z</updated>
		<subtitle>Versionsgeschichte dieser Seite in DGL Wiki</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glProgramParameterARB&amp;diff=22813&amp;oldid=prev</id>
		<title>Dj3hut1: Konstantenprefix fehlte</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glProgramParameterARB&amp;diff=22813&amp;oldid=prev"/>
				<updated>2009-03-08T14:08:09Z</updated>
		
		<summary type="html">&lt;p&gt;Konstantenprefix fehlte&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='de'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Version vom 8. März 2009, 14:08 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l51&quot; &gt;Zeile 51:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 51:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:: Geometry Shader, die auf Dreiecken operieren, sind nur für '''GL_TRIANGLES''', '''GL_TRIANGLE_STRIP''' und '''GL_TRIANGLE_FAN''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen drei Vertices zur Verfügung. Der erste, zweite und dritte Vertex beziehen sich auf Attribute des entsprechenden ersten, zweiten und dritten Vertex vom Dreieck.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:: Geometry Shader, die auf Dreiecken operieren, sind nur für '''GL_TRIANGLES''', '''GL_TRIANGLE_STRIP''' und '''GL_TRIANGLE_FAN''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen drei Vertices zur Verfügung. Der erste, zweite und dritte Vertex beziehen sich auf Attribute des entsprechenden ersten, zweiten und dritten Vertex vom Dreieck.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: '''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;TRIANGLES_ADJACENCY_ARB&lt;/del&gt;''' ( Dreiecke mit Nachbarschaft )&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;: '''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;GL_TRIANGLES_ADJACENCY_ARB&lt;/ins&gt;''' ( Dreiecke mit Nachbarschaft )&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:: Geometry Shader, die auf Dreiecken mit benachbarten Vertices operieren, sind nur für '''GL_TRIANGLES_ADJACENCY_ARB''' und '''GL_TRIANGLE_STRIP_ADJACENCY_ARB''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen sechs Vertices zur Verfügung. Die ersten, dritten und fünften Vertices beziehen sich auf Attribute des entsprechenden ersten, zweiten und dritten Vertex des Dreiecks. Die zweiten, vierten und sechsten Vertices beziehen sich auf Attribute von Vertices, die entsprechend zu den Kanten vom ersten zum zweiten Vertex, vom zweiten zum dritten Vertex, und vom dritten zum ersten Vertex benachbart sind.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;:: Geometry Shader, die auf Dreiecken mit benachbarten Vertices operieren, sind nur für '''GL_TRIANGLES_ADJACENCY_ARB''' und '''GL_TRIANGLE_STRIP_ADJACENCY_ARB''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen sechs Vertices zur Verfügung. Die ersten, dritten und fünften Vertices beziehen sich auf Attribute des entsprechenden ersten, zweiten und dritten Vertex des Dreiecks. Die zweiten, vierten und sechsten Vertices beziehen sich auf Attribute von Vertices, die entsprechend zu den Kanten vom ersten zum zweiten Vertex, vom zweiten zum dritten Vertex, und vom dritten zum ersten Vertex benachbart sind.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dj3hut1</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glProgramParameterARB&amp;diff=22807&amp;oldid=prev</id>
		<title>Dj3hut1: Neuerstellung</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glProgramParameterARB&amp;diff=22807&amp;oldid=prev"/>
				<updated>2009-03-08T13:33:00Z</updated>
		
		<summary type="html">&lt;p&gt;Neuerstellung&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= glProgramParameterARB =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glProgramParameterARB''' - Setzt spezifische Objekt-Parameter für ein Shaderprogramm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glProgramParameteriARB'''(''program_'' : GLuint; ''pname'' : GLenum; ''value'': GLint);&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''program_'' &lt;br /&gt;
| Shaderprogramm, für dass spezifischer Parameter übergeben werden soll. ( Siehe [[glCreateProgram]] )&lt;br /&gt;
|-&lt;br /&gt;
! ''pname'' &lt;br /&gt;
| Parametername. Erlaubt sind '''GEOMETRY_INPUT_TYPE_ARB''', '''GEOMETRY_OUTPUT_TYPE_ARB''' und '''GL_GEOMETRY_VERTICES_OUT_ARB'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''value'' &lt;br /&gt;
| Wert für ''pname''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GEOMETRY_INPUT_TYPE_ARB'''&lt;br /&gt;
: Setzt den Typ der Input-[[Primitive]] für einen Geometry-Shader und beinflusst die Grösse seiner Input-Arrays. Defaultwert ist '''GL_TRIANGLES'''.&lt;br /&gt;
&lt;br /&gt;
: Ein Geometry Shader kann auf einem von 5 Typen von Input-Primitiven operieren. Abhängig vom Typ der Input-Primtive stehen 1 bis 6 Vertices zur Verfügung wenn der Shader ausgeführt wird. Jeder Input-Primitiven-Typ unterstützt eine Untermenge an Primitiven, die von GL zur Verfügung gestellt werden. Bei einem aktiviertem Geometry Shader wird [[glBegin]], oder jede andere Funktion, die implizit [[glBegin]] aufruft, einen '''GL_INVALID_OPERATION'''-Fehler produzieren, falls der ''mode''-Parameter mit dem Typ der Input-Primitive des momentan aktiven Programm-Objektes inkompatibel ist.&lt;br /&gt;
&lt;br /&gt;
: Der Input-Primitiven-Typ ist ein Parameter des Programm-Objektes und muß vor dem Linken mittels '''glProgramParameteriARB''' mit ''pname'' '''GEOMETRY_INPUT_TYPE_ARB''' und ''value'' '''GL_POINTS''', '''GL_LINES''', '''GL_LINES_ADJACENCY_ARB''', '''GL_TRIANGLES''' oder '''GL_TRIANGLES_ADJACENCY_ARB''' gesetzt werden. Die Einstellung wird erst eine Auswirkung haben, wenn [[glLinkProgram]] erfolgreich aufgerufen wurde.&lt;br /&gt;
 &lt;br /&gt;
: Unterstützte Typen von Input-Primitiven für ''pname'':&lt;br /&gt;
&lt;br /&gt;
: '''GL_POINTS''' ( Punkte )&lt;br /&gt;
:: Geometry Shader, die auf Punkten operieren, sind nur für '''GL_POINTS''' Primitiv-Typen gültig. Für jeden Durchlauf des Geometry Shaders steht nur ein einzelner Vertex zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
: '''GL_LINES''' ( Linien )&lt;br /&gt;
:: Geometry Shader, die auf Liniensegmenten operieren, sind nur für '''GL_LINES''', '''GL_LINE_STRIP''' und '''GL_LINE_LOOP''' Primitiv-Typen gültig. Für jeden Durchlauf des Geometry Shaders stehen zwei Vertices zur Verfügung. Der erste Vertex bezieht sich auf den Vertex vom Anfang und der zweite Vertex bezieht sich auf den Vertex vom Ende des Liniensegments.&lt;br /&gt;
    &lt;br /&gt;
: '''GL_LINES_ADJACENCY_ARB''' ( Linien mit Nachbarschaft )&lt;br /&gt;
:: Geometry Shader, die auf Liniensegmenten mit Nachbar-Vertices operieren, sind nur für '''GL_LINES_ADJACENCY_ARB''' und '''GL_LINE_STRIP_ADJACENCY_ARB''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen vier Vertices zur Verfügung. Der zweite Vertex bezieht sich auf den Vertex vom Anfang und der dritte Vertex bezieht sich auf den Vertex vom Ende des Liniensegments. Erster und vierter Vertex beziehen sich auf die, zum Anfang und Ende des Liniensegments benachbarten Vertices.&lt;br /&gt;
     &lt;br /&gt;
: '''GL_TRIANGLES''' ( Dreiecke )&lt;br /&gt;
:: Geometry Shader, die auf Dreiecken operieren, sind nur für '''GL_TRIANGLES''', '''GL_TRIANGLE_STRIP''' und '''GL_TRIANGLE_FAN''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen drei Vertices zur Verfügung. Der erste, zweite und dritte Vertex beziehen sich auf Attribute des entsprechenden ersten, zweiten und dritten Vertex vom Dreieck.&lt;br /&gt;
&lt;br /&gt;
: '''TRIANGLES_ADJACENCY_ARB''' ( Dreiecke mit Nachbarschaft )&lt;br /&gt;
:: Geometry Shader, die auf Dreiecken mit benachbarten Vertices operieren, sind nur für '''GL_TRIANGLES_ADJACENCY_ARB''' und '''GL_TRIANGLE_STRIP_ADJACENCY_ARB''' Primitiv-Typen gültig. Für jeden Programmaufruf stehen sechs Vertices zur Verfügung. Die ersten, dritten und fünften Vertices beziehen sich auf Attribute des entsprechenden ersten, zweiten und dritten Vertex des Dreiecks. Die zweiten, vierten und sechsten Vertices beziehen sich auf Attribute von Vertices, die entsprechend zu den Kanten vom ersten zum zweiten Vertex, vom zweiten zum dritten Vertex, und vom dritten zum ersten Vertex benachbart sind.&lt;br /&gt;
&lt;br /&gt;
==== Input-Typen ====&lt;br /&gt;
Eine Übersicht über die auf Seiten der Anwendung erlaubten Primitiv-Typen (links) und ihre Entsprechungen als Input-Geometrie im Geometryshader (rechts) [[#Quellen|[2]]].&lt;br /&gt;
{| {{Prettytable_B1}}&lt;br /&gt;
! Primitiv-Typ ( Anwendung )&lt;br /&gt;
! Primitiv-Typ ( Shader )&lt;br /&gt;
! Wert von &amp;lt;br&amp;gt; '''gl_VerticesIn'''&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_POINTS'''&lt;br /&gt;
| '''GL_POINTS'''&lt;br /&gt;
| align=&amp;quot;center&amp;quot; | 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_LINES'''&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | '''GL_LINES''' &lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | 2&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_LINE_STRIP'''&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_LINE_LOOP'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_LINES_ADJACENCY_EXT'''&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | '''GL_LINES_ADJACENCY_EXT''' &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; | 4&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_LINE_STRIP_ADJACENCY_EXT'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_TRIANGLES'''&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | '''GL_TRIANGLES''' &lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; | 3&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_TRIANGLE_STRIP'''&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_TRIANGLE_FAN'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_TRIANGLES_ADJACENCY_EXT'''&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | '''GL_TRIANGLES_ADJACENCY_EXT''' &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; align=&amp;quot;center&amp;quot; | 6&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_TRIANGLE_STRIP_ADJACENCY_EXT'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_QUADS'''&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | nicht definiert?&amp;lt;br&amp;gt;Möglicherweise '''GL_TRIANGLES'''?&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; |  &lt;br /&gt;
|-&lt;br /&gt;
| '''GL_QUAD_STRIP'''&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_POLYGON'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GEOMETRY_OUTPUT_TYPE_ARB'''&lt;br /&gt;
: Setzt den Typ der Output-[[Primitive]] eines Geometry-Shaders und beeinflusst die Grösse seiner Output-Arrays. Defaultwert ist '''GL_TRIANGLE_STRIP'''.&lt;br /&gt;
&lt;br /&gt;
: Ein Geometry Shader kann eines von drei verschiedene Typen von Primitiven generieren. Die unterstützten Typen von Ouput-Primitiven sind Punkte ( '''GL_POINTS''' ), Line Strips ( '''GL_LINE_STRIP''' ) und Triangle Strips ( '''GL_TRIANGLE_STRIP''' ). Die Output Vertices werden entsprechend des Typs der Output-Primitive in Punkte, Linien oder Dreiecke durch den Geometry Shader zerlegt. Falls die Anzahl der von dem Geometry Shader generierten Vertices nicht ausreicht um eine einzelne Primitive zu erzeugen, wird nichts gezeichnet.&lt;br /&gt;
  &lt;br /&gt;
: Der Typ der Output-Primitive ist ein Parameter des Programm-Objektes und kann via '''glProgramParameteriARB''' mit ''pname'' gleich '''GL_GEOMETRY_OUTPUT_TYPE_ARB''' und ''value'' gleich '''GL_POINTS''', '''GL_LINE_STRIP''' oder '''GL_TRIANGLE_STRIP''' gesetzt werden. Die Einstellung tritt allerdings erst dann in Kraft, wenn [[glLinkProgram]] das nächste Mal erfolgreich aufgerufen wurde.&lt;br /&gt;
  &lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
'''GL_GEOMETRY_VERTICES_OUT_ARB'''&lt;br /&gt;
: Gibt die maximale Anzahl von Vertices an, die ein Geometry-Shader erzeugen darf. Ist zu Beginn auf 0 gesetzt.&lt;br /&gt;
&lt;br /&gt;
: Die Anzahl der Vertices, die ein Geometry Shader pro Durchlauf generieren darf, ist beschränkt. Die maximale Anzahl an Vertices, die ein Geometry Shader möglicherweise generiert muß als Parameter des Programm-Objektes gesetzt werden, welcher den entsprechenden Geometry Shader enthält. Um dies zu tun sollte man '''glProgramParameteriARB''' mit ''pname'' gleich '''GL_GEOMETRY_VERTICES_OUT_ARB''' und ''value'' gleich der maximalen Anzahl an Vertices, die ein Geometry Shader in einem Durchlauf generieren wird, aufrufen. Es wird nicht garantiert, dass die Einstellung in Kraft tritt, bevor [[glLinkProgram]] das nächste Mal aufgerufen wurde. Falls ein Geometry Shader in einem Durchlauf mehr Vertices generiert als der Wert von '''GL_GEOMETRY_VERTICES_OUT_ARB''', dürften die zusätzlichen ausgegebenen Vertices keine Auswirkungen haben.&lt;br /&gt;
&lt;br /&gt;
: Es gibt zwei implementationsabhängige Einschränkungen für den Wert von '''GL_GEOMETRY_VERTICES_OUT_ARB'''. Erstens wird von '''glProgramParameteriARB''' ein '''GL_INVALID_VALUE'''-Fehler generiert, falls die Anzahl der angegebenen Vertices den Wert '''GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB''' übertrifft. Zweitens darf dass Produkt der Gesamtanzahl an Vertices und der Summe aller Komponenten aller aktiven ''Varying''-Variablen nicht den Wert '''GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB''' überschreiten. [[glLinkProgram]] schlägt fehl, falls festgestellt wurde, dass die ''total component''-Grenze verletzt wurde.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Abfragen von '''GL_GEOMETRY_INPUT_TYPE_ARB''' oder '''GL_GEOMETRY_OUTPUT_TYPE_ARB''' liefern den zuletzt gesetzten Wert zurück. Dies ist nicht unbedingt der Wert, der im generierten ausführbaren Code im Programm-Objekt benutzt wurde. Nachdem ein Programm-Objekt erzeugt wurde, hat dieses für '''GL_GEOMETRY_INPUT_TYPE_ARB''' zunächst den Defaultwert '''GL_TRIANGLES''' und für '''GL_GEOMETRY_OUTPUT_TYPE_ARB''' den Defaultwert '''GL_TRIANGLE_STRIP'''.&lt;br /&gt;
&lt;br /&gt;
Ein Geometry Shader, der auf mehr Input-Vertices zugreift als für einen gegebenen Input-Primitiven-Typ zur Verfügung stehen, kann erfolgreich kompiliert werden, denn der Input-Primitiven-Typ ist nicht Teil des Shader-Objektes. Auf jeden Fall kann jedoch ein Programm-Objekt, welches dieses Shader-Objekt enthält, nicht gelinkt werden.&lt;br /&gt;
&lt;br /&gt;
'''glProgramParameteriARB''' gehört zu den Kommandos, die nicht in eine [[Displayliste]] kompiliert, sondern sofort ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''pname'' '''GL_GEOMETRY_OUTPUT_TYPE_ARB''' und ''value'' weder '''GL_POINTS''', '''GL_LINE_STRIP''' oder '''GL_TRIANGLE_STRIP''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''pname'' '''GL_GEOMETRY_VERTICES_OUT_ARB''' und ''value'' negativ ist.&lt;br /&gt;
    &lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''pname'' '''GL_GEOMETRY_VERTICES_OUT_ARB''' ist und ''value'' den Wert '''GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB''' überschreitet.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''pname'' '''GL_GEOMETRY_VERTICES_OUT_ARB''' ist und  das Produkt aus ''value'' und der Summe aller Komponenten aller aktiven Varying-Variablen den Wert von '''GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB''' überschreitet.&lt;br /&gt;
&lt;br /&gt;
'''INVALID_OPERATION''' wird generiert, wenn [[glBegin]] oder jedes andere Kommando, dass glBegin implizit aufruft, aufgerufen wird, wenn ein Geometry Shader aktiv ist und :&lt;br /&gt;
* der Input-Primitiven-Typ des momentanen Geometry Shaders '''GL_POINTS''' und ''mode'' nicht '''GL_POINTS''' ist, &lt;br /&gt;
* der Input-Primitiven-Typ des momentanen Geometry Shaders '''GL_LINES'''  und ''mode'' weder '''GL_LINES''', '''GL_LINE_STRIP''' noch '''GL_LINE_LOOP''' ist,&lt;br /&gt;
* der Input-Primitiven-Typ des momentanen Geometry Shaders '''GL_TRIANGLES''' und ''mode'' weder '''GL_TRIANGLES''', '''GL_TRIANGLE_STRIP''' noch '''GL_TRIANGLE_FAN''' ist,&lt;br /&gt;
* der Input-Primitiven-Typ des momentanen Geometry Shaders '''GL_LINES_ADJACENCY_ARB''' und ''mode'' weder '''GL_LINES_ADJACENCY_ARB''' noch '''GL_LINE_STRIP_ADJACENCY_ARB''' ist, oder  &lt;br /&gt;
* der Input-Primitiven-Typ des momentanen Geometry Shaders '''GL_TRIANGLES_ADJACENCY_ARB''' und ''mode'' weder '''GL_TRIANGLES_ADJACENCY_ARB''' noch '''GL_TRIANGLE_STRIP_ADJACENCY_ARB''' ist.&lt;br /&gt;
   &lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetProgram]] mit Token [[glGetProgram#GL_GEOMETRY_VERTICES_OUT_ARB|GL_GEOMETRY_VERTICES_OUT_ARB]]&lt;br /&gt;
&lt;br /&gt;
[[glGetProgram]] mit Token [[glGetProgram#GL_GEOMETRY_INPUT_TYPE_ARB|GL_GEOMETRY_INPUT_TYPE_ARB]]&lt;br /&gt;
&lt;br /&gt;
[[glGetProgram]] mit Token [[glGetProgram#GL_GEOMETRY_OUTPUT_TYPE_ARB|GL_GEOMETRY_OUTPUT_TYPE_ARB]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB|GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB|GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB]]&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glAttachShader]], [[glCreateShader]], [[glDeleteShader]], [[glDeleteProgram]], [[glDetachShader]], [[glLinkProgram]], [[glUseProgram]], [[glValidateProgram]]&lt;br /&gt;
&lt;br /&gt;
'''Hintergrundwissen :''' [[Shader]]&lt;br /&gt;
&lt;br /&gt;
'''Extensions :''' [[GL_ARB_geometry_shader4]] bzw. [[GL_EXT_geometry_shader4]]&lt;br /&gt;
&lt;br /&gt;
[http://www.opengl.org/registry/specs/ARB/geometry_shader4.txt Englische Originalversion]  ( Copyright 1997 - 2009 Khronos Group )&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|ProgramParameterARB]]&lt;br /&gt;
[[Kategorie:GL2.0|ProgramParameterARB]]&lt;br /&gt;
[[Kategorie:SHADER_OBJECTS|ProgramParameterARB]]&lt;/div&gt;</summary>
		<author><name>Dj3hut1</name></author>	</entry>

	</feed>