<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.delphigl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thoronador</id>
		<title>DGL Wiki - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Thoronador"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php/Spezial:Beitr%C3%A4ge/Thoronador"/>
		<updated>2026-04-17T10:54:57Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=alcGetEnumValue&amp;diff=25771</id>
		<title>alcGetEnumValue</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=alcGetEnumValue&amp;diff=25771"/>
				<updated>2013-05-31T08:21:22Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Fehlermeldungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= alcGetEnumValue =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''alcGetEnumValue''' - Gibt den Wert eines durch einen String beschriebenen TALCenum-Wertes zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 function '''alcGetEnumValue'''(''device'': PALCdevice; ''enumName'': PALCchar): TALCenum;&lt;br /&gt;
&lt;br /&gt;
&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;
! ''device'' &lt;br /&gt;
| Zeiger auf das Audiogerät, für das der Wert erfragt wird&lt;br /&gt;
|-&lt;br /&gt;
! ''enumName'' &lt;br /&gt;
| Zeiger auf eine [[Null-terminiert|nullterminierte]] Zeichenkette, die den TALCenum-Wert beschreibt&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Die Funktion '''alcGetEnumValue''' gibt den TALCenum-Wert des durch die Zeichenkette ''enumName'' beschriebenen Tokens zurück. Meist wird diese Funktion benutzt, um TALCenum-Werte einer Erweiterung abzufragen. Die Token-Werte sind geräteunabhängig, jedoch können bestimmte durch eine Erweiterung definierte Werte für ein gegebenes Gerät nicht verfügbar sein. Für ''device'' den '''nil'''-Zeiger zu benutzen, ist erlaubt, jedoch sind so nur die durch den [[OpenAL|AL]]-Kern definierten Tokenwerte auch garantiert. Die Verfügbarkeit der Token hängt von der ALC-Erweiterung ab. Falls für ''enumName'' der '''nil'''-Zeiger angegeben wird, verursacht dies einen Fehler ('''ALC_INVALID_VALUE''') und der Rückgabewert ist '''AL_NONE''' (was dem Wert 0 entspricht).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Tritt bei der Ausführung ein Fehler auf, so kann dieser mit [[alcGetError]] erfragt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''ALC_INVALID_VALUE''' wird generiert, wenn der Zeiger auf den String ungültig/'''nil''' ist.&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[alcGetProcAddress]], [[alcIsExtensionPresent]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AL|GetEnumValue]]&lt;br /&gt;
[[Kategorie:ALC|GetEnumValue]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glMultMatrix&amp;diff=25329</id>
		<title>glMultMatrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glMultMatrix&amp;diff=25329"/>
				<updated>2011-08-03T14:58:13Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung, Wikisysntax für Tabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glMultMatrix =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glMultMatrix''' - multipliziert die [[glMatrixMode|aktuelle Matrix]] mit einer beliebigen [[Matrix]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' glMultMatrixd(const ''m'': PGLdouble);&lt;br /&gt;
 '''procedure''' glMultMatrixf(const ''m'': PGLfloat);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''m''&lt;br /&gt;
| Ist ein Zeiger auf eine 4x4-[[Matrix]], deren Werte spaltenweise als 16 Einzelwerte abgelegt sind.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glMultMatrix''' multipliziert die [[glMatrixMode|aktuelle Matrix]] mit der [[Matrix]], auf die ''m'' zeigt.&lt;br /&gt;
&lt;br /&gt;
Wenn '''M''' die [[glMatrixMode|aktuelle Matrix]] ist und '''T''' die, auf die ''m'' zeigt, dann  bewirkt '''glMultMatrix''': '''M := M*T'''&lt;br /&gt;
&lt;br /&gt;
Die [[glMatrixMode|aktuelle Matrix]] ist entweder die Projektionsmatrix, die Modelviewmatrix oder die Texturmatrix. Dies hängt vom aktuellem Matrixmodus ab. &lt;br /&gt;
&lt;br /&gt;
Der Parameter ''m'' zeigt auf eine 4x4-[[Matrix]], die Fließkommazahlen von einfacher bzw. doppelter Genauigkeit enthält. Diese werden spaltenweise als 16 Einzelwerte abgelegt. Die Werte werden somit in folgender Reihenfolge gespeichert:&lt;br /&gt;
&lt;br /&gt;
 +-           -+&lt;br /&gt;
 | 0  4  8  12 |&lt;br /&gt;
 | 1  5  9  13 |&lt;br /&gt;
 | 2  6  10 14 |&lt;br /&gt;
 | 3  7  11 15 |&lt;br /&gt;
 +-           -+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glMultMatrix''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MATRIX_MODE|GL_MATRIX_MODE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MODELVIEW_MATRIX|GL_MODELVIEW_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PROJECTION_MATRIX|GL_PROJECTION_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_TEXTURE_MATRIX|GL_TEXTURE_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glMatrixMode]], [[glLoadIdentity]], [[glLoadMatrix]], [[glPushMatrix]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|MultMatrix]]&lt;br /&gt;
[[Kategorie:GL1.0|MultMatrix]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glRenderMode&amp;diff=25328</id>
		<title>glRenderMode</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glRenderMode&amp;diff=25328"/>
				<updated>2011-08-01T12:26:45Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glRenderMode =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== glRenderMode ==&lt;br /&gt;
'''glRenderMode''' - Bestimmt den Rasterisierungsmodus (rasterization mode).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 function '''glRenderMode'''(''mode'' : GLenum) : GLint;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
| '''''mode'''''&lt;br /&gt;
|Gibt den Rasterisierungsmodus an. Drei Werte werden akzeptiert:&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_RENDER, GL_SELECT''' und '''GL_FEEDBACK'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
'''Standartwert''' ist '''GL_RENDER'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Der Funktion '''glRenderMode''' wird eine Variable, ''mode'', übergeben. Diese kann einen der folgenden Werte annehmen:&lt;br /&gt;
&lt;br /&gt;
'''GL_RENDER'''&amp;lt;br&amp;gt;&lt;br /&gt;
:''Rendermodus''&lt;br /&gt;
:[[Primitive]] werden rasterisiert, daraus werden [[Fragment |Pixelfragmente]] gemacht welche in den [[Framebuffer]] geschrieben werden.&amp;lt;br&amp;gt;&lt;br /&gt;
:Dieser Modus ist der normale &amp;quot;Zeichenmodus&amp;quot; und gleichzeitig der Standard.&lt;br /&gt;
&lt;br /&gt;
'''GL_SELECT'''&lt;br /&gt;
&lt;br /&gt;
:''Selektions Modus''&lt;br /&gt;
:Es werden keine [[Fragment |Pixelfragmente]] produziert und es werden auch keine Änderungen am [[Framebuffer]] durchgeführt.&lt;br /&gt;
&lt;br /&gt;
:Anstelle dessen werden 4 Werte pro sichtbarem [[Primitive]]n in einen [[glSelectBuffer|Selektionspuffer]] geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.&lt;br /&gt;
&lt;br /&gt;
:Die vier Werte, die man pro Primitiven erhält sind:&lt;br /&gt;
:# Anzahl der Namen auf dem Stack&lt;br /&gt;
:# Kleinster Z-Wert des getroffenen Objektes&lt;br /&gt;
:# Größter Z-Wert des getroffenen Objektes&lt;br /&gt;
:# Name des Objektes&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_FEEDBACK'''&lt;br /&gt;
&lt;br /&gt;
:''Feedback Modus''&lt;br /&gt;
:Es werden weder [[Fragment |Pixelfragmente]] produziert noch Änderungen am [[Framebuffer]] durchgeführt.&lt;br /&gt;
&lt;br /&gt;
:Alle sichtbaren Vertexe werden in einem [[glFeedbackBuffer|Rückgabe Puffer]] geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.&lt;br /&gt;
&lt;br /&gt;
Der Rückgabewert der Funktion glRenderMode richtet sich nach dem Rendermodus, welcher '''vor''' ihrem Aufruf aktiv war:&lt;br /&gt;
&lt;br /&gt;
'''Normaler Rendermodus'''&lt;br /&gt;
&lt;br /&gt;
:Null &lt;br /&gt;
&lt;br /&gt;
'''Selektions Modus'''&lt;br /&gt;
&lt;br /&gt;
:Die Anzahl der getroffenen Objekte, die in den Selectionbuffer geschrieben wurden.&lt;br /&gt;
&lt;br /&gt;
'''Feedback Modus'''&lt;br /&gt;
&lt;br /&gt;
:Die Anzahl der Werte (nicht Vertexe), die in den Feedbackpuffer geschrieben wurden.&lt;br /&gt;
&lt;br /&gt;
Wenn ein Fehler ausgelöst wird, liefert '''glRenderMode''' unabhängig vom Rendermodus Null (&amp;quot;0&amp;quot;) zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''mode'' ein ungültiger Wert übergeben wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn [[glSelectBuffer]] aufgerufen wird, solange der Rendermodus '''GL_SELECT''' ist, oder wenn '''glRenderMode''' mit dem Argument '''GL_SELECT''' aufgerufen wird, bevor nicht '''glSelectBuffer''' mindestens einmal aufgerufen wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn [[glFeedbackBuffer]] aufgerufen wird, solange der Rendermodus '''GL_FEEDBACK''' ist, oder wenn '''glRenderMode''' mit dem Argument '''GL_FEEDBACK''' aufgerufen wird, bevor nicht '''glFeedbackBuffer''' mindestens einmal aufgerufen wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glRenderMode''' in einem [[glBegin]]-[[glEnd]]-Block aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_RENDER_MODE|GL_RENDER_MODE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glSelectBuffer]],[[glFeedbackBuffer]], [[glInitNames]], [[glLoadName]], [[glPassThrough]], [[glPushName]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
DGL-Tutorial [http://www.delphigl.com/script/do_show.php?name=selection&amp;amp;action=2 selection]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|RenderMode]]&lt;br /&gt;
[[Kategorie:GL1.0|RenderMode]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glPushName&amp;diff=25326</id>
		<title>glPushName</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glPushName&amp;diff=25326"/>
				<updated>2011-07-29T08:40:49Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung; Ergänzung der Fehlermeldungen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=glPushName, glPopName=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
&lt;br /&gt;
'''glPushName, glPopName''' - setzt bzw. nimmt einen Eintrag vom [[Stack|Namenstack]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 '''procedure''' glPushName(''name'': GLuint);&lt;br /&gt;
 '''procedure''' glPopName();&lt;br /&gt;
&lt;br /&gt;
&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;
! ''name''&lt;br /&gt;
| Der Eintrag, der auf dem Namenstack hinzugefügt werden soll.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Unter einem Namen sollte man in diesem Fall nicht an einen String denken, sondern an eine Zahl in Form einer ID. Der Namenstack wird während des [[glRenderMode |Selektions-Modus]] benutzt, um eine eindeutige Identifizierung von Render-Anweisungen zu ermöglichen. Der Namestack besteht aus vorzeichenlosen Integern und ist zu Beginn leer.&lt;br /&gt;
&lt;br /&gt;
'''glPushName''' fügt einen neuen Namen dem Stack hinzu, während '''glPopName''' den obersten Eintrag vom Stack entfernt.&lt;br /&gt;
&lt;br /&gt;
Die maximale Größe des Namenstack hängt von der Implementierung ab. Um herauszufinden, welche Größe auf dem System maximal unterstützt wird, kann man [[glGet]] mit dem Parameter '''GL_MAX_NAME_STACK_DEPTH''' aufrufen. Es wird als Fehler angesehen, wenn ein Name zu einem vollen Stack hinzugefügt wird oder es versucht wird, einen Eintrag aus einem leeren Stack zu entfernen. Ebenfalls wird es als Fehler angesehen, den Namestack während eines Aufrufes von [[glBegin]] und dem dazugehörigen [[glEnd]] zu manipulieren. In allen diesen Fällen wird das Error Flag gesetzt und keine weiteren Veränderungen durchgeführt.&lt;br /&gt;
&lt;br /&gt;
Der Namenstack ist immer leer, wenn der [[glRenderMode|Rendermodus]] nicht '''GL_SELECT''' entspricht. Aufrufe von '''glPushName''' oder '''glPopName''' werden werden ebenfalls ignoriert, sollte der Rendermodus nicht auf '''GL_SELECT''' gesetzt sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_STACK_OVERFLOW''' wird generiert, falls '''glPushName''' aufgerufen wird, während der Namenstack voll ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_STACK_UNDERFLOW''' wird generiert, wenn '''glPopName''' aufgerufen wird, während der Namenstack leer ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls '''glPushName''' oder '''glPopName''' zwischen [[glBegin]] und dem zugehörigen Aufruf von [[glEnd]] aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Zugehörige Wertrückgaben==&lt;br /&gt;
*[[glGet]] mit dem Argument [[glGet#GL_NAME_STACK_DEPTH|GL_NAME_STACK_DEPTH]]&lt;br /&gt;
*[[glGet]] mit dem Argument [[glGet#GL_MAX_NAME_STACK_DEPTH|GL_MAX_NAME_STACK_DEPTH]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe auch==&lt;br /&gt;
[[glInitNames]], [[glLoadName]], [[glRenderMode]], [[glSelectBuffer]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|PushName]]&lt;br /&gt;
[[Kategorie:GL1.0|PushName]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Stack&amp;diff=25325</id>
		<title>Stack</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Stack&amp;diff=25325"/>
				<updated>2011-07-29T08:15:56Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ein Stack (Stapel, Stapelspeicher, ''veraltet auch Kellerspeicher'') ist eine Datenstruktur, welche Daten nach dem LIFO-Prinzip speichert.&lt;br /&gt;
&lt;br /&gt;
==Was ist LIFO?==&lt;br /&gt;
[[Bild:Bücherstapel.jpg|right|thumb|Bücherstapel]]&lt;br /&gt;
LIFO steht für ''Last In - First Out'', d.h. das zuletzt gespeicherte Datum wird zuerst entnommen.&lt;br /&gt;
&lt;br /&gt;
Im realen Leben findet man das LIFO Prinzip bei einem Bücherstapel. Bei selbigen sollte man vermeiden, Bücher aus der Mitte zu entfernen. Am sichersten ist es immer, das oberste Buch zu entfernen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Implementation==&lt;br /&gt;
Stacks können mittels einfach verketteten Listen implementiert werden. &lt;br /&gt;
&lt;br /&gt;
Die Methode {{INLINE_CODE|Push()}} fügt eine neues Element am Kopf der Liste an, {{INLINE_CODE|Pop()}} entfernt das erste Element der Liste.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenGL Relevanz==&lt;br /&gt;
Stacks finden an verschiedenen Stellen innerhalb der OpenGL Verwendung. So existiert für die 3 Hauptmatrixmodi (siehe [[glMatrixMode]]) jeweils ein eigener Stack. &lt;br /&gt;
&lt;br /&gt;
Für Eigenschaften wie z.B. die Farbe, oder welche Tests aktiv sind, existiert der Attribut-Stack (siehe [[glPushAttrib]]).&lt;br /&gt;
Für die [[Selektion]] existiert der Name-Stack, welcher [[OpenGL Name|OpenGL-Namen]] speichert.&lt;br /&gt;
&lt;br /&gt;
Die maximale Höhe/Tiefe (Menge an Informationen) ist implementationsabhängig und kann mit [[glGet]] abgefragt werden. (Als Parameter dienen die GL_MAX_''STACKNAME''_STACK_DEPTH Konstanten.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==OpenGL Funktionen==&lt;br /&gt;
[[glPushAttrib]], [[glPushClientAttrib]], [[glPushMatrix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Siehe Auch==&lt;br /&gt;
[[Queue]], [[FIFO]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glMapGrid&amp;diff=25324</id>
		<title>glMapGrid</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glMapGrid&amp;diff=25324"/>
				<updated>2011-07-28T21:53:10Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung, Link korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glMapGrid =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glMapGrid''' - Erzeugt aus einer Funktion ein ein- oder zweidimensionales Punkte-Gitter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glMapGrid1d'''(''un'': TGLint; ''u1'': TGLdouble; ''u2'': TGLdouble);&lt;br /&gt;
 procedure '''glMapGrid1f'''(''un'': TGLint; ''u1'': TGLfloat; ''u2'': TGLfloat); &lt;br /&gt;
 procedure '''glMapGrid2d'''(''un'': TGLint; ''u1'': TGLdouble; ''u2'': TGLdouble; &lt;br /&gt;
                       ''vn'': TGLint; ''v1'': TGLdouble; ''v2'': TGLdouble); &lt;br /&gt;
 procedure '''glMapGrid2f'''(''un'': TGLint; ''u1'': TGLfloat; ''u2'': TGLfloat; &lt;br /&gt;
                       ''vn'': TGLint; ''v1'': TGLfloat; ''v2'': TGLfloat);&lt;br /&gt;
&lt;br /&gt;
&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;
! ''un'' &lt;br /&gt;
| Gibt an, in wie viele Abschnitte die Kurve unterteilt werden soll&lt;br /&gt;
|-&lt;br /&gt;
! ''u1, u2'' &lt;br /&gt;
| Legt die Werte für i=0 und i=un fest.(siehe [[glEvalMesh]]) &lt;br /&gt;
|-&lt;br /&gt;
! ''vn''&lt;br /&gt;
| Gibt die Anzahl an Kurven an, aus denen sich die Fläche zusammensetzt (nur glMapGrid2)&lt;br /&gt;
|-&lt;br /&gt;
! ''v1, v2'' &lt;br /&gt;
| Legt die Werte für j=0 und j=un fest. (nur glMapGrid2)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glMapGrid''' und [[glEvalMesh]] werden gemeinsam genutzt, um auf effiziente Art und Weise Bézierkurven oder -flächen zu berechnen und zu rendern.&lt;br /&gt;
&lt;br /&gt;
Nachdem mit [[glMap1]] oder [[glMap2]] die Kontrollpunkte einer Bézierkurve oder -fläche festgelegt wurden, errechnet '''glMapGrid''' daraus ein ein- oder zweidimensionales Punktegitter mit gleichmäßig verteilten Punkten, welches danach mit [[glEvalMesh]] gezeichnet werden kann.&lt;br /&gt;
&lt;br /&gt;
'''glMapGrid1''' und '''glMapGrid2''' legen fest, wie viele (''u'' bzw. bei 2D auch ''v'') Punkte zwischen welchen Werten (''u1'' und ''u2'' bzw. auch zwischen ''v1'' und ''v2'') linear verteilt werden sollen. Die letzten fehlenden Werte für die Position der einzelnen Werte liefert die mit [[glMap1]] oder [[glMap2]] festgelegte Funktion.&lt;br /&gt;
&lt;br /&gt;
In Formeln ausgedrückt sieht das dann so aus:&lt;br /&gt;
&lt;br /&gt;
 u = i(u2 - u1) / un + u1&lt;br /&gt;
 v = j(v2 - v1) / vn + v1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn weder ''un'' noch ''vn'' postiv sind.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glMapGrid''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAP1_GRID_DOMAIN|GL_MAP1_GRID_DOMAIN]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAP2_GRID_DOMAIN|GL_MAP2_GRID_DOMAIN]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAP1_GRID_SEGMENTS|GL_MAP1_GRID_SEGMENTS]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAP2_GRID_SEGMENTS|GL_MAP2_GRID_SEGMENTS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glEvalCoord]], [[glEvalMesh]], [[glEvalPoint]], [[glMap1]], [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
*[[Tutorial Abseits eckiger Welten|DGL Tutorial: Abseits eckiger Welten]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|MapGrid]]&lt;br /&gt;
[[Kategorie:GL1.0|MapGrid]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glLineStipple&amp;diff=25323</id>
		<title>glLineStipple</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glLineStipple&amp;diff=25323"/>
				<updated>2011-07-28T21:48:55Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Excellent}}&lt;br /&gt;
= glLineStipple =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glLineStipple''' - Definiert, mit welchem Muster eine Linie getüpfelt/gestrichelt wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glLineStipple'''(''factor'' : GLint; ''pattern'' : GLushort);&lt;br /&gt;
&lt;br /&gt;
&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;
! ''factor''&lt;br /&gt;
|  Spezifiziert einen Multiplikator für jedes Bit im Tüpfelmuster einer Linie. Wenn der Faktor beispielsweise 3 ist, wird jedes Bit im Muster drei Mal genutzt, bevor das nächste Bit im Muster verwendet wird. &amp;lt;br&amp;gt;&lt;br /&gt;
Faktor ist für Zahlen aus dem Intervall [1,256] definiert.&amp;lt;br&amp;gt;&lt;br /&gt;
Der '''Standardwert''' ist '''1'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''pattern''&lt;br /&gt;
| Ist eine 16 Bit Integerzahl deren Binärdarstellung als Bitmuster für die Fragmente von Linien benutzt werden soll. (1 = Zeichnen, 0 = nicht zeichnen). Das Bitmuster wird beginnend bei Bit 0 gelesen.&amp;lt;br&amp;gt;&lt;br /&gt;
Das '''Vorgabemuster''' besteht nur aus Einsen (= die größtmögliche 16Bit Integerzahl).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Linienmusterung maskiert bestimmte, von der [[Rasterisierung]] produzierte Fragmente aus, sie werden also nicht gezeichnet. Die Maskierung wird über folgende drei Parameter erreicht: Das 16-Bittige Muster, den Wiederholungsfaktor und den Ganzzahl-Musterzähler ''s''.&lt;br /&gt;
&lt;br /&gt;
Der Zähler ''s'' wird bei jedem Aufruf von [[glBegin]] auf 0 zurückgesetzt, und bevor jedes Liniensegment eines [[glBegin]](GL_LINES)/[[glEnd]]-Blockes generiert wird. Erhöht wird dieser nach jedem Fragment einer Einheit des Liniensegmentes, oder nachdem alle ''i'' Fragmente einer Linie mit einer Breite von ''i'' Einheiten generiert wurden. Diese ''i'' Fragmente verknüpft mit dem Zählwert ''s'' werden ausmaskiert, wenn das Musterbit (''s''/''factor'') modulo 16 gleich null ist, andernfalls werden die Fragmente in den Framepuffer geschrieben. Bit 0 des Musters ist das niederwertigste Bit.&lt;br /&gt;
&lt;br /&gt;
Kantengeglättete Linien werden für die Musterung als eine Sequenz von 1xBreite-Rechtecken behandlet. Ob das Rechteck ''s'' dann rasterisiert wird oder nicht, hängt von den Fragmentregeln für kantengeglättete Linien ab, ob dort Rechtecke gezählt werden, oder Fragmentgruppen.&lt;br /&gt;
&lt;br /&gt;
Um Linien tüpfeln zu lassen, benutzt [[glEnable]] und [[glDisable]] mit dem Token '''GL_LINE_STIPPLE'''. Wenn dies aktiviert ist, werden die Linien mit dem Muster getüpfelt, dass oben beschrieben wurde. Wenn es deaktiviert ist, werden alle Muster so behandelt als seien sie auf 1 gesetzt. Standardgemäß ist das Tüpfeln von Linien deaktiviert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
!Code&lt;br /&gt;
!Ergebniss&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure rendereStippleLine;&lt;br /&gt;
var y       : integer;&lt;br /&gt;
    factor  : GLint;&lt;br /&gt;
    pattern : GLushort;&lt;br /&gt;
begin&lt;br /&gt;
  factor := 1;&lt;br /&gt;
  pattern := $3FC9;&lt;br /&gt;
&lt;br /&gt;
  //Stippling aktivieren&lt;br /&gt;
  glEnable(GL_LINE_STIPPLE);&lt;br /&gt;
  for y := -9 to 9 do&lt;br /&gt;
  begin&lt;br /&gt;
       if y&amp;gt;0 then pattern := $5555;&lt;br /&gt;
&lt;br /&gt;
       glLineStipple(factor, pattern);&lt;br /&gt;
       glBegin(GL_LINES);&lt;br /&gt;
         glVertex3f(-8,y,0);&lt;br /&gt;
         glVertex3f( 8,y,0);&lt;br /&gt;
       glEnd;&lt;br /&gt;
       factor := factor+1;&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
|[[Bild:GlLineStipple.jpg]]&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Das verwendete Muster (''pattern'') $3FC9 hat folgende Bitdarstellung:&lt;br /&gt;
   3    F    C    9&lt;br /&gt;
 0011 1111 1100 1001&lt;br /&gt;
Das zweite Muster $5555 hat die folgende Bitdarstellung:&lt;br /&gt;
   5    5    5    5&lt;br /&gt;
 0101 0101 0101 0101&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glLineStipple''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_LINE_STIPPLE_PATTERN|GL_LINE_STIPPLE_PATTERN]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_LINE_STIPPLE_REPEAT|GL_LINE_STIPPLE_REPEAT]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]] mit Token [[glIsEnabled#GL_LINE_STIPPLE|GL_LINE_STIPPLE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glLineWidth]], [[glPolygonStipple]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|LineStipple]]&lt;br /&gt;
[[Kategorie:GL1.0|LineStipple]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetUniform&amp;diff=25322</id>
		<title>glGetUniform</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetUniform&amp;diff=25322"/>
				<updated>2011-07-27T17:07:15Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung; Wikisyntax für Tabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetUniform =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetUniform''' - liefert den Wert einer Uniform-Variable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetUniformfv'''(''program'': TGLuint; ''location'': TGLint; ''params'': PGLfloat);&lt;br /&gt;
 procedure '''glGetUniformiv'''(''program'': TGLuint; ''location'': TGLint; ''params'': PGLint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''program''&lt;br /&gt;
| Gibt den Shader an, der die Variable enthält.&lt;br /&gt;
|-&lt;br /&gt;
! ''location''&lt;br /&gt;
| Gibt die Position der Variable an, deren Wert man erfragen will. Diesen Wert kann mittels [[glGetUniformLocation]] beschafft werden.&lt;br /&gt;
|-&lt;br /&gt;
! ''params''&lt;br /&gt;
| In params werden der Wert bzw. die Werte der Uniform-Variable ausgegeben.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetUniform''' liefert in ''params'' den Wert/die Werte der angegebenen Uniform-Variable. Der Typ der angegeben Uniform-Variable gibt an, wieviele Werte zurückgeliefert werden. Wenn die Uniformvariable im Shader als '''boolean''', '''int''' oder '''float''' definiert ist, wird ein einzelner Wert zurückgeliefert. Als '''vec2''', '''ivec2''', '''bev2''' definiert, werden zwei Werte geliefert. Als '''vec3''', '''ivec3''', '''bvec3''' definiert, werden drei Werte zurückgeliefert, und so weiter. Um Variablen abzufragen, die im Shader als Arrays deklariert sind, ruft man [[glGetUniform]] für jedes Element des Arrays auf. Um Variablen abzufragen, die im Shader als Struktur (entspr. Delphi-Record) deklariert sind, ruft man [[glGetUniform]] für jedes Feld der Struktur auf. Will man eine Matrix abfragen, wird sie von [[glGetUniform]] spaltenweise zurückgeliefert.&lt;br /&gt;
&lt;br /&gt;
Die Locations, die den Uniform-Variablen zugewiesen wurden, sind solange unbekannt, bis das Programmobjekt gelinkt wurde. Nachdem das Linken erfolgt ist, kann man den Befehl [[glGetUniformLocation]] zum Herausfinden der Position aufrufen. Dieser Positions-Wert kann dann in [[glGetUniform]] verwendet werden, um den aktuellen Wert der Uniform-Variable abzufragen. Die Index-Werte für Uniform-Variablen bleiben solange die selben, bis wieder gelinkt wird. Das Ganze kann man nur nach erfolgreichem Linken durchführen.&lt;br /&gt;
&lt;br /&gt;
== Hinweise == &lt;br /&gt;
'''glGetUniform''' wird nur ab OpenGL - Version2.0 oder höher unterstützt&lt;br /&gt;
&lt;br /&gt;
Wenn ein Fehler auftritt, wird der Inhalt von ''params'' nicht verändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_VALUE''' wird zurückgeliefert, wenn ''program'' kein von OpenGL erzeugter Wert ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird zurückgeliefert, wenn ''program'' kein Programmobjekt (Shader) ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird zurückgeliefert, wenn ''program'' nicht erfolgreich gelinkt wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird zurückgeliefert, wenn ''location'' nicht zu einer gültigen Uniform-Variablenlocation für das gelieferte Programmobjekt gehört.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird zurückgeliefert, wenn '''glGetUniform''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetActiveUniform]] mit den Argumenten ''program'' und dem Index einer aktiven Uniform-Variable.&lt;br /&gt;
&lt;br /&gt;
[[glGetProgram]] mit den Argumenten ''program'' und '''GL_ACTIVE_UNIFORMS''' oder '''GL_ACTIVE_UNIFORM_MAX_LENGTH'''&lt;br /&gt;
&lt;br /&gt;
[[glGetUniformLocation]] mit den Argumenten ''program'' und dem Namen einer Uniform-Variable.&lt;br /&gt;
&lt;br /&gt;
[[glIsProgram]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glCreateProgram]], [[glLinkProgram]], [[glUniform]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetUniform]]&lt;br /&gt;
[[Kategorie:GL2.0|GetUniform]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=OpenGL-Funktions%C3%BCbersicht&amp;diff=25321</id>
		<title>OpenGL-Funktionsübersicht</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=OpenGL-Funktions%C3%BCbersicht&amp;diff=25321"/>
				<updated>2011-07-27T17:00:39Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* G */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Opengl_logo.png|right|200px]]&lt;br /&gt;
== Hinweise für Helfer ==&lt;br /&gt;
&lt;br /&gt;
=== Was hier hinein gehört ===&lt;br /&gt;
&lt;br /&gt;
Um eine Funktionsübersicht aller OpenGL Funktionen zu erreichen die inhaltlich korrekt ist, sollten die [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL.tar.gz  orginal Spezifikationen] von OpenGL.org übersetzt werden([[Link#OpenGL_Funktionen|Alternative Quellen]]).  &lt;br /&gt;
&lt;br /&gt;
Allerdings sind hier auch glu-/wgl- und glx-Funktionen erlaubt. Konstanten bitte nicht hier im Inhaltsverzeichnis einfügen, genausowenig wie [[OpenGL-Extensions]].&lt;br /&gt;
&lt;br /&gt;
Die Funktionen sind bereits nach Gruppen sortiert (GL/GLU/etc.). Sollten Funktionen noch nicht in der Übersicht auftauchen, welche aber definitiv existieren, können diese nachgetragen werden. Funktionen die es in verschiedenen Ausprägungen gibt, werden ohne Parameterangabe eingetragen (also glVertex statt glVertex3f).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte haltet euch bei der Formatierung der Befehlsbeschreibung an die [[Funktionsvorlage]] (ich führe hier mal glBegin als Beispiel an), und erklärt nicht mehr als nötig. &lt;br /&gt;
Wenn ihr also einen Befehl habt der etwas mit VertexArrays zu tun hat, dann gehört dort '''nicht''' hinein was ein VertexArray ist oder bringt. Das gehört dann nach [[Techniken und Algorithmen]] oder [[Hintergrundwissen]] (je nach Thematik) und sollte dann in der Funktionsbeschreibung als ''interner Link'' untergebracht werden.&lt;br /&gt;
&lt;br /&gt;
'''Zu aller erst sollte die Orginalspezifikation übersetzt werden''' und erst dann eigene Hinweise untergebracht werden (z.B. Erfahrungen, typische Fehler etc.)&lt;br /&gt;
&lt;br /&gt;
===Artikel-Vorlage===&lt;br /&gt;
'''Wichtiger Hinweis ''' : Bei der Funktionsübersicht ist v.a. eine einheitliche Gliederung der Artikel wichtig. Deshalb haltet euch bitte an '''[[Funktionsvorlage|folgende Vorlage]]'''!&lt;br /&gt;
&lt;br /&gt;
===Kategorisieren von Artikeln===&lt;br /&gt;
Das Wiki ermöglicht es einen Artikel einer Kategorie zuzuordnen. Diese Möglichkeit sollte von Artikelschreibern genutzt werden.&lt;br /&gt;
Man ordnet einen Artikel einer Kategorie zu, in dem man '''am Ende des Artikels einen Link zu der Kategrie erstellt''' der er zugeordnet werden soll:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+Beispiel&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;[[Kategorie:GL|Name ohne &amp;quot;gl&amp;quot;]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das sind die neuen Kategorien:&lt;br /&gt;
*[[:Kategorie:GL]]&lt;br /&gt;
*[[:Kategorie:GLU]]&lt;br /&gt;
*[[:Kategorie:GLX]]&lt;br /&gt;
*[[:Kategorie:WGL]]&lt;br /&gt;
&lt;br /&gt;
Falls die Funktion bereits zum GL-Kern gehört kommt noch folgender Eintrag hinzu: &amp;lt;nowiki&amp;gt;[[Kategorie:GLx.x]]&amp;lt;/nowiki&amp;gt; wobei das x.x durch die GL-Versionsnummer (z.B. &amp;quot;1.2&amp;quot; oder &amp;quot;2.0&amp;quot;), seit dem die Funktion dabei ist, ersetzt wird.&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GL|GL]] ==&lt;br /&gt;
Abkürzung für '''G'''raphics '''L'''ibrary, hierunter fallen alle Funktionen die direkter Bestandteil (entweder als Kernfunktion oder über Extensions) der OpenGL sind.&lt;br /&gt;
Hartnäckige Gerüchte, '''GL''' stünde für Glide und somit OpenGL für Open Glide, sind schlichtweg falsch, erfreuen sich jedoch immernoch großer Beliebtheit.&lt;br /&gt;
&lt;br /&gt;
=== Versionsspezifische Listen ===&lt;br /&gt;
Hier findet ihre Listen von Funktionen die in einer bestimmten OpenGL Version verfügbar sind. Wenn ihr also z.B. ein Programm für OpenGL3.0 schreiben wollt, dürft ihr nur die Funktionen verwenden, die in der 3.0-Liste enthalten sind.&lt;br /&gt;
&lt;br /&gt;
*[[OpenGL2.1-Funktionsübersicht]]&lt;br /&gt;
*[[OpenGL3-Funktionsübersicht]]&lt;br /&gt;
*[[OpenGL4-Funktionsübersicht]]&lt;br /&gt;
&lt;br /&gt;
=== A ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAccum]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glActiveStencilFaceEXT]]''' || - || - || [[glActiveStencilFaceEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glActiveTexture]]''' || {{Version_1_3}} || [[glActiveTextureARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAddSwapHintRectWIN]]''' || - || - || - || [[glAddSwapHintRectWIN]]&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAlphaFunc]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glApplyTextureEXT]]''' || - || - || [[glApplyTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAreTexturesResident]]''' || {{Version_1_1}} || - || [[glAreTexturesResidentEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glArrayElement]]''' || {{Version_1_1}} || - || [[glArrayElementEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAttachShader]]''' || {{Version_2_0}}  || [[glAttachObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== B ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBegin]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginConditionalRender]]''' || {{Version_3_0}} || - || - || [[glBeginConditionalRenderNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginQuery]]''' || {{Version_1_5}} || [[glBeginQueryARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginSceneEXT]]''' || - || - || [[glBeginSceneEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginTransformFeedback]]''' || {{Version_3_0}} || - || [[glBeginTransformFeedbackEXT]]{{altIcon}} || [[glBeginTransformFeedbackNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginVertexShaderEXT]]''' || - || - || [[glBeginVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindAttribLocation]]''' || {{Version_2_0}} || [[glBindAttribLocationARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBuffer]]''' || {{Version_1_5}} || [[glBindBufferARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferBase]]''' || {{Version_3_0}} || - || [[glBindBufferBaseEXT]]{{altIcon}} || [[glBindBufferBaseNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferOffsetEXT]]''' || - || - || [[glBindBufferOffsetEXT]] || [[glBindBufferOffsetNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferRange]]''' || {{Version_3_0}} || - || [[glBindBufferRangeEXT]]{{altIcon}} || [[glBindBufferRangeNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFragDataLocation]]''' || {{Version_3_0}} || - || [[glBindFragDataLocationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFragDataLocationIndexed]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFramebuffer]]''' || {{Version_3_0}} || - || [[glBindFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindLightParameterEXT]]''' || - || - || [[glBindLightParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindMaterialParameterEXT]]''' || - || - || [[glBindMaterialParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindMultiTextureEXT]]''' || - || - || [[glBindMultiTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindParameterEXT]]''' || - || - || [[glBindParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindProgramARB]]''' || - || [[glBindProgramARB]] || - || [[glBindProgramNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindRenderbuffer]]''' || {{Version_3_0}} || - || [[glBindRenderbufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindSampler]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTexGenParameterEXT]]''' || - || - || [[glBindTexGenParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTexture]]''' || {{Version_1_1}} || - || [[glBindTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTextureUnitParameterEXT]]''' || - || - || [[glBindTextureUnitParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindVertexArray]]''' || {{Version_3_0}} || - || - || [[glBindVertexArrayAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindVertexShaderEXT]]''' || - || - || [[glBindVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBinormalPointerEXT]]''' || - || - || [[glBinormalPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBitmap]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendColor]]''' || {{Version_1_2}} || - || [[glBlendColorEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendEquation]]''' || {{Version_1_2}} || - || [[glBlendEquationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendEquationSeparate]]''' || {{Version_2_0}} || - || [[glBlendEquationSeparateEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendFunc]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendFuncSeparate]]''' || {{Version_1_4}} || - || [[glBlendFuncSeparateEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlitFramebuffer]]''' || {{Version_3_0}} || - || [[glBlitFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferData]]''' || {{Version_1_5}} || [[glBufferDataARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferRegionEnabledEXT]]''' || - || - || [[glBufferRegionEnabledEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferSubData]]''' || {{Version_1_5}} || [[glBufferSubDataARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCallList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCallLists]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCheckFramebufferStatus]]''' || {{Version_3_0}} || - || [[glCheckFramebufferStatusEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCheckNamedFramebufferStatusEXT]]''' || - || - || [[glCheckNamedFramebufferStatusEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClampColor]]''' || {{Version_3_0}} || [[glClampColorARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClear]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearAccum]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearBuffer]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearColor]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearDepth]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearIndex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearStencil]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientActiveTexture]]''' || {{Version_1_3}} || [[glClientActiveTextureARB]]{{altIcon}} || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientAttribDefaultEXT]]''' || - || - || [[glClientAttribDefaultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientWaitSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClipPlane]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColor]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMask]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMaskIndexedEXT]]''' || - || - || [[glColorMaskIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMaterial]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorPointer]]''' || {{Version_1_1}} || - || [[glColorPointerEXT]]{{altIcon}} || [[glColorPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorSubTable]]''' || {{Version_1_2}} || - || [[glColorSubTableEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorTable]]''' || {{Version_1_2}} || - || [[glColorTableEXT]]{{altIcon}} || [[glColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorTableParameter]]''' || {{Version_1_2}}|| - || - || [[glColorTableParameterSGI]]{{altIcon}} &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompileShader]]''' || {{Version_2_0}} || [[glCompileShaderARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedMultiTexImageEXT]]''' || - || - || [[glCompressedMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedMultiTexSubImageEXT]]''' || - || - || [[glCompressedMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTexImage]]''' || {{Version_1_3}} || [[glCompressedTexImageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTexSubImage]]''' || {{Version_1_3}} || [[glCompressedTexSubImageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTextureImageEXT]]''' || - || - || [[glCompressedTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTextureSubImageEXT]]''' || - || - || [[glCompressedTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionFilter1D]]''' || {{Version_1_2}} || - || [[glConvolutionFilter1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionFilter2D]]''' || {{Version_1_2}} || - || [[glConvolutionFilter2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionParameter]]''' || {{Version_1_2}} || - || [[glConvolutionParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyBufferSubData]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyColorSubTable]]''' || {{Version_1_2}} || - || [[glCopyColorSubTableEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyColorTable]]''' || {{Version_1_2}} || - || - || [[glCopyColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyConvolutionFilter]]''' || {{Version_1_2}} || - || [[glCopyConvolutionFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyMultiTexImageEXT]]''' || - || - || [[glCopyMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyMultiTexSubImageEXT]]''' || - || - || [[glCopyMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyPixels]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexImage1D]]''' || {{Version_1_1}} || - || [[glCopyTexImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexImage2D]]''' || {{Version_1_1}} || - || [[glCopyTexImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage1D]]''' || {{Version_1_1}} || - || [[glCopyTexSubImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage2D]]''' || {{Version_1_1}} || - || [[glCopyTexSubImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage3D]]''' || {{Version_1_2}} || - || [[glCopyTexSubImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTextureImageEXT]]''' || - || - || [[glCopyTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTextureSubImageEXT]]''' || - || - || [[glCopyTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCreateProgram]]''' || {{Version_2_0}} || [[glCreateProgramObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCreateShader]]''' || {{Version_2_0}} || [[glCreateShaderObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCullFace]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCullParameterEXT]]''' || - || - || [[glCullParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCurrentPaletteMatrixARB]]''' || - || [[glCurrentPaletteMatrixARB]] || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteBufferRegionEXT]]''' || - || - || [[glDeleteBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteBuffers]]''' || {{Version_1_5}} || [[glDeleteBuffersARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteFramebuffers]]''' || {{Version_3_0}} || - || [[glDeleteFramebuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteLists]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteProgram]]''' || {{Version_2_0}} || [[glDeleteObjectARB]] {{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteProgramsARB]]''' || - || [[glDeleteProgramsARB]] || - || [[glDeleteProgramsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteQueries]]''' || {{Version_1_5}} || [[glDeleteQueriesARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteRenderbuffers]]''' || {{Version_3_0}} || - || [[glDeleteRenderbuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteSamplers]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteShader]]''' || {{Version_2_0}} || [[glDeleteObjectARB]] {{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteTextures]]''' || {{Version_1_1}} || - || [[glDeleteTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteVertexArrays]]''' || {{Version_3_0}} || - || - || [[glDeleteVertexArraysAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteVertexShaderEXT]]''' || - || - || [[glDeleteVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthBoundsEXT]]''' || - || - || [[glDepthBoundsEXT]] || [[glDepthBoundsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthFunc]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthMask]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthRange]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDetachShader]]''' || {{Version_2_0}} || [[glDetachObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisable]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableClientState]]''' || {{Version_1_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableClientStateIndexedEXT]]''' || - || - || [[glDisableClientStateIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableIndexedEXT]]''' || - || - || [[glDisableIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableVariantClientStateEXT]]''' || - || - || [[glDisableVariantClientStateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableVertexAttribArray]]''' || {{Version_2_0}} || [[glDisableVertexAttribArrayARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawArrays]]''' || {{Version_1_1}} || - || [[glDrawArraysEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawArraysInstanced]]''' || {{Version_3_1}} || [[glDrawArraysInstancedARB]] || [[glDrawArraysInstancedEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBuffer]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBufferRegionEXT]]''' || - || - || [[glDrawBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBuffers]]''' || {{Version_2_0}} || [[glDrawBuffersARB]]{{altIcon}} || - || [[glDrawBuffersATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElements]]''' || {{Version_1_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsInstanced]]''' || {{Version_3_1}} || [[glDrawElementsInstancedARB]] || [[glDrawElementsInstancedEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsInstancedBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawPixels]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawRangeElements]]''' || {{Version_1_2}} || - || [[glDrawRangeElementsEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawRangeElementsBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEdgeFlag]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEdgeFlagPointer]]''' || {{Version_1_1}} || - || [[glEdgeFlagPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnable]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableClientState]]''' || {{Version_1_1}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableClientStateIndexedEXT]]''' || - || - || [[glEnableClientStateIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableIndexedEXT]]''' || - || - || [[glEnableIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableVariantClientStateEXT]]''' || - || - || [[glEnableVariantClientStateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableVertexAttribArray]]''' || {{Version_2_0}} || [[glEnableVertexAttribArrayARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnd]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndConditionalRender]]''' || {{Version_3_0}} || - || - || [[glEndConditionalRenderNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndQuery]]''' || {{Version_1_5}} || [[glEndQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndSceneEXT]]''' || - || - || [[glEndSceneEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndTransformFeedback]]''' || {{Version_3_0}} || - || [[glEndTransformFeedbackEXT]]{{altIcon}} || [[glEndTransformFeedbackNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndVertexShaderEXT]]''' || - || - || [[glEndVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalCoord]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalMesh]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalPoint]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glExtractComponentEXT]]''' || - || - || [[glExtractComponentEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== F ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFeedbackBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFenceSync]]''' || {{Version_3_2}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFinish]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFlush]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFlushMappedBufferRange]]''' || {{Version_3_0}} || - || - || [[glFlushMappedBufferRangeAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFog]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFogCoord]]''' || {{Version_1_4}} || - || [[glFogCoordEXT]]{{altIcon}}  || [[glFogCoordNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFogCoordPointer]]''' || {{Version_1_4}} || - || [[glFogCoordPointerEXT]]{{altIcon}}  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentColorMaterialEXT]]''' || - || - || [[glFragmentColorMaterialEXT]]  || [[glFragmentColorMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentLightEXT]]''' || - || - || [[glFragmentLightEXT]]  || [[glFragmentLightSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentLightModelEXT]]''' || - || - || [[glFragmentLightModelEXT]]  || [[glFragmentLightModelSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentMaterialEXT]]''' || - || - || [[glFragmentMaterialEXT]]  || [[glFragmentMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferDrawBufferEXT]]''' || - || - || [[glFramebufferDrawBufferEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferDrawBuffersEXT]]''' || - || - || [[glFramebufferDrawBuffersEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferReadBufferEXT]]''' || - || - || [[glFramebufferReadBufferEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferRenderBuffer]]''' || {{Version_3_0}} || - || [[glFrameBufferRenderBufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTexture]]''' || {{Version_3_0}} || [[glFramebufferTextureARB]]{{altIcon}} || [[glFramebufferTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture1D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture2D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture3D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTextureFaceARB]]''' || - || [[glFramebufferTextureFaceARB]] || [[glFramebufferTextureFaceEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTextureLayer]]''' || {{Version_3_0}} || [[glFramebufferTextureLayerARB]]{{altIcon}} || [[glFramebufferTextureLayerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrontFace]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrustum]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenBuffers]]''' || {{Version_1_5}} || [[glGenBuffersARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateMipmap]]''' || {{Version_3_0}} || - || [[glGenerateMipmapEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateMultiTexMipmapEXT]]''' || - || - || [[glGenerateMultiTexMipmapEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateTextureMipmapEXT]]''' || - || - || [[glGenerateTextureMipmapEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenFramebuffers]]''' || {{Version_3_0}} || - || [[glGenFramebuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenLists]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenProgramsARB]]''' || - || [[glGenProgramsARB]] || -  || [[glGenProgramsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenQueries]]''' || {{Version_1_5}} || [[glGenQueriesARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenRenderbuffers]]''' || {{Version_3_0}} || - || [[glGenRenderbuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenSamplers]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenSymbolsEXT]]''' || - || - || [[glGenSymbolsEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenTextures]]''' || {{Version_1_1}} || - || [[glGenTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenVertexArrays]]''' || {{Version_3_0}} || - || - || [[glGenVertexarraysAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenVertexShadersEXT]]''' || - || - || [[glGenVertexShadersEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGet]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveAttrib]]''' || {{Version_2_0}} || [[glGetActiveAttribARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineName]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineUniform]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineUniformName]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniform]]''' || {{Version_2_0}} || [[glGetActiveUniformARB]] {{altIcon}}|| -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformBlock]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformBlockName]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformName]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniforms]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetAttachedShaders]]''' || {{Version_2_0}} || [[glGetAttachedObjectsARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetAttribLocation]]''' || {{Version_2_0}} || [[glGetAttribLocationARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBooleanv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBooleanIndexedEXT]]''' || - || - || [[glGetBooleanIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferParameter]]''' || {{Version_1_5}} || [[glGetBufferParameterARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferPointerv]]''' || {{Version_1_5}} || [[glGetBufferPointerARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferSubData]]''' || {{Version_1_5}} || [[glGetBufferSubDataARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetClipPlane]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetColorTable]]''' || {{Version_1_2}} || - || [[glGetColorTableEXT]]{{altIcon}} || [[glGetColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetColorTableParameter]]''' || {{Version_1_2}} || - || [[glGetColorTableParameterEXT]]{{altIcon}} || [[glGetColorTableParameterSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedMultiTexImageEXT]]''' || - || - || [[glGetCompressedMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedTexImage]]''' || {{Version_1_3}} || [[glGetCompressedTexImageARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedTextureImageEXT]]''' || - || - || [[glGetCompressedTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetConvolutionFilter]]''' || {{Version_1_2}} || - || [[glGetConvolutionFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetConvolutionParameter]]''' || {{Version_1_2}} || - || [[glGetConvolutionParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetDoublev]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetDoubleIndexedEXT]]''' || - || - || [[glGetDoubleIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetError]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFloatv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFloatIndexedEXT]]''' || - || - || [[glGetFloatIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragDataLocation]]''' || {{Version_3_0}} || - || [[glGetFragDataLocationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragmentLightEXT]]''' || - || - || [[glGetFragmentLightEXT]] || [[glGetFragmentLightSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragmentMaterialEXT]]''' || - || - || [[glGetFragmentMaterialEXT]] || [[glGetFragmentMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFramebufferAttachmentParameter]]''' || {{Version_3_0}} || - || [[glGetFramebufferAttachmentParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFramebufferParameterEXT]]''' || - || - || [[glGetFramebufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|''als Parameter von [[glGet#GL_CURRENT_PROGRAM|glGet]]'' || {{Version_2_0}} || [[glGetHandleARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetHistogram]]''' || {{Version_1_2}} || - || [[glGetHistogramEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetHistogramParameter]]''' || {{Version_1_2}} || - || [[glGetHistogramParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetIntegerv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetIntegerIndexedEXT]]''' || - || - || [[glGetIntegerIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantBooleanEXT]]''' || - || - || [[glGetInvariantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantFloatEXT]]''' || - || - || [[glGetInvariantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantIntegerEXT]]''' || - || - || [[glGetInvariantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLight]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantBooleanEXT]]''' || - || - || [[glGetLocalConstantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantFloatEXT]]''' || - || - || [[glGetLocalConstantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantIntegerEXT]]''' || - || - || [[glGetLocalConstantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMaterial]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMinmax]]''' || {{Version_1_2}} || - || [[glGetMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMinmaxParameter]]''' || {{Version_1_2}} || - || [[glGetMinmaxParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultisample]]''' || {{Version_3_2}} || - || -  || [[glGetMultisampleNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexEnvEXT]]''' || - || - || [[glGetMultiTexEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexGenEXT]]''' || - || - || [[glGetMultiTexGenEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexImageEXT]]''' || - || - || [[glGetMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexLevelParameterEXT]]''' || - || - || [[glGetMultiTexLevelParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexParameterEXT]]''' || - || - || [[glGetMultiTexParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferParameterEXT]]''' || - || - || [[glGetNamedBufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferPointerEXT]]''' || - || - || [[glGetNamedBufferPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferSubDataEXT]]''' || - || - || [[glGetNamedBufferSubDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedFramebufferAttachmentParameterEXT]]''' || - || - || [[glGetNamedFramebufferAttachmentParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramEXT]]''' || - || - || [[glGetNamedProgramEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramLocalParameterEXT]]''' || - || - || [[glGetNamedProgramLocalParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramStringEXT]]''' || - || - || [[glGetNamedProgramStringEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedRenderbufferParameterEXT]]''' || - || - || [[glGetNamedRenderbufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPixelMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPixelTransformParameterEXT]]''' || - || - || [[glGetPixelTransformParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPointerv]]''' || {{Version_1_1}} || - || [[glGetPointervEXT]]{{altIcon}}  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPointerIndexedEXT]]''' || - || - || [[glGetPointerIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPolygonStipple]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgram]]''' || {{Version_2_0}} || [[glGetObjectParameterARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramARB]]''' || - || [[glGetProgramARB]] || - || [[glGetProgramNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramEnvParameterARB]]''' || - || [[glGetProgramEnvParameterARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramInfoLog]]''' || {{Version_2_0}} || [[glGetInfoLogARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramLocalParameterARB]]''' || - || [[glGetProgramLocalParameterARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramStage]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramStringARB]]''' || - || [[glGetProgramStringARB]] || -  || [[glGetProgramStringNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetQueryiv]]''' || {{Version_1_5}} || [[glGetQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetQueryObject]]''' || {{Version_1_5}} || [[glGetQueryObjectARB]]{{altIcon}} || [[glGetQueryObjectEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetRenderbufferParameter]]''' || {{Version_3_0}} || - || [[glGetRenderbufferParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSamplerParameter]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSeparableFilter]]''' || {{Version_1_2}} || - || [[glGetSeparableFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShader]]''' || {{Version_2_0}} || [[glGetObjectParameterARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShaderInfoLog]]''' || {{Version_2_0}} || [[glGetInfoLogARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShaderSource]]''' || {{Version_2_0}} || [[glGetShaderSourceARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetString]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSubroutineIndex]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSubroutineUniformLocation]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexEnv]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexGen]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexImage]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexLevelParameter]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexParameter]]''' || {{Version_1_0}} || - || [[glGetTexParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureImageEXT]]''' || - || - || [[glGetTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureLevelParameterEXT]]''' || - || - || [[glGetTextureLevelParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureParameterEXT]]''' || - || - || [[glGetTextureParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTransformFeedbackVarying]]''' || {{Version_3_0}} || - || [[glGetTransformFeedbackVaryingEXT]]{{altIcon}} || [[glGetTransformFeedbackVaryingNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniform]]''' || {{Version_2_0}} || [[glGetUniformARB]]{{altIcon}} || [[glGetUniformEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformBlockIndex]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformBufferSizeEXT]]''' || - || - || [[glGetUniformBufferSizeEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformIndices]]''' || {{Version_3_1}} || - || - || -|&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformLocation]]''' || {{Version_2_0}} || [[glGetUniformLocationARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformOffsetEXT]]''' || - || - || [[glGetUniformOffsetEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformSubroutine]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantBooleanEXT]]''' || - || - || [[glGetVariantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantFloatEXT]]''' || - || - || [[glGetVariantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantIntegerEXT]]''' || - || - || [[glGetVariantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantPointerEXT]]''' || - || - || [[glGetVariantPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVertexAttrib]]''' || {{Version_2_0}} || [[glGetVertexAttribARB]]{{altIcon}} || [[glGetVertexAttribEXT]] || [[glGetVertexAttribNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVertexAttribPointer]]''' || {{Version_2_0}} || [[glGetVertexAttribPointerARB]]{{altIcon}} || -  || [[glGetVertexAttribPointerNV]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== H ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glHint]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glHistogram]]''' || {{Version_1_2}} || - || [[glHistogramEXT]]{{altIcon}}  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexFuncEXT]]''' || - || - || [[glIndexFuncEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexMask]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexMaterialEXT]]''' || - || - || [[glIndexMaterialEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexPointer]]''' || {{Version_1_1}} || - || [[glIndexPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInitNames]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInsertComponentEXT]]''' || - || - || [[glInsertComponentEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInterleavedArrays]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsBuffer]]''' || {{Version_1_5}} || [[glIsBufferARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsEnabled]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsEnabledIndexedEXT]]''' || - || - || [[glIsEnabledIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsFramebuffer]]''' || {{Version_3_0}} || - || [[glIsFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsProgram]]''' || {{Version_2_0}} || [[glIsProgramARB]]{{altIcon}} || - || [[glIsProgramNV]]{{altIcon}} &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsQuery]]''' || {{Version_1_5}} || [[glIsQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsRenderbuffer]]''' || {{Version_3_0}} || - || [[glIsRenderbufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsSampler]]''' || {{Version_3_3}} || - || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsShader]]''' || {{Version_2_0}} || - || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsTexture]]''' || {{Version_1_0}} || - || [[glIsTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsVariantEnabledEXT]]''' || - || - || [[glIsVariantEnabledEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsVertexArray]]''' || {{Version_3_0}} || - || - || [[glIsVertexArrayAPPLE]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== L ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLight]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLightEnvEXT]]''' || - || - || [[glLightEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLightModel]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLineStipple]]'''{{excIcon}} || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLineWidth]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLinkProgram]]''' || {{Version_2_0}} || [[glLinkProgramARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glListBase]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadIdentity]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadTransposeMatrix]]''' || {{Version_1_3}} || [[glLoadTransposeMatrixARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLockArraysEXT]]''' || - || - || [[glLockArraysEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLogicOp]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMap1]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMap2]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapBuffer]]''' || {{Version_1_5}} || [[glMapBufferARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapBufferRange]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapGrid]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapNamedBufferEXT]]''' || - || - || [[glMapNamedBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMaterial]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixIndexARB]]''' || - || [[glMatrixIndexARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixIndexPointerARB]]''' || - || [[glMatrixIndexPointerARB]] || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixFrustumEXT]]''' || - || - || [[glMatrixFrustumEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadEXT]]''' || - || - || [[glMatrixLoadEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadIdentityEXT]]''' || - || - || [[glMatrixLoadIdentityEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadTransposedEXT]]''' || - || - || [[glMatrixLoadTransposedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMultEXT]]''' || - || - || [[glMatrixMultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMultTransposedEXT]]''' || - || - || [[glMatrixMultTransposedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixOrthoEXT]]''' || - || - || [[glMatrixOrthoEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixPopEXT]]''' || - || - || [[glMatrixPopEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixPushEXT]]''' || - || - || [[glMatrixPushEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixRotateEXT]]''' || - || - || [[glMatrixRotateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixScaleEXT]]''' || - || - || [[glMatrixScaleEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixTranslateEXT]]''' || - || - || [[glMatrixTranslateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMinmax]]''' || {{Version_1_2}} || - || [[glMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawArrays]]''' || {{Version_1_4}} || - || [[glMultiDrawArraysEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawElements]]''' || {{Version_1_4}} || - || [[glMultiDrawElementsEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawElementsBaseVertex]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexBufferEXT]]''' || - || - || [[glMultiTexBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexCoord]]''' || {{Version_1_3}} || [[glMultiTexCoordARB]]{{altIcon}} || -  || [[glMultiTexCoordNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexCoordPointerEXT]]''' || - || - || [[glMultiTexCoordPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexEnvEXT]]''' || - || - || [[glMultiTexEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexGenEXT]]''' || - || - || [[glMultiTexGenEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexImageEXT]]''' || - || - || [[glMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexParameterEXT]]''' || - || - || [[glMultiTexParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexRenderbufferEXT]]''' || - || - || [[glMultiTexRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexSubImageEXT]]''' || - || - || [[glMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultTransposeMatrix]]''' || {{Version_1_3}} || [[glMultTransposeMatrixARB]]{{altIcon}} || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== N ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedBufferDataEXT]]''' || - || - || [[glNamedBufferDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedBufferSubDataEXT]]''' || - || - || [[glNamedBufferSubDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferRenderbufferEXT]]''' || - || - || [[glNamedFramebufferRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureEXT]]''' || - || - || [[glNamedFramebufferTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture1DEXT]]''' || - || - || [[glNamedFramebufferTexture1DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture2DEXT]]''' || - || - || [[glNamedFramebufferTexture2DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture3DEXT]]''' || - || - || [[glNamedFramebufferTexture3DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureFaceEXT]]''' || - || - || [[glNamedFramebufferTextureFaceEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureLayerEXT]]''' || - || - || [[glNamedFramebufferTextureLayerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedProgramLocalParameterEXT]]''' || - || - || [[glNamedProgramLocalParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedProgramStringEXT]]''' || - || - || [[glNamedProgramStringEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageEXT]]''' || - || - || [[glNamedRenderbufferStorageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageMultisampleEXT]]''' || - || - || [[glNamedRenderbufferStorageMultisampleEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageMultisampleCoverageEXT]]''' || - || - || [[glNamedRenderbufferStorageMultisampleCoverageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNewBufferRegionEXT]]''' || - || - || [[glNewBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNewList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNormal]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNormalPointer]]''' || {{Version_1_1}} || - || [[glNormalPointerEXT]]{{altIcon}} || [[glNormalPointerINTEL]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0 ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glOrtho]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== P ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPassThrough]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPatchParameter]]''' || {{Version_4_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelStore]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelTransfer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelTransformParameterEXT]]''' || - || - || [[glPixelTransformParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelZoom]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPointParameter]]''' || {{Version_1_4}} || [[glPointParameterARB]]{{altIcon}} || [[glPointParameterEXT]]{{altIcon}}  || [[glPointParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPointSize]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonOffset]]''' || {{Version_1_0}} || - || [[glPolygonOffsetEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonStipple]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopClientAttrib]]''' || {{Version_1_0}} || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrimitiveRestart]]''' || {{Version_3_1}} || - || -  || [[glPrimitiveRestartNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrimitiveRestartIndex]]''' || {{Version_3_1}} || - || -  || [[glPrimitiveRestartIndexNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrioritizeTextures]]''' || {{Version_1_0}} || - || [[glPrioritizeTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramEnvParameterARB]]''' || - || [[glProgramEnvParameterARB]] || [[glProgramEnvParameterEXT]]{{altIcon}} || [[glProgramEnvParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramLocalParameterARB]]''' || - || [[glProgramLocalParameterARB]] || [[glProgramLocalParameterEXT]]{{altIcon}} || [[glProgramLocalParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramParameterARB]]''' || - || [[glProgramParameterARB]] || [[glProgramParameterEXT]]{{altIcon}}  || [[glProgramParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramStringARB]]''' || - || [[glProgramStringARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramUniformEXT]]''' || - || - || [[glProgramUniformEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramUniformMatrixEXT]]''' || - || - || [[glProgramUniformMatrixEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProvokingVertex]]''' || {{Version_3_2}} || - || [[glProvokingVertexEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushClientAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushClientAttribDefaultEXT]]''' || - || - || [[glPushClientAttribDefaultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glQueryCounter]]''' || {{Version_3_3}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== R ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRasterPos]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadBufferRegionEXT]]''' || - || - || [[glReadBufferRegionEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadPixels]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRect]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderbufferStorage]]''' || {{Version_3_0}} || - || [[glRenderbufferStorageEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderbufferStorageMultisample]]''' || {{Version_3_0}} || - || [[glRenderbufferStorageMultisampleEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glResetHistogram]]''' || {{Version_1_2}} || - || [[glResetHistogramEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glResetMinmax]]''' || {{Version_1_2}} || - || [[glResetMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRotate]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSampleCoverage]]''' || {{Version_1_3}} || [[glSampleCoverageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSampleMask]]''' || {{Version_3_2}} || - || [[glSampleMaskEXT]]{{altIcon}} || [[glSampleMaskSGIS]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSamplePatternEXT]]''' || - || - || [[glSamplePatternEXT]] || [[glSamplePatternSGIS]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSamplerParameter]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glScale]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glScissor]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSecondaryColor]]''' || {{Version_1_4}} || - || [[glSecondaryColorEXT]]{{altIcon}} || [[glSecondaryColorNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSecondaryColorPointer]]''' || {{Version_1_4}} || - || [[glSecondaryColorPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSelectBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSeparableFilter2D]]''' || {{Version_1_2}} || - || [[glSeparableFilter2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSetInvariantEXT]]''' || - || - || [[glSetInvariantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSetLocalConstantEXT]]''' || - || - || [[glSetLocalConstantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShadeModel]]'''{{excIcon}} || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp1EXT]]''' || - || - || [[glShaderOp1EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp2EXT]]''' || - || - || [[glShaderOp2EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp3EXT]]''' || - || - || [[glShaderOp3EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderSource]]''' || {{Version_2_0}} || [[glShaderSourceARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilFunc]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilFuncSeparate]]''' || {{Version_2_0}} || - || - || [[glStencilFuncSeparateATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilMask]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilMaskSeparate]]''' || {{Version_2_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilOp]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilOpSeparate]]''' || {{Version_2_0}} || - || - || [[glStencilOpSeparateATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSwizzleEXT]]''' || - || - || [[glSwizzleEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== T ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTangentPointerEXT]]''' || - || - || [[glTangentPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexBuffer]]''' || {{Version_3_1}} || [[glTexBufferARB]]{{altIcon}} || [[glTexBufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexCoord]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexCoordPointer]]''' || {{Version_1_1}} || - || [[glTexCoordPointerEXT]]{{altIcon}} || [[glTexCoordPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexEnv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexGen]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage1D]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage2D]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage2DMultisample]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage3D]]''' || {{Version_1_2}} || - || [[glTexImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage3DMultisample]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexParameter]]''' || {{Version_1_0}} || - || [[glTexParameterIEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage1D]]''' || {{Version_1_0}} || - || [[glTexSubImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage2D]]''' || {{Version_1_0}} || - || [[glTexSubImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage3D]]''' || {{Version_1_2}} || - || [[glTexSubImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureBufferEXT]]''' || - || - || [[glTextureBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureImageEXT]]''' || - || - || [[glTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureLightEXT]]''' || - || - || [[glTextureLightEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureMaterialEXT]]''' || - || - || [[glTextureMaterialEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureNormalEXT]]''' || - || - || [[glTextureNormalEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureParameterEXT]]''' || - || - || [[glTextureParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureRenderbufferEXT]]''' || - || - || [[glTextureRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureSubImageEXT]]''' || - || - || [[glTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTransformFeedbackVaryings]]''' || {{Version_3_0}} || - || [[glTransformFeedbackVaryingsEXT]]{{altIcon}} || [[glTransformFeedbackVaryingsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTranslate]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniform]]''' || {{Version_2_0}} || [[glUniformARB]]{{altIcon}} || [[glUniformEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformBlockBinding]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformBufferEXT]]''' || - || - || [[glUniformBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformMatrix]]''' || {{Version_2_0}} || [[glUniformMatrixARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformSubroutines]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnlockArraysEXT]]''' || - || - || [[glUnlockArraysEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnmapBuffer]]''' || {{Version_1_5}} || [[glUnmapBufferARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnmapNamedBufferEXT]]''' || - || - || [[glUnmapNamedBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUseProgram]]''' || {{Version_2_0}} || [[glUseProgramObjectARB]]{{altIcon}} ||- || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== V ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glValidateProgram]]''' || {{Version_2_0}} || [[glValidateProgramARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVariantEXT]]''' || - || - || [[glVariantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVariantPointerEXT]]''' || - || - || [[glVariantPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttrib]]''' || {{Version_2_0}} || [[glVertexAttribARB]]{{altIcon}} || [[glVertexAttribEXT]]{{altIcon}} || [[glVertexAttribNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttribDivisor]]''' || {{Version_3_3}} || [[glVertexAttribDivisorARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttribPointer]]''' || {{Version_2_0}} || [[glVertexAttribPointerARB]]{{altIcon}} || [[glVertexAttribPointerEXT]]{{altIcon}} || [[glVertexAttribPointerNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexBlendARB]]''' || - || [[glVertexBlendARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexPointer]]''' || {{Version_1_1}} || - || [[glVertexPointerEXT]]{{altIcon}} || [[glVertexPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexWeightEXT]]''' || - || - || [[glVertexWeightEXT]] || [[glVertexWeightNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexWeightPointerEXT]]''' || - || - || [[glVertexWeightPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glViewport]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== W ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWaitSync]]''' || {{Version_3_2}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWeightARB]]''' || - || [[glWeightARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWeightPointerARB]]''' || - || [[glWeightPointerARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWindowPos]]''' || {{Version_1_4}} || [[glWindowPosARB]]{{altIcon}} || -  || [[glWindowPosMESA]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWriteMaskEXT]]''' || - || - || [[glWriteMaskEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenGL Parameter-Tabellen ===&lt;br /&gt;
Die nachfolgenden Listen enthalten Parameter- bzw. Typbeschreibungen, die bei vielen OpenGL-Funktionen immer wieder auftauchen.&lt;br /&gt;
&lt;br /&gt;
[[internes Pixelformat|interne Pixelformate]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pixelformat|Pixelformate]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pixeldatentyp|Datentypen für Pixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GLU|GLU]] ==&lt;br /&gt;
(Was ist die [[GLU]]?)&lt;br /&gt;
&lt;br /&gt;
=== B ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginSurface]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginTrim]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild1DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild2DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild3DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluCylinder]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteNurbsRenderer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteQuadric]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteTess]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDisk]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndSurface]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndTrim]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluErrorString]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetNurbsProperty]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetTessProperty]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== L ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluLoadSamplingMatrices]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluLookAt]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== N ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewNurbsRenderer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewQuadric]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewTess]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNextContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsProperty]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsSurface]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== O ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluOrtho2D]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== P ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPartialDisk]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPerspective]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPickMatrix]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluProject]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPwlCurve]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricDrawStyle]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricNormals]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricOrientation]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricTexture]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluScaleImage]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluSphere]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== T ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessBeginContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessBeginPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessEndContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessEndPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessNormal]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessProperty]]''' {{icpIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessVertex]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluUnProject]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GLX|GLX]] ==&lt;br /&gt;
(Was ist die [[GLX]]?)&lt;br /&gt;
&lt;br /&gt;
''Als Quelle für die Übersetzung weiterer Befehlsspezifikationen kann diese Sammlung verwendet werden: [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glx/ OpenGL.org GLX Manpages]''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXChooseFBConfig]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXChooseVisual]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCopyContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateGLXPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateNewContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreatePbuffer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreatePixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateWindow]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyGLXPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyPbuffer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyWindow]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== F ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXFreeContextEXT]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetClientString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetConfig]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentContextIDEXT]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentDisplay]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentReadDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetFBConfigAttrib]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetFBConfigs]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetProcAddress]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetSelectedEvent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetVisualFromFBConfig]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXImportContextEXT]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXIntro]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXIsDirect]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXMakeContextCurrent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXMakeCurrent]]''' || - || - || - || -&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryContextInfoEXT]]''' || - || - || [[glXQueryContextInfoEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryExtension]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryExtensionsString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryServerString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryVersion]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXSelectEvent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXSwapBuffers]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXUseXFont]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== W ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXWaitGL]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXWaitX]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:WGL|WGL]] ==&lt;br /&gt;
(Was ist die [[WGL]]?)&lt;br /&gt;
&lt;br /&gt;
''Als Quelle für die Übersetzung weiterer Befehlsspezifikationen kann diese Sammlung verwendet werden: [http://floyd.atc.no/Docs/OpenGL/man-pages/WGLmanpages/ floyd.atc.no WGL Manpages]''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglChoosePixelFormatARB]]''' || - || [[wglChoosePixelFormatARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCopyContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateBufferRegionEXT]]''' || - || - || [[wglCreateBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateLayerContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreatePbufferARB]]''' || - || [[wglCreatePbufferARB]] || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDeleteBufferRegionEXT]]''' || - || - || [[wglDeleteBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDeleteContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDestroyPbufferARB]]''' || - || [[wglDestroyPbufferARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDescribeLayerPlane]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentDC]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentReadDC]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetExtensionsStringARB]]''' || - || [[wglGetExtensionsStringARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetLayerPaletteEntries]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPbufferDCARB]]''' || - || [[wglGetPbufferDCARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPixelFormatAttribARB]]''' || - || [[wglGetPixelFormatAttribARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPixelFormatAttribEXT]]''' || - || - || [[wglGetPixelFormatAttrixEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetProcAddress]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglMakeCurrent]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglMakeCurrentContextEXT]]''' || - || - || [[wglMakeCurrentContextEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglQueryPbufferARB]]''' || - || [[wglQueryPbufferARB]] || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== R ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglRealizeLayerPalette]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglReleasePbufferDCARB]]''' || - || [[wglReleasePbufferDCARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglRestoreBufferRegionEXT]]''' || - || - || [[wglRestoreBufferRegionEXT]] || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSaveBufferRegionEXT]]''' || - || - || [[wglSaveBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSetLayerPaletteEntries]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglShareLists]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSwapIntervalEXT]]''' || - || - || [[wglSwapIntervalEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSwapLayerBuffers]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglUseFontBitmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglUseFontOutlines]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Externe Funktionen ==&lt;br /&gt;
Hier sind alle Funktionen zu finden, die zwar direkt nichts mit OpenGL zu tun haben, aber trotzdem im Normalfall zur Nutzung der GL benötigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Win32 Funktionen ===&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[ChoosePixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[DescribePixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[GetLastError]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[getObject]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[GetPixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[SetPixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[SwapBuffers]]'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux / Unix Funktionen ===&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XCloseDisplay]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XDefaultScreen]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XOpenDisplay]]'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Siehe auch===&lt;br /&gt;
[[OpenAL-Funktionsübersicht]], [[SDL-Funktionsübersicht]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=OpenGL-Funktions%C3%BCbersicht&amp;diff=25320</id>
		<title>OpenGL-Funktionsübersicht</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=OpenGL-Funktions%C3%BCbersicht&amp;diff=25320"/>
				<updated>2011-07-27T16:59:15Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Änderung 25319 von Thoronador (Diskussion) rückgängig gemacht.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Opengl_logo.png|right|200px]]&lt;br /&gt;
== Hinweise für Helfer ==&lt;br /&gt;
&lt;br /&gt;
=== Was hier hinein gehört ===&lt;br /&gt;
&lt;br /&gt;
Um eine Funktionsübersicht aller OpenGL Funktionen zu erreichen die inhaltlich korrekt ist, sollten die [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL.tar.gz  orginal Spezifikationen] von OpenGL.org übersetzt werden([[Link#OpenGL_Funktionen|Alternative Quellen]]).  &lt;br /&gt;
&lt;br /&gt;
Allerdings sind hier auch glu-/wgl- und glx-Funktionen erlaubt. Konstanten bitte nicht hier im Inhaltsverzeichnis einfügen, genausowenig wie [[OpenGL-Extensions]].&lt;br /&gt;
&lt;br /&gt;
Die Funktionen sind bereits nach Gruppen sortiert (GL/GLU/etc.). Sollten Funktionen noch nicht in der Übersicht auftauchen, welche aber definitiv existieren, können diese nachgetragen werden. Funktionen die es in verschiedenen Ausprägungen gibt, werden ohne Parameterangabe eingetragen (also glVertex statt glVertex3f).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte haltet euch bei der Formatierung der Befehlsbeschreibung an die [[Funktionsvorlage]] (ich führe hier mal glBegin als Beispiel an), und erklärt nicht mehr als nötig. &lt;br /&gt;
Wenn ihr also einen Befehl habt der etwas mit VertexArrays zu tun hat, dann gehört dort '''nicht''' hinein was ein VertexArray ist oder bringt. Das gehört dann nach [[Techniken und Algorithmen]] oder [[Hintergrundwissen]] (je nach Thematik) und sollte dann in der Funktionsbeschreibung als ''interner Link'' untergebracht werden.&lt;br /&gt;
&lt;br /&gt;
'''Zu aller erst sollte die Orginalspezifikation übersetzt werden''' und erst dann eigene Hinweise untergebracht werden (z.B. Erfahrungen, typische Fehler etc.)&lt;br /&gt;
&lt;br /&gt;
===Artikel-Vorlage===&lt;br /&gt;
'''Wichtiger Hinweis ''' : Bei der Funktionsübersicht ist v.a. eine einheitliche Gliederung der Artikel wichtig. Deshalb haltet euch bitte an '''[[Funktionsvorlage|folgende Vorlage]]'''!&lt;br /&gt;
&lt;br /&gt;
===Kategorisieren von Artikeln===&lt;br /&gt;
Das Wiki ermöglicht es einen Artikel einer Kategorie zuzuordnen. Diese Möglichkeit sollte von Artikelschreibern genutzt werden.&lt;br /&gt;
Man ordnet einen Artikel einer Kategorie zu, in dem man '''am Ende des Artikels einen Link zu der Kategrie erstellt''' der er zugeordnet werden soll:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+Beispiel&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;[[Kategorie:GL|Name ohne &amp;quot;gl&amp;quot;]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das sind die neuen Kategorien:&lt;br /&gt;
*[[:Kategorie:GL]]&lt;br /&gt;
*[[:Kategorie:GLU]]&lt;br /&gt;
*[[:Kategorie:GLX]]&lt;br /&gt;
*[[:Kategorie:WGL]]&lt;br /&gt;
&lt;br /&gt;
Falls die Funktion bereits zum GL-Kern gehört kommt noch folgender Eintrag hinzu: &amp;lt;nowiki&amp;gt;[[Kategorie:GLx.x]]&amp;lt;/nowiki&amp;gt; wobei das x.x durch die GL-Versionsnummer (z.B. &amp;quot;1.2&amp;quot; oder &amp;quot;2.0&amp;quot;), seit dem die Funktion dabei ist, ersetzt wird.&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GL|GL]] ==&lt;br /&gt;
Abkürzung für '''G'''raphics '''L'''ibrary, hierunter fallen alle Funktionen die direkter Bestandteil (entweder als Kernfunktion oder über Extensions) der OpenGL sind.&lt;br /&gt;
Hartnäckige Gerüchte, '''GL''' stünde für Glide und somit OpenGL für Open Glide, sind schlichtweg falsch, erfreuen sich jedoch immernoch großer Beliebtheit.&lt;br /&gt;
&lt;br /&gt;
=== Versionsspezifische Listen ===&lt;br /&gt;
Hier findet ihre Listen von Funktionen die in einer bestimmten OpenGL Version verfügbar sind. Wenn ihr also z.B. ein Programm für OpenGL3.0 schreiben wollt, dürft ihr nur die Funktionen verwenden, die in der 3.0-Liste enthalten sind.&lt;br /&gt;
&lt;br /&gt;
*[[OpenGL2.1-Funktionsübersicht]]&lt;br /&gt;
*[[OpenGL3-Funktionsübersicht]]&lt;br /&gt;
*[[OpenGL4-Funktionsübersicht]]&lt;br /&gt;
&lt;br /&gt;
=== A ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAccum]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glActiveStencilFaceEXT]]''' || - || - || [[glActiveStencilFaceEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glActiveTexture]]''' || {{Version_1_3}} || [[glActiveTextureARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAddSwapHintRectWIN]]''' || - || - || - || [[glAddSwapHintRectWIN]]&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAlphaFunc]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glApplyTextureEXT]]''' || - || - || [[glApplyTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAreTexturesResident]]''' || {{Version_1_1}} || - || [[glAreTexturesResidentEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glArrayElement]]''' || {{Version_1_1}} || - || [[glArrayElementEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAttachShader]]''' || {{Version_2_0}}  || [[glAttachObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== B ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBegin]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginConditionalRender]]''' || {{Version_3_0}} || - || - || [[glBeginConditionalRenderNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginQuery]]''' || {{Version_1_5}} || [[glBeginQueryARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginSceneEXT]]''' || - || - || [[glBeginSceneEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginTransformFeedback]]''' || {{Version_3_0}} || - || [[glBeginTransformFeedbackEXT]]{{altIcon}} || [[glBeginTransformFeedbackNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginVertexShaderEXT]]''' || - || - || [[glBeginVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindAttribLocation]]''' || {{Version_2_0}} || [[glBindAttribLocationARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBuffer]]''' || {{Version_1_5}} || [[glBindBufferARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferBase]]''' || {{Version_3_0}} || - || [[glBindBufferBaseEXT]]{{altIcon}} || [[glBindBufferBaseNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferOffsetEXT]]''' || - || - || [[glBindBufferOffsetEXT]] || [[glBindBufferOffsetNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferRange]]''' || {{Version_3_0}} || - || [[glBindBufferRangeEXT]]{{altIcon}} || [[glBindBufferRangeNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFragDataLocation]]''' || {{Version_3_0}} || - || [[glBindFragDataLocationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFragDataLocationIndexed]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFramebuffer]]''' || {{Version_3_0}} || - || [[glBindFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindLightParameterEXT]]''' || - || - || [[glBindLightParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindMaterialParameterEXT]]''' || - || - || [[glBindMaterialParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindMultiTextureEXT]]''' || - || - || [[glBindMultiTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindParameterEXT]]''' || - || - || [[glBindParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindProgramARB]]''' || - || [[glBindProgramARB]] || - || [[glBindProgramNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindRenderbuffer]]''' || {{Version_3_0}} || - || [[glBindRenderbufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindSampler]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTexGenParameterEXT]]''' || - || - || [[glBindTexGenParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTexture]]''' || {{Version_1_1}} || - || [[glBindTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTextureUnitParameterEXT]]''' || - || - || [[glBindTextureUnitParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindVertexArray]]''' || {{Version_3_0}} || - || - || [[glBindVertexArrayAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindVertexShaderEXT]]''' || - || - || [[glBindVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBinormalPointerEXT]]''' || - || - || [[glBinormalPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBitmap]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendColor]]''' || {{Version_1_2}} || - || [[glBlendColorEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendEquation]]''' || {{Version_1_2}} || - || [[glBlendEquationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendEquationSeparate]]''' || {{Version_2_0}} || - || [[glBlendEquationSeparateEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendFunc]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendFuncSeparate]]''' || {{Version_1_4}} || - || [[glBlendFuncSeparateEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlitFramebuffer]]''' || {{Version_3_0}} || - || [[glBlitFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferData]]''' || {{Version_1_5}} || [[glBufferDataARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferRegionEnabledEXT]]''' || - || - || [[glBufferRegionEnabledEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferSubData]]''' || {{Version_1_5}} || [[glBufferSubDataARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCallList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCallLists]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCheckFramebufferStatus]]''' || {{Version_3_0}} || - || [[glCheckFramebufferStatusEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCheckNamedFramebufferStatusEXT]]''' || - || - || [[glCheckNamedFramebufferStatusEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClampColor]]''' || {{Version_3_0}} || [[glClampColorARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClear]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearAccum]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearBuffer]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearColor]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearDepth]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearIndex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearStencil]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientActiveTexture]]''' || {{Version_1_3}} || [[glClientActiveTextureARB]]{{altIcon}} || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientAttribDefaultEXT]]''' || - || - || [[glClientAttribDefaultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientWaitSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClipPlane]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColor]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMask]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMaskIndexedEXT]]''' || - || - || [[glColorMaskIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMaterial]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorPointer]]''' || {{Version_1_1}} || - || [[glColorPointerEXT]]{{altIcon}} || [[glColorPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorSubTable]]''' || {{Version_1_2}} || - || [[glColorSubTableEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorTable]]''' || {{Version_1_2}} || - || [[glColorTableEXT]]{{altIcon}} || [[glColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorTableParameter]]''' || {{Version_1_2}}|| - || - || [[glColorTableParameterSGI]]{{altIcon}} &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompileShader]]''' || {{Version_2_0}} || [[glCompileShaderARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedMultiTexImageEXT]]''' || - || - || [[glCompressedMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedMultiTexSubImageEXT]]''' || - || - || [[glCompressedMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTexImage]]''' || {{Version_1_3}} || [[glCompressedTexImageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTexSubImage]]''' || {{Version_1_3}} || [[glCompressedTexSubImageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTextureImageEXT]]''' || - || - || [[glCompressedTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTextureSubImageEXT]]''' || - || - || [[glCompressedTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionFilter1D]]''' || {{Version_1_2}} || - || [[glConvolutionFilter1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionFilter2D]]''' || {{Version_1_2}} || - || [[glConvolutionFilter2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionParameter]]''' || {{Version_1_2}} || - || [[glConvolutionParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyBufferSubData]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyColorSubTable]]''' || {{Version_1_2}} || - || [[glCopyColorSubTableEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyColorTable]]''' || {{Version_1_2}} || - || - || [[glCopyColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyConvolutionFilter]]''' || {{Version_1_2}} || - || [[glCopyConvolutionFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyMultiTexImageEXT]]''' || - || - || [[glCopyMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyMultiTexSubImageEXT]]''' || - || - || [[glCopyMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyPixels]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexImage1D]]''' || {{Version_1_1}} || - || [[glCopyTexImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexImage2D]]''' || {{Version_1_1}} || - || [[glCopyTexImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage1D]]''' || {{Version_1_1}} || - || [[glCopyTexSubImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage2D]]''' || {{Version_1_1}} || - || [[glCopyTexSubImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage3D]]''' || {{Version_1_2}} || - || [[glCopyTexSubImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTextureImageEXT]]''' || - || - || [[glCopyTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTextureSubImageEXT]]''' || - || - || [[glCopyTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCreateProgram]]''' || {{Version_2_0}} || [[glCreateProgramObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCreateShader]]''' || {{Version_2_0}} || [[glCreateShaderObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCullFace]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCullParameterEXT]]''' || - || - || [[glCullParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCurrentPaletteMatrixARB]]''' || - || [[glCurrentPaletteMatrixARB]] || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteBufferRegionEXT]]''' || - || - || [[glDeleteBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteBuffers]]''' || {{Version_1_5}} || [[glDeleteBuffersARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteFramebuffers]]''' || {{Version_3_0}} || - || [[glDeleteFramebuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteLists]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteProgram]]''' || {{Version_2_0}} || [[glDeleteObjectARB]] {{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteProgramsARB]]''' || - || [[glDeleteProgramsARB]] || - || [[glDeleteProgramsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteQueries]]''' || {{Version_1_5}} || [[glDeleteQueriesARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteRenderbuffers]]''' || {{Version_3_0}} || - || [[glDeleteRenderbuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteSamplers]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteShader]]''' || {{Version_2_0}} || [[glDeleteObjectARB]] {{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteTextures]]''' || {{Version_1_1}} || - || [[glDeleteTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteVertexArrays]]''' || {{Version_3_0}} || - || - || [[glDeleteVertexArraysAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteVertexShaderEXT]]''' || - || - || [[glDeleteVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthBoundsEXT]]''' || - || - || [[glDepthBoundsEXT]] || [[glDepthBoundsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthFunc]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthMask]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthRange]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDetachShader]]''' || {{Version_2_0}} || [[glDetachObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisable]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableClientState]]''' || {{Version_1_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableClientStateIndexedEXT]]''' || - || - || [[glDisableClientStateIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableIndexedEXT]]''' || - || - || [[glDisableIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableVariantClientStateEXT]]''' || - || - || [[glDisableVariantClientStateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableVertexAttribArray]]''' || {{Version_2_0}} || [[glDisableVertexAttribArrayARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawArrays]]''' || {{Version_1_1}} || - || [[glDrawArraysEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawArraysInstanced]]''' || {{Version_3_1}} || [[glDrawArraysInstancedARB]] || [[glDrawArraysInstancedEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBuffer]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBufferRegionEXT]]''' || - || - || [[glDrawBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBuffers]]''' || {{Version_2_0}} || [[glDrawBuffersARB]]{{altIcon}} || - || [[glDrawBuffersATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElements]]''' || {{Version_1_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsInstanced]]''' || {{Version_3_1}} || [[glDrawElementsInstancedARB]] || [[glDrawElementsInstancedEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsInstancedBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawPixels]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawRangeElements]]''' || {{Version_1_2}} || - || [[glDrawRangeElementsEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawRangeElementsBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEdgeFlag]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEdgeFlagPointer]]''' || {{Version_1_1}} || - || [[glEdgeFlagPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnable]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableClientState]]''' || {{Version_1_1}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableClientStateIndexedEXT]]''' || - || - || [[glEnableClientStateIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableIndexedEXT]]''' || - || - || [[glEnableIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableVariantClientStateEXT]]''' || - || - || [[glEnableVariantClientStateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableVertexAttribArray]]''' || {{Version_2_0}} || [[glEnableVertexAttribArrayARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnd]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndConditionalRender]]''' || {{Version_3_0}} || - || - || [[glEndConditionalRenderNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndQuery]]''' || {{Version_1_5}} || [[glEndQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndSceneEXT]]''' || - || - || [[glEndSceneEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndTransformFeedback]]''' || {{Version_3_0}} || - || [[glEndTransformFeedbackEXT]]{{altIcon}} || [[glEndTransformFeedbackNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndVertexShaderEXT]]''' || - || - || [[glEndVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalCoord]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalMesh]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalPoint]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glExtractComponentEXT]]''' || - || - || [[glExtractComponentEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== F ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFeedbackBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFenceSync]]''' || {{Version_3_2}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFinish]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFlush]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFlushMappedBufferRange]]''' || {{Version_3_0}} || - || - || [[glFlushMappedBufferRangeAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFog]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFogCoord]]''' || {{Version_1_4}} || - || [[glFogCoordEXT]]{{altIcon}}  || [[glFogCoordNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFogCoordPointer]]''' || {{Version_1_4}} || - || [[glFogCoordPointerEXT]]{{altIcon}}  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentColorMaterialEXT]]''' || - || - || [[glFragmentColorMaterialEXT]]  || [[glFragmentColorMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentLightEXT]]''' || - || - || [[glFragmentLightEXT]]  || [[glFragmentLightSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentLightModelEXT]]''' || - || - || [[glFragmentLightModelEXT]]  || [[glFragmentLightModelSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentMaterialEXT]]''' || - || - || [[glFragmentMaterialEXT]]  || [[glFragmentMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferDrawBufferEXT]]''' || - || - || [[glFramebufferDrawBufferEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferDrawBuffersEXT]]''' || - || - || [[glFramebufferDrawBuffersEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferReadBufferEXT]]''' || - || - || [[glFramebufferReadBufferEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferRenderBuffer]]''' || {{Version_3_0}} || - || [[glFrameBufferRenderBufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTexture]]''' || {{Version_3_0}} || [[glFramebufferTextureARB]]{{altIcon}} || [[glFramebufferTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture1D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture2D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture3D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTextureFaceARB]]''' || - || [[glFramebufferTextureFaceARB]] || [[glFramebufferTextureFaceEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTextureLayer]]''' || {{Version_3_0}} || [[glFramebufferTextureLayerARB]]{{altIcon}} || [[glFramebufferTextureLayerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrontFace]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrustum]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenBuffers]]''' || {{Version_1_5}} || [[glGenBuffersARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateMipmap]]''' || {{Version_3_0}} || - || [[glGenerateMipmapEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateMultiTexMipmapEXT]]''' || - || - || [[glGenerateMultiTexMipmapEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateTextureMipmapEXT]]''' || - || - || [[glGenerateTextureMipmapEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenFramebuffers]]''' || {{Version_3_0}} || - || [[glGenFramebuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenLists]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenProgramsARB]]''' || - || [[glGenProgramsARB]] || -  || [[glGenProgramsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenQueries]]''' || {{Version_1_5}} || [[glGenQueriesARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenRenderbuffers]]''' || {{Version_3_0}} || - || [[glGenRenderbuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenSamplers]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenSymbolsEXT]]''' || - || - || [[glGenSymbolsEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenTextures]]''' || {{Version_1_1}} || - || [[glGenTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenVertexArrays]]''' || {{Version_3_0}} || - || - || [[glGenVertexarraysAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenVertexShadersEXT]]''' || - || - || [[glGenVertexShadersEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGet]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveAttrib]]''' || {{Version_2_0}} || [[glGetActiveAttribARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineName]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineUniform]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineUniformName]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniform]]''' || {{Version_2_0}} || [[glGetActiveUniformARB]] {{altIcon}}|| -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformBlock]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformBlockName]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformName]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniforms]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetAttachedShaders]]''' || {{Version_2_0}} || [[glGetAttachedObjectsARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetAttribLocation]]''' || {{Version_2_0}} || [[glGetAttribLocationARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBooleanv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBooleanIndexedEXT]]''' || - || - || [[glGetBooleanIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferParameter]]''' || {{Version_1_5}} || [[glGetBufferParameterARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferPointerv]]''' || {{Version_1_5}} || [[glGetBufferPointerARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferSubData]]''' || {{Version_1_5}} || [[glGetBufferSubDataARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetClipPlane]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetColorTable]]''' || {{Version_1_2}} || - || [[glGetColorTableEXT]]{{altIcon}} || [[glGetColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetColorTableParameter]]''' || {{Version_1_2}} || - || [[glGetColorTableParameterEXT]]{{altIcon}} || [[glGetColorTableParameterSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedMultiTexImageEXT]]''' || - || - || [[glGetCompressedMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedTexImage]]''' || {{Version_1_3}} || [[glGetCompressedTexImageARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedTextureImageEXT]]''' || - || - || [[glGetCompressedTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetConvolutionFilter]]''' || {{Version_1_2}} || - || [[glGetConvolutionFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetConvolutionParameter]]''' || {{Version_1_2}} || - || [[glGetConvolutionParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetDoublev]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetDoubleIndexedEXT]]''' || - || - || [[glGetDoubleIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetError]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFloatv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFloatIndexedEXT]]''' || - || - || [[glGetFloatIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragDataLocation]]''' || {{Version_3_0}} || - || [[glGetFragDataLocationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragmentLightEXT]]''' || - || - || [[glGetFragmentLightEXT]] || [[glGetFragmentLightSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragmentMaterialEXT]]''' || - || - || [[glGetFragmentMaterialEXT]] || [[glGetFragmentMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFramebufferAttachmentParameter]]''' || {{Version_3_0}} || - || [[glGetFramebufferAttachmentParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFramebufferParameterEXT]]''' || - || - || [[glGetFramebufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|''als Parameter von [[glGet#GL_CURRENT_PROGRAM|glGet]]'' || {{Version_2_0}} || [[glGetHandleARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetHistogram]]''' || {{Version_1_2}} || - || [[glGetHistogramEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetHistogramParameter]]''' || {{Version_1_2}} || - || [[glGetHistogramParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetIntegerv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetIntegerIndexedEXT]]''' || - || - || [[glGetIntegerIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantBooleanEXT]]''' || - || - || [[glGetInvariantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantFloatEXT]]''' || - || - || [[glGetInvariantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantIntegerEXT]]''' || - || - || [[glGetInvariantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLight]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantBooleanEXT]]''' || - || - || [[glGetLocalConstantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantFloatEXT]]''' || - || - || [[glGetLocalConstantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantIntegerEXT]]''' || - || - || [[glGetLocalConstantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMaterial]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMinmax]]''' || {{Version_1_2}} || - || [[glGetMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMinmaxParameter]]''' || {{Version_1_2}} || - || [[glGetMinmaxParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultisample]]''' || {{Version_3_2}} || - || -  || [[glGetMultisampleNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexEnvEXT]]''' || - || - || [[glGetMultiTexEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexGenEXT]]''' || - || - || [[glGetMultiTexGenEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexImageEXT]]''' || - || - || [[glGetMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexLevelParameterEXT]]''' || - || - || [[glGetMultiTexLevelParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexParameterEXT]]''' || - || - || [[glGetMultiTexParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferParameterEXT]]''' || - || - || [[glGetNamedBufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferPointerEXT]]''' || - || - || [[glGetNamedBufferPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferSubDataEXT]]''' || - || - || [[glGetNamedBufferSubDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedFramebufferAttachmentParameterEXT]]''' || - || - || [[glGetNamedFramebufferAttachmentParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramEXT]]''' || - || - || [[glGetNamedProgramEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramLocalParameterEXT]]''' || - || - || [[glGetNamedProgramLocalParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramStringEXT]]''' || - || - || [[glGetNamedProgramStringEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedRenderbufferParameterEXT]]''' || - || - || [[glGetNamedRenderbufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPixelMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPixelTransformParameterEXT]]''' || - || - || [[glGetPixelTransformParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPointerv]]''' || {{Version_1_0}} || - || [[glGetPointervEXT]]{{altIcon}}  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPointerIndexedEXT]]''' || - || - || [[glGetPointerIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPolygonStipple]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgram]]''' || {{Version_2_0}} || [[glGetObjectParameterARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramARB]]''' || - || [[glGetProgramARB]] || - || [[glGetProgramNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramEnvParameterARB]]''' || - || [[glGetProgramEnvParameterARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramInfoLog]]''' || {{Version_2_0}} || [[glGetInfoLogARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramLocalParameterARB]]''' || - || [[glGetProgramLocalParameterARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramStage]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramStringARB]]''' || - || [[glGetProgramStringARB]] || -  || [[glGetProgramStringNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetQueryiv]]''' || {{Version_1_5}} || [[glGetQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetQueryObject]]''' || {{Version_1_5}} || [[glGetQueryObjectARB]]{{altIcon}} || [[glGetQueryObjectEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetRenderbufferParameter]]''' || {{Version_3_0}} || - || [[glGetRenderbufferParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSamplerParameter]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSeparableFilter]]''' || {{Version_1_2}} || - || [[glGetSeparableFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShader]]''' || {{Version_2_0}} || [[glGetObjectParameterARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShaderInfoLog]]''' || {{Version_2_0}} || [[glGetInfoLogARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShaderSource]]''' || {{Version_2_0}} || [[glGetShaderSourceARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetString]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSubroutineIndex]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSubroutineUniformLocation]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexEnv]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexGen]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexImage]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexLevelParameter]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexParameter]]''' || {{Version_1_0}} || - || [[glGetTexParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureImageEXT]]''' || - || - || [[glGetTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureLevelParameterEXT]]''' || - || - || [[glGetTextureLevelParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureParameterEXT]]''' || - || - || [[glGetTextureParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTransformFeedbackVarying]]''' || {{Version_3_0}} || - || [[glGetTransformFeedbackVaryingEXT]]{{altIcon}} || [[glGetTransformFeedbackVaryingNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniform]]''' || {{Version_2_0}} || [[glGetUniformARB]]{{altIcon}} || [[glGetUniformEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformBlockIndex]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformBufferSizeEXT]]''' || - || - || [[glGetUniformBufferSizeEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformIndices]]''' || {{Version_3_1}} || - || - || -|&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformLocation]]''' || {{Version_2_0}} || [[glGetUniformLocationARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformOffsetEXT]]''' || - || - || [[glGetUniformOffsetEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformSubroutine]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantBooleanEXT]]''' || - || - || [[glGetVariantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantFloatEXT]]''' || - || - || [[glGetVariantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantIntegerEXT]]''' || - || - || [[glGetVariantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantPointerEXT]]''' || - || - || [[glGetVariantPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVertexAttrib]]''' || {{Version_2_0}} || [[glGetVertexAttribARB]]{{altIcon}} || [[glGetVertexAttribEXT]] || [[glGetVertexAttribNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVertexAttribPointer]]''' || {{Version_2_0}} || [[glGetVertexAttribPointerARB]]{{altIcon}} || -  || [[glGetVertexAttribPointerNV]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== H ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glHint]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glHistogram]]''' || {{Version_1_2}} || - || [[glHistogramEXT]]{{altIcon}}  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexFuncEXT]]''' || - || - || [[glIndexFuncEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexMask]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexMaterialEXT]]''' || - || - || [[glIndexMaterialEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexPointer]]''' || {{Version_1_1}} || - || [[glIndexPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInitNames]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInsertComponentEXT]]''' || - || - || [[glInsertComponentEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInterleavedArrays]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsBuffer]]''' || {{Version_1_5}} || [[glIsBufferARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsEnabled]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsEnabledIndexedEXT]]''' || - || - || [[glIsEnabledIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsFramebuffer]]''' || {{Version_3_0}} || - || [[glIsFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsProgram]]''' || {{Version_2_0}} || [[glIsProgramARB]]{{altIcon}} || - || [[glIsProgramNV]]{{altIcon}} &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsQuery]]''' || {{Version_1_5}} || [[glIsQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsRenderbuffer]]''' || {{Version_3_0}} || - || [[glIsRenderbufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsSampler]]''' || {{Version_3_3}} || - || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsShader]]''' || {{Version_2_0}} || - || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsTexture]]''' || {{Version_1_0}} || - || [[glIsTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsVariantEnabledEXT]]''' || - || - || [[glIsVariantEnabledEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsVertexArray]]''' || {{Version_3_0}} || - || - || [[glIsVertexArrayAPPLE]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== L ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLight]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLightEnvEXT]]''' || - || - || [[glLightEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLightModel]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLineStipple]]'''{{excIcon}} || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLineWidth]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLinkProgram]]''' || {{Version_2_0}} || [[glLinkProgramARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glListBase]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadIdentity]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadTransposeMatrix]]''' || {{Version_1_3}} || [[glLoadTransposeMatrixARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLockArraysEXT]]''' || - || - || [[glLockArraysEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLogicOp]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMap1]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMap2]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapBuffer]]''' || {{Version_1_5}} || [[glMapBufferARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapBufferRange]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapGrid]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapNamedBufferEXT]]''' || - || - || [[glMapNamedBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMaterial]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixIndexARB]]''' || - || [[glMatrixIndexARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixIndexPointerARB]]''' || - || [[glMatrixIndexPointerARB]] || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixFrustumEXT]]''' || - || - || [[glMatrixFrustumEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadEXT]]''' || - || - || [[glMatrixLoadEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadIdentityEXT]]''' || - || - || [[glMatrixLoadIdentityEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadTransposedEXT]]''' || - || - || [[glMatrixLoadTransposedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMultEXT]]''' || - || - || [[glMatrixMultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMultTransposedEXT]]''' || - || - || [[glMatrixMultTransposedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixOrthoEXT]]''' || - || - || [[glMatrixOrthoEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixPopEXT]]''' || - || - || [[glMatrixPopEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixPushEXT]]''' || - || - || [[glMatrixPushEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixRotateEXT]]''' || - || - || [[glMatrixRotateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixScaleEXT]]''' || - || - || [[glMatrixScaleEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixTranslateEXT]]''' || - || - || [[glMatrixTranslateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMinmax]]''' || {{Version_1_2}} || - || [[glMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawArrays]]''' || {{Version_1_4}} || - || [[glMultiDrawArraysEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawElements]]''' || {{Version_1_4}} || - || [[glMultiDrawElementsEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawElementsBaseVertex]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexBufferEXT]]''' || - || - || [[glMultiTexBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexCoord]]''' || {{Version_1_3}} || [[glMultiTexCoordARB]]{{altIcon}} || -  || [[glMultiTexCoordNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexCoordPointerEXT]]''' || - || - || [[glMultiTexCoordPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexEnvEXT]]''' || - || - || [[glMultiTexEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexGenEXT]]''' || - || - || [[glMultiTexGenEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexImageEXT]]''' || - || - || [[glMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexParameterEXT]]''' || - || - || [[glMultiTexParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexRenderbufferEXT]]''' || - || - || [[glMultiTexRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexSubImageEXT]]''' || - || - || [[glMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultTransposeMatrix]]''' || {{Version_1_3}} || [[glMultTransposeMatrixARB]]{{altIcon}} || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== N ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedBufferDataEXT]]''' || - || - || [[glNamedBufferDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedBufferSubDataEXT]]''' || - || - || [[glNamedBufferSubDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferRenderbufferEXT]]''' || - || - || [[glNamedFramebufferRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureEXT]]''' || - || - || [[glNamedFramebufferTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture1DEXT]]''' || - || - || [[glNamedFramebufferTexture1DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture2DEXT]]''' || - || - || [[glNamedFramebufferTexture2DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture3DEXT]]''' || - || - || [[glNamedFramebufferTexture3DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureFaceEXT]]''' || - || - || [[glNamedFramebufferTextureFaceEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureLayerEXT]]''' || - || - || [[glNamedFramebufferTextureLayerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedProgramLocalParameterEXT]]''' || - || - || [[glNamedProgramLocalParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedProgramStringEXT]]''' || - || - || [[glNamedProgramStringEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageEXT]]''' || - || - || [[glNamedRenderbufferStorageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageMultisampleEXT]]''' || - || - || [[glNamedRenderbufferStorageMultisampleEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageMultisampleCoverageEXT]]''' || - || - || [[glNamedRenderbufferStorageMultisampleCoverageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNewBufferRegionEXT]]''' || - || - || [[glNewBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNewList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNormal]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNormalPointer]]''' || {{Version_1_1}} || - || [[glNormalPointerEXT]]{{altIcon}} || [[glNormalPointerINTEL]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0 ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glOrtho]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== P ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPassThrough]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPatchParameter]]''' || {{Version_4_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelStore]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelTransfer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelTransformParameterEXT]]''' || - || - || [[glPixelTransformParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelZoom]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPointParameter]]''' || {{Version_1_4}} || [[glPointParameterARB]]{{altIcon}} || [[glPointParameterEXT]]{{altIcon}}  || [[glPointParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPointSize]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonOffset]]''' || {{Version_1_0}} || - || [[glPolygonOffsetEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonStipple]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopClientAttrib]]''' || {{Version_1_0}} || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrimitiveRestart]]''' || {{Version_3_1}} || - || -  || [[glPrimitiveRestartNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrimitiveRestartIndex]]''' || {{Version_3_1}} || - || -  || [[glPrimitiveRestartIndexNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrioritizeTextures]]''' || {{Version_1_0}} || - || [[glPrioritizeTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramEnvParameterARB]]''' || - || [[glProgramEnvParameterARB]] || [[glProgramEnvParameterEXT]]{{altIcon}} || [[glProgramEnvParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramLocalParameterARB]]''' || - || [[glProgramLocalParameterARB]] || [[glProgramLocalParameterEXT]]{{altIcon}} || [[glProgramLocalParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramParameterARB]]''' || - || [[glProgramParameterARB]] || [[glProgramParameterEXT]]{{altIcon}}  || [[glProgramParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramStringARB]]''' || - || [[glProgramStringARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramUniformEXT]]''' || - || - || [[glProgramUniformEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramUniformMatrixEXT]]''' || - || - || [[glProgramUniformMatrixEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProvokingVertex]]''' || {{Version_3_2}} || - || [[glProvokingVertexEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushClientAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushClientAttribDefaultEXT]]''' || - || - || [[glPushClientAttribDefaultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glQueryCounter]]''' || {{Version_3_3}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== R ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRasterPos]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadBufferRegionEXT]]''' || - || - || [[glReadBufferRegionEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadPixels]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRect]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderbufferStorage]]''' || {{Version_3_0}} || - || [[glRenderbufferStorageEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderbufferStorageMultisample]]''' || {{Version_3_0}} || - || [[glRenderbufferStorageMultisampleEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glResetHistogram]]''' || {{Version_1_2}} || - || [[glResetHistogramEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glResetMinmax]]''' || {{Version_1_2}} || - || [[glResetMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRotate]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSampleCoverage]]''' || {{Version_1_3}} || [[glSampleCoverageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSampleMask]]''' || {{Version_3_2}} || - || [[glSampleMaskEXT]]{{altIcon}} || [[glSampleMaskSGIS]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSamplePatternEXT]]''' || - || - || [[glSamplePatternEXT]] || [[glSamplePatternSGIS]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSamplerParameter]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glScale]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glScissor]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSecondaryColor]]''' || {{Version_1_4}} || - || [[glSecondaryColorEXT]]{{altIcon}} || [[glSecondaryColorNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSecondaryColorPointer]]''' || {{Version_1_4}} || - || [[glSecondaryColorPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSelectBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSeparableFilter2D]]''' || {{Version_1_2}} || - || [[glSeparableFilter2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSetInvariantEXT]]''' || - || - || [[glSetInvariantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSetLocalConstantEXT]]''' || - || - || [[glSetLocalConstantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShadeModel]]'''{{excIcon}} || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp1EXT]]''' || - || - || [[glShaderOp1EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp2EXT]]''' || - || - || [[glShaderOp2EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp3EXT]]''' || - || - || [[glShaderOp3EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderSource]]''' || {{Version_2_0}} || [[glShaderSourceARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilFunc]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilFuncSeparate]]''' || {{Version_2_0}} || - || - || [[glStencilFuncSeparateATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilMask]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilMaskSeparate]]''' || {{Version_2_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilOp]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilOpSeparate]]''' || {{Version_2_0}} || - || - || [[glStencilOpSeparateATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSwizzleEXT]]''' || - || - || [[glSwizzleEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== T ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTangentPointerEXT]]''' || - || - || [[glTangentPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexBuffer]]''' || {{Version_3_1}} || [[glTexBufferARB]]{{altIcon}} || [[glTexBufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexCoord]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexCoordPointer]]''' || {{Version_1_1}} || - || [[glTexCoordPointerEXT]]{{altIcon}} || [[glTexCoordPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexEnv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexGen]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage1D]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage2D]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage2DMultisample]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage3D]]''' || {{Version_1_2}} || - || [[glTexImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage3DMultisample]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexParameter]]''' || {{Version_1_0}} || - || [[glTexParameterIEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage1D]]''' || {{Version_1_0}} || - || [[glTexSubImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage2D]]''' || {{Version_1_0}} || - || [[glTexSubImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage3D]]''' || {{Version_1_2}} || - || [[glTexSubImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureBufferEXT]]''' || - || - || [[glTextureBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureImageEXT]]''' || - || - || [[glTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureLightEXT]]''' || - || - || [[glTextureLightEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureMaterialEXT]]''' || - || - || [[glTextureMaterialEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureNormalEXT]]''' || - || - || [[glTextureNormalEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureParameterEXT]]''' || - || - || [[glTextureParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureRenderbufferEXT]]''' || - || - || [[glTextureRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureSubImageEXT]]''' || - || - || [[glTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTransformFeedbackVaryings]]''' || {{Version_3_0}} || - || [[glTransformFeedbackVaryingsEXT]]{{altIcon}} || [[glTransformFeedbackVaryingsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTranslate]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniform]]''' || {{Version_2_0}} || [[glUniformARB]]{{altIcon}} || [[glUniformEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformBlockBinding]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformBufferEXT]]''' || - || - || [[glUniformBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformMatrix]]''' || {{Version_2_0}} || [[glUniformMatrixARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformSubroutines]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnlockArraysEXT]]''' || - || - || [[glUnlockArraysEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnmapBuffer]]''' || {{Version_1_5}} || [[glUnmapBufferARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnmapNamedBufferEXT]]''' || - || - || [[glUnmapNamedBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUseProgram]]''' || {{Version_2_0}} || [[glUseProgramObjectARB]]{{altIcon}} ||- || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== V ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glValidateProgram]]''' || {{Version_2_0}} || [[glValidateProgramARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVariantEXT]]''' || - || - || [[glVariantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVariantPointerEXT]]''' || - || - || [[glVariantPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttrib]]''' || {{Version_2_0}} || [[glVertexAttribARB]]{{altIcon}} || [[glVertexAttribEXT]]{{altIcon}} || [[glVertexAttribNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttribDivisor]]''' || {{Version_3_3}} || [[glVertexAttribDivisorARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttribPointer]]''' || {{Version_2_0}} || [[glVertexAttribPointerARB]]{{altIcon}} || [[glVertexAttribPointerEXT]]{{altIcon}} || [[glVertexAttribPointerNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexBlendARB]]''' || - || [[glVertexBlendARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexPointer]]''' || {{Version_1_1}} || - || [[glVertexPointerEXT]]{{altIcon}} || [[glVertexPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexWeightEXT]]''' || - || - || [[glVertexWeightEXT]] || [[glVertexWeightNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexWeightPointerEXT]]''' || - || - || [[glVertexWeightPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glViewport]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== W ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWaitSync]]''' || {{Version_3_2}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWeightARB]]''' || - || [[glWeightARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWeightPointerARB]]''' || - || [[glWeightPointerARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWindowPos]]''' || {{Version_1_4}} || [[glWindowPosARB]]{{altIcon}} || -  || [[glWindowPosMESA]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWriteMaskEXT]]''' || - || - || [[glWriteMaskEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenGL Parameter-Tabellen ===&lt;br /&gt;
Die nachfolgenden Listen enthalten Parameter- bzw. Typbeschreibungen, die bei vielen OpenGL-Funktionen immer wieder auftauchen.&lt;br /&gt;
&lt;br /&gt;
[[internes Pixelformat|interne Pixelformate]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pixelformat|Pixelformate]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pixeldatentyp|Datentypen für Pixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GLU|GLU]] ==&lt;br /&gt;
(Was ist die [[GLU]]?)&lt;br /&gt;
&lt;br /&gt;
=== B ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginSurface]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginTrim]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild1DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild2DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild3DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluCylinder]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteNurbsRenderer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteQuadric]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteTess]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDisk]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndSurface]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndTrim]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluErrorString]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetNurbsProperty]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetTessProperty]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== L ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluLoadSamplingMatrices]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluLookAt]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== N ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewNurbsRenderer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewQuadric]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewTess]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNextContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsProperty]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsSurface]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== O ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluOrtho2D]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== P ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPartialDisk]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPerspective]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPickMatrix]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluProject]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPwlCurve]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricDrawStyle]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricNormals]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricOrientation]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricTexture]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluScaleImage]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluSphere]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== T ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessBeginContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessBeginPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessEndContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessEndPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessNormal]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessProperty]]''' {{icpIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessVertex]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluUnProject]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GLX|GLX]] ==&lt;br /&gt;
(Was ist die [[GLX]]?)&lt;br /&gt;
&lt;br /&gt;
''Als Quelle für die Übersetzung weiterer Befehlsspezifikationen kann diese Sammlung verwendet werden: [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glx/ OpenGL.org GLX Manpages]''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXChooseFBConfig]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXChooseVisual]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCopyContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateGLXPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateNewContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreatePbuffer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreatePixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateWindow]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyGLXPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyPbuffer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyWindow]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== F ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXFreeContextEXT]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetClientString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetConfig]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentContextIDEXT]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentDisplay]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentReadDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetFBConfigAttrib]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetFBConfigs]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetProcAddress]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetSelectedEvent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetVisualFromFBConfig]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXImportContextEXT]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXIntro]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXIsDirect]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXMakeContextCurrent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXMakeCurrent]]''' || - || - || - || -&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryContextInfoEXT]]''' || - || - || [[glXQueryContextInfoEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryExtension]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryExtensionsString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryServerString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryVersion]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXSelectEvent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXSwapBuffers]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXUseXFont]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== W ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXWaitGL]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXWaitX]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:WGL|WGL]] ==&lt;br /&gt;
(Was ist die [[WGL]]?)&lt;br /&gt;
&lt;br /&gt;
''Als Quelle für die Übersetzung weiterer Befehlsspezifikationen kann diese Sammlung verwendet werden: [http://floyd.atc.no/Docs/OpenGL/man-pages/WGLmanpages/ floyd.atc.no WGL Manpages]''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglChoosePixelFormatARB]]''' || - || [[wglChoosePixelFormatARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCopyContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateBufferRegionEXT]]''' || - || - || [[wglCreateBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateLayerContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreatePbufferARB]]''' || - || [[wglCreatePbufferARB]] || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDeleteBufferRegionEXT]]''' || - || - || [[wglDeleteBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDeleteContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDestroyPbufferARB]]''' || - || [[wglDestroyPbufferARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDescribeLayerPlane]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentDC]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentReadDC]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetExtensionsStringARB]]''' || - || [[wglGetExtensionsStringARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetLayerPaletteEntries]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPbufferDCARB]]''' || - || [[wglGetPbufferDCARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPixelFormatAttribARB]]''' || - || [[wglGetPixelFormatAttribARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPixelFormatAttribEXT]]''' || - || - || [[wglGetPixelFormatAttrixEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetProcAddress]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglMakeCurrent]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglMakeCurrentContextEXT]]''' || - || - || [[wglMakeCurrentContextEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglQueryPbufferARB]]''' || - || [[wglQueryPbufferARB]] || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== R ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglRealizeLayerPalette]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglReleasePbufferDCARB]]''' || - || [[wglReleasePbufferDCARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglRestoreBufferRegionEXT]]''' || - || - || [[wglRestoreBufferRegionEXT]] || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSaveBufferRegionEXT]]''' || - || - || [[wglSaveBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSetLayerPaletteEntries]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglShareLists]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSwapIntervalEXT]]''' || - || - || [[wglSwapIntervalEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSwapLayerBuffers]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglUseFontBitmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglUseFontOutlines]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Externe Funktionen ==&lt;br /&gt;
Hier sind alle Funktionen zu finden, die zwar direkt nichts mit OpenGL zu tun haben, aber trotzdem im Normalfall zur Nutzung der GL benötigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Win32 Funktionen ===&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[ChoosePixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[DescribePixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[GetLastError]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[getObject]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[GetPixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[SetPixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[SwapBuffers]]'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux / Unix Funktionen ===&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XCloseDisplay]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XDefaultScreen]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XOpenDisplay]]'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Siehe auch===&lt;br /&gt;
[[OpenAL-Funktionsübersicht]], [[SDL-Funktionsübersicht]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=OpenGL-Funktions%C3%BCbersicht&amp;diff=25319</id>
		<title>OpenGL-Funktionsübersicht</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=OpenGL-Funktions%C3%BCbersicht&amp;diff=25319"/>
				<updated>2011-07-27T16:56:54Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* S */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Bild:Opengl_logo.png|right|200px]]&lt;br /&gt;
== Hinweise für Helfer ==&lt;br /&gt;
&lt;br /&gt;
=== Was hier hinein gehört ===&lt;br /&gt;
&lt;br /&gt;
Um eine Funktionsübersicht aller OpenGL Funktionen zu erreichen die inhaltlich korrekt ist, sollten die [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL.tar.gz  orginal Spezifikationen] von OpenGL.org übersetzt werden([[Link#OpenGL_Funktionen|Alternative Quellen]]).  &lt;br /&gt;
&lt;br /&gt;
Allerdings sind hier auch glu-/wgl- und glx-Funktionen erlaubt. Konstanten bitte nicht hier im Inhaltsverzeichnis einfügen, genausowenig wie [[OpenGL-Extensions]].&lt;br /&gt;
&lt;br /&gt;
Die Funktionen sind bereits nach Gruppen sortiert (GL/GLU/etc.). Sollten Funktionen noch nicht in der Übersicht auftauchen, welche aber definitiv existieren, können diese nachgetragen werden. Funktionen die es in verschiedenen Ausprägungen gibt, werden ohne Parameterangabe eingetragen (also glVertex statt glVertex3f).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bitte haltet euch bei der Formatierung der Befehlsbeschreibung an die [[Funktionsvorlage]] (ich führe hier mal glBegin als Beispiel an), und erklärt nicht mehr als nötig. &lt;br /&gt;
Wenn ihr also einen Befehl habt der etwas mit VertexArrays zu tun hat, dann gehört dort '''nicht''' hinein was ein VertexArray ist oder bringt. Das gehört dann nach [[Techniken und Algorithmen]] oder [[Hintergrundwissen]] (je nach Thematik) und sollte dann in der Funktionsbeschreibung als ''interner Link'' untergebracht werden.&lt;br /&gt;
&lt;br /&gt;
'''Zu aller erst sollte die Orginalspezifikation übersetzt werden''' und erst dann eigene Hinweise untergebracht werden (z.B. Erfahrungen, typische Fehler etc.)&lt;br /&gt;
&lt;br /&gt;
===Artikel-Vorlage===&lt;br /&gt;
'''Wichtiger Hinweis ''' : Bei der Funktionsübersicht ist v.a. eine einheitliche Gliederung der Artikel wichtig. Deshalb haltet euch bitte an '''[[Funktionsvorlage|folgende Vorlage]]'''!&lt;br /&gt;
&lt;br /&gt;
===Kategorisieren von Artikeln===&lt;br /&gt;
Das Wiki ermöglicht es einen Artikel einer Kategorie zuzuordnen. Diese Möglichkeit sollte von Artikelschreibern genutzt werden.&lt;br /&gt;
Man ordnet einen Artikel einer Kategorie zu, in dem man '''am Ende des Artikels einen Link zu der Kategrie erstellt''' der er zugeordnet werden soll:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+Beispiel&lt;br /&gt;
|&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellspacing=&amp;quot;4&amp;quot;&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;[[Kategorie:GL|Name ohne &amp;quot;gl&amp;quot;]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das sind die neuen Kategorien:&lt;br /&gt;
*[[:Kategorie:GL]]&lt;br /&gt;
*[[:Kategorie:GLU]]&lt;br /&gt;
*[[:Kategorie:GLX]]&lt;br /&gt;
*[[:Kategorie:WGL]]&lt;br /&gt;
&lt;br /&gt;
Falls die Funktion bereits zum GL-Kern gehört kommt noch folgender Eintrag hinzu: &amp;lt;nowiki&amp;gt;[[Kategorie:GLx.x]]&amp;lt;/nowiki&amp;gt; wobei das x.x durch die GL-Versionsnummer (z.B. &amp;quot;1.2&amp;quot; oder &amp;quot;2.0&amp;quot;), seit dem die Funktion dabei ist, ersetzt wird.&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GL|GL]] ==&lt;br /&gt;
Abkürzung für '''G'''raphics '''L'''ibrary, hierunter fallen alle Funktionen die direkter Bestandteil (entweder als Kernfunktion oder über Extensions) der OpenGL sind.&lt;br /&gt;
Hartnäckige Gerüchte, '''GL''' stünde für Glide und somit OpenGL für Open Glide, sind schlichtweg falsch, erfreuen sich jedoch immernoch großer Beliebtheit.&lt;br /&gt;
&lt;br /&gt;
=== Versionsspezifische Listen ===&lt;br /&gt;
Hier findet ihre Listen von Funktionen die in einer bestimmten OpenGL Version verfügbar sind. Wenn ihr also z.B. ein Programm für OpenGL3.0 schreiben wollt, dürft ihr nur die Funktionen verwenden, die in der 3.0-Liste enthalten sind.&lt;br /&gt;
&lt;br /&gt;
*[[OpenGL2.1-Funktionsübersicht]]&lt;br /&gt;
*[[OpenGL3-Funktionsübersicht]]&lt;br /&gt;
*[[OpenGL4-Funktionsübersicht]]&lt;br /&gt;
&lt;br /&gt;
=== A ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAccum]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glActiveStencilFaceEXT]]''' || - || - || [[glActiveStencilFaceEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glActiveTexture]]''' || {{Version_1_3}} || [[glActiveTextureARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAddSwapHintRectWIN]]''' || - || - || - || [[glAddSwapHintRectWIN]]&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAlphaFunc]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glApplyTextureEXT]]''' || - || - || [[glApplyTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAreTexturesResident]]''' || {{Version_1_1}} || - || [[glAreTexturesResidentEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glArrayElement]]''' || {{Version_1_1}} || - || [[glArrayElementEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glAttachShader]]''' || {{Version_2_0}}  || [[glAttachObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== B ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBegin]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginConditionalRender]]''' || {{Version_3_0}} || - || - || [[glBeginConditionalRenderNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginQuery]]''' || {{Version_1_5}} || [[glBeginQueryARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginSceneEXT]]''' || - || - || [[glBeginSceneEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginTransformFeedback]]''' || {{Version_3_0}} || - || [[glBeginTransformFeedbackEXT]]{{altIcon}} || [[glBeginTransformFeedbackNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBeginVertexShaderEXT]]''' || - || - || [[glBeginVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindAttribLocation]]''' || {{Version_2_0}} || [[glBindAttribLocationARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBuffer]]''' || {{Version_1_5}} || [[glBindBufferARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferBase]]''' || {{Version_3_0}} || - || [[glBindBufferBaseEXT]]{{altIcon}} || [[glBindBufferBaseNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferOffsetEXT]]''' || - || - || [[glBindBufferOffsetEXT]] || [[glBindBufferOffsetNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindBufferRange]]''' || {{Version_3_0}} || - || [[glBindBufferRangeEXT]]{{altIcon}} || [[glBindBufferRangeNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFragDataLocation]]''' || {{Version_3_0}} || - || [[glBindFragDataLocationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFragDataLocationIndexed]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindFramebuffer]]''' || {{Version_3_0}} || - || [[glBindFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindLightParameterEXT]]''' || - || - || [[glBindLightParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindMaterialParameterEXT]]''' || - || - || [[glBindMaterialParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindMultiTextureEXT]]''' || - || - || [[glBindMultiTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindParameterEXT]]''' || - || - || [[glBindParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindProgramARB]]''' || - || [[glBindProgramARB]] || - || [[glBindProgramNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindRenderbuffer]]''' || {{Version_3_0}} || - || [[glBindRenderbufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindSampler]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTexGenParameterEXT]]''' || - || - || [[glBindTexGenParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTexture]]''' || {{Version_1_1}} || - || [[glBindTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindTextureUnitParameterEXT]]''' || - || - || [[glBindTextureUnitParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindVertexArray]]''' || {{Version_3_0}} || - || - || [[glBindVertexArrayAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBindVertexShaderEXT]]''' || - || - || [[glBindVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBinormalPointerEXT]]''' || - || - || [[glBinormalPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBitmap]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendColor]]''' || {{Version_1_2}} || - || [[glBlendColorEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendEquation]]''' || {{Version_1_2}} || - || [[glBlendEquationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendEquationSeparate]]''' || {{Version_2_0}} || - || [[glBlendEquationSeparateEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendFunc]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlendFuncSeparate]]''' || {{Version_1_4}} || - || [[glBlendFuncSeparateEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBlitFramebuffer]]''' || {{Version_3_0}} || - || [[glBlitFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferData]]''' || {{Version_1_5}} || [[glBufferDataARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferRegionEnabledEXT]]''' || - || - || [[glBufferRegionEnabledEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glBufferSubData]]''' || {{Version_1_5}} || [[glBufferSubDataARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCallList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCallLists]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCheckFramebufferStatus]]''' || {{Version_3_0}} || - || [[glCheckFramebufferStatusEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCheckNamedFramebufferStatusEXT]]''' || - || - || [[glCheckNamedFramebufferStatusEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClampColor]]''' || {{Version_3_0}} || [[glClampColorARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClear]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearAccum]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearBuffer]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearColor]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearDepth]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearIndex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClearStencil]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientActiveTexture]]''' || {{Version_1_3}} || [[glClientActiveTextureARB]]{{altIcon}} || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientAttribDefaultEXT]]''' || - || - || [[glClientAttribDefaultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClientWaitSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glClipPlane]]'''{{excIcon}} || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColor]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMask]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMaskIndexedEXT]]''' || - || - || [[glColorMaskIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorMaterial]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorPointer]]''' || {{Version_1_1}} || - || [[glColorPointerEXT]]{{altIcon}} || [[glColorPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorSubTable]]''' || {{Version_1_2}} || - || [[glColorSubTableEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorTable]]''' || {{Version_1_2}} || - || [[glColorTableEXT]]{{altIcon}} || [[glColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glColorTableParameter]]''' || {{Version_1_2}}|| - || - || [[glColorTableParameterSGI]]{{altIcon}} &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompileShader]]''' || {{Version_2_0}} || [[glCompileShaderARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedMultiTexImageEXT]]''' || - || - || [[glCompressedMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedMultiTexSubImageEXT]]''' || - || - || [[glCompressedMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTexImage]]''' || {{Version_1_3}} || [[glCompressedTexImageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTexSubImage]]''' || {{Version_1_3}} || [[glCompressedTexSubImageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTextureImageEXT]]''' || - || - || [[glCompressedTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCompressedTextureSubImageEXT]]''' || - || - || [[glCompressedTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionFilter1D]]''' || {{Version_1_2}} || - || [[glConvolutionFilter1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionFilter2D]]''' || {{Version_1_2}} || - || [[glConvolutionFilter2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glConvolutionParameter]]''' || {{Version_1_2}} || - || [[glConvolutionParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyBufferSubData]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyColorSubTable]]''' || {{Version_1_2}} || - || [[glCopyColorSubTableEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyColorTable]]''' || {{Version_1_2}} || - || - || [[glCopyColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyConvolutionFilter]]''' || {{Version_1_2}} || - || [[glCopyConvolutionFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyMultiTexImageEXT]]''' || - || - || [[glCopyMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyMultiTexSubImageEXT]]''' || - || - || [[glCopyMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyPixels]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexImage1D]]''' || {{Version_1_1}} || - || [[glCopyTexImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexImage2D]]''' || {{Version_1_1}} || - || [[glCopyTexImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage1D]]''' || {{Version_1_1}} || - || [[glCopyTexSubImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage2D]]''' || {{Version_1_1}} || - || [[glCopyTexSubImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTexSubImage3D]]''' || {{Version_1_2}} || - || [[glCopyTexSubImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTextureImageEXT]]''' || - || - || [[glCopyTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCopyTextureSubImageEXT]]''' || - || - || [[glCopyTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCreateProgram]]''' || {{Version_2_0}} || [[glCreateProgramObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCreateShader]]''' || {{Version_2_0}} || [[glCreateShaderObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCullFace]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCullParameterEXT]]''' || - || - || [[glCullParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glCurrentPaletteMatrixARB]]''' || - || [[glCurrentPaletteMatrixARB]] || - || -&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteBufferRegionEXT]]''' || - || - || [[glDeleteBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteBuffers]]''' || {{Version_1_5}} || [[glDeleteBuffersARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteFramebuffers]]''' || {{Version_3_0}} || - || [[glDeleteFramebuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteLists]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteProgram]]''' || {{Version_2_0}} || [[glDeleteObjectARB]] {{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteProgramsARB]]''' || - || [[glDeleteProgramsARB]] || - || [[glDeleteProgramsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteQueries]]''' || {{Version_1_5}} || [[glDeleteQueriesARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteRenderbuffers]]''' || {{Version_3_0}} || - || [[glDeleteRenderbuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteSamplers]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteShader]]''' || {{Version_2_0}} || [[glDeleteObjectARB]] {{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteTextures]]''' || {{Version_1_1}} || - || [[glDeleteTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteVertexArrays]]''' || {{Version_3_0}} || - || - || [[glDeleteVertexArraysAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDeleteVertexShaderEXT]]''' || - || - || [[glDeleteVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthBoundsEXT]]''' || - || - || [[glDepthBoundsEXT]] || [[glDepthBoundsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthFunc]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthMask]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDepthRange]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDetachShader]]''' || {{Version_2_0}} || [[glDetachObjectARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisable]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableClientState]]''' || {{Version_1_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableClientStateIndexedEXT]]''' || - || - || [[glDisableClientStateIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableIndexedEXT]]''' || - || - || [[glDisableIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableVariantClientStateEXT]]''' || - || - || [[glDisableVariantClientStateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDisableVertexAttribArray]]''' || {{Version_2_0}} || [[glDisableVertexAttribArrayARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawArrays]]''' || {{Version_1_1}} || - || [[glDrawArraysEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawArraysInstanced]]''' || {{Version_3_1}} || [[glDrawArraysInstancedARB]] || [[glDrawArraysInstancedEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBuffer]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBufferRegionEXT]]''' || - || - || [[glDrawBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawBuffers]]''' || {{Version_2_0}} || [[glDrawBuffersARB]]{{altIcon}} || - || [[glDrawBuffersATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElements]]''' || {{Version_1_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsInstanced]]''' || {{Version_3_1}} || [[glDrawElementsInstancedARB]] || [[glDrawElementsInstancedEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawElementsInstancedBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawPixels]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawRangeElements]]''' || {{Version_1_2}} || - || [[glDrawRangeElementsEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glDrawRangeElementsBaseVertex]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEdgeFlag]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEdgeFlagPointer]]''' || {{Version_1_1}} || - || [[glEdgeFlagPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnable]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableClientState]]''' || {{Version_1_1}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableClientStateIndexedEXT]]''' || - || - || [[glEnableClientStateIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableIndexedEXT]]''' || - || - || [[glEnableIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableVariantClientStateEXT]]''' || - || - || [[glEnableVariantClientStateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnableVertexAttribArray]]''' || {{Version_2_0}} || [[glEnableVertexAttribArrayARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEnd]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndConditionalRender]]''' || {{Version_3_0}} || - || - || [[glEndConditionalRenderNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndQuery]]''' || {{Version_1_5}} || [[glEndQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndSceneEXT]]''' || - || - || [[glEndSceneEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndTransformFeedback]]''' || {{Version_3_0}} || - || [[glEndTransformFeedbackEXT]]{{altIcon}} || [[glEndTransformFeedbackNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEndVertexShaderEXT]]''' || - || - || [[glEndVertexShaderEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalCoord]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalMesh]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glEvalPoint]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glExtractComponentEXT]]''' || - || - || [[glExtractComponentEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== F ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFeedbackBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFenceSync]]''' || {{Version_3_2}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFinish]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFlush]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFlushMappedBufferRange]]''' || {{Version_3_0}} || - || - || [[glFlushMappedBufferRangeAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFog]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFogCoord]]''' || {{Version_1_4}} || - || [[glFogCoordEXT]]{{altIcon}}  || [[glFogCoordNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFogCoordPointer]]''' || {{Version_1_4}} || - || [[glFogCoordPointerEXT]]{{altIcon}}  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentColorMaterialEXT]]''' || - || - || [[glFragmentColorMaterialEXT]]  || [[glFragmentColorMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentLightEXT]]''' || - || - || [[glFragmentLightEXT]]  || [[glFragmentLightSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentLightModelEXT]]''' || - || - || [[glFragmentLightModelEXT]]  || [[glFragmentLightModelSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFragmentMaterialEXT]]''' || - || - || [[glFragmentMaterialEXT]]  || [[glFragmentMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferDrawBufferEXT]]''' || - || - || [[glFramebufferDrawBufferEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferDrawBuffersEXT]]''' || - || - || [[glFramebufferDrawBuffersEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferReadBufferEXT]]''' || - || - || [[glFramebufferReadBufferEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferRenderBuffer]]''' || {{Version_3_0}} || - || [[glFrameBufferRenderBufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTexture]]''' || {{Version_3_0}} || [[glFramebufferTextureARB]]{{altIcon}} || [[glFramebufferTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture1D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture2D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrameBufferTexture3D]]''' || {{Version_3_0}} || - || [[glFrameBufferTexture3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTextureFaceARB]]''' || - || [[glFramebufferTextureFaceARB]] || [[glFramebufferTextureFaceEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFramebufferTextureLayer]]''' || {{Version_3_0}} || [[glFramebufferTextureLayerARB]]{{altIcon}} || [[glFramebufferTextureLayerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrontFace]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glFrustum]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenBuffers]]''' || {{Version_1_5}} || [[glGenBuffersARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateMipmap]]''' || {{Version_3_0}} || - || [[glGenerateMipmapEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateMultiTexMipmapEXT]]''' || - || - || [[glGenerateMultiTexMipmapEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenerateTextureMipmapEXT]]''' || - || - || [[glGenerateTextureMipmapEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenFramebuffers]]''' || {{Version_3_0}} || - || [[glGenFramebuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenLists]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenProgramsARB]]''' || - || [[glGenProgramsARB]] || -  || [[glGenProgramsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenQueries]]''' || {{Version_1_5}} || [[glGenQueriesARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenRenderbuffers]]''' || {{Version_3_0}} || - || [[glGenRenderbuffersEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenSamplers]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenSymbolsEXT]]''' || - || - || [[glGenSymbolsEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenTextures]]''' || {{Version_1_1}} || - || [[glGenTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenVertexArrays]]''' || {{Version_3_0}} || - || - || [[glGenVertexarraysAPPLE]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGenVertexShadersEXT]]''' || - || - || [[glGenVertexShadersEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGet]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveAttrib]]''' || {{Version_2_0}} || [[glGetActiveAttribARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineName]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineUniform]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveSubroutineUniformName]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniform]]''' || {{Version_2_0}} || [[glGetActiveUniformARB]] {{altIcon}}|| -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformBlock]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformBlockName]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniformName]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetActiveUniforms]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetAttachedShaders]]''' || {{Version_2_0}} || [[glGetAttachedObjectsARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetAttribLocation]]''' || {{Version_2_0}} || [[glGetAttribLocationARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBooleanv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBooleanIndexedEXT]]''' || - || - || [[glGetBooleanIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferParameter]]''' || {{Version_1_5}} || [[glGetBufferParameterARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferPointerv]]''' || {{Version_1_5}} || [[glGetBufferPointerARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetBufferSubData]]''' || {{Version_1_5}} || [[glGetBufferSubDataARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetClipPlane]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetColorTable]]''' || {{Version_1_2}} || - || [[glGetColorTableEXT]]{{altIcon}} || [[glGetColorTableSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetColorTableParameter]]''' || {{Version_1_2}} || - || [[glGetColorTableParameterEXT]]{{altIcon}} || [[glGetColorTableParameterSGI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedMultiTexImageEXT]]''' || - || - || [[glGetCompressedMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedTexImage]]''' || {{Version_1_3}} || [[glGetCompressedTexImageARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetCompressedTextureImageEXT]]''' || - || - || [[glGetCompressedTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetConvolutionFilter]]''' || {{Version_1_2}} || - || [[glGetConvolutionFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetConvolutionParameter]]''' || {{Version_1_2}} || - || [[glGetConvolutionParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetDoublev]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetDoubleIndexedEXT]]''' || - || - || [[glGetDoubleIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetError]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFloatv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFloatIndexedEXT]]''' || - || - || [[glGetFloatIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragDataLocation]]''' || {{Version_3_0}} || - || [[glGetFragDataLocationEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragmentLightEXT]]''' || - || - || [[glGetFragmentLightEXT]] || [[glGetFragmentLightSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFragmentMaterialEXT]]''' || - || - || [[glGetFragmentMaterialEXT]] || [[glGetFragmentMaterialSGIX]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFramebufferAttachmentParameter]]''' || {{Version_3_0}} || - || [[glGetFramebufferAttachmentParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetFramebufferParameterEXT]]''' || - || - || [[glGetFramebufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|''als Parameter von [[glGet#GL_CURRENT_PROGRAM|glGet]]'' || {{Version_2_0}} || [[glGetHandleARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetHistogram]]''' || {{Version_1_2}} || - || [[glGetHistogramEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetHistogramParameter]]''' || {{Version_1_2}} || - || [[glGetHistogramParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetIntegerv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetIntegerIndexedEXT]]''' || - || - || [[glGetIntegerIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantBooleanEXT]]''' || - || - || [[glGetInvariantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantFloatEXT]]''' || - || - || [[glGetInvariantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetInvariantIntegerEXT]]''' || - || - || [[glGetInvariantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLight]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantBooleanEXT]]''' || - || - || [[glGetLocalConstantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantFloatEXT]]''' || - || - || [[glGetLocalConstantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetLocalConstantIntegerEXT]]''' || - || - || [[glGetLocalConstantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMaterial]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMinmax]]''' || {{Version_1_2}} || - || [[glGetMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMinmaxParameter]]''' || {{Version_1_2}} || - || [[glGetMinmaxParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultisample]]''' || {{Version_3_2}} || - || -  || [[glGetMultisampleNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexEnvEXT]]''' || - || - || [[glGetMultiTexEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexGenEXT]]''' || - || - || [[glGetMultiTexGenEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexImageEXT]]''' || - || - || [[glGetMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexLevelParameterEXT]]''' || - || - || [[glGetMultiTexLevelParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetMultiTexParameterEXT]]''' || - || - || [[glGetMultiTexParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferParameterEXT]]''' || - || - || [[glGetNamedBufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferPointerEXT]]''' || - || - || [[glGetNamedBufferPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedBufferSubDataEXT]]''' || - || - || [[glGetNamedBufferSubDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedFramebufferAttachmentParameterEXT]]''' || - || - || [[glGetNamedFramebufferAttachmentParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramEXT]]''' || - || - || [[glGetNamedProgramEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramLocalParameterEXT]]''' || - || - || [[glGetNamedProgramLocalParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedProgramStringEXT]]''' || - || - || [[glGetNamedProgramStringEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetNamedRenderbufferParameterEXT]]''' || - || - || [[glGetNamedRenderbufferParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPixelMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPixelTransformParameterEXT]]''' || - || - || [[glGetPixelTransformParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPointerv]]''' || {{Version_1_0}} || - || [[glGetPointervEXT]]{{altIcon}}  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPointerIndexedEXT]]''' || - || - || [[glGetPointerIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetPolygonStipple]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgram]]''' || {{Version_2_0}} || [[glGetObjectParameterARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramARB]]''' || - || [[glGetProgramARB]] || - || [[glGetProgramNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramEnvParameterARB]]''' || - || [[glGetProgramEnvParameterARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramInfoLog]]''' || {{Version_2_0}} || [[glGetInfoLogARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramLocalParameterARB]]''' || - || [[glGetProgramLocalParameterARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramStage]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetProgramStringARB]]''' || - || [[glGetProgramStringARB]] || -  || [[glGetProgramStringNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetQueryiv]]''' || {{Version_1_5}} || [[glGetQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetQueryObject]]''' || {{Version_1_5}} || [[glGetQueryObjectARB]]{{altIcon}} || [[glGetQueryObjectEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetRenderbufferParameter]]''' || {{Version_3_0}} || - || [[glGetRenderbufferParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSamplerParameter]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSeparableFilter]]''' || {{Version_1_2}} || - || [[glGetSeparableFilterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShader]]''' || {{Version_2_0}} || [[glGetObjectParameterARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShaderInfoLog]]''' || {{Version_2_0}} || [[glGetInfoLogARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetShaderSource]]''' || {{Version_2_0}} || [[glGetShaderSourceARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetString]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSubroutineIndex]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSubroutineUniformLocation]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexEnv]]''' || {{Version_1_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexGen]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexImage]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexLevelParameter]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTexParameter]]''' || {{Version_1_0}} || - || [[glGetTexParameterEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureImageEXT]]''' || - || - || [[glGetTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureLevelParameterEXT]]''' || - || - || [[glGetTextureLevelParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTextureParameterEXT]]''' || - || - || [[glGetTextureParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetTransformFeedbackVarying]]''' || {{Version_3_0}} || - || [[glGetTransformFeedbackVaryingEXT]]{{altIcon}} || [[glGetTransformFeedbackVaryingNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniform]]''' || {{Version_2_0}} || [[glGetUniformARB]]{{altIcon}} || [[glGetUniformEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformBlockIndex]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformBufferSizeEXT]]''' || - || - || [[glGetUniformBufferSizeEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformIndices]]''' || {{Version_3_1}} || - || - || -|&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformLocation]]''' || {{Version_2_0}} || [[glGetUniformLocationARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformOffsetEXT]]''' || - || - || [[glGetUniformOffsetEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetUniformSubroutine]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantBooleanEXT]]''' || - || - || [[glGetVariantBooleanEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantFloatEXT]]''' || - || - || [[glGetVariantFloatEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantIntegerEXT]]''' || - || - || [[glGetVariantIntegerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVariantPointerEXT]]''' || - || - || [[glGetVariantPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVertexAttrib]]''' || {{Version_2_0}} || [[glGetVertexAttribARB]]{{altIcon}} || [[glGetVertexAttribEXT]] || [[glGetVertexAttribNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glGetVertexAttribPointer]]''' || {{Version_2_0}} || [[glGetVertexAttribPointerARB]]{{altIcon}} || -  || [[glGetVertexAttribPointerNV]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== H ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glHint]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glHistogram]]''' || {{Version_1_2}} || - || [[glHistogramEXT]]{{altIcon}}  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexFuncEXT]]''' || - || - || [[glIndexFuncEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexMask]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexMaterialEXT]]''' || - || - || [[glIndexMaterialEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIndexPointer]]''' || {{Version_1_1}} || - || [[glIndexPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInitNames]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInsertComponentEXT]]''' || - || - || [[glInsertComponentEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glInterleavedArrays]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsBuffer]]''' || {{Version_1_5}} || [[glIsBufferARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsEnabled]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsEnabledIndexedEXT]]''' || - || - || [[glIsEnabledIndexedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsFramebuffer]]''' || {{Version_3_0}} || - || [[glIsFramebufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsProgram]]''' || {{Version_2_0}} || [[glIsProgramARB]]{{altIcon}} || - || [[glIsProgramNV]]{{altIcon}} &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsQuery]]''' || {{Version_1_5}} || [[glIsQueryARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsRenderbuffer]]''' || {{Version_3_0}} || - || [[glIsRenderbufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsSampler]]''' || {{Version_3_3}} || - || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsShader]]''' || {{Version_2_0}} || - || -   || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsSync]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsTexture]]''' || {{Version_1_0}} || - || [[glIsTextureEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsVariantEnabledEXT]]''' || - || - || [[glIsVariantEnabledEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glIsVertexArray]]''' || {{Version_3_0}} || - || - || [[glIsVertexArrayAPPLE]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== L ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLight]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLightEnvEXT]]''' || - || - || [[glLightEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLightModel]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLineStipple]]'''{{excIcon}} || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLineWidth]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLinkProgram]]''' || {{Version_2_0}} || [[glLinkProgramARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glListBase]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadIdentity]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLoadTransposeMatrix]]''' || {{Version_1_3}} || [[glLoadTransposeMatrixARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLockArraysEXT]]''' || - || - || [[glLockArraysEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glLogicOp]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMap1]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMap2]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapBuffer]]''' || {{Version_1_5}} || [[glMapBufferARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapBufferRange]]''' || {{Version_3_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapGrid]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMapNamedBufferEXT]]''' || - || - || [[glMapNamedBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMaterial]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixIndexARB]]''' || - || [[glMatrixIndexARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixIndexPointerARB]]''' || - || [[glMatrixIndexPointerARB]] || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixFrustumEXT]]''' || - || - || [[glMatrixFrustumEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadEXT]]''' || - || - || [[glMatrixLoadEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadIdentityEXT]]''' || - || - || [[glMatrixLoadIdentityEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixLoadTransposedEXT]]''' || - || - || [[glMatrixLoadTransposedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMultEXT]]''' || - || - || [[glMatrixMultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixMultTransposedEXT]]''' || - || - || [[glMatrixMultTransposedEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixOrthoEXT]]''' || - || - || [[glMatrixOrthoEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixPopEXT]]''' || - || - || [[glMatrixPopEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixPushEXT]]''' || - || - || [[glMatrixPushEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixRotateEXT]]''' || - || - || [[glMatrixRotateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixScaleEXT]]''' || - || - || [[glMatrixScaleEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMatrixTranslateEXT]]''' || - || - || [[glMatrixTranslateEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMinmax]]''' || {{Version_1_2}} || - || [[glMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawArrays]]''' || {{Version_1_4}} || - || [[glMultiDrawArraysEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawElements]]''' || {{Version_1_4}} || - || [[glMultiDrawElementsEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiDrawElementsBaseVertex]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexBufferEXT]]''' || - || - || [[glMultiTexBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexCoord]]''' || {{Version_1_3}} || [[glMultiTexCoordARB]]{{altIcon}} || -  || [[glMultiTexCoordNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexCoordPointerEXT]]''' || - || - || [[glMultiTexCoordPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexEnvEXT]]''' || - || - || [[glMultiTexEnvEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexGenEXT]]''' || - || - || [[glMultiTexGenEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexImageEXT]]''' || - || - || [[glMultiTexImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexParameterEXT]]''' || - || - || [[glMultiTexParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexRenderbufferEXT]]''' || - || - || [[glMultiTexRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultiTexSubImageEXT]]''' || - || - || [[glMultiTexSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glMultTransposeMatrix]]''' || {{Version_1_3}} || [[glMultTransposeMatrixARB]]{{altIcon}} || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== N ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedBufferDataEXT]]''' || - || - || [[glNamedBufferDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedBufferSubDataEXT]]''' || - || - || [[glNamedBufferSubDataEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferRenderbufferEXT]]''' || - || - || [[glNamedFramebufferRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureEXT]]''' || - || - || [[glNamedFramebufferTextureEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture1DEXT]]''' || - || - || [[glNamedFramebufferTexture1DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture2DEXT]]''' || - || - || [[glNamedFramebufferTexture2DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTexture3DEXT]]''' || - || - || [[glNamedFramebufferTexture3DEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureFaceEXT]]''' || - || - || [[glNamedFramebufferTextureFaceEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedFramebufferTextureLayerEXT]]''' || - || - || [[glNamedFramebufferTextureLayerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedProgramLocalParameterEXT]]''' || - || - || [[glNamedProgramLocalParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedProgramStringEXT]]''' || - || - || [[glNamedProgramStringEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageEXT]]''' || - || - || [[glNamedRenderbufferStorageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageMultisampleEXT]]''' || - || - || [[glNamedRenderbufferStorageMultisampleEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNamedRenderbufferStorageMultisampleCoverageEXT]]''' || - || - || [[glNamedRenderbufferStorageMultisampleCoverageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNewBufferRegionEXT]]''' || - || - || [[glNewBufferRegionEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNewList]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNormal]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glNormalPointer]]''' || {{Version_1_1}} || - || [[glNormalPointerEXT]]{{altIcon}} || [[glNormalPointerINTEL]]{{altIcon}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 0 ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glOrtho]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== P ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPassThrough]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPatchParameter]]''' || {{Version_4_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelMap]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelStore]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelTransfer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelTransformParameterEXT]]''' || - || - || [[glPixelTransformParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPixelZoom]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPointParameter]]''' || {{Version_1_4}} || [[glPointParameterARB]]{{altIcon}} || [[glPointParameterEXT]]{{altIcon}}  || [[glPointParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPointSize]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonOffset]]''' || {{Version_1_0}} || - || [[glPolygonOffsetEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPolygonStipple]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopClientAttrib]]''' || {{Version_1_0}} || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPopName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrimitiveRestart]]''' || {{Version_3_1}} || - || -  || [[glPrimitiveRestartNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrimitiveRestartIndex]]''' || {{Version_3_1}} || - || -  || [[glPrimitiveRestartIndexNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPrioritizeTextures]]''' || {{Version_1_0}} || - || [[glPrioritizeTexturesEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramEnvParameterARB]]''' || - || [[glProgramEnvParameterARB]] || [[glProgramEnvParameterEXT]]{{altIcon}} || [[glProgramEnvParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramLocalParameterARB]]''' || - || [[glProgramLocalParameterARB]] || [[glProgramLocalParameterEXT]]{{altIcon}} || [[glProgramLocalParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramParameterARB]]''' || - || [[glProgramParameterARB]] || [[glProgramParameterEXT]]{{altIcon}}  || [[glProgramParameterNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramStringARB]]''' || - || [[glProgramStringARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramUniformEXT]]''' || - || - || [[glProgramUniformEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProgramUniformMatrixEXT]]''' || - || - || [[glProgramUniformMatrixEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glProvokingVertex]]''' || {{Version_3_2}} || - || [[glProvokingVertexEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushClientAttrib]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushClientAttribDefaultEXT]]''' || - || - || [[glPushClientAttribDefaultEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushMatrix]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glPushName]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glQueryCounter]]''' || {{Version_3_3}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== R ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRasterPos]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadBuffer]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadBufferRegionEXT]]''' || - || - || [[glReadBufferRegionEXT]]  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glReadPixels]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRect]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderbufferStorage]]''' || {{Version_3_0}} || - || [[glRenderbufferStorageEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderbufferStorageMultisample]]''' || {{Version_3_0}} || - || [[glRenderbufferStorageMultisampleEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRenderMode]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glResetHistogram]]''' || {{Version_1_2}} || - || [[glResetHistogramEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glResetMinmax]]''' || {{Version_1_2}} || - || [[glResetMinmaxEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glRotate]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSampleCoverage]]''' || {{Version_1_3}} || [[glSampleCoverageARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSampleMask]]''' || {{Version_3_2}} || - || [[glSampleMaskEXT]]{{altIcon}} || [[glSampleMaskSGIS]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSamplePatternEXT]]''' || - || - || [[glSamplePatternEXT]] || [[glSamplePatternSGIS]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSamplerParameter]]''' || {{Version_3_3}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glScale]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glScissor]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSecondaryColor]]''' || {{Version_1_4}} || - || [[glSecondaryColorEXT]]{{altIcon}} || [[glSecondaryColorNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSecondaryColorPointer]]''' || {{Version_1_4}} || - || [[glSecondaryColorPointerEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSelectBuffer]]''' || {{Version_1_1}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSeparableFilter2D]]''' || {{Version_1_2}} || - || [[glSeparableFilter2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSetInvariantEXT]]''' || - || - || [[glSetInvariantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSetLocalConstantEXT]]''' || - || - || [[glSetLocalConstantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShadeModel]]'''{{excIcon}} || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp1EXT]]''' || - || - || [[glShaderOp1EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp2EXT]]''' || - || - || [[glShaderOp2EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderOp3EXT]]''' || - || - || [[glShaderOp3EXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glShaderSource]]''' || {{Version_2_0}} || [[glShaderSourceARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilFunc]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilFuncSeparate]]''' || {{Version_2_0}} || - || - || [[glStencilFuncSeparateATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilMask]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilMaskSeparate]]''' || {{Version_2_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilOp]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glStencilOpSeparate]]''' || {{Version_2_0}} || - || - || [[glStencilOpSeparateATI]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glSwizzleEXT]]''' || - || - || [[glSwizzleEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== T ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTangentPointerEXT]]''' || - || - || [[glTangentPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexBuffer]]''' || {{Version_3_1}} || [[glTexBufferARB]]{{altIcon}} || [[glTexBufferEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexCoord]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexCoordPointer]]''' || {{Version_1_1}} || - || [[glTexCoordPointerEXT]]{{altIcon}} || [[glTexCoordPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexEnv]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexGen]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage1D]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage2D]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage2DMultisample]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage3D]]''' || {{Version_1_2}} || - || [[glTexImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexImage3DMultisample]]''' || {{Version_3_2}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexParameter]]''' || {{Version_1_0}} || - || [[glTexParameterIEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage1D]]''' || {{Version_1_0}} || - || [[glTexSubImage1DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage2D]]''' || {{Version_1_0}} || - || [[glTexSubImage2DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTexSubImage3D]]''' || {{Version_1_2}} || - || [[glTexSubImage3DEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureBufferEXT]]''' || - || - || [[glTextureBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureImageEXT]]''' || - || - || [[glTextureImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureLightEXT]]''' || - || - || [[glTextureLightEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureMaterialEXT]]''' || - || - || [[glTextureMaterialEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureNormalEXT]]''' || - || - || [[glTextureNormalEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureParameterEXT]]''' || - || - || [[glTextureParameterEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureRenderbufferEXT]]''' || - || - || [[glTextureRenderbufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTextureSubImageEXT]]''' || - || - || [[glTextureSubImageEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTransformFeedbackVaryings]]''' || {{Version_3_0}} || - || [[glTransformFeedbackVaryingsEXT]]{{altIcon}} || [[glTransformFeedbackVaryingsNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glTranslate]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniform]]''' || {{Version_2_0}} || [[glUniformARB]]{{altIcon}} || [[glUniformEXT]]{{altIcon}} || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformBlockBinding]]''' || {{Version_3_1}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformBufferEXT]]''' || - || - || [[glUniformBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformMatrix]]''' || {{Version_2_0}} || [[glUniformMatrixARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUniformSubroutines]]''' || {{Version_4_0}} || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnlockArraysEXT]]''' || - || - || [[glUnlockArraysEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnmapBuffer]]''' || {{Version_1_5}} || [[glUnmapBufferARB]]{{altIcon}} || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUnmapNamedBufferEXT]]''' || - || - || [[glUnmapNamedBufferEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glUseProgram]]''' || {{Version_2_0}} || [[glUseProgramObjectARB]]{{altIcon}} ||- || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== V ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glValidateProgram]]''' || {{Version_2_0}} || [[glValidateProgramARB]]{{altIcon}} || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVariantEXT]]''' || - || - || [[glVariantEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVariantPointerEXT]]''' || - || - || [[glVariantPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertex]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttrib]]''' || {{Version_2_0}} || [[glVertexAttribARB]]{{altIcon}} || [[glVertexAttribEXT]]{{altIcon}} || [[glVertexAttribNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttribDivisor]]''' || {{Version_3_3}} || [[glVertexAttribDivisorARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexAttribPointer]]''' || {{Version_2_0}} || [[glVertexAttribPointerARB]]{{altIcon}} || [[glVertexAttribPointerEXT]]{{altIcon}} || [[glVertexAttribPointerNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexBlendARB]]''' || - || [[glVertexBlendARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexPointer]]''' || {{Version_1_1}} || - || [[glVertexPointerEXT]]{{altIcon}} || [[glVertexPointerINTEL]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexWeightEXT]]''' || - || - || [[glVertexWeightEXT]] || [[glVertexWeightNV]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glVertexWeightPointerEXT]]''' || - || - || [[glVertexWeightPointerEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glViewport]]''' || {{Version_1_0}} || - || -  || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== W ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWaitSync]]''' || {{Version_3_2}} || - || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWeightARB]]''' || - || [[glWeightARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWeightPointerARB]]''' || - || [[glWeightPointerARB]] || -  || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWindowPos]]''' || {{Version_1_4}} || [[glWindowPosARB]]{{altIcon}} || -  || [[glWindowPosMESA]]{{altIcon}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glWriteMaskEXT]]''' || - || - || [[glWriteMaskEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenGL Parameter-Tabellen ===&lt;br /&gt;
Die nachfolgenden Listen enthalten Parameter- bzw. Typbeschreibungen, die bei vielen OpenGL-Funktionen immer wieder auftauchen.&lt;br /&gt;
&lt;br /&gt;
[[internes Pixelformat|interne Pixelformate]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pixelformat|Pixelformate]]&amp;lt;br&amp;gt;&lt;br /&gt;
[[Pixeldatentyp|Datentypen für Pixel]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GLU|GLU]] ==&lt;br /&gt;
(Was ist die [[GLU]]?)&lt;br /&gt;
&lt;br /&gt;
=== B ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginSurface]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBeginTrim]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild1DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild2DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluBuild3DMipmaps]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluCylinder]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteNurbsRenderer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteQuadric]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDeleteTess]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluDisk]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== E ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndSurface]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluEndTrim]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluErrorString]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetNurbsProperty]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluGetTessProperty]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== L ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluLoadSamplingMatrices]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluLookAt]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== N ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewNurbsRenderer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewQuadric]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNewTess]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNextContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsCurve]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsProperty]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluNurbsSurface]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== O ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluOrtho2D]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== P ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPartialDisk]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPerspective]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPickMatrix]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluProject]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluPwlCurve]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricDrawStyle]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricNormals]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricOrientation]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluQuadricTexture]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluScaleImage]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluSphere]]'''{{excIcon}} || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== T ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessBeginContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessBeginPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessCallback]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessEndContour]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessEndPolygon]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessNormal]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessProperty]]''' {{icpIcon}} || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluTessVertex]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[gluUnProject]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:GLX|GLX]] ==&lt;br /&gt;
(Was ist die [[GLX]]?)&lt;br /&gt;
&lt;br /&gt;
''Als Quelle für die Übersetzung weiterer Befehlsspezifikationen kann diese Sammlung verwendet werden: [http://www.opengl.org/documentation/specs/man_pages/hardcopy/GL/html/glx/ OpenGL.org GLX Manpages]''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXChooseFBConfig]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXChooseVisual]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCopyContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateGLXPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateNewContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreatePbuffer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreatePixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXCreateWindow]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyGLXPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyPbuffer]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyPixmap]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXDestroyWindow]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== F ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXFreeContextEXT]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetClientString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetConfig]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentContextIDEXT]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentDisplay]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetCurrentReadDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetFBConfigAttrib]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetFBConfigs]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetProcAddress]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetSelectedEvent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXGetVisualFromFBConfig]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXImportContextEXT]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXIntro]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXIsDirect]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXMakeContextCurrent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXMakeCurrent]]''' || - || - || - || -&lt;br /&gt;
|} &lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryContext]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryContextInfoEXT]]''' || - || - || [[glXQueryContextInfoEXT]] || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryDrawable]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryExtension]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryExtensionsString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryServerString]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXQueryVersion]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXSelectEvent]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXSwapBuffers]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXUseXFont]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== W ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXWaitGL]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[glXWaitX]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== [[:Kategorie:WGL|WGL]] ==&lt;br /&gt;
(Was ist die [[WGL]]?)&lt;br /&gt;
&lt;br /&gt;
''Als Quelle für die Übersetzung weiterer Befehlsspezifikationen kann diese Sammlung verwendet werden: [http://floyd.atc.no/Docs/OpenGL/man-pages/WGLmanpages/ floyd.atc.no WGL Manpages]''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglChoosePixelFormatARB]]''' || - || [[wglChoosePixelFormatARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCopyContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateBufferRegionEXT]]''' || - || - || [[wglCreateBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreateLayerContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglCreatePbufferARB]]''' || - || [[wglCreatePbufferARB]] || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== D ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDeleteBufferRegionEXT]]''' || - || - || [[wglDeleteBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDeleteContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDestroyPbufferARB]]''' || - || [[wglDestroyPbufferARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglDescribeLayerPlane]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== G ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentContext]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentDC]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetCurrentReadDC]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetExtensionsStringARB]]''' || - || [[wglGetExtensionsStringARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetLayerPaletteEntries]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPbufferDCARB]]''' || - || [[wglGetPbufferDCARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPixelFormatAttribARB]]''' || - || [[wglGetPixelFormatAttribARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetPixelFormatAttribEXT]]''' || - || - || [[wglGetPixelFormatAttrixEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglGetProcAddress]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
=== M ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglMakeCurrent]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglMakeCurrentContextEXT]]''' || - || - || [[wglMakeCurrentContextEXT]] || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Q ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglQueryPbufferARB]]''' || - || [[wglQueryPbufferARB]] || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== R ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglRealizeLayerPalette]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglReleasePbufferDCARB]]''' || - || [[wglReleasePbufferDCARB]] || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglRestoreBufferRegionEXT]]''' || - || - || [[wglRestoreBufferRegionEXT]] || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== S ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSaveBufferRegionEXT]]''' || - || - || [[wglSaveBufferRegionEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSetLayerPaletteEntries]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglShareLists]]''' || - || - || - || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSwapIntervalEXT]]''' || - || - || [[wglSwapIntervalEXT]] || - &lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglSwapLayerBuffers]]''' || - || - || - || - &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== U ===&lt;br /&gt;
{|{{Prettytable_B1}} style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
!width=&amp;quot;25%&amp;quot;|Aktuelle Version &lt;br /&gt;
!width=&amp;quot;15%&amp;quot;|Kernfunktion (seit)&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|ARB Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|EXT Entsprechung&lt;br /&gt;
!width=&amp;quot;20%&amp;quot;|Herstellerspezifisch&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglUseFontBitmaps]]''' || - || - || - || -&lt;br /&gt;
|-&lt;br /&gt;
|'''[[wglUseFontOutlines]]''' || - || - || - || -&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Externe Funktionen ==&lt;br /&gt;
Hier sind alle Funktionen zu finden, die zwar direkt nichts mit OpenGL zu tun haben, aber trotzdem im Normalfall zur Nutzung der GL benötigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Win32 Funktionen ===&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[ChoosePixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[DescribePixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[GetLastError]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[getObject]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[GetPixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[SetPixelFormat]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[SwapBuffers]]'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Linux / Unix Funktionen ===&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XCloseDisplay]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XDefaultScreen]]'''&lt;br /&gt;
|-&lt;br /&gt;
|'''[[XOpenDisplay]]'''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Siehe auch===&lt;br /&gt;
[[OpenAL-Funktionsübersicht]], [[SDL-Funktionsübersicht]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glSelectBuffer&amp;diff=25318</id>
		<title>glSelectBuffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glSelectBuffer&amp;diff=25318"/>
				<updated>2011-07-27T16:55:19Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glSelectBuffer =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glSelectBuffer''' - Setzt einen Puffer, um Werte im Selektionsmodus zu speichern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glSelectBuffer'''(''size'' : GLSizei; ''buffer'' : PGLUint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''size''&lt;br /&gt;
| Gibt die Größe des Puffers an.&lt;br /&gt;
|-&lt;br /&gt;
! ''buffer''&lt;br /&gt;
| Speichert die Selektionsdaten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glSelectBuffer''' benötigt zwei Argumente: ''buffer'' ist ein Zeiger auf eine Reihe von vorzeichnelosen Ganzzahlwert, und ''size'' gibt an, wie groß diese Reihe ist. ''buffer'' liefert dann die Werte auf dem Namensstapel (siehe [[glInitNames]], [[glLoadName]] und [[glPushName]]) zurück, sobald der Rendermodus auf '''GL_SELECT''' steht (siehe [[glRenderMode]]). '''glSelectBuffer''' muss vor dem Aktivieren des Selektionsmodus aufgerufen werden und darf nicht während des Renderns im Modus '''GL_SELECT''' aufgerufen werden.&lt;br /&gt;
&lt;br /&gt;
Die Selektion kann genutzt werden, um zu ermitteln, welche [[Primitive|Primitiven]] in welcher Region eines Bildausschnittes gerendert wurden. Diese Region wird durch die aktuelle Modelansichts- und Perspektivenmatrix festgelegt.&lt;br /&gt;
&lt;br /&gt;
Im Selektionsmodus werden keine Pixelfragmente durch die Rasterisierung generiert. Stattdessen erzeugt eine Primitive (oder Rasterposition), die das durch das Betrachterfrustum (und nutzerdefinierte Schnittflächen) festgelegte Schnittvolumen schneidet, einen Selektionstreffer (Polygone, die gecullt werden, erzeugen keine Treffer). Wenn der Namensstapel verändert wird, oder wenn [[glRenderMode]] aufgerufen wird, werden die Treffer in ''buffer'' kopriert, sofern Treffer seit dem letzten passenden Ereignis (Änderung des Namensstapels oder [[glRenderMode]]-Aufruf) Treffer stattfanden. Die Trefferlist besteht aus der Nummer der Namen auf dem Stapel zum Zeitpunkt des Treffer, gefolgt von dem kleinsten und größten Tiefenwert aller Eckpunkte seit dem letzten Treffer und dem Inhalt des Namensstapels, mit dem untersten Namen an erster Stelle.&lt;br /&gt;
&lt;br /&gt;
Tiefenwerte (die zwischen 0 und 1 liegen) werden mit 2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt;-1 multipliziert, bevor sie im Trefferpuffer abgelegt werden.&lt;br /&gt;
&lt;br /&gt;
Ein interner Index in den Puffer wird immer auf 0 gesetzt, sobald man in den Selektionsmodus wechselt. Jedesmal wenn ein Treffer nach ''buffer'' kopiert wird, wird dieser Index erhöht und zeigt auf die Zelle direkt nach dem Ende des Namensblockes, also auf die nächste verfügbare Zelle. Wenn das Trefferregister größer als der verfügbare Platz in ''buffer'' ist, werden so viele Daten kopiert bis dieser Platz aufgebraucht ist, und das Overflow-Flag wird gesetzt. Wenn der Namensstapel beim Kopieren des Trefferregisters leer ist, dann besteht dieser Treffer aus 0, gefolgt von dem kleinsten und größten Tiefenwert.&lt;br /&gt;
&lt;br /&gt;
Um den Selektionsmodus zu verlssen, ruft man [[glRenderMode]] mit einem Argument ungleich '''GL_SELECT''' auf. Sobald [[glRenderMode]] aufgerufen wird, wenn der Modus '''GL_SELECT''' ist, liefert diese Funktion die Zahl der Treffer, die in den Puffer kopiert wurden, zurück, setzt das Overflow-Flag und den Zeiger des Selektionspuffers zurück und leert den Namenssstapel. Wenn das Overflow-Flag beim Aufruf von [[glRenderMode]] gesetzt ist, wird für die Zahl der Treffer ein negativer Wert zurückgeliefert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Der Inhalt von ''buffer'' ist solange undefiniert, bis [[glRenderMode]] mit einem Argument ungleich '''GL_SELECT''' aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
[[glBegin]]/[[glEnd]]-Primitiven und Aufrufe von [[glRasterPos]] können Treffer erzeugen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''size'' negativ ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION'''  wird generiert, wenn '''glSelectBuffer''' aufgerufen wird, solange der Rendermodus '''GL_SELECT''' ist, oder wenn [[glRenderMode]] mit dem Argument '''GL_SELECT''' aufgerufen wird, bevor '''glSelectBuffer''' aufgerufen wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generierte wenn '''glSelectBuffer''' in einem [[glBegin]]/[[glEnd]]-Block aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit dem Argument [[glGet#GL_NAME_STACK_DEPTH|GL_NAME_STACK_DEPTH]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit dem Argument [[glGet#GL_SELECTION_BUFFER_SIZE|GL_SELECTION_BUFFER_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGetPointerv]] mit dem Argument '''GL_SELECTION_BUFFER_POINTER'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glFeedbackBuffer]], [[glInitNames]], [[glLoadName]], [[glPushName]], [[glRenderMode]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|SelectBuffer]]&lt;br /&gt;
[[Kategorie:GL1.0|SelectBuffer]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glColorTable&amp;diff=25317</id>
		<title>glColorTable</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glColorTable&amp;diff=25317"/>
				<updated>2011-07-26T09:21:04Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Link korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glColorTable =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glColorTable''' - definiert eine Lookup-Tabelle für Farben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glColorTable'''(''internalformat'' : GLenum; ''width'' : GLsizei; ''format'' : GLenum;&lt;br /&gt;
                        ''type'' : GLenum; '''const''' ''table'' PGLvoid)&lt;br /&gt;
&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;
! ''target'' &lt;br /&gt;
| Muss einer der folgenden Konstanten sein:  '''GL_COLOR_TABLE''',                '''GL_POST_CONVOLUTION_COLOR_TABLE''', '''GL_POST_COLOR_MATRIX_COLOR_TABLE''', '''GL_PROXY_COLOR_TABLE''', '''GL_PROXY_POST_CONVOLUTION_COLOR_TABLE''' oder '''GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''internalformat'' &lt;br /&gt;
| Die interne Farben-Tabelle. Zulässige Werte sind '''GL_ALPHA''', '''GL_ALPHA4''', '''GL_ALPHA8''', '''GL_ALPHA12''', '''GL_ALPHA16''', '''GL_LUMINANCE''', '''GL_LUMINANCE4''', '''GL_LUMINANCE8''', '''GL_LUMINANCE12''', '''GL_LUMINANCE16''', '''GL_LUMINANCE_ALPHA''', '''GL_LUMINANCE4_ALPHA4''', '''GL_LUMINANCE6_ALPHA2''',                       '''GL_LUMINANCE8_ALPHA8''', '''GL_LUMINANCE12_ALPHA4''', '''GL_LUMINANCE12_ALPHA12''', '''GL_LUMINANCE16_ALPHA16''', '''GL_INTENSITY''', '''GL_INTENSITY4''', '''GL_INTENSITY8''', '''GL_INTENSITY12''', '''GL_INTENSITY16''', '''GL_R3_G3_B2''', '''GL_RGB''',                       '''GL_RGB4''', '''GL_RGB5''', '''GL_RGB8''', '''GL_RGB10''', '''GL_RGB12''', '''GL_RGB16''', '''GL_RGBA''', '''GL_RGBA2''', '''GL_RGBA4''', '''GL_RGB5_A1''', '''GL_RGBA8''', '''GL_RGB10_A2''', '''GL_RGBA12''' und '''GL_RGBA16'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''width''&lt;br /&gt;
| Die Anzahl der Einträge in der Farben-Lookup-Tabelle, die mit ''table'' angegeben wurde.&lt;br /&gt;
|-&lt;br /&gt;
! ''format'' &lt;br /&gt;
| Das Format der Pixeldaten in ''table''. Zulässig sind '''GL_RED''', '''GL_GREEN''', '''GL_BLUE''', '''GL_ALPHA''', '''GL_LUMINANCE''', '''GL_LUMINANCE_ALPHA''', '''GL_RGB''',   '''GL_BGR''', '''GL_RGBA''' und '''GL_BGRA'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''type''&lt;br /&gt;
| Der Typ der Pixeldaten in ''table''. Zulässig sind '''GL_UNSIGNED_BYTE''', '''GL_BYTE''',                       '''GL_UNSIGNED_SHORT, GL_SHORT''', '''GL_UNSIGNED_INT''', '''GL_INT''', '''GL_FLOAT''', '''GL_UNSIGNED_BYTE_3_3_2''', '''GL_UNSIGNED_BYTE_2_3_3_REV''', '''GL_UNSIGNED_SHORT_5_6_5''', '''GL_UNSIGNED_SHORT_5_6_5_REV''', '''GL_UNSIGNED_SHORT_4_4_4_4''', '''GL_UNSIGNED_SHORT_4_4_4_4_REV''', '''GL_UNSIGNED_SHORT_5_5_5_1''', '''GL_UNSIGNED_SHORT_1_5_5_5_REV''', '''GL_UNSIGNED_INT_8_8_8_8''', '''GL_UNSIGNED_INT_8_8_8_8_REV''', '''GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''table''&lt;br /&gt;
| Ein Pointer zu einem eindimensionalen Array mit Pixeldaten, der dazu verwendet wird, die Farbtabelle zu erzeugen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glColorTable''' kann für zwei Methoden verwendet werden: Um die aktuelle Größe und Farb-Auflösung einer Lookup-Tabelle mit einem bestimmten Satz von Parametern zu testen, oder um die Inhalte einer Farbtabelle zu laden. Für den ersten Fall benutze man für die ''target''s '''GL_PROXY_*''', für den zweiten die anderen Konstanten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ''target'' den Wert '''GL_COLOR_TABLE''', '''GL_POST_CONVOLUTION_COLOR_TABLE''' oder       '''GL_POST_COLOR_MATRIX_COLOR_TABLE''' hat, erzeugt '''glColorTable''' eine Farbtabelle aus einem Array von Pixeln. Das Pixelarray - spezifiziert mit ''width'', ''format'', ''type'' und ''table'' - wird aus dem Speicher geholt und verarbeitet, wie wenn [[glDrawPixels]] aufgerufen worden wäre, aber die Verarbeitung hält, nachdem die finale Verarbeitung nach RGBA vervollständigt wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die vier ''scale''- und die vier ''bias''-Parameter, die für die Tabelle angegeben wurden, werden anschließend verwendet, um die R, G, B und A-Komponenten für jedes Pixel zu skalieren und zu beeinflussen. (Man verwende [[glColorTableParameter]], um diese ''scale''- und ''bias''-Parameter zu setzen)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Als nächstes werden die R-, G-, B- und A-Werte an den [0,1]-Bereich angepasst. Jeder Pixel wird dann in das interne Format - angegeben mit ''internalformat'' - konvertiert. Diese Umwandlung verschiebt die Komponenten-Werte von den Pixeln (R, G, B und A) zu den Werten, die mit ''internalformat'' angegeben wurden (rot, grün, blau, alpha, Beleuchtung und Intensität). Das Verschieben verläuft folgendermaßen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! '''Internes Format'''&lt;br /&gt;
| '''Verschobene Komponente'''&lt;br /&gt;
|-&lt;br /&gt;
! '''GL_ALPHA'''&lt;br /&gt;
| A=Alpha&lt;br /&gt;
|-&lt;br /&gt;
! '''GL_LUMINANCE '''&lt;br /&gt;
| R=Luminance&lt;br /&gt;
|-&lt;br /&gt;
! '''GL_LUMINANCE_ALPHA'''&lt;br /&gt;
| A=Alpha, R=Luminance&lt;br /&gt;
|-&lt;br /&gt;
! '''GL_INTENSITY'''&lt;br /&gt;
| R=Intensity&lt;br /&gt;
|-&lt;br /&gt;
! '''GL_RGB'''&lt;br /&gt;
| R=Red, G=Green, B=Blue&lt;br /&gt;
|-&lt;br /&gt;
! '''GL_RGBA'''&lt;br /&gt;
| R=Red, G=Green, B=Blue, A=Alpha&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Zum Schluss werden die roten, blauen, grünen, Beleuchtungs- und/oder Intensitäts-Komponenten des resultierenden Pixels in der Farb-Tabelle gespeichert. Sie bilden eine eindimensionale Tabelle mit Numerierung im Bereich 0 bis ''width - 1''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ''target'' vom Typ '''GL_PROXY_*''' ist, berechnet und speichert '''glColorTable''' die Werte der Proxy-Farb-Tabelle für '''GL_COLOR_TABLE_FORMAT''', '''GL_COLOR_TABLE_WIDTH''', '''GL_COLOR_TABLE_RED_SIZE''', '''GL_COLOR_TABLE_GREEN_SIZE''', '''GL_COLOR_TABLE_BLUE_SIZE''', '''GL_COLOR_TABLE_ALPHA_SIZE''', '''GL_COLOR_TABLE_LUMINANCE_SIZE''' und '''GL_COLOR_TABLE_INTENSITY_SIZE'''. Das hat keine Auswirkungen auf das Bild oder den Zustand irgendeiner aktiven Farbtabelle. Wenn die angegebene Farbtabelle zu groß ist, um unterstützt zu werden, werden alle Proxy-State-Variablen, die oben genannt wurden, auf 0 gesetzt. Anderenfalls wird die Farbtabelle durch '''glColorTable''' unterstützt und die Proxy-State-Variablen werden so gesetzt, als wenn ''target'' festgelegt worden wäre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Proxy-State-Variablen kann man durch einen Aufruf von [[glGetColorTableParameter]] mit dem Token '''GL_PROXY_*''' auslesen. Das macht es dem Programm möglich, zu entscheiden, ob ein bestimmter '''glColorTable'''-Befehl erfolgreich verlaufen würde und um herauszufinden, was die resultierenden Farbtabellen-Attribute wären.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn eine Farbtabelle aktiviert ist und ihre Größe (''width'') nicht gleich 0 ist, dann werden ihre Inhalte dazu verwendet, einen Teil der Komponenten - basierend auf dem internen Format der Tabelle - jeder RGBA-Pixelgruppe zu ersetzen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Jede Pixelgruppe hat Farbkomponenten (R, G, B, A), die im Bereich [0.0,1.0] abgegeben sind. Die Farbkomponenten werden neu auf die Größe der Farbtabelle skaliert. Dann wird ein Teil der Komponenten - basierend auf dem internen Format der Tabelle - durch den Eintrag, der durch ''index'' ausgewählt wurde, ersetzt. Die Farb-Komponenten und -Inhalte der Tabelle hängen folgendermaßen zusammen:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! '''Wert'''&lt;br /&gt;
| '''Bedeutung'''&lt;br /&gt;
|-&lt;br /&gt;
! '''r'''&lt;br /&gt;
| Aus R berechneter Tabellen-Index&lt;br /&gt;
|-&lt;br /&gt;
! '''g'''&lt;br /&gt;
| Aus g berechneter Tabellen-Index&lt;br /&gt;
|-&lt;br /&gt;
! '''b'''&lt;br /&gt;
| Aus B berechneter Tabellen-Index&lt;br /&gt;
|-&lt;br /&gt;
! '''L[i]'''&lt;br /&gt;
| Beleuchtungswert bei Tabellenindex ''i''&lt;br /&gt;
|-&lt;br /&gt;
! '''I[i]'''&lt;br /&gt;
| Intensitätswert bei Tabellenindex ''i''&lt;br /&gt;
|-&lt;br /&gt;
! '''R[i]'''&lt;br /&gt;
| Rot-Wert bei Tabellenindex ''i''&lt;br /&gt;
|-&lt;br /&gt;
! '''G[i]'''&lt;br /&gt;
| Grün-Wert bei Tabellenindex ''i''&lt;br /&gt;
|-&lt;br /&gt;
! '''B[i]'''&lt;br /&gt;
| Blau-Wert bei Tabellenindex ''i''&lt;br /&gt;
|-&lt;br /&gt;
! '''A[i]'''&lt;br /&gt;
| Alpha-Wert bei Tabellenindex ''i''&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Das Ergebnis der Farbtabelle sieht dann so as:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! Format&lt;br /&gt;
! R&lt;br /&gt;
! G&lt;br /&gt;
! B&lt;br /&gt;
! A&lt;br /&gt;
|-&lt;br /&gt;
! GL_ALPHA&lt;br /&gt;
| R&lt;br /&gt;
| G&lt;br /&gt;
| B&lt;br /&gt;
| A[a]&lt;br /&gt;
|-&lt;br /&gt;
! GL_LUMINANCE&lt;br /&gt;
| L[r]&lt;br /&gt;
| L[g]&lt;br /&gt;
| L[b]&lt;br /&gt;
| At&lt;br /&gt;
|-&lt;br /&gt;
! GL_LUMINANCE_ALPHA&lt;br /&gt;
| L[r]&lt;br /&gt;
| L[g]&lt;br /&gt;
| L[b]&lt;br /&gt;
| A[a]&lt;br /&gt;
|-&lt;br /&gt;
! GL_INTENSITY&lt;br /&gt;
| I[r]&lt;br /&gt;
| I[g]&lt;br /&gt;
| I[b]&lt;br /&gt;
| I[a]&lt;br /&gt;
|-&lt;br /&gt;
! GL_RGB&lt;br /&gt;
| R[r]&lt;br /&gt;
| G[g]&lt;br /&gt;
| B[b]&lt;br /&gt;
| A&lt;br /&gt;
|-&lt;br /&gt;
! GL_RGBA&lt;br /&gt;
| R[r]&lt;br /&gt;
| G[g]&lt;br /&gt;
| B[b]&lt;br /&gt;
| A[a]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Wenn '''GL_COLOR_TABLE''' aktiviert ist, dann werden die Farben, die aus der Pixel-Verschiebungs-Operation (falls sie aktiviert ist) resultieren, anschließend auf die Farbtabelle gemapped, bevor sie an die [[Convolution]]-Operation weitergegeben werden. Die Farbem, die aus der Convolution-Operation kommen, werden druch die &amp;quot;Post-Convolution-Farb-Tabelle&amp;quot; modifizeirt, falls '''GL_POST_CONVOLUTION_COLOR_TABLE''' aktiviert ist. Diese modifizierten Farben werden dann an die Farb-Matrix-Operation gesendet. Abschließend werden - wenn '''GL_POST_COLOR_MATRIX_COLOR_TABLE''' aktiviert ist - die Farben, die aus der Farb-Matrix-Operation resultieren, durch die &amp;quot;Postcolor-Matrix-Farben-Lookup-Tabelle&amp;quot; gemapped, bevor die [[Histogramm]]-Operation angewendet wird.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
'''glColorTable''' ist nur verfügbar, wenn '''GL_ARB_imaging''' von [[glGetString]] mit dem Argmument '''GL_EXTENSIONS''' zurückgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn ''target'' den Wert '''GL_COLOR_TABLE''', '''GL_POST_CONVOLUTION_COLOR_TABLE''' oder '''GL_POST_COLOR_MATRIX_COLOR_TABLE''' hat, muss ''width'' vom Typ 2^n (n: Integer) sein. Ansonsten wird der Fehler '''GL_INVALID_VALUE''' erzeugt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' keinen der zulässigen Werte hat.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''internalformat'' keinen der zulässigen Werte hat.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'' kleiner als 0 ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' keinen der zulässigen Werte hat.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' keinen der zulässigen Werte hat.&lt;br /&gt;
&lt;br /&gt;
'''GL_TABLE_TOO_LARGE''' wird generiert, wenn die angeforderte Farbtabelle zu groß ist und wenn ''target'' gleichzeitig nicht vom Typ '''GL_PROXY_*''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn glColorTable innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetColorTableParameter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glColorSubTable]], [[glColorTableParameter]], [[glCopyColorTable]], [[glCopyColorSubTable]], [[glGetColorTable]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|ColorTable]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glEnable&amp;diff=25316</id>
		<title>glEnable</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glEnable&amp;diff=25316"/>
				<updated>2011-07-26T09:18:55Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Beschreibung */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glEnable, glDisable =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''gEnable, glDisable''' - Aktiviert bzw. deaktiviert eine server-seitige Fähigkeit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glEnable'''(''cap'': TGLEnum);&lt;br /&gt;
 procedure '''glDisable'''(''cap'': TGLEnum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&amp;lt;table border=1 rules=all&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt; &lt;br /&gt;
 &amp;lt;td&amp;gt;''cap''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Symbolische Konstante der zu (de)aktivierenden GL-Fähigkeit.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glEnable''' und '''glDisable''' aktivieren bzw. deaktivieren verschiedene Fähigkeiten, deren momentane Einstellung entweder mit [[glIsEnabled]] oder [[glGet]] ermittelt werden kann. Die Vorgabe für alle Einstellungen (Ausgenommen '''GL_DITHER''' und '''GL_FALSE''', die beide '''GL_TRUE''' sind) ist '''GL_FALSE'''.&lt;br /&gt;
&lt;br /&gt;
Beide Befehle bekommen als Argument die symbolische Konstante der OpenGL-Fähigkeit übergeben, die umgeschaltet werden soll. Gültig sind dabei folgende Werte :&lt;br /&gt;
&lt;br /&gt;
=== GL_ALPHA_TEST ===&lt;br /&gt;
Wenn aktiviert, wird der Alphatest ausgeführt. Siehe [[glAlphaFunc]].&lt;br /&gt;
&lt;br /&gt;
=== GL_AUTO_NORMAL ===&lt;br /&gt;
Wenn aktiviert, werden automatisch Normalen generiert, wenn '''GL_MAP2_VERTEX_3''' oder '''GL_MAP2_VERTEX_4''' zur Erstellung von Vertices genutzt werden. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_BLEND ===&lt;br /&gt;
Wenn aktiviert werden ankommenden RGBA-Farben mit den Werten die sich im Farbpuffer befinden vermischt. Siehe [[glBlendFunc]].&lt;br /&gt;
&lt;br /&gt;
=== GL_CLIP_PLANEi ===&lt;br /&gt;
Wenn aktiviert, wird die Geometrie gegen die nutzerdefinierte Schnittfläche ''i'' geschnitten. Siehe [[glClipPlane]].&lt;br /&gt;
&lt;br /&gt;
=== GL_COLOR_LOGIC_OP ===&lt;br /&gt;
Wenn aktiviert, werden die momentan gewählten logischen Operationen auf ankommenden RGBA-Farben und Farbpuffer-Werte angewendet. Siehe [[glLogicOp]].&lt;br /&gt;
&lt;br /&gt;
=== GL_COLOR_MATERIAL ===&lt;br /&gt;
Wenn aktiviert, benutzen einer oder mehrere Materialparameter die aktuelle Farbeinstellung. Siehe [[glColorMaterial]].&lt;br /&gt;
&lt;br /&gt;
=== GL_COLOR_TABLE_EXT ===&lt;br /&gt;
Wenn aktiviert, werden Farbbild-Komponenenten auf eine Farbtabelle verteilt, die vor einer Windung stattfindet. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
=== GL_CONVOLUTION_1D_EXT ===&lt;br /&gt;
Wenn aktiviert, wird die ein-dimensionale Windung während des Pixeltransfers durchgeführt. Siehe [[glConvolutionFilter1DEXT]].&lt;br /&gt;
&lt;br /&gt;
=== GL_CONVOLUTION_2D_EXT ===&lt;br /&gt;
Wenn aktiviert, wird die zwei-dimensionale Windung während des Pixeltransfers durchgeführt. Siehe [[glConvolutionFilter2DEXT]].&lt;br /&gt;
&lt;br /&gt;
=== GL_CULL_FACE ===&lt;br /&gt;
Wenn aktiviert, werden Polygone entsprechend ihrer Zeichnungsrichtung (Wicklung wäre der korrekt Ausdruck --[[Benutzer:Sascha Willems|Sascha Willems]] 13:05, 9. Jul 2004 (CEST)) (in Fensterkoordinaten) ausgeschlossen. Siehe [[glCullFace]].&lt;br /&gt;
&lt;br /&gt;
=== GL_DEPTH_TEST ===&lt;br /&gt;
Wenn aktiviert werden Tiefenvergleiche getätigt und der Tiefenpuffer aktualisiert. Man beachte, dass selbst dann, wenn ein Tiefenpuffer existiert und die Tiefenmaske ungleich null ist, der Tiefenpuffer nicht aktiviert wird, wenn der [[Tiefentest]] inaktiv ist. Siehe [[glDepthFunc]] und [[glDepthRange]].&lt;br /&gt;
&lt;br /&gt;
=== GL_DITHER ===&lt;br /&gt;
Wenn aktiviert, werden Farbkomponenten oder -indizes gedithert (siehe [[Dithering]]).&lt;br /&gt;
&lt;br /&gt;
=== GL_FOG ===&lt;br /&gt;
Wenn aktiviert, wird die Nebelfarbe in den Farbwert nach der Texturierung gemischt. Siehe [[glFog]].&lt;br /&gt;
&lt;br /&gt;
=== GL_FOG_OFFSET_EXT ===&lt;br /&gt;
Wenn aktiviert wird ein Versatz zum Z-Wert, der zur Berechnung des Nebels genutzt wird, addiert. Siehe [[glFog]].&lt;br /&gt;
&lt;br /&gt;
=== GL_INDEX_LOGIC_OP === &lt;br /&gt;
Wenn aktiviert, werden die momentan gewählten logischen Operationen auf einkommende Index- und Farbpufferindizes angewandt. Siehe [[glLogicOp]].&lt;br /&gt;
&lt;br /&gt;
=== GL_INTERLACE_EXT ===&lt;br /&gt;
Wenn aktiviert, wird ein Bild als interlaced (zu Deutsch : verschachtelt) angesehen. Jede Reihe ''m'' des Bildes wird behandelt als wäre sie Reihe 2 * ''m''. Wenn das Quellbild also eine Höhe von ''h'' Reihen hat, erweitert dies die Höhe des Bildes effektiv auf 2 * ''h'' - 1. Wo Fehler durch die Angabe ungültiger Bilddimensionen entstehen (z.B. [[glTexImage2D]], wird die resultierende Dimension geprüft, nicht die Dimension des Quellbildes. Dieses Token hat keinen Effekt auf Bild-Leseoperationen (Siehe [[glEnable#GL_INTERLACE_READ_I3D|GL_INTERLACE_READ_I3D]].&lt;br /&gt;
&lt;br /&gt;
=== GL_INTERLACE_READ_I3D ===&lt;br /&gt;
Wenn aktiviert, werden Bilder im Framepuffer als interlaced angesehen. Jede Reihe ''m'' des Bildes wird behandelt als wäre sie Reihe 2 * ''m''. Wenn das Bild im Framepuffer eine Höhe von ''h'' Reiehen hat, wird dieses effektiv auf eine Höhe von 2 * ''h'' - 1 vergrößert. Dieses Token betrifft nur [[glReadPixels]] und [[glCopyPixels]].&lt;br /&gt;
&lt;br /&gt;
=== GL_LIGHTi ===&lt;br /&gt;
Wenn aktiviert, wird die Lichtquelle ''i'' in die Berechnung der Beleuchtungsgleichung mit einbezogen. Siehe [[glLightModel]] und [[glLight]].&lt;br /&gt;
&lt;br /&gt;
=== GL_LIGHTING ===&lt;br /&gt;
Wenn aktiviert, werden die aktuellen Beleuchtungsparameter genutzt um die Vertex- oder Indexfarbe zu berechnen. Ansonsten wird einfach die aktuelle Farbe zw. der aktuelle Index zugewiesen. Siehe [[glMaterial]], [[glLightModel]] und [[glLight]].&lt;br /&gt;
&lt;br /&gt;
=== GL_LINE_SMOOTH ===&lt;br /&gt;
Wenn aktiviert, werden Linien mit dem korrekten rechtwinkligen &amp;quot;Eecken&amp;quot; gerendert. Dieser Effekt ist nur bei [[glLineWidth|breiten Linen]] von Bedeutung. Siehe [[OpenGL_Smooth]]&lt;br /&gt;
{|&lt;br /&gt;
! Aktiviert&lt;br /&gt;
! Deaktiviert&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:GL LINE SMOOTH_aktiviert.png]]&lt;br /&gt;
|[[Bild:GL LINE SMOOTH deaktiviert.png]]&lt;br /&gt;
|}&lt;br /&gt;
''In vierfacher Vergrößerung''&lt;br /&gt;
&lt;br /&gt;
=== GL_LINE_STIPPLE ===&lt;br /&gt;
Wenn aktiviert, wird das aktuelle Punktierungsmuster für das Zeichnen von Linien verwendet. Siehe [[glLineStipple]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_COLOR_4 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] RGBA-Werte. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_INDEX ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] Farb-Indizes. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_NORMAL ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] Normalen. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_TEXTURE_COORD_1 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] s-Texturkoordinaten. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_TEXTURE_COORD_2 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] s- und t-Texturkoordinaten. Siehe [[glMap1]].&lt;br /&gt;
=== GL_MAP1_TEXTURE_COORD_3 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] s-, t- und r-Texturkoordinaten. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_TEXTURE_COORD_4 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] s-, t-, r- und q-Texturkoordianten. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_VERTEX_3 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] x-, y- und z-Vertexkoordinaten. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP1_VERTEX_4 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord1]], [[glEvalMesh1]] und [[glEvalPoint1]] x-, y-, z- und w-Vertexkoordinaten. Siehe [[glMap1]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_COLOR_4 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] RGBA-Werte. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_INDEX ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] Farb-Indizes. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_NORMAL ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] Normale. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_TEXTURE_COORD_1 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] s-Texturkoordinaten. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_TEXTURE_COORD_2 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] s- und t-Texturkoordinaten. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_TEXTURE_COORD_3 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] s-, t- und r-Texturkoordinaten. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_TEXTURE_COORD_4 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] s-, t-, r- und q-Texturkoordinaten. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_VERTEX_3 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] x, y und z-Vertexkoordinaten. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MAP2_VERTEX_4 ===&lt;br /&gt;
Wenn aktiviert, generieren Aufrufe an [[glEvalCoord2]], [[glEvalMesh2]] und [[glEvalPoint2]] x, y, z- und w-Vertexkoordinaten. Siehe [[glMap2]].&lt;br /&gt;
&lt;br /&gt;
=== GL_MULTISAMPLE_EXT ===&lt;br /&gt;
Wenn aktiviert, bekommt jeder Pixel im Framepuffer GL_SAMPLES_EXT-Samplepunkte zugewiesen. with it.&lt;br /&gt;
&lt;br /&gt;
=== GL_NORMALIZE ===&lt;br /&gt;
Wenn aktiviert, werden via [[glNormal]] angegebene Normalen nach ihrer Transformation auf Einheitslänge skaliert. Siehe [[glNormal]].&lt;br /&gt;
&lt;br /&gt;
=== GL_OCCLUSION_TEST_EXT ===&lt;br /&gt;
Wenn aktiviert, wird der Ausschluß-Status (Occlusion, Deutsche Übersetzung ist leider nicht gebräuchlich --[[Benutzer:Sascha Willems|Sascha Willems]] 13:05, 9. Jul 2004 (CEST)) je nach Tiefentest aktualisiert (siehe [[glDepthFunc]]). Der Ausschluß-Status kann mit [[glGetBooleanv]] ausgelesen werden.&lt;br /&gt;
&lt;br /&gt;
=== GL_PIXEL_TEX_GEN_EXT ===&lt;br /&gt;
Wenn aktiviert, werden die RGBA-Farben des Bildes genutzt um Texturkoordinaten für das Fragment zu generieren. Siehe [[glPixelTexGenEXT]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POINT_SMOOTH ===&lt;br /&gt;
Wenn aktiviert, werden Punkte gefiltert gezeichnet. Ansonsten werden ungefilterte Punkte gerendert. Siehe [[glPointSize]], [[OpenGL_Smooth]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POLYGON_OFFSET_FILL ===&lt;br /&gt;
Wenn aktiviert und das Polygon im GL_FILL-Modus gerendert wird, wird ein Versatz zum Tiefenwert der Fragmente des Polygons addiert, bevor der Tiefentest stattfindet. Siehe [[glPolygonOffset]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POLYGON_OFFSET_LINE ===&lt;br /&gt;
Wenn aktiviert und das Polygon im GL_LINE-Modus gerendert wird, wird ein Versatz zum Tiefenwert der Fragmente des Polygons addiert, bevor der Tiefentest stattfindet. Siehe [[glPolygonOffset]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POLYGON_OFFSET_POINT ===&lt;br /&gt;
Wenn aktiviert, wird ein Versatz zu den Tiefenwerten der Fragmente eines Polygons addiert, bevor der Tiefentest stattfindet, wenn es im GL_POINT-Modus gerendert wird. Siehe [[glPolygonOffset]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POLYGON_SMOOTH ===&lt;br /&gt;
Wenn aktiviert, werden Polygone mit korrekter Filterung gezeichnet, indem der Alphawert eines [[Fragment]]es entsprechend der Deckung gesetzt wird. [[Blenden|Blending]] muss ebenfalls aktiviert sein um korrekte Resultate zu erhalten. Siehe [[OpenGL_Smooth]]&lt;br /&gt;
{{Hinweis|Funktion ist meist nicht in Hardware verfügbar, es wird häufig auf Softwaremodus umgeschalten und auch dort nicht immer korrekt gezeichnet.}}&lt;br /&gt;
&lt;br /&gt;
=== GL_POLYGON_STIPPLE ===&lt;br /&gt;
Wenn aktiviert, wird das aktuelle Polygon-Punktierungs-Muster zum Rendern der Polygone genutzt. Siehe [[glPolygonStipple]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT ===&lt;br /&gt;
Wenn aktiviert, werden Farbbild-Komponentne in die Farbtabelle gelegt die nach der Farbmatrix kommt. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
=== GL_POST_CONVOLUTION_COLOR_TABLE_EXT ===&lt;br /&gt;
Wenn aktiviert, werden Farbbild-Komponenten in eine Farbtabelle gelegt die nach der Windung, aber vor der Farbmatrix kommt. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
=== GL_RESCALE_NORMAL_EXT ===&lt;br /&gt;
Wenn aktiviert, werden Normalen mit einem Reskalierungsfaktor multipliziert, nachdem sie in den Augenraum transformiert wurden und bevor sie normalisiert werden. Dieser Faktor wird aus der obersten Reihe der inversen umgestellten Modelansichtsmatrix berechnet.&lt;br /&gt;
&lt;br /&gt;
=== GL_SAMPLE_ALPHA_TO_MASK_EXT ===&lt;br /&gt;
Wenn aktiviert, wird der Alphawert eines Fragmentes genutzt, um einen temporären Maskenwert zu erstellen, welcher mit dem Maskenwert des Fragmentes verUNDet wird.&lt;br /&gt;
&lt;br /&gt;
=== GL_SAMPLE_ALPHA_TO_ONE_EXT ===&lt;br /&gt;
Wenn aktiviert, wird der Alphawert der Fragmente durch den maximal verfügbaren Alphawert ersetzt.&lt;br /&gt;
&lt;br /&gt;
=== GL_SAMPLE_MASK_EXT ===&lt;br /&gt;
Wenn aktiviert, wird der Wert von '''GL_SAMPLE_MASK_VALUE_EXT''' genutzt, um temporäre Maskenwerte zu erstellen, die dann mit den Maskenwerten der Fragmente geUNDet werden. (AND-Verknüpft werden)&lt;br /&gt;
&lt;br /&gt;
=== GL_SCISSOR_TEST ===&lt;br /&gt;
Wenn aktiviert, werden Fragmente verworfen die ausserhalb des Scissor-Rechtecks liegen. Siehe [[glScissor]].&lt;br /&gt;
&lt;br /&gt;
=== GL_SEPARABLE_2D_EXT ===&lt;br /&gt;
Wenn aktiviert und GL_CONVOLUTION_2D_EXT deaktiviert ist, wird zweidimensionale Wicklung mit separierbarem Filter während des Pixeltransfers durchgeführt. Siehe [[glSeparableFilter2D]].&lt;br /&gt;
&lt;br /&gt;
=== GL_STENCIL_TEST ===&lt;br /&gt;
Wenn aktiviert, werden Stempeltests durchgeführt und der Stencilpuffer aktualisiert. Siehe [[glStencilFunc]] und [[glStencilOp]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_1D ===&lt;br /&gt;
Wenn aktiviert, wird eindimensionale Texturierung angewandt (es sei denn zweidimensionale Texturierung wurde auch aktiviert). Siehe [[glTexImage1D]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_2D ===&lt;br /&gt;
Wenn aktiviert, wird zweidimensionale Texturierung angewandt (es sei denn dreidimensionale Texturierung wurde auch aktiviert). Siehe [[glTexImage2D]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_3D(''_EXT'') ===&lt;br /&gt;
Wenn aktiviert, wird dreidimensionale Texturierung angewandt. Siehe [[glTexImage3D]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_COLOR_TABLE_EXT ===&lt;br /&gt;
Wenn aktiviert, wird die gefilterte Texturenfarbe an die Farbtabelle für Texturen angepasst, bevor die Umgebung mit der Fragmentfarbe vermischt wird. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_GEN_Q ===&lt;br /&gt;
Wenn aktiviert, wird die q-Texturkoordinate anhand der via [[glTexGen]] definierten Funktion zur Texturgenerierung berechnet. Ansonsten wird die aktuell angegebene q-Texturkoordinate genutzt. Siehe [[glTexGen]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_GEN_R ===&lt;br /&gt;
Wenn aktiviert, wird die r-Texturkoordinate anhand der via [[glTexGen]] definierten Funktion zur Texturgenerierung berechnet. Ansonsten wird die aktuell angegebene r-Texturkoordinate genutzt. Siehe [[glTexGen]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_GEN_S ===&lt;br /&gt;
Wenn aktiviert, wird die s-Texturkoordinate anhand der via [[glTexGen]] definierten Funktion zur Texturgenerierung berechnet. Ansonsten wird die aktuell angegebene s-Texturkoordinate genutzt. Siehe [[glTexGen]].&lt;br /&gt;
&lt;br /&gt;
=== GL_TEXTURE_GEN_T ===&lt;br /&gt;
Wenn aktiviert, wird die t-Texturkoordinate anhand der via [[glTexGen]] definierten Funktion zur Texturgenerierung berechnet. Ansonsten wird die aktuell angegebene t-Texturkoordinate genutzt. Siehe [[glTexGen]].&lt;br /&gt;
&lt;br /&gt;
== Erweiterungen ==&lt;br /&gt;
Einige Routinen und Konstanten für diese Funktion sind Teil einer Erweiterung, also nicht Teil des GL-Kerns. Die folgenden Erweiterungen müssen in der durch [[glGetString]] mit dem Argument '''GL_EXTENSIONS''' gelieferten Zeichenkette enthalten sein, damit diese genutzt werden können.&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_color_table ===&lt;br /&gt;
'''GL_COLOR_TABLE_EXT''', '''GL_POST_CONVOLUTION_COLOR_TABLE_EXT''' und '''GL_POST_COLOR_MATRIX_COLOR_TABLE_EXT''' sind Teil der Erweiterung [[GL_EXT_color_table]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_convolution ===&lt;br /&gt;
'''GL_CONVOLUTION_1D_EXT''', '''GL_CONVOLUTION_2D_EXT''' und '''GL_SEPARABLE_2D_EXT''' sind Teil der Erweiterung [[GL_EXT_convolution]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_fog_offset ===&lt;br /&gt;
'''GL_FOG_OFFSET_EXT''' ist Teil der Erweiterung [[GL_EXT_fog_offset]].&lt;br /&gt;
&lt;br /&gt;
=== EXT_interlace ===&lt;br /&gt;
'''GL_INTERLACE_EXT''' ist Teil der Erweiterung [[GL_EXT_interlace]].&lt;br /&gt;
 &lt;br /&gt;
=== EXT_interlace_read ===&lt;br /&gt;
'''GL_INTERLACE_READ_I3D''' ist Teil der Erweiterung [[GL_EXT_interlace_read]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_multisample ===&lt;br /&gt;
'''GL_MULTISAMPLE_EXT''', '''GL_SAMPLE_ALPHA_TO_MASK_EXT''', '''GL_SAMPLE_ALPHA_TO_ONE_EXT''' und '''GL_SAMPLE_MASK_EXT''' sind Teil der Erweiterung  [[GL_EXT_multisample]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_occlusion_test ===&lt;br /&gt;
'''GL_OCCLUSION_TEST_EXT''' ist Teil der Erweiterung [[GL_EXT_occlusion_test]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_pixel_texture ===&lt;br /&gt;
'''GL_PIXEL_TEX_GEN_EXT''' ist Teil der Erweiterung [[GL_EXT_pixel_texture]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_rescale_normal ===&lt;br /&gt;
'''GL_RESCALE_NORMAL_EXT''' ist Teil der Erweiterung [[GL_EXT_rescale_normal]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_texture3D ===&lt;br /&gt;
'''GL_TEXTURE_3D_EXT''' ist Teil der Erweiterung [[GL_EXT_texture3D]].&lt;br /&gt;
&lt;br /&gt;
=== GL_EXT_texture_color_table ===&lt;br /&gt;
'''GL_TEXTURE_COLOR_TABLE_EXT''' ist Teil der Erweiterung [[GL_EXT_texture_color_table]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''cap'' kein gültiges Token ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn [[glPixelTransfer]] zwischen [[glBegin]] und dem passenden [[glEnd]] aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]]&lt;br /&gt;
&lt;br /&gt;
(Die zu übergebenden Argumente können in der Beschreibung zu den beiden Funktionen nachgelesen werden.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glAlphaFunc]], [[glBitmap]], [[glBlendFunc]], [[glClipPlane]], [[glColorMaterial]], [[glColorTable]], [[glCopyColorTable]], [[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glCopyTexSubImage3D]], [[glCullFace]], [[glDepthFunc]], [[glDepthRange]], [[glDrawPixels]], [[glEnableClientState]], [[glFog]], [[glGet]], [[glGetString]], [[glIsEnabled]], [[glLight]], [[glLightModel]], [[glLineWidth]], [[glLineStipple]], [[glLogicOp]], [[glMap1]], [[glMap2]], [[glMaterial]], [[glNormal]], [[glPointSize]], [[glPolygonMode]], [[glPolygonOffset]], [[glPolygonStipple]], [[glSampleMaskEXT]], [[glScissor]], [[glStencilFunc]], [[glStencilOp]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|Enable]]&lt;br /&gt;
[[Kategorie:GL1.0|Enable]]&lt;br /&gt;
[[Kategorie:GL3|Enable]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glTexSubImage1D&amp;diff=25315</id>
		<title>glTexSubImage1D</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glTexSubImage1D&amp;diff=25315"/>
				<updated>2011-07-26T08:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glTexSubImage1D =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glTexSubImage1D''' - Legt ein eindimensionales Subimage fest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glTexSubImage1D'''(''target'' : GLenum; &lt;br /&gt;
                           ''level'' : GLint; &lt;br /&gt;
                           ''xoffset'' : GLint;&lt;br /&gt;
                           ''width'' : GLsizei; &lt;br /&gt;
                           ''format'' : GLenum; ''type'' : GLenum; &lt;br /&gt;
                           ''pixels'' : '''const''' ^GLvoid)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''target''&lt;br /&gt;
| Gibt die Zieltextur an. Muss '''GL_TEXTURE_1D''' sein.&lt;br /&gt;
|-&lt;br /&gt;
! ''level''&lt;br /&gt;
| Gibt die [[LOD]]-Nummer an. Level 0 ist die Standardtextur. Level ''n'' ist die ''n''-te Mipmap-Textur.&lt;br /&gt;
|-&lt;br /&gt;
! ''xoffset''&lt;br /&gt;
| Gibt den Texel-Offset-Wert innerhalb des Texturarrays in x-Richtung an.&lt;br /&gt;
|-&lt;br /&gt;
! ''width''&lt;br /&gt;
| Gibt die Breite des Subimages an.&lt;br /&gt;
|-&lt;br /&gt;
! ''format''&lt;br /&gt;
| Gibt das Format der Pixeldaten an. Die folgenden Werte sind erlaubt: '''GL_COLOR_INDEX''', '''GL_RED''', '''GL_GREEN''', '''GL_BLUE''', '''GL_ALPHA''', '''GL_LUMINANCE''', '''GL_LUMINANCE_ALPHA''', '''GL_RGB''', '''GL_RGBA''', '''GL_BGR_EXT''', '''GL_BGRA_EXT''', '''GL_ARGB_I3D''', '''GL_422_EXT''', '''GL_422_REV_EXT''', '''GL_422_AVERAGE_EXT''' und '''GL_422_REV_AVERAGE_EXT'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''type''&lt;br /&gt;
| Gibt den Datentyp der Pixeldaten an. Die folgenden Werte sind erlaubt:&lt;br /&gt;
'''GL_BITMAP, GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2_EXT, GL_UNSIGNED_BYTE_2_3_3_REV_EXT, GL_UNSIGNED_SHORT_5_6_5_EXT, GL_UNSIGNED_SHORT_5_6_5_REV_EXT, GL_UNSIGNED_SHORT_4_4_4_4_EXT, GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT, GL_UNSIGNED_SHORT_5_5_5_1_EXT, GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT, GL_UNSIGNED_INT_8_8_8_8_EXT, GL_UNSIGNED_INT_8_8_8_8_REV_EXT, GL_UNSIGNED_INT_10_10_10_2_EXT''' und '''GL_UNSIGNED_INT_2_10_10_10_REV_EXT'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''pixels''&lt;br /&gt;
| Gibt den Pointer zu den Bilddaten im Speicher aus.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Die Funktion zeichnet festgelegte Teile einer angegebenen Textur auf alle Polygone, für die Texturierung aktiviert ist. Um eindimensionales Texturieren zu aktivieren bzw. zu deaktivieren, rufe man [[glEnable]] bzw. [[glDisable]] mit dem Argument '''GL_TEXTURE_1D''' auf.&lt;br /&gt;
&lt;br /&gt;
[[glTexSubImage1D]] definiert einen Teil einer vorliegenden eindimensionalen Textur neu. Die Texel, die durch ''pixels'' angegeben werden, ersetzen den Teil des vorliegenden Textur-Arrays mit den Positionen x bei ''xoffset'' bis ''xoffset + width - 1'' eingeschlossen. Dieser Bereich muss nicht alle Texel enthalten, die im ursprünglichen Texturarray lagen. Es ist nicht falschm wenn man eine Sub-Textur mit einer Breite von 0 festlegt, aber das hat keinen Effekt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
[[glTexSubImage1D]] wird nur ab der OpenGL-Version 1.1 oder höher unterstützt.&lt;br /&gt;
&lt;br /&gt;
Texturierung hat keinen Effekt, wenn man sich im Colorindex-Modus befindet.&lt;br /&gt;
&lt;br /&gt;
[[glPixelStore]] und [[glPixelTransfer]] beeinflussen die Texturen genauso, wie sie es bei [[glDrawPixels]] tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
Einige Befehle und Konstanten dieser Funktion sind Teil einer Extension und nicht Teil des Standard-OpenGL-Befehlsangebots. Folgende Extension-Bezeichnungen müssen in dem String enthalten sein, den [[glGetString]] mit dem Argument '''GL_EXTENSION''' zurückliefert, um diese Befehle und Konstanten zu benutzen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:'''GL_EXT_422_pixels'''&lt;br /&gt;
::'''L_422_EXT''', '''GL_422_REV_EXT''', '''GL_422_AVERAGE_EXT''' und '''GL_422_REV_AVERAGE_EXT''' sind Teil der [[GL_EXT_422_pixels|EXT_422_pixels]]-Extension.&lt;br /&gt;
&lt;br /&gt;
:'''GL_I3D_argb'''&lt;br /&gt;
::'''GL_ARGB_I3D''' ist Teil der [[GL_I3D_argb]]-Extension&lt;br /&gt;
&lt;br /&gt;
:'''GL_EXT_bgra'''&lt;br /&gt;
::'''GL_BGR_EXT''' und '''GL_BGRA_EXT''' sind Teil der [[GL_EXT_bgra|EXT_bgra]]-Extension.&lt;br /&gt;
&lt;br /&gt;
:'''GL_EXT_packed_pixels'''&lt;br /&gt;
::'''GL_UNSIGNED_BYTE_3_3_2_EXT''', '''GL_UNSIGNED_BYTE_2_3_3_REV_EXT''', '''GL_UNSIGNED_SHORT_5_6_5_EXT''', '''GL_UNSIGNED_SHORT_5_6_5_REV_EXT''', '''GL_UNSIGNED_SHORT_4_4_4_4_EXT''', '''GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT''', '''GL_UNSIGNED_SHORT_5_5_5_1_EXT''', '''GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT''', '''GL_UNSIGNED_INT_8_8_8_8_EXT''', '''GL_UNSIGNED_INT_8_8_8_8_REV_EXT''', '''GL_UNSIGNED_INT_10_10_10_2_EXT''' und '''GL_UNSIGNED_INT_2_10_10_10_REV_EXT''' sind Teil der [[GL_EXT_packed_pixels|EXT_packed_pixels]]-Extension.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht einen der erlaubten Werte hat.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn das Textur-Array nicht durch eine vorhergehende [[glTexImage1D]]-Ausführung erzeugt wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''level'' kleiner 0 ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' könnte generiert werden, wenn ''level'' größer als [[Bild:Log_2_max.png]] ist, wobei ''max'' der Wert von '''GL_MAX_TEXTURE_SIZE''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn einer der folgenden Fälle eintritt:&lt;br /&gt;
:*[[Bild:Xoffset_b.png]]&lt;br /&gt;
:*[[Bild:Xoffset_width.png]])&lt;br /&gt;
&lt;br /&gt;
:wobei gilt:&lt;br /&gt;
:*w ist '''GL_TEXTURE_WIDTH''',&lt;br /&gt;
:*b ist die Randbreite (border width, '''GL_TEXTURE_BORDER''') des Texturbildes was modifiziert wird,&lt;br /&gt;
:*w enthält die doppelte Randbreite.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'' kleiner als 0 ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' keine akzeptable Konstante zugewiesen ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' keine akzeptable Konstante zugewiesen ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' '''GL_BITMAP''' und ''format'' nicht '''GL_COLOR_INDEX''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn glTexSubImage innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetTexImage]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]] mit Token [[glIsEnabled#GL_TEXTURE_1D|GL_TEXTURE_1D]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glDrawPixels]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexImage3D]], [[glTexParameter]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexSubImage3D]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|TexSubImage1D]]&lt;br /&gt;
[[Kategorie:GL1.1|TexSubImage1D]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=GL_EXT_bgra&amp;diff=25314</id>
		<title>GL EXT bgra</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=GL_EXT_bgra&amp;diff=25314"/>
				<updated>2011-07-26T08:51:26Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Die Seite wurde neu angelegt: „{{Unvollständig|Verwendung sollte noch kurz erläutert werden.}}  = EXT_bgra = {{Hinweis|Die Orginalspezifikation finden Sie unter &amp;quot;Ressourcen&amp;quot; am Ende des Artik…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Unvollständig|Verwendung sollte noch kurz erläutert werden.}}&lt;br /&gt;
&lt;br /&gt;
= EXT_bgra =&lt;br /&gt;
{{Hinweis|Die Orginalspezifikation finden Sie unter &amp;quot;Ressourcen&amp;quot; am Ende des Artikels.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abfragestring ==&lt;br /&gt;
GL_EXT_bgra&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Die Erweiterung '''GL_EXT_bgra''' erweitert die Liste der Farbformate.&lt;br /&gt;
&lt;br /&gt;
Im Besonderen liefert die Erweiterung Formate, welche dem Speicherlayout von Windows DIBs entsprechen, sodass eine Anwendung die gleichen Daten in Windows API-Aufrufen und OpenGL API-Aufrufen nutzen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== '''Verwendung''' ===&lt;br /&gt;
: ''(unvollständig)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Neue Funktionen ==&lt;br /&gt;
Keine.&lt;br /&gt;
&lt;br /&gt;
== Neue Tokens ==&lt;br /&gt;
&lt;br /&gt;
=== Neue Parameterwerte ===&lt;br /&gt;
Für [[glDrawPixels]], [[glGetTexImage]], [[glReadPixels]], [[glTexImage1D]] und [[glTexImage2D]] kann der Parameter ''format'' folgende, zusätzliche Werte annehmen:&lt;br /&gt;
{| border=1 rules=all&lt;br /&gt;
! '''Token'''&lt;br /&gt;
! HexCode des Tokens&lt;br /&gt;
! Beschreibung/ Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_BGR_EXT'''&lt;br /&gt;
| 0x80E0&lt;br /&gt;
| Drei Farbkomponenten in der Reihenfolge Blau, Grün, Rot&lt;br /&gt;
|-&lt;br /&gt;
| '''GL_BGRA_EXT'''&lt;br /&gt;
| 0x80E1&lt;br /&gt;
| Vier Farbkomponenten in der Reihenfolge Blau, Grün, Rot, Alpha&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Abhängigkeiten ==&lt;br /&gt;
Keine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ressourcen ==&lt;br /&gt;
[http://www.opengl.org/registry/specs/EXT/bgra.txt Originalspezifikation GL_EXT_bgra] (englisch)&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetProgramiv&amp;diff=25313</id>
		<title>glGetProgramiv</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetProgramiv&amp;diff=25313"/>
				<updated>2011-07-26T08:17:40Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Weiterleitung nach glGetProgram erstellt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[glGetProgram]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetProgramiv]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetProgram&amp;diff=25312</id>
		<title>glGetProgram</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetProgram&amp;diff=25312"/>
				<updated>2011-07-26T08:16:12Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: kleinere Korrekturen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetProgram =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetProgramiv''' - Liefert Eigenschaften eines Programmobjekts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glGetProgramiv'''(''program'': TGLuint; ''pname'': TGLenum; ''params'': PGLint);&lt;br /&gt;
&lt;br /&gt;
&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;
| Bestimmt das Programmobjekt, dessen Daten ermittelt werden sollen.&lt;br /&gt;
|-&lt;br /&gt;
! ''pname'' &lt;br /&gt;
| 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'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''params'' &lt;br /&gt;
| Enthält das Ergebnis der Anfrage.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetProgram''' liefert in ''params'' den Wert einer Eigenschaft eines bestimmten Programmobjekts. Die folgenden Werte für ''pname'' sind definiert:&lt;br /&gt;
&lt;br /&gt;
=== GL_ACTIVE_ATTRIBUTE_MAX_LENGTH ===&lt;br /&gt;
&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
=== GL_ACTIVE_ATTRIBUTES ===&lt;br /&gt;
&lt;br /&gt;
:''params'' liefert die Anzahl der aktiven Attributvariablen für ''program''.&lt;br /&gt;
&lt;br /&gt;
=== GL_ACTIVE_UNIFORM_MAX_LENGTH ===&lt;br /&gt;
&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
=== GL_ACTIVE_UNIFORMS ===&lt;br /&gt;
&lt;br /&gt;
:''params'' liefert die Anzahl aktiver Uniformvariablen für ''program''.&lt;br /&gt;
&lt;br /&gt;
=== GL_ATTACHED_SHADERS ===&lt;br /&gt;
&lt;br /&gt;
:''params'' liefert die Anzahl der Shader-Objekte, die an ''program'' gebunden sind.&lt;br /&gt;
&lt;br /&gt;
=== GL_DELETE_STATUS ===&lt;br /&gt;
&lt;br /&gt;
:''params'' liefert '''GL_TRUE''', falls ''program'' zum Freigeben markiert wurde, sonst '''GL_FALSE'''.&lt;br /&gt;
&lt;br /&gt;
=== GL_GEOMETRY_INPUT_TYPE_ARB ===&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
=== GL_GEOMETRY_OUTPUT_TYPE_ARB ===&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
=== GL_GEOMETRY_VERTICES_OUT_ARB ===&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
=== GL_INFO_LOG_LENGTH ===&lt;br /&gt;
&lt;br /&gt;
:''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.&lt;br /&gt;
&lt;br /&gt;
=== GL_LINK_STATUS ===&lt;br /&gt;
&lt;br /&gt;
:''params'' liefert '''GL_TRUE''', falls die letzte Link-Operation auf ''program'' erfolgreich war, sonst '''GL_FALSE'''.&lt;br /&gt;
&lt;br /&gt;
=== GL_VALIDATE_STATUS ===&lt;br /&gt;
&lt;br /&gt;
:''params'' liefert '''GL_TRUE''', falls die letzte Validierungs-Operation auf ''program'' erfolgreich war, sonst '''GL_FALSE'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
'''glGetProgram''' ist erst ab OpenGL Version 2.0 oder höher verfügbar.&lt;br /&gt;
&lt;br /&gt;
Falls ein Fehler auftritt, werden keine Änderungen am Inhalt von ''params'' gemacht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''pname'' kein akzeptierter Wert ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''program'' kein von OpenGL generierter Wert ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''program'' kein Programmobjekt bezeichnet.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetProgram''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetActiveAttrib]] mit dem Argument ''program''&lt;br /&gt;
&lt;br /&gt;
[[glGetActiveUniform]] mit dem Argument ''program''&lt;br /&gt;
&lt;br /&gt;
[[glGetAttachedShaders]] mit dem Argument ''program''&lt;br /&gt;
&lt;br /&gt;
[[glGetProgramInfoLog]] mit dem Argument ''program''&lt;br /&gt;
&lt;br /&gt;
[[glIsProgram]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glAttachShader]], [[glCreateProgram]], [[glDeleteProgram]], [[glGetShader]], [[glLinkProgram]], [[glProgramParameterARB]], [[glValidateProgram]]&lt;br /&gt;
&lt;br /&gt;
'''Hintergrundwissen :''' [[Shader]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetProgram]]&lt;br /&gt;
[[Kategorie:GL2.0|GetProgram]]&lt;br /&gt;
[[Kategorie:SHADER_OBJECTS|GetProgram]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetTexEnv&amp;diff=25311</id>
		<title>glGetTexEnv</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetTexEnv&amp;diff=25311"/>
				<updated>2011-07-25T23:05:57Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung; Hinweis zu Unvollständigkeit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Unvollständig|Mit OpenGL 1.3, 1.4 und 2.0 würden einige Änderungen an der Funktion vorgenommen und neue Konstanten hinzugefügt, welche im Artikel noch nachgetragen werden müssen.}}&lt;br /&gt;
&lt;br /&gt;
= glGetTexEnv =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetTexEnv''' - liefert Texturumgebungsvariablen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetTexEnvfv'''(''target'': TGLenum; ''pname'': TGLenum; ''params'': PGLfloat);&lt;br /&gt;
 procedure '''glGetTexEnviv'''(''target'': TGLenum; ''pname'': TGLenum; ''params'': PGLint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''target'' &lt;br /&gt;
| Bestimmt eine Texturumgebung. Muss '''GL_TEXTURE_ENV''' sein.&lt;br /&gt;
|-&lt;br /&gt;
! ''pname'' &lt;br /&gt;
| Bestimmt den symbolischen Namen eines Texturumgebungsparameters. Akzepierte Werte sind '''GL_TEXTURE_ENV_MODE''' und '''GL_TEXTURE_ENV_COLOR'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''params'' &lt;br /&gt;
| Zeiger auf die zurück gelieferten Daten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetTexEnv''' liefert in ''params'' ausgewählte Werte der Texturumgebung, welche mit [[glTexEnv]] spezifiziert wurde. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''target'' bestimmt eine Texturumgebung. Momentan wird nur eine Texturumgebung unterstützt: '''GL_TEXTURE_ENV'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''pname'' bezeichnet einen speziellen Texturumgebungsparameter. Folgende Angaben sind möglich:&lt;br /&gt;
&lt;br /&gt;
'''GL_TEXTURE_ENV_MODE'''&lt;br /&gt;
:''params'' liefert eine symbolische Konstante, den Texturumgebungsmodus, zurück. Der '''Initialwert''' ist '''GL_MODULATE'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_TEXTURE_ENV_COLOR'''&lt;br /&gt;
:''params'' liefert 4 integer oder Fließkommazahlen zurück, welche die Texturumgebungsfarbe darstellen. Werden Integerwerte abgefragt, so werden diese linear von der internen Fließkommarepräsentation auf den gesamten Bereich der Integerzahlen abgebildet. Dies geschieht so, dass 1.0 auf den größten positiven Integerwert und -1.0 auf den kleinsten negativen Integerwert abgebildet wird.&lt;br /&gt;
: Der '''Initialwert''' ist '''(0,0,0,0)'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Wenn ein Fehler auftritt, werden keine Änderungen am Inhalt von ''params'' durchgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''pname'' oder ''target'' ungültige Werte übergeben wurden.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetTexEnv''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glTexEnv]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetTexEnv]]&lt;br /&gt;
[[Kategorie:GL1.0|GetTexEnv]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=SVN&amp;diff=25310</id>
		<title>SVN</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=SVN&amp;diff=25310"/>
				<updated>2011-07-25T22:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Unvollständig}}&lt;br /&gt;
&lt;br /&gt;
= Allgemein =&lt;br /&gt;
'''SVN''' steht für Subversion und ist eine Version Control Software. Subversion ist vergleichbar mit dem bekannteren CVS und versucht zahlreiche Schwachstellen dieses Systems zu verbessern. Es ist davon auszugehen, dass SVN in den nächsten Jahren CVS als Version Control Software ablösen wird. So wechselte z.b. [http://www.kde.org www.kde.org] Anfang des Jahres 2005 zu SVN. Oftmals wird diese Art von Software direkt mit OpenSource in Verbindung gebracht, was vermutlich allerdings mehr situationsbedingt ist. So bietet Microsoft für den kommerziellen Bereich SourceSafe an. Subversion ist im Gegensatz dazu allerdings frei - sowohl der Source Code als auch von kostentechnischer Betrachtung her.&lt;br /&gt;
&lt;br /&gt;
= Einsatzbereich =&lt;br /&gt;
Wieso wird Versionierungssoftware gerade im OpenSource-Bereich häufig eingesetzt? Der Grund dafür ist denkbar einfach. Zahlreiche Entwickler werkeln am gleichen Source Code herum. Jeder, der einmal versucht hat, an einem Source Code mit drei Leuten über eine Netzwerkfreigabe zu arbeiten, wird es bei diesem ersten Versuch belassen haben. Während man selbst eine Änderung an einer Datei durchgeführt hat, hat ein anderer in der gleichen Datei bereits Änderungen durchgeführt. Derjenige der zuletzt sichert... gewinnt. ;)&lt;br /&gt;
&lt;br /&gt;
Ein Lösungansatz könnte so aussehen, dass eine Person die Daten entgegennimmt und diese dann zusammen an einen Ort zusammenfügt. Ein Projekt wie KDE würde jedoch bei mehreren hunderten Entwicklern bereits innerhalb weniger Tage ins absolute Chaos stürzen. Aus diesem Grund wurden Versionierungssoftware entwickelt. Stellvertretend für diese Person nimmt der SVN-Server Veränderungen entgegen und speichert diese zentral ins Repository. Zwar verhindert dies nicht, dass zwei Personen am gleichen Code arbeiten, allerdings ist ein Datenverlust ausgeschlossen, da jederzeit eine ältere Revision angesehen werden kann. Zudem ist SVN sogar begrenzt in der Lage, den Source Code aus zwei veränderten Versionen wieder zu einem zusammenzusetzen.&lt;br /&gt;
&lt;br /&gt;
Doch auch ein einzelner Entwickler kann Vorteile beim Einsatz von Subversion erlangen. Wer bereits einmal an einem großen Projekt gearbeitet hat, wird es vielleicht nur zu gut kennen. Ein Modul wird codiert und das Dummy fliegt raus. Damit alles zusammenpaßt, werden auch kleinere Änderungen an anderen Modulen vorgenommen - doch am Ende läuft ein Modul nicht mehr. Vor den Änderungen war dies allerdings noch intakt. Ohne Versionierungssoftware schaut man dann in die Röhre oder muss sich seines Hirnes bedienen. Wurde Subversion verwendet, wäre es möglich, eine ältere Revision zu laden und mit der aktuellen zu vergleichen. Der Fehler, der nun verhindert, dass das Modul läuft, sollte schnell gefunden sein. (Ansonsten sollte man seine Projektplanung dringend überdenken.)&lt;br /&gt;
&lt;br /&gt;
= Begriffe =&lt;br /&gt;
Ein '''Repository''' ist die Bezeichnung für ein SVN-Archiv. Innerhalb des Repository werden die einzelnen '''Revisionen''' verwaltet. Jedes Mal, wenn jemand etwas in das Repository kopiert, erhält dieser Beitrag automatisch eine neue Revisionsnummer und kann anhand dieser eindeutig identifiziert werden. Es ist jederzeit möglich, Source Code einer älteren Revision auszuchecken.&lt;br /&gt;
&lt;br /&gt;
Um an einen Projekt zu arbeiten, erfolgt zunächst ein '''Checkout'''. Hierbei wird eine Kopie des Repository auf den lokalen Rechner kopiert. Dieses steht automatisch unter Versionskontrolle und alle Änderungen daran werden automatisch erfaßt. Sind Änderungen fertig und lauffähig, macht der Programmierer ein '''Commit''' und überträgt seine Änderungen wieder an den Server. Der umgekehrte Weg nennt sich '''Update''' und gleicht die lokale Version mit der des Repository wieder ab.&lt;br /&gt;
&lt;br /&gt;
Der Aufbau eines Repository ist meistens denkbar einfach. Ein sogenannter '''trunk''' (Stamm) stellt den Hauptentwicklungszweig dar. Hier fließen auch kritische Änderungen ein. Sobald ein Release bevor steht wird eine Kopie des trunks als '''branch''' (Zweig) erzeugt. Die Entwickler nehmen hier nur noch Bugfixes vor und versuchen Fehler zu beheben. Es werden keine neuen Funktionen eingebaut. Sind keine Fehler mehr vorhanden und die Software gereleast, wird ein '''tag''' angelegt. Es handelt sich hierbei um einen aktuellen Snapshoot des Source Codes. Natürlich unterscheidet sich die Art wie die einzelnen Projekte verwaltet wird. Bei dieser Konstellation handelt es sich jedoch um eines der häufigsten und ist z.B. beim KDE-Projekt anzufinden: [http://websvn.kde.org/ KDE WebSVN].&lt;br /&gt;
&lt;br /&gt;
= Anleitung =&lt;br /&gt;
&lt;br /&gt;
== Windows ==&lt;br /&gt;
[[Bild:Tsvn_checkout.png|thumb|256px|left|TortoiseSVN wird im Explorer eingebettet]]&lt;br /&gt;
Die Verwendung von SVN ist unter Windows denkbar einfach. [http://tortoisesvn.tigris.org/ TortoiseSVN] bietet sich als grafischer Client an und wird direkt in den Windows-Explorer integriert. Wir spielen an dieser Stelle einmal durch, dass wir ein Checkout aus dem DGL-Test-Repository durchführen und eine neue Datei wieder zum Repository hinzufügen. Zunächst bewegen wir uns an die Stelle, an der das Repository angelegt werden soll. Aus dem Kontextmenu des Explorer klicken wir auf '''SVN Checkout...'''. &lt;br /&gt;
&lt;br /&gt;
Es öffnet sich ein neues Fenster, in dem wir die Position des Repository angeben müssen. Dies kann entweder wie in diesem Beispiele eine ganze gewöhnliche URL sein oder auch ein Repository auf dem lokalen Rechner. Sollte das Zielverzeichnis nicht existieren, werden wir automatisch gefragt, ob dieses angelegt werden soll.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Tsvn_checkout2.png|thumb]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Aus Sicherheitsgründen sind die meisten Repository geschützt und man muss sich zunächst authentifizieren. Im Falle dieses Beispiels ist der Benutzername &amp;quot;public&amp;quot; und das Passwort leer. Sollte kein Fehler auftreten, meldet der SVN-Client, welche Revision gerade ausgecheckt wurde. Im Explorer ist das Repository nun wie ein normaler Ordner zu sehen. Allerdings sollte neben diesem ein grüner Haken sein, der signalisiert, dass die lokale Kopie auf dem neusten Stand ist. Nun betreten wir die Kopie mit einem Doppelklick und erzeugen darin eine neue Datei namens &amp;quot;svntest.txt&amp;quot;. Dieses befindet sich nicht automatisch unter Versionskontrolle. Deswegen klicken wir diese mit der rechten Maustaste an und wählen aus dem Kontextmenu &amp;quot;Add&amp;quot; aus. Es erscheint ein neuer Dialog, in dem zusammengefaßt wird, welche Dateien unter Versionskontrolle gestellt werden soll. Beachtet bitte, dass dieser Vorgang nur bei neuen Dateien notwendig ist. Dateien, die bereits aus dem Repository bezogen werden, stehen automatisch unter Kontrolle.&lt;br /&gt;
&lt;br /&gt;
[[Bild:Tsvn_symbols.png|thumb|128px|left|Grün bedeutet, dass unsere Kopie aktuell ist. Rot bedeutet, dass Änderungen noch nicht an den Server übertragen wurden.]] Nun wollen wir die Änderungen noch an den Server übertragen. Hierfür gehen wir ein Verzeichnis tiefer und klicken es mit der rechten Maustaste an. Hierbei nehmen wir zur Kenntnis, dass unsere Kopie statt einem grünen Haken ein rotes Ausrufezeichen hat. Es wurden Änderungen durchgeführt. Dort befindet sich u.a.  &amp;quot;Update&amp;quot; mit dem Ihr Änderungen des Servers wieder zu Eurer Kopie hinzufügen könnt. Aus dem Kontextmenu wählen wir nun jedoch &amp;quot;Commit&amp;quot; aus, um die Änderungen zum Server übertragen. Es erscheint ein neuer Dialog, in dem zusammengefaßt wird, welche Dateien hochgeladen werden sollen. Im oberen Memofeld solltet Ihr den Grund eintragen, damit die anderen Leute wissen, weswegen Ihr Änderungen durchgeführt habt. Beschränkt Euch dort bitte auf die wichtigsten Dinge. Logs wie &amp;quot;habe hinter dem A ein N gesetzt und dann in Zeile 20 aus der 7 eine 6 gemacht&amp;quot; helfen niemanden wirklich weiter. Nach der Bestätigung und Authentifizierung sollte die Benachrichtigung erscheinen, dass die Dateien auf dem Server eingetroffen sind. Es sollte eine neue Revisionnummer vergeben sein.&lt;br /&gt;
&lt;br /&gt;
Dies sollte als kleine Einleitung für SVN erst einmal reichen, auch wenn dies nur ein Kratzen an der Oberfläche war.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
Die neueren Linux Kernel basierenden Distrubitionen bieten mitlerweile SVN bei der Installation mit an. Wobei hier einheitlich die SVN cmd Binarytools angeboten werden. Distrubutionen wie Ubuntu oder Debian bieten auch schon FrontEnds wie RapidSVN mit an.&lt;br /&gt;
Wie bei Linux gewohnt ist es dem User überlassen, welche Oberfläche er darüberlegt. Ein sehr gutes Programm ist [http://rapidsvn.org/wiki/index.php?title=Main_Page RapidSVN].&lt;br /&gt;
Die passende Bedienungsanleitung kann man unter der [http://rapidsvn.org/wiki/index.php?title=OnlineHelp Onlinehilfe] finden.&lt;br /&gt;
&lt;br /&gt;
Wer eine RPM-basierte Linux-Distrubition nutzt (Fedora, RedHat), kann die benötigten RPMs unter folgenden Links finden: [http://rapidsvn.org/download/ RapidSVN RPM] und [http://subversion.apache.org/packages.html SVN Binaries].&lt;br /&gt;
&lt;br /&gt;
Die Installation der RPMs erfolgt dann so:&lt;br /&gt;
*Shell öffnen und als root einloggen (su -)&lt;br /&gt;
*zum Ordner, wo die rpms liegen, wechseln (cd pfad)&lt;br /&gt;
*und mit &amp;quot;rpm install packagenamen&amp;quot; installieren&lt;br /&gt;
*mit &amp;quot;exit&amp;quot; zum user zurück wechseln und dann mit &amp;quot;rapidsvn&amp;quot; ausführen (im user verzeichnis wird nun ein .rapidsvn ordner mit dem configs abgelegt)&lt;br /&gt;
&lt;br /&gt;
Hinweis: Als erstes die Binary SVN Tools installieren und dann RapidSVN.&lt;br /&gt;
&lt;br /&gt;
Fachwörter wie Commiten oder Checkout verhalten sich wie im Thema Windows beschriebendem TortoiseSVN.&lt;br /&gt;
&lt;br /&gt;
== Lokales Repository ==&lt;br /&gt;
{{Hinweis|Die folgende Anleitung wurde unter Ubuntu Linux 6.06 getestet.}}&lt;br /&gt;
&lt;br /&gt;
Für private Zwecke reicht meist ein lokales Repository. Dieses lässt sich (zumindest unter Linux) kinderleicht einrichten.&lt;br /&gt;
&lt;br /&gt;
Als erstes wird das Verzeichnis erstellt in dem das Repository verwaltet wird:&lt;br /&gt;
&lt;br /&gt;
Zum Beispiel so:&lt;br /&gt;
 svnadmin create /tmp/testserver&lt;br /&gt;
&lt;br /&gt;
Beim Auschecken muss nun der absolute Pfad zu diesem Verzeichnis angegeben werden, mit dem Prefix &amp;quot;file://&amp;quot;:&lt;br /&gt;
 &lt;br /&gt;
 cd /tmp&lt;br /&gt;
 svn checkout file:///tmp/testserver/ test&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Das &amp;quot;test&amp;quot; dahinter sagt Subversion das es den neuen Ordner so benennen soll. In dem Beispiel muss diese Angabe gemacht werden, da ansonsten der Ordner testserver genannt wird.&lt;br /&gt;
&lt;br /&gt;
== Tips ==&lt;br /&gt;
&lt;br /&gt;
= Öffentliche DGL-Repositories =&lt;br /&gt;
{{Hinweis|Die Repository befinden sich auf einem Server mit dynamischer IP-Adresse. Gebt also nicht auf, wenn das Repository sich aktuell nicht erreichen läßt. Die Server sind annährend 24/7 online - dies kann jedoch nicht garantiert werden.}}&lt;br /&gt;
&lt;br /&gt;
''' DGL Test '''&lt;br /&gt;
&lt;br /&gt;
Nicht jeder ist den Umgang mit Subversion oder einer anderen Versionierungssoftware gewöhnt und fühlt sich vielleicht ein wenig unsicher. Es wäre natürlich ärgerlich, wenn nun jemand damit beginnen würde, ein Arbeits-Repository für Testzwecke zu verwenden. Damit dennoch nicht jeder selbst einen SVN-Server aufsetzen muss, bietet DGL ein Test-Repository an, bei dem man bedenkenlos herumexperimentieren kann. Es bietet anonymen Schreib- und Lesezugriff und wird in regelmäßigen Abständen immer wieder gelöscht. &lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.delphigl.com/test&lt;br /&gt;
&lt;br /&gt;
'''DGLSDK_Linux'''&lt;br /&gt;
&lt;br /&gt;
Hier findet die Entwicklung an der Linux-SDK statt. Da viele Komponenten der Windows und Linux-Version identisch sind, finden hier die Hauptarbeiten des Inhaltes statt. Gerade deshalb sollten auch Windows-Nutzer an dieser Version ein hohes Interesse haben.&lt;br /&gt;
&lt;br /&gt;
  svn co http://svn.delphigl.com/dglsdk_linux/trunk&lt;br /&gt;
&lt;br /&gt;
'''WebSVN'''&lt;br /&gt;
Natürlich kannst Du auch mit deinem Browser auf die Repository zugreifen!&lt;br /&gt;
&lt;br /&gt;
[http://svn.delphigl.com/websvn/ Web-Zugriff auf die DGL-Repository]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glLoadName&amp;diff=25309</id>
		<title>glLoadName</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glLoadName&amp;diff=25309"/>
				<updated>2011-07-25T10:46:18Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glLoadName =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glLoadName''' - lädt einen [[OpenGL Name]]n auf den [[Stack|Namestack]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' glLoadName(''name'' : GLuint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{|border=1 rules=all&lt;br /&gt;
!''name''&lt;br /&gt;
|Stellt den Namen dar, der auf den Stack gelegt werden soll.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Der Namestack wird im [[Selection]]mode benutzt, um eine Menge von Renderbefehlen eindeutig zu identifizieren. Der Namestack besteht aus einer Menge von vorzeichenlosen Ganzzahlen (unsigned integer). Durch die Funktion '''glLoadName''' wird ''name'' auf den Stack gelegt und ersetzt das oberste Element des Stacks (der nach der Initialisierung leer ist). Die Funktion ist das Gegenstück zu [[glLoadMatrix|glLoadMatrix]], aber mit dem Unterschied, dass der Matrixstack niemals leer ist. Daher schlägt diese Funktion auch fehl, wenn man vorher nicht mindestens einmal [[glPushName|glPushName]] aufgerufen hat.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Solange der Rendermodus nicht '''GL_SELECT''' ist, ist der Namestack leer.&lt;br /&gt;
&lt;br /&gt;
Aufrufe von '''glLoadName''' werden ignoriert, wenn der Rendermodus nicht '''GL_SELECT''' ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glLoadName''' bei leerem Namestack aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glLoadName''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_NAME_STACK_DEPTH|GL_NAME_STACK_DEPTH]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAX_NAME_STACK_DEPTH|GL_MAX_NAME_STACK_DEPTH]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glInitNames]], [[glPushName]], [[glRenderMode]], [[glSelectBuffer]]&lt;br /&gt;
&lt;br /&gt;
Hintergrundwissen: [[OpenGL Name]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|LoadName]]&lt;br /&gt;
[[Kategorie:GL1.0|LoadName]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glLoadMatrix&amp;diff=25308</id>
		<title>glLoadMatrix</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glLoadMatrix&amp;diff=25308"/>
				<updated>2011-07-25T10:42:59Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glLoadMatrix =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glLoadMatrix''' - ersetzt die aktuelle Matrix durch eine beliebige Matrix.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' glLoadMatrixd('''const''' ''m'': PGLdouble);&lt;br /&gt;
 '''procedure''' glLoadMatrixf('''const''' ''m'': PGLfloat);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''m''&lt;br /&gt;
| Ein Zeiger auf eine 4x4-Matrix, welche die aktuelle Matrix ersetzen soll.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glLoadMatrix''' ersetzt die aktuelle Matrix durch die 4x4-Matrix, auf die ''m'' zeigt. Abhängig vom aktuellen Matrix-Modus ([[glMatrixMode]]) wird dadurch die Projektions-Matrix, die Modelview-Matrix oder die Texture-Matrix ersetzt (siehe dazu [[Matrix#Die_drei_OpenGL_Matrizen|&amp;quot;Die drei OpenGL-Matrizen&amp;quot;]]).&lt;br /&gt;
&lt;br /&gt;
Der Parameter ''m'' zeigt auf eine 4x4-Matrix, welche spaltenweise Fließkommazahlen mit einfacher oder doppelter Genauigkeit (Single oder Double) enthält.&lt;br /&gt;
&lt;br /&gt;
Die Matrix muß also in der folgenden Reihenfolge gespeichert sein:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 +-           -+&lt;br /&gt;
 | 0  4  8  12 |&lt;br /&gt;
 | 1  5  9  13 |&lt;br /&gt;
 | 2  6  10 14 |&lt;br /&gt;
 | 3  7  11 15 |&lt;br /&gt;
 +-           -+&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Beispiel-Quelltext===&lt;br /&gt;
Als Ersatz für [[glPushMatrix]] / [[glPopMatrix]]:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;type&lt;br /&gt;
  TVektor = record &lt;br /&gt;
            X,Y,Z,W : glFloat &lt;br /&gt;
  end;&lt;br /&gt;
  TMatrix = array[(mat_XAchse,mat_YAchse,mat_ZAchse,mat_Position)] of TVektor;&lt;br /&gt;
&lt;br /&gt;
var&lt;br /&gt;
  TempMatrix:TMatrix;&lt;br /&gt;
begin&lt;br /&gt;
 glClearColor(0,0,0,0);&lt;br /&gt;
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);&lt;br /&gt;
 glMatrixMode(GL_MODELVIEW);&lt;br /&gt;
 glLoadIdentity;  &lt;br /&gt;
&lt;br /&gt;
 glTranslatef(-0.8,-0.5,0); //Vorgebene Startposition&lt;br /&gt;
 glGetFloatv(GL_MODELVIEW_MATRIX,@TempMatrix); //Matrix wird gespeichert&lt;br /&gt;
&lt;br /&gt;
 {Rotes Dreieck}&lt;br /&gt;
 glColor3f(1,0,0);&lt;br /&gt;
 glTranslatef(1,0,0);&lt;br /&gt;
 glBegin(GL_TRIANGLES);&lt;br /&gt;
   glVertex3f(1,0  ,-2);&lt;br /&gt;
   glVertex3f(0,1  ,-2);&lt;br /&gt;
   glVertex3f(0,0  ,-2);&lt;br /&gt;
 glEnd;&lt;br /&gt;
 glLoadMatrixf(@TempMatrix); //Gespeicherte Matrix wird wieder geladen&lt;br /&gt;
&lt;br /&gt;
 {Grünes Dreieck}&lt;br /&gt;
 glColor3f(0,1,0);&lt;br /&gt;
 glBegin(GL_TRIANGLES);&lt;br /&gt;
   glVertex3f(1,0  ,-2);&lt;br /&gt;
   glVertex3f(0,1  ,-2);&lt;br /&gt;
   glVertex3f(0,0  ,-2);&lt;br /&gt;
 glEnd;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''glLoadMatrix'' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MATRIX_MODE|GL_MATRIX_MODE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MODELVIEW_MATRIX|GL_MODELVIEW_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PROJECTION_MATRIX|GL_PROJECTION_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_TEXTURE_MATRIX|GL_TEXTURE_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glLoadIdentity]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|LoadMatrix]]&lt;br /&gt;
[[Kategorie:GL1.0|LoadMatrix]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glIsEnabled&amp;diff=25307</id>
		<title>glIsEnabled</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glIsEnabled&amp;diff=25307"/>
				<updated>2011-07-25T10:34:53Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glIsEnabled =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glIsEnabled''' - testet, ob eine OpenGL-Eigenschaft aktiviert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''function''' glIsEnabled(''cap'': TGLenum): TGLboolean;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=1 rules=all&lt;br /&gt;
! ''cap''&lt;br /&gt;
| Spezifiziert eine symbolische Konstante, welche eine OpenGL-Eigenschaft repräsentiert.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Die Funktion '''glIsEnabled''' gibt entweder '''GL_TRUE''' zurück, wenn die Eigenschaft, die ''cap'' repräsentiert, aktiviert ist. Ansonsten wird '''GL_FALSE''' zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Eine OpenGL-Eigenschaft kann mit den Befehlen [[glEnable]] aktiviert und mit [[glDisable]] deaktiviert werden.&lt;br /&gt;
&lt;br /&gt;
Folgende Werte werden für ''cap'' akzeptiert:&lt;br /&gt;
&lt;br /&gt;
===GL_ALPHA_TEST===&lt;br /&gt;
: Siehe [[glAlphaFunc]]&lt;br /&gt;
&lt;br /&gt;
===GL_AUTO_NORMAL===&lt;br /&gt;
: Siehe [[glEvalCoord]]&lt;br /&gt;
&lt;br /&gt;
===GL_BLEND===&lt;br /&gt;
: Siehe [[glBlendFunc]]&lt;br /&gt;
&lt;br /&gt;
===GL_CLIP_PLANEi===&lt;br /&gt;
: Siehe [[glClipPlane]]&lt;br /&gt;
&lt;br /&gt;
===GL_COLOR_ARRAY===&lt;br /&gt;
: Siehe [[glColorPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_COLOR_LOGIC_OP===&lt;br /&gt;
:Siehe [[glLogicOp]]&lt;br /&gt;
&lt;br /&gt;
===GL_COLOR_MATERIAL===&lt;br /&gt;
: Siehe [[glColorMaterial]]&lt;br /&gt;
&lt;br /&gt;
===GL_COLOR_TABLE===&lt;br /&gt;
: Siehe [[glColorTable]]&lt;br /&gt;
&lt;br /&gt;
===GL_CONVOLUTION_1D===&lt;br /&gt;
: Siehe [[glConvolutionFilter1D]]&lt;br /&gt;
&lt;br /&gt;
===GL_CONVOLUTION_2D===&lt;br /&gt;
: Siehe [[glConvolutionFilter2D]]&lt;br /&gt;
&lt;br /&gt;
===GL_CULL_FACE===&lt;br /&gt;
: Siehe [[glCullFace]]&lt;br /&gt;
&lt;br /&gt;
===GL_DEPTH_TEST===&lt;br /&gt;
: Siehe [[glDepthFunc]] und [[glDepthRange]] &lt;br /&gt;
&lt;br /&gt;
===GL_DITHER===&lt;br /&gt;
: Siehe [[glEnable]]&lt;br /&gt;
&lt;br /&gt;
===GL_EDGE_FLAG_ARRAY===&lt;br /&gt;
: Siehe [[glEdgeFlagPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_FOG===&lt;br /&gt;
: Siehe [[glFog]]&lt;br /&gt;
&lt;br /&gt;
===GL_FOG_COORD_ARRAY===&lt;br /&gt;
: Siehe [[glFogCoordPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_HISTOGRAM===&lt;br /&gt;
: Siehe [[glHistogram]]&lt;br /&gt;
&lt;br /&gt;
===GL_INDEX_ARRAY===&lt;br /&gt;
: Siehe [[glIndexPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_INDEX_LOGIC_OP===&lt;br /&gt;
: Siehe [[glLogicOp]]&lt;br /&gt;
&lt;br /&gt;
===GL_LIGHTi===&lt;br /&gt;
: Siehe [[glLightModel]] und [[glLight]]&lt;br /&gt;
&lt;br /&gt;
===GL_LIGHTING===&lt;br /&gt;
: Siehe [[glMaterial]], [[glLightModel]] und [[glLight]]&lt;br /&gt;
&lt;br /&gt;
===GL_LINE_SMOOTH===&lt;br /&gt;
: Siehe [[glLineWidth ]]&lt;br /&gt;
&lt;br /&gt;
===GL_LINE_STIPPLE===&lt;br /&gt;
: Siehe [[glLineStipple]]&lt;br /&gt;
&lt;br /&gt;
===GL_LOGIC_OP===&lt;br /&gt;
: Siehe [[glLogicOp]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_COLOR_4===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_INDEX===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_NORMAL===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_TEXTURE_COORD_1===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_TEXTURE_COORD_2===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_TEXTURE_COORD_3===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_TEXTURE_COORD_4===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_VERTEX_3===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP1_VERTEX_4===&lt;br /&gt;
: Siehe [[glMap1]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_COLOR_4===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_INDEX===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_NORMAL===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_TEXTURE_COORD_1===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_TEXTURE_COORD_2===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_TEXTURE_COORD_3===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_TEXTURE_COORD_4===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_VERTEX_3===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MAP2_VERTEX_4===&lt;br /&gt;
: Siehe [[glMap2]]&lt;br /&gt;
&lt;br /&gt;
===GL_MINMAX===&lt;br /&gt;
: Siehe [[glMinmax]]&lt;br /&gt;
&lt;br /&gt;
===GL_MULTISAMPLE===&lt;br /&gt;
: Siehe [[glSampleCoverage]]&lt;br /&gt;
&lt;br /&gt;
===GL_NORMAL_ARRAY===&lt;br /&gt;
: Siehe [[glNormalPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_NORMALIZE===&lt;br /&gt;
: Siehe [[glNormal]]&lt;br /&gt;
&lt;br /&gt;
===GL_POINT_SMOOTH===&lt;br /&gt;
: Siehe [[glPointSize]]&lt;br /&gt;
&lt;br /&gt;
===GL_POINT_SPRITE===&lt;br /&gt;
: Siehe [[glEnable]]&lt;br /&gt;
&lt;br /&gt;
===GL_POLYGON_OFFSET_FILL===&lt;br /&gt;
: Siehe [[glPolygonOffset]]&lt;br /&gt;
&lt;br /&gt;
===GL_POLYGON_OFFSET_LINE===&lt;br /&gt;
: Siehe [[glPolygonOffset]]&lt;br /&gt;
&lt;br /&gt;
===GL_POLYGON_OFFSET_POINT===&lt;br /&gt;
: Siehe [[glPolygonOffset]]&lt;br /&gt;
&lt;br /&gt;
===GL_POLYGON_SMOOTH===&lt;br /&gt;
: Siehe [[glPolygonMode]]&lt;br /&gt;
&lt;br /&gt;
===GL_POLYGON_STIPPLE===&lt;br /&gt;
: Siehe [[glPolygonStipple]]&lt;br /&gt;
&lt;br /&gt;
===GL_POST_COLOR_MATRIX_COLOR_TABLE===&lt;br /&gt;
: Siehe [[glColorTable]]&lt;br /&gt;
&lt;br /&gt;
===GL_POST_CONVOLUTION_COLOR_TABLE===&lt;br /&gt;
: Siehe [[glColorTable]]&lt;br /&gt;
&lt;br /&gt;
===GL_RESCALE_NORMAL===&lt;br /&gt;
: Siehe [[glNormal]]&lt;br /&gt;
&lt;br /&gt;
===GL_SAMPLE_ALPHA_TO_COVERAGE===&lt;br /&gt;
: Siehe [[glSampleCoverage]]&lt;br /&gt;
&lt;br /&gt;
===GL_SAMPLE_ALPHA_TO_ONE===&lt;br /&gt;
: Siehe [[glSampleCoverage]]&lt;br /&gt;
&lt;br /&gt;
===GL_SAMPLE_COVERAGE===&lt;br /&gt;
: Siehe [[glSampleCoverage]]&lt;br /&gt;
&lt;br /&gt;
===GL_SCISSOR_TEST===&lt;br /&gt;
: Siehe [[glScissor]]&lt;br /&gt;
&lt;br /&gt;
===GL_SECONDARY_COLOR_ARRAY===&lt;br /&gt;
: Siehe [[glSecondaryColorPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_SEPARABLE_2D===&lt;br /&gt;
: Siehe [[glSeparableFilter2D]]&lt;br /&gt;
&lt;br /&gt;
===GL_STENCIL_TEST===&lt;br /&gt;
: Siehe [[glStencilFunc]] und [[glStencilOp]]&lt;br /&gt;
&lt;br /&gt;
===GL_STENCIL_TEST_TWO_SIDE_EXT===&lt;br /&gt;
: Siehe [[glActiveStencilFaceEXT]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_1D===&lt;br /&gt;
: Siehe [[glTexImage1D]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_2D===&lt;br /&gt;
: Siehe [[glTexImage2D]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_3D===&lt;br /&gt;
: Siehe [[glTexImage3D]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_COORD_ARRAY===&lt;br /&gt;
:Siehe [[glTexCoordPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_CUPE_MAP===&lt;br /&gt;
: Siehe [[glTexImage2D]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_GEN_Q===&lt;br /&gt;
: Siehe [[glTexGen]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_GEN_R===&lt;br /&gt;
: Siehe [[glTexGen]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_GEN_S===&lt;br /&gt;
: Siehe [[glTexGen]]&lt;br /&gt;
&lt;br /&gt;
===GL_TEXTURE_GEN_T===&lt;br /&gt;
: Siehe [[glTexGen]]&lt;br /&gt;
&lt;br /&gt;
===GL_VERTX_ARRAY===&lt;br /&gt;
: Siehe [[glVertexPointer]]&lt;br /&gt;
&lt;br /&gt;
===GL_VERTEX_PROGRAM_POINT_SIZE===&lt;br /&gt;
: Siehe [[glEnable]]&lt;br /&gt;
&lt;br /&gt;
===GL_VERTEX_PROGRAM_TWO_SIDE===&lt;br /&gt;
: Siehe [[glEnable]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Wenn ein Fehler auftritt, gibt '''glIsEnabled''' 0 (Zero) zurück.&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_LOGIC_OP''', '''GL_COLOR_ARRAY''', '''GL_EDGE_FLAG_ARRAY''', '''GL_INDEX_ARRAY''', '''GL_INDEX_LOGIC_OP''',&lt;br /&gt;
'''GL_NORMAL_ARRAY''', '''GL_POLYGON_OFFSET_FILL''', '''GL_POLYGON_OFFSET_LINE''', '''GL_POLYGON_OFFSET_POINT''', '''GL_TEXTURE_COORD_ARRAY''' und '''GL_VERTEX_ARRAY''' sind nur verfügbar, wenn die OpenGL-Version 1.1 oder höher ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_RESCALE_NORMAL''' und '''GL_TEXTURE_3D''' sind erst ab OpenGL-Version 1.2 oder höher verfügbar.&lt;br /&gt;
&lt;br /&gt;
'''GL_MULTISAMPLE''', '''GL_SAMPLE_ALPHA_TO_COVERAGE''', '''GL_SAMPLE_ALPHA_TO_ONE''', '''GL_SAMPLE_COVERAGE''' und '''GL_TEXTURE_CUBE_MAP''' sind nur verfügbar, wenn die OpenGL-Version 1.3 oder höher ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_FOG_COORD_ARRAY''' und '''GL_SECONDARY_COLOR_ARRAY''' sind nur verfügbar, wenn die OpenGL-Version 1.4 oder höher ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_POINT_SPRITE''', '''GL_VERTEX_PROGRAM_POINT_SIZE''' und '''GL_VERTEX_PROGRAM_TWO_SIDE''' sind nur verfügbar, wenn die OpenGL-Version 2.0 oder höher ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_TABLE''', '''GL_CONVOLUTION_1D''', '''GL_CONVOLUTION_2D''', '''GL_HISTOGRAM''', '''GL_MINMAX''', '''GL_POST_COLOR_MATRIX_COLOR_TABLE''', '''GL_POST_CONVOLUTION_COLOR_TABLE''' und '''GL_SEPARABLE_2D''' sind nur verfügbar, wenn '''ARB_imaging''' durch einen Aufrug von [[glGet]] mit '''GL_EXTENSIONS''' zurückgegeben wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''cap'' ein ungültiger Wert übergeben wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''glIsEnabled'' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glEnable]], [[glEnableClientState]], [[glGet]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|IsEnabled]]&lt;br /&gt;
[[Kategorie:GL1.0|IsEnabled]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glStencilMask&amp;diff=25306</id>
		<title>glStencilMask</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glStencilMask&amp;diff=25306"/>
				<updated>2011-07-25T10:32:45Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung; Wikisyntax für Tabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glStencilMask =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glStencilMask ''' - Kontrolliert das Schreiben individueller Bits in die Schablonen-Flächen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glStencilMask'''(''mask'' : TGLuint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! '''mask'''&lt;br /&gt;
| Gibt eine Bitmaske an um, das Schreiben bestimmter Bits in die Schablonen-Flächen zu aktivieren bzw. zu deaktivieren. Die Vorgabe ist hier eine Bitmaske komplett gefüllt mit Einsen.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
'''glStencilMask''' kontrolliert das Schreiben bestimmter Bits in die Schablonen-Flächen. Das niederwertigsten n Bits der Maske, wobei n die Zahl der Bits im Stencilpuffer ist, beschreibt eine Maske. Wo in der Maske eine 1 steht, ist es möglich, in das entsprechende Bit im [[Schablonenpuffer|Stencilpuffer]] zu schreiben. Eine 0 steht für schreibgeschützte Bits. In der Voreinstellung sind alles Bits beschreibbar.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glStencilMask''' zwischen [[glBegin]] und dem zugehörigen [[glEnd]] aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glColorMask]], [[glDepthMask]], [[glIndexMask]], [[glStencilFunc]], [[glStencilOp]]&lt;br /&gt;
&lt;br /&gt;
Hintergrundwissen: [[Schablonenpuffer]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|StencilMask]]&lt;br /&gt;
 [[Kategorie:GL1.0|StencilMask]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glStencilOp&amp;diff=25305</id>
		<title>glStencilOp</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glStencilOp&amp;diff=25305"/>
				<updated>2011-07-25T10:30:24Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glStencilOp =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glStencilOp''' - Legt fest, was beim Stencil-Test passiert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glStencilOp''' (''fail,zfail,zpass'': TGLenum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
Die Parameter können folgende Konstanten enthalten: '''GL_KEEP''', '''GL_ZERO''', '''GL_REPLACE''', '''GL_INCR''', '''GL_INCR_WRAP''', '''GL_DECR''', '''GL_DECR_WRAP''' und'''GL_INVERT'''.&lt;br /&gt;
&lt;br /&gt;
Der '''Standartwert''' bei allen Parametern ist '''GL_KEEP'''. &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''fail''&lt;br /&gt;
| Legt fest, was gemacht wird, wenn der Stencil-Test fehlschlägt.  &lt;br /&gt;
|-&lt;br /&gt;
! ''zfail''&lt;br /&gt;
| Legt fest, was passiert, wenn der Stencil-Test erfolgreich ist aber der Tiefentest fehlschlägt.&lt;br /&gt;
|-&lt;br /&gt;
! ''zpass''&lt;br /&gt;
| Legt fest, was passiert, wenn sowohl der [[Stenciltest]] als auch [[Tiefentest]] erfolgreich ist. Ist der [[Tiefentest]] deaktiviert, so gilt dieser als bestanden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
&lt;br /&gt;
Jeder Pixel wird der mit [[glStencilFunc]] festgelegten Test unterzogen. Welche Auswirkung dieser Test nun auf den [[Schablonenpuffer]](stencil buffer) selbst hat, wird mit '''glStencilOp''' festgelegt. Auf diese Weise ist es möglich, durch das Zeichnen von Primitiven den [[Schablonenpuffer]] zu verändern. Der Inhalt des [[Schablonenpuffer]]s kann anschließend als eine Art Schablone verwendet werden, um Teile der Zeichenfläche vom Zeichnen auszunehmen. Diese Technik wird vorallem bei Rendervorgängen mit mehren Durchgängen genutzt, um Spezial-Effekte wie Spiegelungen, [[decals]] und [[outlining]] zu erzeugen.&lt;br /&gt;
&lt;br /&gt;
;'''GL_KEEP''' :Keine Veränderung&lt;br /&gt;
&lt;br /&gt;
;'''GL_ZERO''' :Setzt den Wert im Schablonenpuffer auf Null&lt;br /&gt;
&lt;br /&gt;
;'''GL_REPLACE''' :Setzt den Wert im Schablonenpuffer auf '''''ref''''' von [[glStencilFunc]].&lt;br /&gt;
&lt;br /&gt;
;'''GL_INCR''' :Erhöht den Wert im Schablonenpuffer. Die obere Begrenzung liegt beim höchsten vorzeichenlosen Wert.&lt;br /&gt;
&lt;br /&gt;
;'''GL_INCR_WRAP''' :Erhöht den Wert im Schablonenpuffer. Falls dabei der größte, darstellbare vorzeichenlosen Wert erhöht werden soll, wird der Wert im Schablonenpuffer auf null gesetzt.&lt;br /&gt;
&lt;br /&gt;
;'''GL_DECR''' :Verringert den Wert im Schablonenpuffer. (Die untere Begrenzung liegt bei 0.)&lt;br /&gt;
&lt;br /&gt;
;'''GL_DECR_WRAP''' :Verringert den Wert im Schablonenpuffer. Falls der zu verringernde Wert im Schablonenpuffer null ist, dann wird er auf den größten darstellbaren vorzeichenlosen Wert gesetzt.&lt;br /&gt;
&lt;br /&gt;
;'''GL_INVERT''' : Bitweise Invertierung des Wertes im Schablonenpuffer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Werte des Schablonenpuffers werden als vorzeichenlose Ganzzahl behandelt. Wenn die Werte inkrementiert(erhöht) oder dekrementiert(verringert) werden, werden sie anschließend auf das Intervall [0,max] umgerechnet, wobei '''max =  (2^[[glGet#GL_STENCIL_BITS|GL_STENCIL_BITS]]) -1''' ist.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Beachten Sie, dass ''zfail'' ignoriert wird, wenn kein Tiefenpuffer existiert oder dieser nicht aktiviert ist. In diesem Falle geben ''zfail'' bzw. ''zpass'' an, welche Aktion stattfindet, wenn der Stenciltest fehlschlägt bzw. passiert.&lt;br /&gt;
&lt;br /&gt;
Falls kein [[Schablonenpuffer]] existiert (etwa weil das Pixel Format keinen enthält), ist der Stenciltest immer erfolgreich unabhängig von den Einstellungen durch '''glStencilOp'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_DECR_WRAP''' und '''GL_INCR_WRAP''' sind erst ab OpenGL-Version 1.4 verfügbar.&lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
Folgende Erweiterungen hat die Funktion erfahren:&lt;br /&gt;
=== Ab OpenGL-Version 1.4 ===&lt;br /&gt;
&lt;br /&gt;
Die Parameter der Funktion '''glStencilOp''' können nun auch die Konstantenwerte '''GL_DECR_WRAP''' und '''GL_INCR_WRAP''' annehmen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn einer der Parameter (''fail'', ''zfail'' und ''zpass'') einen anderen Wert als die acht Konstanten enthält.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glStencilOp''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
*[[glGet]] mit Token [[glGet#GL_STENCIL_FAIL|GL_STENCIL_FAIL]]&lt;br /&gt;
*[[glGet]] mit Token [[glGet#GL_STENCIL_PASS_DEPTH_PASS|GL_STENCIL_PASS_DEPTH_PASS]]&lt;br /&gt;
*[[glGet]] mit Token [[glGet#GL_STENCIL_PASS_DEPTH_FAIL|GL_STENCIL_PASS_DEPTH_FAIL]]&lt;br /&gt;
*[[glGet]] mit Token [[glGet#GL_STENCIL_BITS|GL_STENCIL_BITS]]&lt;br /&gt;
*[[glIsEnabled]] mit Token GL_STENCIL_TEST&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[glAlphaFunc]], [[glBlendFunc]], [[glDepthFunc]], [[glEnable]], [[glLogicOp]],&lt;br /&gt;
[[glStencilFunc]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|StencilOp]]&lt;br /&gt;
[[Kategorie:GL1.0|StencilOp]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glPolygonStipple&amp;diff=25304</id>
		<title>glPolygonStipple</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glPolygonStipple&amp;diff=25304"/>
				<updated>2011-07-25T10:27:45Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glPolygonStipple =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glPolygonStipple''' - Setzt das Muster, mit dem Polygone getüpfelt werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glPolygonStipple'''(const ''mask'' : PGLubyte);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''mask''&lt;br /&gt;
|  Spezifiziert einen Zeiger auf einem 32x32 Tüpfel-Muster, dass im Speicher genauso abgelegt wird wie bei [[glDrawPixels]].&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
[[Bild:Polygon_stipple.jpg|thumb|200px|glPolygonStipple mit einem zufallsgenerieren Muster]]&lt;br /&gt;
Das Tüpfeln von Polygonen, ebenso wie bei Linien (siehe [[glLineStipple]]), deckte bestimmte Fragmente bei der Rasterung ab und erzeugt somit ein Muster. Das Tüpfeln ist hierbei abhängig vom [[Antialiasing]] des Polygons.&lt;br /&gt;
&lt;br /&gt;
Der Parameter '''''mask''''' ist ein Zeiger auf ein 32*32 großes Muster, welches so abgespeichert wurde wie ein solches für den Aufruf von [[glDrawPixels]] mit der Höhe und Breite von 32 , dem Pixel-Format GL_COLOR_INDEX und dem Datentyp GL_BITMAP(siehe [[glBitmap#Beispiel|Beispiel]] von [[glBitmap]]). Das heißt, dass das Muster als ein 32*32 großes Array von 1 Bit Farben Indexen angesehen wird, welches in (vorzeichenlose) Bytes gepackt wurde.&lt;br /&gt;
Die Parameter von [[glPixelStore]] wie etwa GL_UNPACK_SWAP_BYTES und GL_UNPACK_LSB_FIRST, bestimmen die Verarbeitung der Bits zu dem Muster. Pixel Übertragungs (en: &amp;quot;pixel transfer&amp;quot;) Operationen (etwa ''shift offset'' oder ''pixel map'') werden allerdings nicht auf das Muster angewand.&lt;br /&gt;
&lt;br /&gt;
Um das Tüpfeln von Polygonen zu aktivieren oder zu deaktivieren, rufe [[glEnable]] und [[glDisable]] mit dem Argument GL_POLYGON_STIPPLE auf.&lt;br /&gt;
&lt;br /&gt;
Das Tüpfeln von Polygonen ist beim Start deaktiviert.&lt;br /&gt;
&lt;br /&gt;
Wenn es aktiviert ist, wird ein rasterisiertes Fragment mit den Fensterkoordinaten xw und yw nur dann zur nächsten Stufe der [[Feste_Funktionspipeline#Fragment_Pipeline|Rendering Pipeline]] geschickt, wenn das ''(xw mod 32)te'' Bit in der ''(yw mod 32)sten'' Zeile des Tüpfelmusters '''1''' (eins/true) ist. Wenn das Tüpfeln der Polygone deaktiviert ist, verhält sich die OGL so als ob das Tüpfelmuster nur aus Einsen besteht.&lt;br /&gt;
&lt;br /&gt;
==Hinweis==&lt;br /&gt;
Das Muster welches durch '''glPolygonStipple''' erzeugt wird, ist &amp;quot;Screen Aligned&amp;quot;. Das heißt, wenn Objekte rotieren oder bewegt werden, dann bewegt sich das Muster nicht mit, denn es ist nicht an die Objekte gebunden (wie z.B. eine [[Textur]]) sondern hängt quasi an der Zeichenfläche. Man kann das Verhalten vergleichen mit einem &amp;quot;Fliegengitter&amp;quot; welches über den Monitor gespannt wird.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Der Code zu dem obigen Würfel:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  Arr: array [0..31, 0..3] of Byte;&lt;br /&gt;
  X, Y, Bit: Integer;&lt;br /&gt;
begin&lt;br /&gt;
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);&lt;br /&gt;
  glLoadIdentity;&lt;br /&gt;
  glTranslatef(0, 0, -FZoom);&lt;br /&gt;
  glRotatef(FRotationX, 1, 0, 0);&lt;br /&gt;
  glRotatef(FRotationY, 0, 1, 0);&lt;br /&gt;
&lt;br /&gt;
  FillMemory(@Arr[0, 0], 32*4, $00);&lt;br /&gt;
&lt;br /&gt;
  for X := 0 to 31 do&lt;br /&gt;
    for Y := 0 to 3 do&lt;br /&gt;
      for Bit := 0 to 7 do&lt;br /&gt;
        Arr[X, Y] := Arr[X, Y] or (Random(2) shl Bit);&lt;br /&gt;
  glPolygonStipple(@Arr[0, 0]); // Übergabe des Arrays an OpenGL, dazu muss ein Pointer auf das allererste Element erstellt werden.&lt;br /&gt;
&lt;br /&gt;
  glColor4f(1.0, 1.0, 1.0, 1.0);&lt;br /&gt;
  glBegin(GL_QUADS);&lt;br /&gt;
    // Bottom&lt;br /&gt;
    glColor3f(0.0, 0.5, 0.0);&lt;br /&gt;
    glVertex3f(-1.0, -1.0, -1.0);&lt;br /&gt;
    glVertex3f(-1.0, -1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, -1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, -1.0, -1.0);&lt;br /&gt;
&lt;br /&gt;
    // Top&lt;br /&gt;
    glColor3f(0.5, 1.0, 0.5);&lt;br /&gt;
    glVertex3f(-1.0, 1.0, -1.0);&lt;br /&gt;
    glVertex3f(-1.0, 1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, 1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, 1.0, -1.0);&lt;br /&gt;
&lt;br /&gt;
    // Left&lt;br /&gt;
    glColor3f(0.5, 0.0, 0.0);&lt;br /&gt;
    glVertex3f(-1.0, -1.0, -1.0);&lt;br /&gt;
    glVertex3f(-1.0, -1.0, 1.0);&lt;br /&gt;
    glVertex3f(-1.0, 1.0, 1.0);&lt;br /&gt;
    glVertex3f(-1.0, 1.0, -1.0);&lt;br /&gt;
&lt;br /&gt;
    // Right&lt;br /&gt;
    glColor3f(1.0, 0.5, 0.5);&lt;br /&gt;
    glVertex3f(1.0, -1.0, -1.0);&lt;br /&gt;
    glVertex3f(1.0, -1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, 1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, 1.0, -1.0);&lt;br /&gt;
    &lt;br /&gt;
    // Back&lt;br /&gt;
    glColor3f(0.0, 0.0, 0.5);&lt;br /&gt;
    glVertex3f(-1.0, -1.0, -1.0);&lt;br /&gt;
    glVertex3f(-1.0, 1.0, -1.0);&lt;br /&gt;
    glVertex3f(1.0, 1.0, -1.0);&lt;br /&gt;
    glVertex3f(1.0, -1.0, -1.0);&lt;br /&gt;
    &lt;br /&gt;
    // Front&lt;br /&gt;
    glColor3f(0.5, 0.5, 1.0);&lt;br /&gt;
    glVertex3f(-1.0, -1.0, 1.0);&lt;br /&gt;
    glVertex3f(-1.0, 1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, 1.0, 1.0);&lt;br /&gt;
    glVertex3f(1.0, -1.0, 1.0);&lt;br /&gt;
&lt;br /&gt;
  glEnd;&lt;br /&gt;
  SwapBuffers(FDeviceContext);&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glPolygoneStipple''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetPolygonStipple]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]] mit dem Token with argument [[glIsEnabled#GL_POLYGON_STIPPLE|GL_POLYGON_STIPPLE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glDrawPixels]], [[glLineStipple]], [[glPixelStore]], [[glPixelTransfer]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|PolygonStipple]]&lt;br /&gt;
[[Kategorie:GL1.0|PolygonStipple]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetPolygonStipple&amp;diff=25303</id>
		<title>glGetPolygonStipple</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetPolygonStipple&amp;diff=25303"/>
				<updated>2011-07-25T10:24:50Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetPolygonStipple =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetPolygonStipple''' - Liefert das Polygon-Tüpfelungsmuster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetPolygonStipple'''(''mask'': PGLubyte);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''mask'' &lt;br /&gt;
| Zeiger auf das Tüpfelmuster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Mittels des Zeigers ''mask'' liefert '''glGetPolygonStipple''' ein 32x32 Polygon-Tüpfelmuster. (Siehe [[Stippling]].)&lt;br /&gt;
&lt;br /&gt;
Das geliefert Muster liegt exakt so im Speicher, als wenn es mittel [[glReadPixels]] und den Einstellungen&lt;br /&gt;
* Höhe und Breite gleich 32,&lt;br /&gt;
* Typ gleich '''GL_BITMAP''' und&lt;br /&gt;
* Format gleich '''GL_COLOR_INDEX'''&lt;br /&gt;
erstellt worden wäre und in einem internen 32x32 Pixel Farbpuffer gespeichert werden würde.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu [[glReadPixels]] werden '''keine''' Pixeloperationen (&amp;quot;shift&amp;quot;, &amp;quot;offset&amp;quot;, &amp;quot;pixel map&amp;quot;) auf das zurückgelieferte Tüpfelmuster angewandt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Tritt ein Fehler auf, werden keine Änderungen am Inhalt von ''mask'' durchgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetPolygonStipple''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glPixelStore]], [[glPixelTransfer]], [[glPolygonStipple]], [[glReadPixels]]&lt;br /&gt;
&lt;br /&gt;
Hintergrundwissen: [[Stippling]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetPolygonStipple]]&lt;br /&gt;
[[Kategorie:GL1.0|GetPolygonStipple]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetPolygonStipple&amp;diff=25302</id>
		<title>glGetPolygonStipple</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetPolygonStipple&amp;diff=25302"/>
				<updated>2011-07-25T10:24:14Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetPolygonStipple =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetPolygonStipple''' - Liefert das Polygon-Tüpfelungsmuster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetPolygonStipple'''(''mask'': PGLubyte);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''mask'' &lt;br /&gt;
| Zeiger auf das Tüpfelmuster.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Mittels des Zeigers ''mask'' liefert '''glGetPolygonStipple''' ein 32x32 Polygon-Tüpfelmuster. (Siehe [[Stippling]].)&lt;br /&gt;
&lt;br /&gt;
Das geliefert Muster liegt exakt so im Speicher, als wenn es mittel [[glReadPixels]] und den Einstellungen&lt;br /&gt;
* Höhe und Breite gleich 32,&lt;br /&gt;
* Typ gleich '''GL_BITMAP''' und&lt;br /&gt;
* Format gleich '''GL_COLOR_INDEX'''&lt;br /&gt;
erstellt worden wäre und in einem internen 32x32 Pixel Farbpuffer gespeichert werden würde.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu [[glReadPixels]] werden '''keine''' Pixeloperationen (&amp;quot;shift&amp;quot;, &amp;quot;offset&amp;quot;, &amp;quot;pixel map&amp;quot;) auf das zurückgelieferte Tüpfelmuster angewandt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Tritt ein Fehler auf, werden keine Änderungen am Inhalt von ''mask'' durchgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert. wenn '''glGetPolygonStipple''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glPixelStore]], [[glPixelTransfer]], [[glPolygonStipple]], [[glReadPixels]]&lt;br /&gt;
&lt;br /&gt;
Hintergrundwissen: [[Stippling]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetPolygonStipple]]&lt;br /&gt;
[[Kategorie:GL1.0|GetPolygonStipple]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glLoadIdentity&amp;diff=25301</id>
		<title>glLoadIdentity</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glLoadIdentity&amp;diff=25301"/>
				<updated>2011-07-25T08:55:17Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung, kleinere Verbesserungen&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glLoadIdentity =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glLoadIdentity''' - Ersetzt die aktuelle Matrix durch die Einheitsmatrix (engl. ''identity matrix'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glLoadIdentity''';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Die Funktion '''glLoadIdentity''' ersetzt die aktuelle [[Matrix]] durch die [[Tutorial OpenGL3 Lineare Algebra#Einheitsmatrix|Einheitsmatrix]]. Der Aufruf von '''glLoadIdentity''' ist identisch mit einem Aufruf von [[glLoadMatrix]] mit der Einheitsmatrix als Parameter. Allerdings kann in einigen Fällen '''glLoadIdentity''' effizienter sein.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glLoadIdentity''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MATRIX_MODE|GL_MATRIX_MODE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_COLOR_MATRIX|GL_COLOR_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MODELVIEW_MATRIX|GL_MODELVIEW_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PROJECTION_MATRIX|GL_PROJECTION_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_TEXTURE_MATRIX|GL_TEXTURE_MATRIX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glLoadMatrix]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|LoadIdentity]]&lt;br /&gt;
[[Kategorie:GL1.0|LoadIdentity]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glPointSize&amp;diff=25300</id>
		<title>glPointSize</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glPointSize&amp;diff=25300"/>
				<updated>2011-07-25T08:42:41Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glPointSize =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glPointSize''' - legt den Durchmesser von Punkten fest.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glPointSize'''(''size'' : GLfloat);&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;
! ''size'' &lt;br /&gt;
| Bestimmt die Größe der gerasterten Punkte. Der Vorgabewert ist 1.0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Mit '''glPointSize''' wird der Durchmesser in Pixeln von '''''aliased''''' und '''''antialiased''''' Punkten festgelegt. Zeichnen mit von 1 unterschiedlichen Punktgrössen hat je nachdem, ob Punkt-Antialiasing aktiviert ist, verschiedene Effekte.&lt;br /&gt;
Punkt-Antialiasing wird mit [[glEnable]] bzw. [[glDisable]] und dem Argument [[glEnable#GL_POINT_SMOOTH|GL_POINT_SMOOTH]] an- bzw. ausgeschaltet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Ohne Anti-Aliasing'''&lt;br /&gt;
Die tatsächliche Größe wird durch runden auf den nächsten Integer-Wert bestimmt (Werte &amp;lt; 0.5 werden auf 1 gerundet). Falls der gerundete Wert ungerade ist (n=2k+1), dann wird der Mittelpunkt (x,y) der PixelMenge wie folgt berechnet:&lt;br /&gt;
&lt;br /&gt;
[[Bild:GlPointSize_Mittelpunkt_size_ungerade.png]]&lt;br /&gt;
&lt;br /&gt;
wobei w für Fenster-Koordinaten steht. Der Punkt besteht aus allen Pixeln, die innerhalb des Quadrats der festgelegten Grösse um den Mittelpunkt (x,y) liegen.&lt;br /&gt;
Falls der gerundete Wert gerade ist (n=2k), berechnet sich der Mittelpunkt (x,y) wie folgt:&lt;br /&gt;
&lt;br /&gt;
[[Bild:GlPointSize_Mittelpunkt_size_gerade.png]]&lt;br /&gt;
&lt;br /&gt;
Der Punkt besteht aus allen Pixeln, die innerhalb des Quadrats der festgelegten Grösse um den Mittelpunkt (x,y) liegen.&lt;br /&gt;
Alle Pixel bekommen bei abgeschalteten Aliasing den selben Wert zugewiesen (Den des korrespondierenden Vertex).&lt;br /&gt;
&lt;br /&gt;
Mit aktiviertem Antialiasing werden alle Pixel angeschaltet, die innerhalb des Kreises mit Durchmesser der aktuellen Punktgrösse um den Mittelpunkt (x(w), y(w)) liegen. Die Verdeckung für jedes Fragment wird durch die Fensterkoordinaten des Schnittpunktes mit dem entsprechenden Pixel berechnet. Jedes Fragment erhält die Daten des Punktes mit dem es gerendert wird.&lt;br /&gt;
&lt;br /&gt;
Mit aktiviertem Antialiasing sind nicht alle Punktgrössen zulässig. Falls eine unzulässige Grösse angegeben wird, wird die nächste verfügbare Punktgrösse verwendet. Welche Grössen verwendbar sind ist abhängig von der Implementierung. Lediglich 1.0 ist als verwendbare Grösse vorgeschrieben. Die Spanne der verwendbaren Grössen und die Differenz zwischen den einzelnen Grössen kann mit [[glGet]] und den Konstanten [[glGet#GL_POINT_SIZE_RANGE|GL_POINT_SIZE_RANGE]] und [[glGet#GL_POINT_SIZE_GRANULARITY|GL_POINT_SIZE_GRANULARITY]] abgefragt werden.&lt;br /&gt;
&lt;br /&gt;
Mit [[glGet#GL_POINT_SIZE|GL_POINT_SIZE]] als Argument für [[glGet]] wird die durch glPointSize spezifizierte Punktgrösse abgefragt. Rundungen (bei aliased und antialiased Punkten) sowie Beschränkung auf zulässige Punktgrössen haben keinen Einfluss auf den Rückgabewert.&lt;br /&gt;
&lt;br /&gt;
Die Grösse für Aliased-Punkt kann auf ein Implementationsspezifisches Maximum reduziert werden. Dieses kann nicht abgefragt werden, darf aber nicht kleiner sein als das auf den nächsten Integerwert gerundete Maximum für Antialiased-Punkte.&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Eine Kugel im [[glPolygonMode|Polygon Modus]] '''GL_POINTS''' mit &lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! glPointSize(1)&lt;br /&gt;
! glPointSize(5)&lt;br /&gt;
|- &lt;br /&gt;
| [[Bild:Glpointsize1.jpg]]&lt;br /&gt;
| [[Bild:Glpointsize5.jpg]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
Folgende Erweiterungen hat die Funktion erfahren:&lt;br /&gt;
=== Ab OpenGL-Version 1.4 ===&lt;br /&gt;
Vor dem Aliasing bzw. vor dem Schritt '''Ohne Anti-Aliasing''' (siehe oben) werden noch weitere Operationen an einem Punkt ausgeführt : die gewünschte Punktgrösse (''size'') wird mit dem Abstands-Attenuation-Faktor multipliziert, auf einen mit [[glPointParameter]] definierten Punktgrössen-Bereich gemappt und weiterhin auf den implementationsabhängigen Punktgrössen-Bereich gemappt, um die abgeleitete Punktgrösse (''derived_size'') zu erzeugen :&lt;br /&gt;
&lt;br /&gt;
[[Bild:Point_derivedsize_formel.png]]&lt;br /&gt;
&lt;br /&gt;
wobei d der [[Augenkoordinaten]]-Abstand vom Auge (0; 0; 0; 1) in Augenkoordinaten zum Vertex und a, b, c Abstands-Attenuation-Funktionskoeffizienten sind. Wenn [[Multisampling]] nicht aktiviert ist, wird die abgeleitete Grösse an die [[Rasterung]] als Punktbreite weitergereicht. Falls Multisampling aktiviert ist kann die jeweilige OpenGL-Implementation (muss aber nicht) den Alphawert des Punktes abblenden anstatt es zuzulassen, dass die Punktbreite unter einen gegebenen Schwellwert (''threshold'') sinkt. In diesem Fall ist die Breite (''width'') des gerasterten Punktes:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Point_width_formel.png]]&lt;br /&gt;
&lt;br /&gt;
und der Abblendfaktor ''fade'' wie folgt berechnet :&lt;br /&gt;
&lt;br /&gt;
[[Bild:Point_fade_formel.png]]&lt;br /&gt;
&lt;br /&gt;
Die Abstands-Attenuation-Funktionskoeffizienten a, b und c, die Grenzen des ersten Punktgrössenbereichs und die Punktabblendschwelle werden mit [[glPointParameter]] festgelegt.&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL-Version 2.0 ===&lt;br /&gt;
Falls [[Multisampling]] nicht eingeschalten ist, aber ein [[Vertex-Shader]] aktiv und der Punktgrössenmodus des [[Vertex-Programm|Vertexprogramms]] aktiviert ist, wird die abgeleitete Punktgrösse über die (möglicherweise beschnittenen) builtin-Variablen des Shaders, [[gl_PointSize]], bezogen und auf den implementationsabhängigen Punktgrössenbereich gemappt. Falls der in gl_PointSize geschriebene Wert kleiner oder gleich 0 ist, sind die Ergebnisse undefiniert. Falls ein Vertex-Shader aktiv und der Punktgrössenmodus des Vertex-Programms deaktivert ist, wird die abgeleitete Punktgrösse vom Punktgrössenzustand genommen, der durch den Befehl '''glPointSize''' definiert wird. In diesem Falle wird keine Abstands-Attenuation ausgeführt. Der Punktgrössenmodus des Vertex-Programms wird durch den Aufruf von [[glEnable]] oder [[glDisable]] mit dem symbolischen Wert '''GL_VERTEX_PROGRAM_POINT_SIZE''' aktiviert bzw. deaktivert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''size'' kleiner oder gleich 0 ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glPointSize''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_POINT_SIZE|GL_POINT_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_POINT_SIZE_RANGE|GL_POINT_SIZE_RANGE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_POINT_SIZE_GRANULARITY|GL_POINT_SIZE_GRANULARITY]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]] mit Token '''GL_POINT_SMOOTH'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glEnable]] , [[glLineWidth]], [[OpenGL_Smooth]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|PointSize]]&lt;br /&gt;
[[Kategorie:GL1.0|PointSize]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetString&amp;diff=25299</id>
		<title>glGetString</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetString&amp;diff=25299"/>
				<updated>2011-07-25T08:38:20Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategoriserung, Update/Ergänzung, Wikisyntax für Tabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetString =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetString''' - Gibt einen String zurück, der die aktuelle OpenGL-Anbindung beschreibt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 function '''glGetString'''(''name'' : TGLenum) : PChar; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''name''&lt;br /&gt;
| Symbolische Konstante, die entweder '''GL_VENDOR''', '''GL_RENDERER''', '''GL_VERSION''', '''GL_SHADING_LANGUAGE_VERSION''' oder '''GL_EXTENSIONS''' ist.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetString''' gibt einen String zurück, der einen Aspekt der aktuellen OpenGL-Anbindung beschreibt, wobei für ''name'' folgende symbolische Konstanten gültig sind:&lt;br /&gt;
&lt;br /&gt;
*'''GL_VENDOR'''&lt;br /&gt;
:Gibt den Namen des Herstellers, von dem die GL-Implementation stammt, zurück. Dieser bleibt von Version zu Version gleich.&lt;br /&gt;
&lt;br /&gt;
*'''GL_RENDERER'''&lt;br /&gt;
:Gibt den Namen des Renderers zurück, der im Normalfall die Hardwareplattform genauer beschreibt, und auch für jede Version gleich ist.&lt;br /&gt;
&lt;br /&gt;
*'''GL_VERSION'''&lt;br /&gt;
:Gibt die Versionsnummer der GL-Implementation zurück.&lt;br /&gt;
&lt;br /&gt;
*'''GL_EXTENSIONS'''&lt;br /&gt;
:Gibt eine (durch Leerzeichen getrennte) Liste aller unterstützten OpenGL-Erweiterungen zurück.&lt;br /&gt;
&lt;br /&gt;
*'''GL_SHADING_LANGUAGE_VERSION'''&lt;br /&gt;
:Gibt zurück, welche Version der OpenGL Shading Language unterstützt wird.&lt;br /&gt;
&lt;br /&gt;
Da OpenGL keine Abfragen für etwaige Performancecharacteristika einer Implementation bietet, werden einige Anwendung so entwickelt, dass sie bestimmte Plattformen erkennen und ihre GL-Nutzung daher an selbige anpassen. Dazu kann man die unter Übergabe von '''GL_VENDOR''' und '''GL_RENDERER''' zurückgegebenen Strings benutzen, um eine solche Plattform eindeutig zu identifizieren (da diese nicht von Version zu Version unterschiedlich sind).&lt;br /&gt;
&lt;br /&gt;
Andere Anwendungen hingegen wollen evtl. Funktionen nutzen, die nicht Bestandteil des GL-Kerns (&amp;quot;Core-Funktionen&amp;quot;) sind. Diese Extensions können mit '''GL_EXTENSIONS''' abgefragt werden, und werden dann als eine durch Leerzeichen getrennte Liste zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Die mit '''GL_VERSION''' und '''GL_SHADING_LANGUAGE_VERSION''' zurückgelieferten Strings beginnen immer mit einer Versionsnummer, die folgendermaßen aussieht:&lt;br /&gt;
:Haupt_Version.Neben_Version &lt;br /&gt;
oder &lt;br /&gt;
:Haupt_Version.Neben_Version.Release_Version&lt;br /&gt;
&lt;br /&gt;
Danach können noch herstellerspezifische Informationen folgen, die je nach Implementation unterschiedlich sind. Allerdings werden diese immer durch ein Leerzeichen von der Versionsnummer abgetrennt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Wenn ein Fehler wärend der Ausführung von '''glGetString''' auftritt, wird immer ein leerer String zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Client und Server können unterschiedliche Versionen und Erweiterungen unterstützen, '''glGetString''' liefert aber immer eine für beide kompatible Versionsnummer und Erweiterungsliste zurück, wobei die Release-Nummer jedoch immer den Server beschreibt.&lt;br /&gt;
&lt;br /&gt;
'''GL_SHADING_LANGUAGE_VERSION''' ist nur verfügbar, wenn die OpenGL Version 2.0 oder größer ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''name'' kein gültiger Wert ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetString''' zwischen einem [[glBegin]] und einem [[glEnd]] aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetString]]&lt;br /&gt;
[[Kategorie:GL1.0|GetString]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glDrawPixels&amp;diff=25298</id>
		<title>glDrawPixels</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glDrawPixels&amp;diff=25298"/>
				<updated>2011-07-25T08:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glDrawPixels =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glDrawPixels''' - liest Pixeldaten aus dem Speicher und schreibt diese in den [[Framebuffer]] relativ zur aktuellen Rasterposition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glDrawPixels'''(''width'': TGLsizei; ''height'': TGLsizei; &lt;br /&gt;
                        ''format'': TGLenum; ''_type'': TGLenum; &lt;br /&gt;
                        const ''pixels'': PGLvoid);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=1 rules=all&lt;br /&gt;
! ''width, height''&lt;br /&gt;
|Beschreibt die Dimensionen des Pixelrechtecks. Die Angaben werden dabei in Pixel gemacht.&lt;br /&gt;
|-&lt;br /&gt;
!''format''&lt;br /&gt;
| Bestimmt das Format der Pixeldaten. Folgende symbolische Werte werden akzeptiert: &amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE,''' und '''GL_LUMINANCE_ALPHA'''&lt;br /&gt;
|-&lt;br /&gt;
!''type''&lt;br /&gt;
| Beschreibt den Datentyp der Pixeldaten. Muss einer der Folgenden sein:&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT,''' oder '''GL_FLOAT'''&lt;br /&gt;
|-&lt;br /&gt;
!''pixels''&lt;br /&gt;
| Beschreibt die Pixeldaten, die in einem Array gespeichert sind.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
'''glDrawPixels''' liest Pixeldaten aus dem Speicher und schreibt diese in den [[Framebuffer]] relativ zur aktuellen Rasterposition. Nutzen Sie [[glRasterPos]], um die aktuelle Rasterposition zu setzen. Um die aktuelle Rasterposition abzufragen, nutzen Sie [[glGet]] mit dem Argument '''GL_CURRENT_RASTER_POSITION'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verschiedene Parameter bestimmen das Decodieren der Pixeldaten im Speicher und die Verarbeitung der Daten, bevor diese im Framebuffer abgelegt werden. Diese Parameter werden mit 4 Befehlen gesetzt: [[glPixelStore]], [[glPixelTransfer]], [[glPixelMap]], und [[glPixelZoom]]. Dieser Artikel beschreibt den Effekt vieler, jedoch nicht aller Parameter, welche die 4 genannten Befehle auf '''glDrawPixels''' haben können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Daten, welche aus ''pixels'' gelesen werden, werden als Sequenz von vorzeichenlosen bzw. -behafteten Bytes, Shortints, Integer oder Fließkommazahlen mit einfacher Genauigkeit angesehen. Bestimmt wird dies über die Typangabe in ''type''. Jeder einzelne dieser Werte wird je nach Wert von ''format'' als Farb- oder Tiefenkomponente oder als Index verstanden. Indizes werden immer einzeln behandelt. Farbkomponenten werden als Gruppen von ein bis vier Elementen angesehen. (Dies ist wiederum abhängig von ''format''.) Indizes und Farbkomponentengruppen gehören jeweils zu einem Pixel. Wenn ''type'' '''GL_BITMAP''' ist, müssen die Daten vorzeichenlose Ganzzahlen sein und ''format'' muss entweder '''GL_COLOR_INDEX''' oder '''GL_STENCIL_INDEX''' sein. Jedes vorzeichenlose Byte wird als acht 1-Bit Pixel behandelt. Die Bitanordnung wird über '''GL_UNPACK_LSB_FIRST''' gesteuert (siehe [[glPixelStore]]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Es werden ''width'' x ''height'' Pixel aus dem Speicher gelesen. Begonnen wird an der Stelle auf die  ''pixels'' zeigt. Standardmäßig werden die Pixel aus angrenzenden Speicherregionen gelesen. Eine Ausnahme tritt nach allen ''width'' Pixel ein, wo der Lesepointer zur nächsten 4-Byte-Grenze vorgerückt wird. Die 4-Byte Zeilenausrichtung wird über [[glPixelStore]] mit dem Argument '''GL_UNPACK_ALIGNMENT''' gesetzt. Die Ausrichtung kann auch zur 1, 2, 4 oder 8-Byte-Grenze geändert werden. Andere Pixelstore Prameter spezifizieren andere Lesepointerschrittweiten (bevor das erste Pixel gelesen wird, aber auch nachdem ''width'' Pixel gelesen wurden.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die ''width'' x ''height'' Pixel welche aus dem Speicher gelesen werden, werden alle auf die selbe Art und Weise verarbeitet. Bestimmt wird dies durch diverse Parameter die durch [[glPixelTransfer]] und [[glPixelMap]] gesetzt werden können. Details dieser Operationen genauso wie der Zielpuffer indem die Pixel gezeichnet werden sollen, werden über das Pixelformat bestimmt. Dieses wiederum wird über den Parameter ''format'' angegeben. ''format'' kann einen von elf symbolischen Werten annehmen:&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_INDEX'''&lt;br /&gt;
:Jedes Pixel ist ein einzelnder Wert, ein Farbindex. Dieser wird in eine Festkommazahl mit einer undefinerten Anzahl an binären Nachkommastellen, unabhängig vom verwendeten Datentyp, konvertiert. Fließkomma-Zahlen werden zu Festkommazahlen. Ganze Zahlen mit oder ohne Vorzeichen werden ebenfalls zu Festkommazahlen konviertiert wobei die Bits für die Nachkommastellen in dem Fall alle 0 sind. Bitmap-Werte werden entweder zu 0.0 oder 1.0 konvertiert.&lt;br /&gt;
:Jeder Festkommaindex wird dann um '''GL_INDEX_SHIFT''' Bits nach links verschoben und dann zu '''GL_INDEX_OFFSET''' addiert. Wenn '''GL_INDEX_SHIFT''' negativ ist, wird nach rechts verschoben. In beiden Fällen werden undefinierte Bits mit Nullen aufgefüllt.&lt;br /&gt;
&lt;br /&gt;
:Wennn sich OpenGL im RGBA-Modus befindet, wird der resultierende Index in ein RGBA-Pixel mithilfe der '''GL_PIXEL_MAP_I_TO_R'''-, '''GL_PIXEL_MAP_I_TO_G'''-, '''GL_PIXEL_MAP_I_TO_B'''- und '''GL_PIXEL_MAP_I_TO_A'''-Tabellen konvertiert. Befindet sich die GL im Color-Index-Modus, und ist '''GL_MAP_COLOR''' aktiviert, wird der Index durch den Wert ersetzt, auf den er in der Tabelle '''GL_PIXEL_MAP_I_TO_I''' zeigt. Egal ob das Ersetzen des Index vollzogen wurde, oder auch nicht, wird der Integer-Teil des Index mit 2*b-1 '''AND''' verknüpft(''b'' ist die Anzahl der Bits im Stencil-Puffer).&lt;br /&gt;
:Die resultierenden Indices oder RGBA-Farben werden dann zu Fragmenten konvertiert, indem die aktuelle Raster-Positions-Z-Koordinate und Textur-Koordinaten auf jedes Pixel angewendet werden und anschließend die x- und y-Fenster-Koordinaten auf das n-te Fragment so angewendet werden, dass &lt;br /&gt;
&lt;br /&gt;
:[[Bild:GlDrawPixels_RasterPosToFragment.png]]&lt;br /&gt;
&lt;br /&gt;
:wobei [x(r), y(r)] die aktuelle Rasterposition ist. Diese Pixel werden dann genauso behandelt, wie wenn die Fragmente durch Rasterisieren von Punkten, Linien oder Polygonen erzeugt worden wären. Texturen, Nebel und andere Fragment-Operationen werden durchgeführt, bevor die Fragmente in den Framebuffer geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_STENCIL_INDEX'''&lt;br /&gt;
:Jedes Pixel ist ein einzelner Wert, ein Stecil-Index. Dieser wird in eine Festkommazahl mit einer undefinerten Anzahl an binären Nachkommastellen, unabhängig vom verwendeten Datentyp, konvertiert. Fließkomma-Zahlen werden zu Festkommazahlen. Ganze Zahlen mit oder ohne Vorzeichen werden ebenfalls zu Festkommazahlen konviertiert wobei die Bits für die Nachkommastellen in dem Fall alle 0 sind. Bitmap-Werte werden entweder zu 0.0 oder 1.0 konvertiert.&lt;br /&gt;
&lt;br /&gt;
:Jeder Festkommaindex wird dann um '''GL_INDEX_SHIFT''' Bits nach links verschoben und dann zu '''GL_INDEX_OFFSET''' addiert. Wenn '''GL_INDEX_SHIFT''' negativ ist, wird nach rechts verschoben. In beiden Fällen werden undefinierte Bits mit Nullen aufgefüllt. Wenn '''GL_MAP_STENCIL''' aktiviert ist, wird ''index'' durch den Wert ersetzt, auf den ''index'' in der Tabelle '''GL_PIXEL_MAP_S_TO_S''' zeigt. Egal ob das Ersetzen des Index vollzogen wurde, oder auch nicht, wird der Integer-Teil des Index mit 2*b-1 '''AND''' verknüpft(''b'' ist die Anzahl der Bits im Stencil-Puffer), so dass der n-te Index an die Location&lt;br /&gt;
&lt;br /&gt;
:[[Bild:GlDrawPixels_RasterPosToFragment.png]]&lt;br /&gt;
&lt;br /&gt;
:geschrieben wird,&lt;br /&gt;
:wobei [x(r),y(r)] die aktuelle Rasterposition ist. Nur der Pixel-Ownership-Test, der Scissor-Test und Stencil-Writemask beeinflussen diesen Schreinvorgang.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_DEPTH_COMPONENT'''&lt;br /&gt;
:Jedes Pixel ist eine einzelne Depth-Komponente. Fließkomma-Daten werden direkt in ein internes Fließkomma-Format mit undefinierter Präzision konvertiert. Ganze Zahlen mit Vorzeichen werden linear auf das interne Fließkomma-Format gemapped, so dass die größte positive Zahl 1.0 entspricht, und die kleinste negative Zahl -1.0. Ganze Zahlen ohne Vorzeichen werden genauso gemapped: Die größte Zahl wird zu 1.0, 0 wird zu 0.0. Der resultierende Fließkomma-Tiefenwert wird dann mit '''GL_DEPTH_SCALE''' multipliziert und  zu '''GL_DEPTH_BIAS''' adiiert. Das Ergebnis wird auf den [0,1]-Bereich angepasst.&lt;br /&gt;
&lt;br /&gt;
:Die resultierenden Depth-Komponenten werden dann zu Fragmenten konvertiert, indem die aktuelle Rasterpositionsfarbe oder der aktuelle Rasterpositionsfarbindex und Texturkoordinaten auf jedes Pixel angewendet werden, und dann die x- und y-Fenster-Koordinaten so auf das n-te Fragment angewendet werden, dass&lt;br /&gt;
:[[Bild:GlDrawPixels_RasterPosToFragment.png]]&lt;br /&gt;
&lt;br /&gt;
:wobei [x(r), y(r)] die aktuelle Rasterposition ist. Diese Pixel werden dann genauso behandelt, wie wenn die Fragmente durch rasterisieren von Punkten, Linien oder Polygonen erzeugt worden wären. Texturen, Nebel und andere Fragment-Operationen werden durchgeführt, bevor die Fragmente in den Framebuffer geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_RGBA'''&lt;br /&gt;
:Jedes Pixel wird auf eine Gruppe aus vier Werten abgebildet: Rot, Grün, Blau und Alpha-Wert.&lt;br /&gt;
:Fließkommazahlen werden in ein internes Fließkommaformat mit unbestimmter Genauigkeit umgewandelt. Vorzeichenbehaftete Integer werden linear in das interne Fließkommaformat umgewandelt, wobei der größtmögliche Wert (MAXINT) auf 1.0 und der kleinstmögliche Wert (MININT) auf -1.0 abgebildet wird. Vorzeichenlose Integer werden ähnlich behandelt. Null wird auf 0.0 abgebildet und der größtmögliche Wert wird auf 1.0 abgebildet. Die resultierenden Fließkommewerte werden dann entsprechend mit '''GL_RED_SCALE''', '''GL_GREEN_SCALE''', '''GL_BLUE_SCALE''' bzw. '''GL_ALPHA_SCALE''' multipliziert und zu '''GL_RED_BIAS''', '''GL_GREEN_BIAS''', '''GL_BLUE_BIAS''' bzw. '''GL_ALPHA_BIAS''' addiert. In einem letzten Schritt werden die Resultate noch auf den Wertebereich [0..1] abgebildet.&lt;br /&gt;
:Hat '''GL_MAP_COLOR''' den Wert true, dann werden alle Farbkomponenten anhand der Tabelle '''GL_PIXEL_MAP_c_TO_c''' (c ist je nachdem R, G, B oder A) skaliert und anschließend durch den entsprechenden Wert in der Tabelle ersetzt.&lt;br /&gt;
:Die resultierenden RGBA-Farben werden dann zu Fragmenten konvertiert, indem die aktuelle Z-Koordinate und Textur-Koordinate auf jedes Pixel angewendet werden und anschließend die x und y Koordinaten des Fensters so auf das n-te Fragment angewendet werden, dass&lt;br /&gt;
:[[Bild:GlDrawPixels_RasterPosToFragment.png]]&lt;br /&gt;
:wobei [x(r), y(r)] die aktuelle Raster-Position ist. Diese Pixel werden dann genauso behandelt, wie wenn die Fragmente durch rasterisieren von Punkten, Linien oder Polygonen erzeugt worden wären. Texturen, Nebel und andere Fragment-Operationen werden durchgeführt, bevor die Fragmente in den Framebuffer geschrieben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_RED''' &lt;br /&gt;
:Jedes Pixel besteht aus einer einzelnen roten Farbkomponente. Die Komponente wird in der selben Weise in das interne Fließkommaformat kovertiert wie die Rotkomponente eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen Grün bzw. Blaukomponente 0.0 und dessen Alphakomponente 1.0 ist. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_GREEN'''&lt;br /&gt;
:Jedes Pixel besteht aus einer einzelnen grünen Farbkomponente. Die Komponente wird in der selben Weise in das interne Fließkommaformat kovertiert wie die Grünkomponente eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen Rot bzw. Blaukomponente 0.0 und dessen Alphakomponente 1.0 ist. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_BLUE'''&lt;br /&gt;
:Jedes Pixel besteht aus einer einzelnen blauen Farbkomponente. Die Komponente wird in der selben Weise in das interne Fließkommaformat kovertiert wie die Blaukomponente eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen Grün bzw. Rotkomponente 0.0 und dessen Alphakomponente 1.0 ist. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
'''GL_ALPHA'''&lt;br /&gt;
:Jedes Pixel besteht aus einer einzelnen Alphakomponente. Die Komponente wird in der selben Weise in das interne Fließkommaformat kovertiert wie die Alphakomponente eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen RGB-Komponenten alle 0.0 sind. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_RGB'''&lt;br /&gt;
:Jedes Pixel besteht aus einer 3-Komponenten-Gruppe. Die einzelnen Komponenten werden in der selben Weise in das interne Fließkommaformat kovertiert wie die Komponenten eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen Alphakomponente 1.0 ist. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE'''&lt;br /&gt;
:Jedes Pixel besteht aus einer einzelnen Helligkeitskomponente. Die Komponente wird in der selben Weise in das interne Fließkommaformat kovertiert wie die Rotkomponente eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen RGB-Komponenten auf den Konvertierten Helligkeitswert gesetzt sind und dessen Alphakomponente 1.0 ist. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE_ALPHA'''&lt;br /&gt;
:Jedes Pixel besteht aus einer 2-Komponenten-Gruppe: Zuerst ein Helligkeitswert dann der Alphawert. Die Komponenten werden in der selben Weise in das interne Fließkommaformat kovertiert wie die Rotkomponente eines RGBA Pixels. Anschließend wird das Pixel in ein RGBA Pixel umgewandelt dessen RGB-Komponenten auf den Konvertierten Helligkeitswert gesetzt sind und dessen Alphakomponente auf den konvertierten Alphawert gesetzt ist. Nach dieser Konvertierung wird das Pixel wie ein normales RGBA Pixel behandelt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hier nocheinmal eine Zusammenfassung der für den Parameter ''format'' akzeptierten Werte:&lt;br /&gt;
=== Format Parameter ===&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| {{Prettytable_B1}}&lt;br /&gt;
! Name &lt;br /&gt;
! Art der Pixeldaten&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_COLOR_INDEX'''   || Ein Farb-Index&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_RGB''' 	       ||   Eine rote Farbkomponente, gefolgt von einer grünen und einer blauen &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_RGBA''' 	       ||   Eine rote Farbkomponente, gefolgt von einer grünen, einer blauen und eines Alpha-Wertes &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_RED'''           ||   Eine rote Farbkomponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_GREEN''' 	       ||  Eine gruene Farbkomponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_BLUE''' 	       ||   Eine blaue Farbkomponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_ALPHA''' 	       ||   Eine Alpha-Wert Farbkomponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_LUMINANCE''' 	||  Eine Helligkeits-Komponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_LUMINANCE_ALPHA''' ||  Eine Helligkeits-Komponente gefolgt von einer Alpha-Wert Farbkomponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_STENCIL_INDEX'''  ||  Eine Masken- Komponente &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_DEPTH_COMPONENT'''||  Eine Farbtiefen-Wert Farbkomponente &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Der Parameter ''type'' gibt an, wieviel Speicherplatz für eine Komponente eines Pixels reserviert wurde&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| {{Prettytable_B1}}&lt;br /&gt;
! Name &lt;br /&gt;
! Datentyp &lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_BYTE''' ||  unsigned 8-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_BYTE''' 	        ||  signed 8-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_BITMAP''' 	||  single bits in unsigned 8-bit integers&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT'''||  unsigned 16-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_SHORT'''         ||  signed 16-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_INT''' 	||  unsigned 32-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_INT''' 	        ||  32-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_FLOAT''' 	||  single-precision floating point&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_BYTE_3_3_2''' ||  unsigned 8-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_BYTE_2_3_3_REV''' ||  unsigned 8-bit integer with reversed component ordering&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT_5_6_5'''  ||  unsigned 16-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT_5_6_5_REV'''  ||  unsigned 16-bit integer with reversed component ordering&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT_4_4_4_4'''  ||  unsigned 16-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT_4_4_4_4_REV'''  ||  unsigned 16-bit integer with reversed component ordering&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT_5_5_5_1'''  ||  unsigned 16-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_SHORT_1_5_5_5_REV'''  ||  unsigned 16-bit integer with reversed component ordering&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_INT_8_8_8_8'''  ||  unsigned 32-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_INT_8_8_8_8_REV'''  ||  unsigned 32-bit integer with reversed component ordering&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_INT_10_10_10_2'''  ||  unsigned 32-bit integer&lt;br /&gt;
|-&lt;br /&gt;
|'''GL_UNSIGNED_INT_2_10_10_10_REV'''  ||  unsigned 32-bit integer with reversed component ordering&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Beispiel:''' Wenn das Format '''GL_RGBA''' ist und als ''type'' '''GL_INT''' (32 bit) eingegeben wurde, dann braucht jedes Pixel einen Speicher von 16 bytes (4 Komponenten x 4 bytes).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Werte von Pixeln außerhalb des Fensters, das mit dem aktuellen GL-Kontext verbunden ist, sind undefiniert.&lt;br /&gt;
&lt;br /&gt;
Wenn ein Fehler bei der Durchführung der Funktion auftritt, werden keine Veränderungen am Inhalt von ''pixels'' durchgeführt.&lt;br /&gt;
&lt;br /&gt;
'''GL_BGR''' und '''GL_BGRA''' sind nur für ''format'' gültig, wenn die OpenGL-Version 1.2 oder höher ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_UNSIGNED_BYTE_3_3_2''', '''GL_UNSIGNED_BYTE_2_3_3_REV''', '''GL_UNSIGNED_SHORT_5_6_5''', '''GL_UNSIGNED_SHORT_5_6_5_REV''', '''GL_UNSIGNED_SHORT_4_4_4_4''', '''GL_UNSIGNED_SHORT_4_4_4_4_REV''', '''GL_UNSIGNED_SHORT_5_5_5_1''', '''GL_UNSIGNED_SHORT_1_5_5_5_REV''', '''GL_UNSIGNED_INT_8_8_8_8''', '''GL_UNSIGNED_INT_8_8_8_8_REV''', '''GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV''' sind nur für ''_type'' gültig, wenn die OpenGL-Version 1.2 oder höher ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' oder ''type'' ein ungültiger Wert übergeben wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn entweder ''width'' oder ''height'' negativ ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''format'' '''GL_COLOR_INDEX''' ist und der [[Farbpuffer]] RGBA Werte enthält.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''format'' '''GL_STENCIL_INDEX''' ist und kein Schablonen-(/Stencil-)Puffer existiert.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''format'' '''GL_DEPTH_COMPONENT''' ist und kein [[Tiefenpuffer]] existiert.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glDrawPixels''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_INDEX_MODE|GL_INDEX_MODE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_POSITION|GL_CURRENT_RASTER_POSITION]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_POSITION_VALID|GL_CURRENT_RASTER_POSITION_VALID]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_UNPACK_BUFFER_BINDING|GL_PIXEL_UNPACK_BUFFER_BINDING]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glCopyPixels]], [[glReadPixels]], [[glPixelMap]], [[glPixelStore]], [[glPixelZoom]], [[glPixelTransfer]], [[glReadBuffer]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|DrawPixels]]&lt;br /&gt;
[[Kategorie:GL1.0|DrawPixels]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glBlendColor&amp;diff=25297</id>
		<title>glBlendColor</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glBlendColor&amp;diff=25297"/>
				<updated>2011-07-25T08:20:58Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glBlendColor =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glBlendColor''' - setzt die Farbe fürs Blending&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glBlendColor'''(''red'': TGLclampf; ''green'': TGLclampf; ''blue'': TGLclampf; ''alpha'': TGLclampf);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''Red, Green, Blue, Alpha'' &lt;br /&gt;
| Bestimmen den jeweiligen Farbwert für das konstante Blenden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glBlendColor''' setzt die konstante Farbe für die Quell- und Zielblendfaktoren ((Rc, Gc, Bc, Ac); siehe [[glBlendFunc]]). Die vier Farbkomponenten werden auf das Intervall [0,1] beschränkt, bevor sie gespeichert werden.&lt;br /&gt;
&lt;br /&gt;
Der '''Initialwert''' für die konstante Blendfarbe ist (0,0,0,0).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
'''glBlendColor''' ist Teil der [[GL_ARB_imaging]]-Erweiterung und ist damit nur verfügbar, wenn GL_ARB_imaging Teil des Rückgabewertes eines [[glGetString]]-Aufrufs mit Parameter '''GL_EXTENSION''' ist.&lt;br /&gt;
&lt;br /&gt;
Die Funktion wurde als '''glBlendColorEXT''' eingeführt und war Teil der Erweiterung [[GL_EXT_blend_color|EXT_blend_color]]. &lt;br /&gt;
'''glBlendColorEXT''' kann nur dann benutzt werden, wenn der Extensionname im Rückgabestring des Aufrufs von [[glGetString]] mit dem Argument '''GL_EXTENSIONS''' enthalten ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glBlendColor''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_BLEND_COLOR|GL_BLEND_COLOR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glBlendFunc]], [[glGetString]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|BlendColorEXT]]&lt;br /&gt;
[[Kategorie:GL3|BlendColor]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glDrawBuffer&amp;diff=25296</id>
		<title>glDrawBuffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glDrawBuffer&amp;diff=25296"/>
				<updated>2011-07-25T08:12:59Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glDrawBuffer =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glDrawBuffer''' - gibt an, in welche [[Farbpuffer]] gezeichnet werden soll.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 '''procedure''' glDrawBuffer(''mode'': TGLenum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=1 rules=all&lt;br /&gt;
! ''mode''&lt;br /&gt;
| Spezifiziert bis zu vier [[Farbpuffer]] in die gezeichnet werden soll. Akzeptiert werden folgende symbolische Konstanten: &amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_NONE, GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, GL_FRONT_AND_BACK,''' und '''GL_AUXi''', wobei i zwischen 0 und '''GL_AUX_BUFFERS'''-1 liegen kann. ('''GL_AUX_BUFFERS''' ist nicht die obere Grenze. Benutzen Sie [[glGet]], um die Anzahl der vorhandenen Hilfspuffer (Aux-Buffer) zu bestimmen.) &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Vorgabewert''' ist '''GL_FRONT''' für einfach gepufferte (single buffered) Kontexte und '''GL_BACK''' für doppelt gepufferte Kontexte (siehe [[Doppelpufferung]]).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Wenn Farben in den [[Framebuffer]] geschrieben werden, werden sie in die [[Farbpuffer]], die mittels '''glDrawBuffer''' angegeben wurden, eingetragen.&lt;br /&gt;
&lt;br /&gt;
Die Konstanten haben folgende Bedeutung:&lt;br /&gt;
&lt;br /&gt;
=== GL_NONE ===&lt;br /&gt;
: In keinen Farbpuffer wird etwas geschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_FRONT_LEFT ===&lt;br /&gt;
: Nur der vordere linke Farbpuffer wird beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_FRONT_RIGHT ===&lt;br /&gt;
: Nur der vordere rechte Farbpuffer wird beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_BACK_LEFT ===&lt;br /&gt;
: Nur der hintere linke Farbpuffer wird beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_BACK_RIGHT ===&lt;br /&gt;
: Nur der hintere rechte Farbpuffer wird beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_FRONT ===&lt;br /&gt;
: Nur der vordere rechte und linke Farbpuffer wird beschrieben. Wenn kein vorderer rechter Farbpuffer existiert, wird nur der linke beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_BACK ===&lt;br /&gt;
: Nur der hintere rechte und linke Farbpuffer wird beschrieben. Wenn kein hinterer rechter Farbpuffer existiert, wird nur der linke beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_LEFT ===&lt;br /&gt;
: Nur der vordere und hintere linke Farbpuffer wird beschrieben. Wenn kein hinterer linker Farbpuffer existiert, wird nur der vordere beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_RIGHT ===&lt;br /&gt;
: Nur der vordere und hintere rechte Farbpuffer wird beschrieben. Wenn kein hinterer rechter Farbpuffer existiert, wird nur der vordere beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_FRONT_AND_BACK ===&lt;br /&gt;
: Alle 4 Farbpuffer (vorn bzw. hinten links und recht) werden beschrieben. Wenn es keine Backpuffer gibt, werden nur die Frontpuffer beschrieben. Wenn es keine rechten Puffer gibt, werden nur die linken beschrieben. Wenn es weder rechte noch Backpuffer gibt, wird nur der vordere, linke Farbpuffer beschrieben.&lt;br /&gt;
&lt;br /&gt;
=== GL_AUXi ===&lt;br /&gt;
: Nur der '''i'''te Hilfsfarbpuffer wird beschrieben.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Wenn mehr als ein [[Farbpuffer]] zum Zeichnen ausgewählt wurden, wird [[Blenden|Blending]] oder logische Operationen für jeden Puffer unabhängig berechnet und angewandt. Dies kann unterschiedliche Resultate in den verschiedenen Puffern zur Folge haben.&lt;br /&gt;
&lt;br /&gt;
[[monoskop|Monoskopische]] Kontexte besitzen nur linke Buffer.&lt;br /&gt;
&lt;br /&gt;
[[stereoskop|Stereoskopische]] Kontexte besitzen linke und rechte Buffer.&lt;br /&gt;
&lt;br /&gt;
Einfach gepufferte Kontexte besitzen nur Frontpuffer.&lt;br /&gt;
&lt;br /&gt;
Doppelt gepufferte Kontexte besitzen Front- und Backpuffer.&lt;br /&gt;
&lt;br /&gt;
Der Kontext wird bei der Initialisierung der GL erstellt.&lt;br /&gt;
&lt;br /&gt;
Es gilt immer: '''GL_AUX'''i = '''GL_AUX0''' + i&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''mode'' ein ungültiger Wert übergeben wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn keiner der in ''mode'' übergebenen Puffer existiert.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glDrawBuffer''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_DRAW_BUFFER|GL_DRAW_BUFFER]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_AUX_BUFFERS|GL_AUX_BUFFERS]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glBlendFunc]], [[glColorMask]], [[glIndexMask]], [[glLogicOp]], [[glReadBuffer]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|DrawBuffer]]&lt;br /&gt;
[[Kategorie:GL1.0|DrawBuffer]]&lt;br /&gt;
[[Kategorie:GL3|DrawBuffer]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=alIsBuffer&amp;diff=25295</id>
		<title>alIsBuffer</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=alIsBuffer&amp;diff=25295"/>
				<updated>2011-07-22T10:23:15Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Tippfehler korrigiert.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= alIsBuffer =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''alIsBuffer''' - Überprüft, ob ein angegebener Puffername für einen gültigen OpenAL-Puffer steht.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 function '''alIsBuffer'''(''buffer'': TALuint): TALboolean;&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;
! ''buffer'' &lt;br /&gt;
| Der repräsentative Name des Puffers, welcher auf Gültigkeit getestet werden soll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''alIsBuffer''' überprüft, ob der als Parameter ''buffer'' angegebene Wert einen gültigen OpenAL-Puffer repräsentiert. Falls dem so ist, wird '''AL_TRUE''' zurückgegeben, andernfalls '''AL_FALSE'''. Die Funktion unterscheidet dabei nicht zwischen ungültigen und gelöschten Puffern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise == &lt;br /&gt;
Der sogenannte &amp;quot;NULL-Puffer&amp;quot;, d.h. der Puffer, welcher durch den Wert 0 repräsentiert wird, ist ''immer'' gültig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
Zu dieser Funktion sind keine Fehlermeldungen vorgesehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[alGenBuffers]], [[alDeleteBuffers]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:AL|IsBuffer]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=XRaiseWindow&amp;diff=25294</id>
		<title>XRaiseWindow</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=XRaiseWindow&amp;diff=25294"/>
				<updated>2011-07-22T09:54:47Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Siehe auch */ Link korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= XRaiseWindow =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''XUnmapWindow''' - Bringt ein Fenster in den Vordergrund&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 function '''XRaiseWindow'''(''dpy'': PDisplay; ''w'': Window): Integer;&lt;br /&gt;
&lt;br /&gt;
&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;
! ''dpy''&lt;br /&gt;
| Gibt die Verbindung zum X-Server an&lt;br /&gt;
|-&lt;br /&gt;
! ''w''&lt;br /&gt;
| Gibt das Fenster an, welches nach vorne geholt werden soll&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Die Funktion '''XRaiseWindow''' holt das angegebene Fenster nach oben auf den Stapel, so dass kein Geschwisterfenster es mehr überlappt. Wenn die Fenster als ein Stapel Papier auf dem Schreibtisch betrachtet werden, dann ist das nach vorne holen eines Fensters analog zum obendrauflegen eines bestimmten Blattes auf den Stapel, wenn die X- und Y-Koordinaten auf dem Tisch gleich bleiben. Das nach vorne holen eines Fensters kann '''''Exposure'''''-Ereignisse für das Fenster und seine gemappten Subfenster erzeugen, wenn sie vorher verdeckt waren.&lt;br /&gt;
&lt;br /&gt;
Wenn das override-redirect-Flag des Fensters '''''False''''' ist und ein anderer Client '''''SubstructureRedirectMask''''' für das Elternfenster ausgewählt hat, generiert der X-Server ein '''''ConfigureRequest''''' Ereignis und nichts geschieht. Andernfalls wird das Fenster nach vorne geholt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''BadWindow''' wird generiert, wenn ''w'' kein gültiges Fenster ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[XChangeWindowAttributes]], [[XConfigureWindow]], [[XCreateWindow]], [[XDestroyWindow]], [[XMapWindow]], [[XMoveResizeWindow]], [[XUnmapWindow]], [[XResizeWindow]], [[XSetWindowBorderWidth]], [[XMoveWindow]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:X|RaiseWindow]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glCopyPixels&amp;diff=25293</id>
		<title>glCopyPixels</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glCopyPixels&amp;diff=25293"/>
				<updated>2011-07-21T10:41:29Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glCopyPixels =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glCopyPixels''' - kopiert Pixel in den [[Framebuffer]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure  glCopyPixels(''x'': TGLint; ''y'': TGLint; &lt;br /&gt;
                         ''width'': TGLsizei; ''height'': TGLsizei; &lt;br /&gt;
                         ''_type'': TGLenum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''x,y'' &lt;br /&gt;
| Bestimmt die Fensterkoordinaten der linken unteren Ecke eines Rechtecks welches den Bereich umschließt der kopiert werden soll.&lt;br /&gt;
|-&lt;br /&gt;
! ''width'', ''height''&lt;br /&gt;
| Bestimmt die Seitenlängen des Rechtecks. Beide Werte dürfen nicht negativ sein.&lt;br /&gt;
|-&lt;br /&gt;
! ''type'' &lt;br /&gt;
| Bestimmt welche Werte kopiert werden sollen. Es können Farbwerte (mit der Konstante '''GL_COLOR'''), Stencil-Werte ('''GL_STENCIL''') oder Tiefenwerte ('''GL_DEPTH''') kopiert werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glCopyPixels''' kopiert ein am Bildschirm ausgerichtetes Rechteck aus [[Pixel]] von der angegebenen [[Framebuffer]]position in einen Bereich relativ zur aktuellen Rasterposition. Diese Operation ist nur dann wohldefiniert, wenn alle Pixel der Quellregion innerhalb des angezeigten Fensterbereichs liegen. Die Ergebnisse von Kopiervorgängen, die Pixel erfassen, die entweder außerhalb des Fensters liegen oder von anderen Fenstern überdeckt werden, sind hardwareabhängig und undefiniert.&lt;br /&gt;
&lt;br /&gt;
''x'' und ''y'' bestimmen die untere linke Ecke der rechteckigen Quellregion in Fensterkoordinaten. ''width'' und ''height'' bestimmen von diesem Punkt aus die Dimensionen des Rechtecks. Beide Werte, ''width'' und ''height'', dürfen nicht negativ sein.&lt;br /&gt;
&lt;br /&gt;
Verschiedene Parameter beeinflussen die Behandlung der Pixeldaten wären diese kopiert werden. Diese werden mit den drei Befehlen [[glPixelTransfer]], [[glPixelMap]] und [[glPixelZoom]] gesetzt. Dieser Artikel beschreibt die Auswirkungen der meisten, aber nicht aller Parameter, die durch diese Funktionen gesetzt werden können.&lt;br /&gt;
&lt;br /&gt;
''glCopyPixels'' kopiert Werte aller Pixel die im Bereich (''x'' + i, ''y'' + j) mit 0&amp;lt;i&amp;lt;''width'' und 0&amp;lt;j&amp;lt;''height'' liegen. Die Pixel werden als i-tes Pixel in der j-ten Zeile bezeichnet. Die Pixel werden in folgender '''Reihenfolge''' kopiert: Zeilenweise beginnen bei der niedrigsten zur höchsten Zeile und in jeder Zeile von links nach rechts.&lt;br /&gt;
&lt;br /&gt;
''_type'' legt fest ob Farb-, Tiefen- oder Stencilwerte kopiert werden sollen. Die Details zu den Datentypen sind folgende:&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR'''&lt;br /&gt;
: Indizes und RGBA Farben werden von dem momentan als Quellpuffer festgelegten Puffer (siehe [[glReadBuffer]]) gelesen. Wenn die GL im Farbindexmodus ist wird jeder gelesene Index in eine Festkommazahl mit einer unbestimmten Anzahl von Bits rechts vom binären Punkt konvertiert. Jeder Index wird dann mit GL_INDEX_SHIFT nach links geshiftet und zu GL_INDEX_OFFSET addiert. Wenn GL_INDEX_SHIFT ein negativer Wert ist erfolgt das shiften nach rechts. In beiden Fällen werden undefinierte Bitplätze mit Nullen im Ergebnis aufgefüllt. Wenn GL_MAP_COLOR = true ist, wird der Index ersetzt mit dem Wert der in der Color-Lookup-Table GL_PIXEL_MAP_I_TO_I dem Index entspricht. Egal ob die Ersetzung des Index durchgeführt wurde oder nicht, wird der Integer-Teil des Index mit '''2b-1''' geANDed, wobei b die Anzahl der Bits in einem Color-Index-Buffer darstellt.&lt;br /&gt;
: Wenn die GL im RGBA-Modus ist wird die Rot-, Grün-, Blau- und Alphakomponente eines jeden gelesenen Pixels ins interne Fließkommaformat konvertiert, wobei die Präzision unspezifiziert ist. Die Konvertierung bildet den größten darstellbaren Komponentenwert auf 1.0 und den Komponentenwert 0 auf 0.0 ab. Die Resultierenden Fließkomma-Farbwerte werden dann mit GL_c_SCALE multipliziert und zu GL_c_BIAS addiert. (Wobei c hier für die einzelnen Farbkomponenten steht und durch RED, BLUE, GREEN und Alpha ersetzt werden muss.) Die Ergebnisse werden auf das Interval [0,1] beschränkt. Wenn GL_MAP_COLOR = true ist wird jede Farbkomponente mit dem Wert von GL_PIXEL_MAP_c_TO_c skaliert und anschließend durch den referenzierten Wert aus der Tabelle ersetzt. c ist dabei R, G, B bzw A.&lt;br /&gt;
: Die GL konvertiert anschließend die resultierenden Indices oder RGBA Farben in [[Fragment]]e indem zu jedem Pixel die aktuelle z-Koordinate und Texturkoordinate der Rasterposition hinzugefügt wird. Anschließend werden die Fensterkoordinaten (x +i, y +j) hinzugefügt, wobei (x,y) die aktuelle Rasterposition ist und das Pixel das i-te Pixel in der j-ten Zeile war. Diese Pixelfragmente werden dann genauso behandelt wie die Fragmente die durch die Rasterisierung (siehe [[Feste Funktionspipeline]]) von Punkten, Linien oder Polygonen entstehen. Texture Mapping, Nebel und alle Fragment Operationen werden anschließend, noch bevor die Fragmente in den [[Framebuffer]] geschrieben werden angewendet.&lt;br /&gt;
&lt;br /&gt;
'''GL_DEPTH'''&lt;br /&gt;
: Tiefenwerte werden aus dem [[Tiefenpuffer]] gelesen und direkt in das interene Fließkommaformat mit unspezifizierter Genauigkeit umgewandelt. Die resultierenden Tiefenwerte werden dann mit GL_DEPTH_SCALE multipliziert und zu GL_DEPTH_BIAS addiert. Das Ergebnis wird auf das Interval [0,1] beschränkt.&lt;br /&gt;
: Anschließend konvertiert die GL die Tiefenwerte in [[Fragment]]e indem die Farbe bzw. Farbindex sowie die Texturkoodinaten der aktuellen Rasterposition an jedes Pixel angehängt wird. Anschließend werden die Fensterkoordinaten (x +i, y +j) zugewiesen, wobei (x, y) die aktuelle Rasterposition ist und das betreffende Pixel das i-te Pixel in der j-ten Zeile war. Diese Pixelfragmente werden dann wie normale Fragmente die aus Punkten, Linien oder Polygonen erzeugt wurden behandelt. Texture Mapping, Nebel und alle Fragment Operationen werden anschließend, noch bevor die Fragmente in den [[Framebuffer]] geschrieben werden angewendet.&lt;br /&gt;
&lt;br /&gt;
'''GL_STENCIL'''&lt;br /&gt;
: Stencilwerte werden aus dem [[Schablonenpuffer|Stencilbuffer]] gelesen und direkt in das interene Festkommaformat mit unspezifizierter Anzahl Bits rechts vom Binärpunkt konvertiert. Jeder Wert wird dann mit GL_INDEX_SHIFT nach links geshiftet und zu GL_INDEX_OFFSET addiert. Wenn GL_INDEX_SHIFT ein negativer Wert ist erfolgt das shiften nach rechts. In beiden Fällen werden undefinierte Bitplätze mit Nullen im Ergebnis aufgefüllt. Wenn GL_MAP_STENCIL = true ist, wird der Index ersetzt mit dem Wert der in der Lookup-Table GL_PIXEL_MAP_S_TO_S dem Index entspricht. Egal ob die Ersetzung des Index durchgeführt wurde oder nicht, wird der Integer-Teil des Index mit '''2b-1''' geANDed, wobei b die Anzahl der Bits im Stencilbuffer darstellt. Anschließend werden die Stencilindices an die Stelle (x +i, y +j) im Stencilbuffer geschrieben, wobei (x, y) die aktuelle Rasterposition ist und der betreffende Index der i-te in der j-ten Zeile war. Nur der Pixel-Besitzer Test, der [[Feste_Funktionspipeline#Scissor_Test|Scissor Test]] und die Stecilmaske ([[glStencilMask]]) beeinflussen diese Schreiboperation.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Die bis jetzt beschriebene Rasterisierung geht von Pixelzoomfaktoren von 1.0 aus. Wenn [[glPixelZoom]] verwendet wird, um die x- und x-Pixelzoomfaktoren zu ändern, werden Pixel wie folgend zu Fragmenten konvertiert. Wenn [x,y] die aktuelle Rasterposition ist und sich ein gegebenes Pixel innerhalb der i-ten Position der j-ten Reihe befindet, dann werden Fragmente so erzeugt, dass Pixel, deren Zentren sich in dem Rechteck mit den Ecken bei&lt;br /&gt;
&amp;lt;p align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
(''x&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;'' + ''zoom&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;i'', ''y&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;'' + ''zoom&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;j'')&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
und&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
(''x&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;'' + ''zoom&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt;''(''i''+1), ''y&amp;lt;sub&amp;gt;r&amp;lt;/sub&amp;gt;'' + ''zoom&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt;''(''j''+1))&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
befinden. &lt;br /&gt;
(Wobei zoom&amp;lt;sub&amp;gt;x&amp;lt;/sub&amp;gt; der Wert von GL_ZOOM_X und zoom&amp;lt;sub&amp;gt;y&amp;lt;/sub&amp;gt; der Wert von GL_ZOOM_Y ist.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
Um die Farbe des [[Pixel]]s in der linken unteren Ecke an die aktuelle Rasterposition zu kopieren, rufen sie glCopyPixels so auf: &lt;br /&gt;
 glCopyPixels(0, 0, 1, 1, '''GL_COLOR''');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Einstellungen, die durch [[glPixelStore]] gemacht wurden, haben keinen Einfluss auf '''glCopyPixels'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' kein gültiger Wert übergeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'' oder ''height'' einen negativen Wert haben.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''type'' '''GL_DEPTH''' ist und kein [[Tiefenpuffer]] existiert.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn ''type'' '''GL_STENCIL''' ist und kein [[Schablonenpuffer|Stencilbuffer]] existiert.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glCopyPixels''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_POSITION|GL_CURRENT_RASTER_POSITION]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_POSITION_VALID|GL_CURRENT_RASTER_POSITION_VALID]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glDepthFunc]], [[glDrawBuffer]], [[glDrawPixels]], [[glPixelMap]], [[glPixelTransfer]], [[glPixelZoom]], [[glRasterPos]], [[glReadBuffer]], [[glReadPixels]], [[glStencilFunc]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|CopyPixels]]&lt;br /&gt;
[[Kategorie:GL1.0|CopyPixels]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetPixelMap&amp;diff=25292</id>
		<title>glGetPixelMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetPixelMap&amp;diff=25292"/>
				<updated>2011-07-21T10:37:42Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetPixelMap =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetPixelMapfv, glGetPixelMapuiv, glGetPixelMapusv''' - liefert die angegebene Pixelkarte (engl.: pixel map).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glGetPixelMapfv'''(''map'': TGLenum; ''values'': PGLfloat);&lt;br /&gt;
 procedure '''glGetPixelMapuiv'''(''map'': TGLenum; ''values'': PGLuint);&lt;br /&gt;
 procedure '''glGetPixelMapusv'''(''map'': TGLenum; ''values'': PGLushort);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&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;
! ''map'' &lt;br /&gt;
| Bezeichnet den Namen der zu liefernden Pixelmap. Akzeptierte Werte sind: &amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B,''' and '''GL_PIXEL_MAP_A_TO_A'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''values'' &lt;br /&gt;
| Liefert den Inhalt der Pixelmaps.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Lesen Sie den Artikel [[glPixelMap]], um eine detailierte Beschreibung der Werte für ''map'' zu erhalten.&lt;br /&gt;
&lt;br /&gt;
'''glGetPixelMap''' liefert über ''values'' den Inhalt der Pixelmap zurück, die mittels ''map'' angegeben wird. Pixelmaps werden wärend der Ausführung von [[glReadPixels]], [[glDrawPixels]], [[glCopyPixels]], [[glTexImage1D]] und [[glTexImage2D]] benutzt, um Farben- oder Stencilindizes sowie Farb- und Tiefenkomponenten auf andere Werte zu übertragen (engl.: mapping).&lt;br /&gt;
&lt;br /&gt;
Vorzeichenlose Ganzzahlen werden, wenn abgefragt, linear von der internen Fest- oder Fließkommarepräsentation gemappt, so das &lt;br /&gt;
*1.0 dem größten Integerwert entspricht und&lt;br /&gt;
*0.0 auf 0 übertragen wird.&lt;br /&gt;
Vorzeichenlose ganzahlige Rückgabewerte sind undefiniert, wenn der Map-Wert nicht im Interval [0,1] lag.&lt;br /&gt;
&lt;br /&gt;
Um die benötigte Größe für eine Map zu ermitteln, rufen sie [[glGet]] mit der entsprechenden symbolischen Konstante auf.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Tritt ein Fehler auf, bleibt der Inhalt von ''values'' unverändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''map'' ein ungültiger Wert übergeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetPixelMap''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_I_TO_I_SIZE|GL_PIXEL_MAP_I_TO_I_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_S_TO_S_SIZE|GL_PIXEL_MAP_S_TO_S_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_I_TO_R_SIZE|GL_PIXEL_MAP_I_TO_R_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_I_TO_G_SIZE|GL_PIXEL_MAP_I_TO_G_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_I_TO_B_SIZE|GL_PIXEL_MAP_I_TO_B_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_I_TO_A_SIZE|GL_PIXEL_MAP_I_TO_A_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_R_TO_R_SIZE|GL_PIXEL_MAP_R_TO_R_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_G_TO_G_SIZE|GL_PIXEL_MAP_G_TO_G_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_B_TO_B_SIZE|GL_PIXEL_MAP_B_TO_B_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_PIXEL_MAP_A_TO_A_SIZE|GL_PIXEL_MAP_A_TO_A_SIZE]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MAX_PIXEL_MAP_TABLE|GL_MAX_PIXEL_MAP_TABLE]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glCopyPixels]], [[glDrawPixels]], [[glPixelMap]], [[glPixelTransfer]], [[glReadPixels]], [[glTexImage1D]], [[glTexImage2D]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetPixelMap]]&lt;br /&gt;
[[Kategorie:GL1.0|GetPixelMap]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetMaterial&amp;diff=25291</id>
		<title>glGetMaterial</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetMaterial&amp;diff=25291"/>
				<updated>2011-07-21T10:34:31Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung, Wikisyntax für Tabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetMaterial =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetMaterial''' - liefert Materialeigenschaften zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetMaterialfv'''(''face'': TGLenum; ''pname'': TGLenum; ''params'': PGLfloat);&lt;br /&gt;
 procedure '''glGetMaterialiv'''(''face'': TGLenum; ''pname'': TGLenum; ''params'': PGLint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''face''&lt;br /&gt;
| Bezeichnet die Seiten einer Fläche, deren Eigenschaften zurück geliefert werden sollen. Akzeptiert werden '''GL_FRONT''' und '''GL_BACK'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''pname''&lt;br /&gt;
| Bezeichnet die Materialeigenschaft die zurück geliefert werden soll. Akzeptiert werden: &amp;lt;br&amp;gt; &lt;br /&gt;
'''GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS,''' oder '''GL_COLOR_INDEXES'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''params''&lt;br /&gt;
| Enthält die angeforderten Daten bezüglich der Eigenschaft ''pname''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetMaterial''' liefert über ''params'' den oder die Werte der Materialeigenschaft ''pname'' auf der Oberflächenseite ''face'' zurück.&lt;br /&gt;
&lt;br /&gt;
Sechs verschiedene Eigenschaften können abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
'''GL_AMBIENT'''&lt;br /&gt;
: ''params'' liefert vier ganzzahlige oder Fließkommawerte, welche den ambienten RGBA-Lichtanteil repräsentieren, der vom Material reflektiert wird.&lt;br /&gt;
: Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.&lt;br /&gt;
: Wenn der interne Wert außerhalb des Intervalls[-1,1] liegt, ist der zugehörige ganzzahlige Rückgabewert unbestimmt.&lt;br /&gt;
&lt;br /&gt;
'''GL_DIFFUSE'''&lt;br /&gt;
: ''params'' liefert vier ganzzahlige oder Fließkommawerte, welche den diffusen RGBA-Lichtanteil repräsentieren, der vom Material reflektiert wird.&lt;br /&gt;
: Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.&lt;br /&gt;
: Wenn der interne Wert außerhalb des Intervalls[-1,1] liegt, ist der zugehörige ganzzahlige Rückgabewert unbestimmt.&lt;br /&gt;
&lt;br /&gt;
'''GL_SPECULAR'''&lt;br /&gt;
: ''params'' liefert vier ganzzahlige oder Fließkommawerte, welche den RGBA-Glanzlichtanteil repräsentieren, der vom Material reflektiert wird.&lt;br /&gt;
: Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.&lt;br /&gt;
: Wenn der interne Wert außerhalb des Intervalls[-1,1] liegt, ist der zugehörige ganzzahlige Rückgabewert unbestimmt.&lt;br /&gt;
&lt;br /&gt;
'''GL_EMISSION'''&lt;br /&gt;
: ''params'' liefert vier ganzzahlige oder Fließkommawerte, welche den ausgestrahlten RGBA-Lichtanteil repräsentieren, der vom Material ausgeht (selbstleuchtendes Material).&lt;br /&gt;
: Ganzzahlen werden linear so auf das Interval [-1.0, 1.0] abgebildet, dass der größtmögliche Integerwert auf 1.0 und der kleinstmögliche auf -1.0 abgebildet wird.&lt;br /&gt;
: Wenn der interne Wert außerhalb des Intervalls[-1,1] liegt, ist der zugehörige ganzzahlige Rückgabewert unbestimmt.&lt;br /&gt;
&lt;br /&gt;
'''GL_SHININESS'''&lt;br /&gt;
: ''params'' liefert eine einzelne Ganz- oder Fließkommazahl, welche den Glanzlichtexponent repräsentieren (Specular Exponent).&lt;br /&gt;
: Ganzahlen werden bestimmt, indem die interne Fließkommadarstellung zur nächsten Ganzzahl gerundet wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_INDEXES'''&lt;br /&gt;
: ''params'' liefert drei Ganz- oder Fließkommazahlen, die den Farbindex für den ambienten, diffusen und den Glanzlichtanteil darstellen.&lt;br /&gt;
: Diese drei Werte werden nur für die Beleuchtung im Farbindex-Modus (siehe [[glIndex]]) benutzt. (Die anderen Eigenschaften werden alle für die RGBA-Lichtberechnung genutzt.)&lt;br /&gt;
: Ganzahlen werden bestimmt, indem die interne Fließkommadarstellung zur nächsten Ganzzahl gerundet wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Wenn ein Fehler ausgelöst wird, werden keine Änderungen am Inhalt von ''params'' durchgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''face'' oder ''pname'' ein ungültiger Wert übergeben wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetMaterial''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glMaterial]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetMaterial]]&lt;br /&gt;
[[Kategorie:GL1.0|GetMaterial]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetClipPlane&amp;diff=25290</id>
		<title>glGetClipPlane</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetClipPlane&amp;diff=25290"/>
				<updated>2011-07-21T10:28:43Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung, Wikisyntax für Parametertabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetClipPlane =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetClipPlane''' - Gibt die Koeffizienten der angegeben Schnittfläche zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetClipPlane'''(''plane'' : GLEnum; ''equation'' : GLdouble);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''plane''&lt;br /&gt;
| Gibt die Schnittfläche an, die ermittelt werden soll. Die Zahl der unterstützten Schnittfläche ist je nach Implementation unterschiedlich, muss aber bei mindestens 6 liegen. Gültig ist hier eine symbolische Konstante in der Form von '''GL_CLIP_PLANE'''''i'', wobei 0 &amp;lt; ''i'' &amp;lt; '''GL_MAX_CLIP_PLANES'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''equation''&lt;br /&gt;
| Zeigt auf eine Reihe von vier Fließkommawerten mit doppelter Präzision, in denen die Koeffizienten der Schnittfläche (in Betrachter-Koordinaten) abgelegt werden.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetClipPlane''' gibt in ''equation'' die vier Koeffizienten der Flächenentsprechung der Schnittfläche zurück.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Die symbolischen Konstanten für die Schnittflächen sind fortlaufend nummeriert. '''GL_CLIP_PLANE'''''i'' ist also immer gleich '''GL_CLIP_PLANE0'''+''i'';&lt;br /&gt;
&lt;br /&gt;
Wenn ein Fehler generiert wird, werden keine Änderungen am Inhalt von ''equation'' durchgeführt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''plane'' kein gültiger Wert ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glClipPlane''' zwischen einem [[glBegin]] und dem passenden [[glEnd]] aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glClipPlane]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetClipPlane]]&lt;br /&gt;
[[Kategorie:GL1.0|GetClipPlane]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glGetMap&amp;diff=25289</id>
		<title>glGetMap</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glGetMap&amp;diff=25289"/>
				<updated>2011-07-21T10:25:21Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Kategorisierung, Wikisyntax für Parametertabelle&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glGetMap =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glGetMap''' - liefert die Parameter der Evaluatoren (bedeutet zu Deutsch so viel wie (&amp;quot;Auswerten&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glGetMapdv'''(''target'': TGLenum; ''query'': TGLenum; ''v'': PGLdouble);&lt;br /&gt;
 procedure '''glGetMapfv'''(''target'': TGLenum; ''query'': TGLenum; ''v'': PGLfloat);&lt;br /&gt;
 procedure '''glGetMapiv'''(''target'': TGLenum; ''query'': TGLenum; ''v'': PGLint);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''target''&lt;br /&gt;
| Ist der symbolische Name einer Karte. Akzeptiert werden:&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4 , GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3,'''und'''GL_MAP2_VERTEX_4'''.&lt;br /&gt;
|-&lt;br /&gt;
! ''query''&lt;br /&gt;
| Bestimmt welche Parameter zurückgeliefert werden sollen. Als symbolische Namen werden '''GL_COEFF, GL_ORDER,''' und '''GL_DOMAIN''' akzeptiert.&lt;br /&gt;
|-&lt;br /&gt;
! ''v''&lt;br /&gt;
| Ist ein Zeiger auf die abgefragten Daten.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glGetMap''' liefert die Evaluatoren Parameter. ('''glMap1''' und '''glMap2''' sind Parameter.)&lt;br /&gt;
''target'' selektiert eine Karte, ''query'' bestimmt die abzufragende Eigenschaft und ''v'' zeigt auf den Speicherbereich, in den die Ergebnisse der Abfrage abgelegt werden sollen.&lt;br /&gt;
&lt;br /&gt;
Die Bedeutung der Parameter, die man ''target'' übergeben kann, können Sie unter [[glMap1]] und [[glMap2]] nachlesen.&lt;br /&gt;
&lt;br /&gt;
Dem Parameter ''query'' kan man folgende Werte zuweisen:&lt;br /&gt;
&lt;br /&gt;
===GL_COEFF===&lt;br /&gt;
: ''v'' liefert die Stützstellen (control points) für die Evaluatoren-Funktion. 1D-Evaluatoren liefern ''order'' Kontrollpunkte zurück, 2D-Evaluatoren liefern ''uorder'' * ''vorder'' Kontrollpunkte zurück. Jeder Kontrollpunkt besteht aus ein, zwei, drei oder vier Ganzzahl-, Single-, oder Double-Fließkommawerten, je nach Typ des Evaluators. 2D-Kontrollpunkte werden in reihenbetonter Sortierung zurückgegeben, wobei zuerst immer ''uorder'' erhöht, und nach jeder Reihe ''vorder'' erhöht wird.&lt;br /&gt;
: Ganzzahlen werden, wenn abgefragt, bestimmt durch Runden der internen Fließkommarepräsentation zur nächsten Ganzzahl.&lt;br /&gt;
&lt;br /&gt;
===GL_ORDER===&lt;br /&gt;
: ''v'' liefert den Rang der Evaluatoren-Funktion zurück. &lt;br /&gt;
: Eindimensionale Evaluatoren liefern einen einzelnen Wert, ''order''. Zweidimensionale Evaluatoren  liefern zwei Werte, ''uorder'' und ''vorder''.&lt;br /&gt;
&lt;br /&gt;
===GL_DOMAIN===&lt;br /&gt;
: ''v'' liefert die linearen UV-Mapping Parameter, u und v. &lt;br /&gt;
: Eindimensionale Evaluatoren liefern zwei Werte, ''u1'' und ''u2'', entsprechend der Definition durch [[glMap1]].&lt;br /&gt;
: Zweidimensionale Evaluatoren liefern vier Werte (''u1'', ''u2'', ''v1'' und ''v2''), die der Definition durch [[glMap2]] entsprechen.&lt;br /&gt;
: Ganzzahlen werden, wenn abgefragt, bestimmt durch Runden der internen Fließkommarepräsentation zur nächsten Ganzzahl.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Wenn während der Ausführung der Funktion ein Fehler auftritt, wird der Inhalt von ''v'' nicht verändert.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn entweder ''target'' oder ''query'' ein ungültiger Wert übergeben wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glGetMap''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glEvalCoord]], [[glMap1]], [[glMap2]] &lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|GetMap]]&lt;br /&gt;
[[Kategorie:GL1.0|GetMap]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Pixelshader&amp;diff=25288</id>
		<title>Pixelshader</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Pixelshader&amp;diff=25288"/>
				<updated>2011-07-20T08:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: doppelte Weiterleitung beseitigt&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Shader#Fragmentshader]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=gluTessEndPolygon&amp;diff=25287</id>
		<title>gluTessEndPolygon</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=gluTessEndPolygon&amp;diff=25287"/>
				<updated>2011-07-20T08:08:38Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[gluTessBeginPolygon]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GLU|TessEndPolygon]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Tutorial_glsl&amp;diff=25286</id>
		<title>Tutorial glsl</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Tutorial_glsl&amp;diff=25286"/>
				<updated>2011-07-20T08:03:04Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Einleitung=&lt;br /&gt;
Hallo und willkommen bei meiner &amp;quot;Einführung&amp;quot; in GLSL (kurz für &amp;quot;Open'''GL''' '''S'''hading '''L'''anguage&amp;quot;), der offiziellen Hochlevel-Shadersprache von OpenGL. In diesem umfangreichen Dokument werde ich versuchen, sowohl auf die Nutzung (sprich das Laden und Anhängen von Shadern im Quellcode), als auch auf die Programmierung von Shadern selbst einzugehen, inklusive aller Sprachelemente der OpenGL Shadersprache. Es wird also auch recht viele Informationen zu der C-ähnlichen Programmstruktur und den von GLSL angebotenen Variablen und Attributen gehen. Am Ende dieser Einführung sollten alle die, die sich für das Thema interessieren, in der Lage sein, zumindest einfach Shader zu schreiben und auch in ihren Programmen zu nutzen. Ausserdem soll dieses Dokument gleichzeitig als ein deutsches &amp;quot;Pendant&amp;quot; zu den von Khronoes veröffentlichten Shaderspezifikationen, und damit als alltägliches Nachschlagewerk, dienen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vorkenntnisse==&lt;br /&gt;
Wie auch schon mein ARB_VP-Tutorial richtet sich auch diese Einführung aufgrund ihrer Thematik eher an die fortgeschritteneren GL-Programmierer und neben sehr guten GL-Kenntnissen sollten sich alle, die sich daran versuchen wollen, mit den technischen Hintergründen der GL, wie z.B. dem Aufbau der Renderpipeline auskennen. Weiterhin sind C-Kenntnisse absolut erforderlich, da die Shader ja in einer an ANSI-C angelehnten Syntax geschrieben werden. Auch Begriffsdefinitionen zu Vertex oder Fragment werden zum Verständis dieser Einführung benötigt. Wer also noch am Anfang seiner GL-Karriere steht, dem wird dieses Dokument nicht viel nützen. Ganz nebenbei solltet ihr auch noch eine gehörige Portion Zeit (am besten nen kompletten Nachmittag) mitbringen, denn die folgende Kost ist nicht nur umfangreich, sondern auch manchmal recht schwer verdaulich.&lt;br /&gt;
&lt;br /&gt;
=Was ist GLSL?=&lt;br /&gt;
Wie Eingangs kurz angesprochen handelt es sich bei GLSL um eine Shadersprache, also um eine Hochsprache, in der man die programmierbaren Teile aktueller Grafikbeschleuniger nach eigenem Belieben programmieren kann. Sie stellt quasi den Nachfolger zu den in Assembler geschriebenen Vertex- und Fragmentprogrammen ([[GL_ARB_vertex_program]]/[[GL_ARB_fragment_program]]) dar und basiert auf ANSI C, erweitert um Vektor- und Matrixtypen sowie einige C++-Mechanismen.&lt;br /&gt;
&lt;br /&gt;
Die in GLSL geschriebenen Programme nennen sich, angepasst an die Terminologie von RenderMan und DirectX, [[Shader]] (im Gegensatz zu &amp;quot;Programme&amp;quot; bei ARB_VP/FP) und werden entweder auf Eckpunkte (VertexShader), Fragmente (FragmentShader) angewendet, oder (neuerdings, ab Shadermodell 4.0) auch genutzt um Geometrie zu erstellen (Geometryshader). Andere Teile der Renderpipeline (z.B. die Rasterisierung) können momentan noch nicht durch Shader beeinflusst werden, was allerdings in Zukunft noch kommen kann.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Voraussetzungen==&lt;br /&gt;
&lt;br /&gt;
GLSL wurde 2005 mit OpenGL 1.5 eingeführt. Während es in Sachen Treiber- und Hardwareunterstützung anfänglich noch dürftig aussah, wird man inzwischen keine Grafikkarte mehr kaufen können die nicht zumindest Vertex- und Fragmentshader beherscht. Geometrieshader hingegen sind relativ neu und wurden erst mit Shadermodell 4.0 eingeführt, hier ist es also unter Umständen noch möglich dass selbst aktuelle Treiber/Karten keine Geometrieshader beherrschen.&lt;br /&gt;
&lt;br /&gt;
Natürlich benötigt man auch einen passenden OpenGL-Header der die für GLSL nötigen Funktionen exportiert. Ich verweise dazu auf unseren eigenen OpenGL-Header [[DGLOpenGL.pas]], der peermanent auf dem aktuellsten Stand gehalten wird und auch Support für Geometrieshader mitbringt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Extensions==&lt;br /&gt;
&lt;br /&gt;
Die GL-Shadersprache &amp;quot;besteht&amp;quot; in ihrer aktuellen Version aus folgenden Extensions, fürs Verständnis wäre es nicht schlecht, wenn ihr euch zumindest die Einleitungen dazu durchlest :&lt;br /&gt;
* [[GL_ARB_shader_objects]] ([http://oss.sgi.com/projects/ogl-sample/registry/ARB/shader_objects.txt Originalspezifikation])&lt;br /&gt;
: Definiert die API-Aufrufe, die zum Erstellen, Kompilieren, Linken, Anhängen und Aktivieren von Shader- und Programmobjekten nötig sind. &lt;br /&gt;
* [[GL_ARB_vertex_shader]] ([http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_shader.txt Originalspezifikation])&lt;br /&gt;
: Fügt der OpenGL Programmierbarkeit auf Vertexebene hinzu. &lt;br /&gt;
* [[GL_ARB_fragment_shader]] ([http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_shader.txt Originalspezifikation])&lt;br /&gt;
: Fügt der OpenGL Programmierbarkeit auf Fragmentebene hinzu. &lt;br /&gt;
* [[GL_ARB_shading_language_100]] ([http://oss.sgi.com/projects/ogl-sample/registry/ARB/shading_language_100.txt Originalspezifikation])&lt;br /&gt;
: Gibt die unterstützte Version von glSlang an, momentan 1.00.&lt;br /&gt;
&lt;br /&gt;
'''Hinweis''' : Seit OpenGL 2.0 ist GLSL Teil des Kerns. Wenn die Karte also OpenGL 2.0 unterstützt, dann unterstützt sie auch (zumindest in Software) Vertex- und Fragmentshader.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sprachversionen==&lt;br /&gt;
&lt;br /&gt;
Neben der OpenGL-Version und dem vorhandenen Shadermodell (das eher an DirectX ausgerichtet ist), bietet auch GLSL verschiedene Versionen, die entsprechend erweiterte Funktionalität bieten.&lt;br /&gt;
&lt;br /&gt;
Auslesen kann man die verfürgbare GLSL-Version wie folgt:&lt;br /&gt;
&lt;br /&gt;
 glGetString(GL_SHADING_LANGUAGE_VERSION)&lt;br /&gt;
&lt;br /&gt;
Erst ab Version 1.4. kann man davon ausgehen dass GLSL alle Features des Shadermodells 4.0 liefert, ab 1.3 grob gesagt Shadermodell 3.0 (bei GLSL lässt sich das leider nicht so leicht unterteilen).&lt;br /&gt;
&lt;br /&gt;
Ausserdem kann man seinem Shader eine Versionsnummer verpassen. Sollte der Shadercompiler (also Treiber bzw. Hardware) diese Version nicht unterstützen, gibt dieser eine Fehlermeldung heraus:&lt;br /&gt;
&lt;br /&gt;
 #version 1.50 &lt;br /&gt;
&lt;br /&gt;
''(Hinweis: Muss am Anfang des Shaders stehen)''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objekte==&lt;br /&gt;
&lt;br /&gt;
Im Zuge der Vereinheitlichung der GL wird immer häufiger in Objekte gekapselt, deren API dann auch aneinander angelehnt ist. Ziel ist, dabei die Programmierung der GL uniform zu machen, so dass z.B. zwischen dem Erstellen und Verwalten eines Vertex-Buffer-Objektes oder eines Shader-Objektes kaum ein Unterschied besteht (demnächst kommen dann auch Pixel-Buffer-Objekte dazu). Mit glSlang wurden dann im Zuge dieser Aktion zwei neue Objekte eingeführt, deren Definition ihr euch unbedingt einprägen solltet:&lt;br /&gt;
&lt;br /&gt;
* '''Programmobjekt'''&lt;br /&gt;
:Ein Objekt, an das die Shader später angebunden werden. Bietet Funktionalität zum Linken der Shader und prüft dabei die Kompatibilität zwischen Vertex- und Fragmentshader.&lt;br /&gt;
&lt;br /&gt;
* '''Shaderobjekt'''&lt;br /&gt;
:Dieses Objekt verwaltet den Quellcodestring eines Shaders und ist entweder vom Typ '''GL_VERTEX_SHADER''', '''GL_FRAGMENT_SHADER_ARB''' oder '''GL_GEOMETRY_SHADER'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Ressourcen==&lt;br /&gt;
&lt;br /&gt;
Die Shadersprache ist keinesfalls final und es wurden bereits diverse Ausdrücke für zukünftige Verwendung reserviert, denn ein Ziel bei ihrer Entwicklung war es, sie so zukunftsorientiert zu gestalten, dass auch Grafikkarten der nächsten und übernächsten Generation voll ausgenutzt werden können. Damit einher geht die Tatsache, dass sich die Spezifikationen in Zukunft ändern/erweitern werden, weshalb man da immer einen Blick hineinwerfen sollte. Die Anlaufstelle dafür ist die [http://www.opengl.org/documentation/specs/ Spezifikationenliste auf OpenGL.org].&lt;br /&gt;
&lt;br /&gt;
=GLSL im Programm=&lt;br /&gt;
Bevor wir uns mit der Syntax von glSlang beschäftigen, zeige ich euch erstmal, wie ihr Shader in euer Programm einbindet und nutzt. Warum das zuerst? Ganz einfach deshalb, weil ihr dann das, was ihr im glSlang-Syntaxteil lernt, direkt in eurer Testanwendung verwenden könnt. Hoffe diese Entscheidung klingt logisch und findet Anklang.&lt;br /&gt;
&lt;br /&gt;
Zuerst benötigen wir natürlich unsere Objekte. Zum einen ein ''Programmobjekt'', an das unsere Shader gebunden werden, und zwei ''Shaderobjekte'', die den Quellcode unseres Vertex bzw. Fragment Shaders aufnehmen. Dazu wurde eigens der neue &amp;quot;Datentyp&amp;quot; {{INLINE_CODE|glHandle}} eingeführt, der ein Objekthandle repräsentiert. Wir deklarieren also wie folgt :&lt;br /&gt;
&lt;br /&gt;
 ProgramObject        : GLhandle;&lt;br /&gt;
 VertexShaderObject   : GLhandle;&lt;br /&gt;
 FragmentShaderObject : GLhandle;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nach dieser Deklaration können wir dann damit beginnen unsere Objekte zu erstellen. Den Anfang macht das Programmobjekt :&lt;br /&gt;
&lt;br /&gt;
 ProgramObject        := glCreateProgram;&lt;br /&gt;
&lt;br /&gt;
Die Funktion [[glCreateProgram]] erstellt uns oben ein leeres Programmobjekt und gibt ein gültiges Handle darauf zurück.&lt;br /&gt;
&lt;br /&gt;
Weiter gehts mit der Erstellung unseres Vertex bzw. Fragment Shaders :&lt;br /&gt;
&lt;br /&gt;
 VertexShaderObject   := glCreateShader(GL_VERTEX_SHADER);&lt;br /&gt;
 FragmentShaderObject := glCreateShader(GL_FRAGMENT_SHADER);&lt;br /&gt;
&lt;br /&gt;
[[glCreateShader]] dient zur Generierung eines leeren Shaderobjektes. Momentan unterstützt diese Funktion VertexShader und FragmentShader.&lt;br /&gt;
&lt;br /&gt;
Nachdem wir nun also zwei gültige Shaderobjekte haben, wollen wir diese auch mit entsprechendem Quellcode versorgen :&lt;br /&gt;
&lt;br /&gt;
 glShaderSource(VertexShaderObject, 1, @ShaderText, @ShaderLength);&lt;br /&gt;
 glShaderSource(FragmentShaderObject, 1, @ShaderText, @ShaderLength);&lt;br /&gt;
&lt;br /&gt;
Via [[glShaderSource]] setzen wir den Quellcode eines Shaderobjektes ''komplett'' neu. Zum Laden des Quellcodes bietet sich unter Delphi übrigens eine TStringList geradezu an. Es sollte beachtet werden, dass der Quellcode zu diesem Zeitpunkt ''nicht geparst'' wird, also keine Fehleruntersuchung stattfindet.&lt;br /&gt;
&lt;br /&gt;
Der Quellcode wurde jetzt also an unsere Shaderobjekte gebunden und sollte dann natürlich auch noch kompiliert werden :&lt;br /&gt;
&lt;br /&gt;
 glCompileShader(VertexShaderObject);&lt;br /&gt;
 glCompileShader(FragmentShaderObject);&lt;br /&gt;
&lt;br /&gt;
Der glSlang-Compiler des Treibers wird bei einem Aufruf von [[glCompileShader]] versuchen, unsere Shader zu kompilieren. Sofern diese keine Fehler aufweisen, sollte dies auch erfolgreich sein. Wenn nicht, dann spuckt uns der Shadercompiler (je nach Treiber) recht detaillierte Infos aus. Wie man an diese Infos kommt könnt ihr gleich nachlesen.&lt;br /&gt;
&lt;br /&gt;
Wenn unsere Shader dann kompiliert werden konnten, ist es Zeit, diese an unser anfangs erstelltes Programmobjekt anzuhängen :&lt;br /&gt;
&lt;br /&gt;
 glAttachShader(ProgramObject, VertexShaderObject);&lt;br /&gt;
 glAttachShader(ProgramObject, FragmentShaderObject);&lt;br /&gt;
&lt;br /&gt;
Nachdem die Shaderobjekte nun an das Programmobjekt angehängt wurden, werden diese nicht mehr benötigt und ihre Resourcen können freigegeben werden :&lt;br /&gt;
&lt;br /&gt;
 glDeleteShader(VertexShaderObject);&lt;br /&gt;
 glDeleteShader(FragmentShaderObject);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Am Schluß müssen wir dann noch unsere ans Programmobjekt gebundenen Shader linken :&lt;br /&gt;
&lt;br /&gt;
 glLinkProgram(ProgramObject);&lt;br /&gt;
&lt;br /&gt;
Während [[glCompileShader]] unsere Shader auf syntaktische Fehler innerhalb ihres lokalen Raums geprüft hat, werden beim Linken durch [[glLinkProgram]] die angehangenen Shader zu einem ausführbaren Shader gelinkt. Folgende Bedingungen führen zu einem '''Linkerfehler''':&lt;br /&gt;
&lt;br /&gt;
* Die Zahl der von der Implementation unterstützten Attributvariablen wurde überschritten&lt;br /&gt;
* Der Speicherplatz für Uniformvariablen wurde überschritten&lt;br /&gt;
* Die Zahl der von der Implementation angebotenen Sampler wurde überschritten&lt;br /&gt;
* Die main-Funktion fehlt&lt;br /&gt;
* Die Liste der Varying-Variablen des Vertexshaders stimmt nicht mit der des Fragmentshaders überein&lt;br /&gt;
* Funktions- oder Variablenname nicht gefunden&lt;br /&gt;
* Eine gemeinsame Globale ist mit unterschiedlichen Werten oder Typen initialisiert worden&lt;br /&gt;
* Zwei Sampler unterschiedlichen Typs zeigen auf die selbe Textureneinheit&lt;br /&gt;
* Ein oder mehrere angehangene(r) Shader wurden nicht erfolgreich kompiliert&lt;br /&gt;
&lt;br /&gt;
Die Nutzung von glSlang im eigenen Programm ist wie oben erkennbar also nicht wirklich schwer und innerhalb kurzer Zeit realisiert. Natürlich ist es auch möglich z.B. nur einen VertexShader oder nur einen FragmentShader an ein Programmobjekt zu binden.&lt;br /&gt;
&lt;br /&gt;
Noch eine kleine Notiz zum Löschen der Shader mittel [[glDeleteShader]] : Da Shader(objekte) einen Referenzzähler besitzen und erst gelöscht werden wenn diese nirgendwo mehr benötigt werden, ist es nicht falsch diese vor dem Linkvorgang zu löschen. Allerdings spielt es letztendlich keine Rolle ob die Löschanweisung vorher der nachher ausgeführt wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Fehlererkennung==&lt;br /&gt;
Natürlich wird es ohne Fehlerausgabe recht schwer, etwaige Probleme in einem Vertex- oder Fragmentshader zu finden. Doch auch in diesem Bereich wurde glSlang recht gut durchdacht und es wurden zwei Funktionen eingeführt, welche im Zusammenspiel die Fehlersuche recht einfach machen, nämlich [[glGetShaderInfoLog]] und [[glGetShader]] mit dem Argument {{INLINE_CODE|GL_OBJECT_INFO_LOG_LENGTH}}. Erstere Funktion liefert uns einen Logstring, während uns letztere Funktion dessen Länge angibt. Der Logstring wird verändert, sobald ein Shader kompiliert oder ein Programm gelinkt wird.&lt;br /&gt;
&lt;br /&gt;
Um die Ausgabe dieses Logs so einfach wie möglich zu machen, bietet es sich an beide in einer einfach Funktion unterzubringen :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;function glSlang_GetInfoLog(pShader: GLHandleARB): String;&lt;br /&gt;
var&lt;br /&gt;
  blen, slen: GLInt;&lt;br /&gt;
  InfoLog: PGLCharARB;&lt;br /&gt;
&lt;br /&gt;
begin&lt;br /&gt;
  glGetShaderiv(glObject, GL_INFO_LOG_LENGTH , @blen);&lt;br /&gt;
  if blen &amp;gt; 1 then&lt;br /&gt;
  begin&lt;br /&gt;
    GetMem(InfoLog, blen * SizeOf(GLCharARB));&lt;br /&gt;
    glGetShaderInfoLog(pShader, blen, slen, InfoLog);&lt;br /&gt;
    Result := PChar(InfoLog);&lt;br /&gt;
    Dispose(InfoLog);&lt;br /&gt;
  end;&lt;br /&gt;
end;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Die Funktion ist recht leicht erklärt : Zuerst lassen wir uns über {{INLINE_CODE|glGetShaderiv}} mitteilen wie lang der aktuelle Infolog ist. Sollte dort tatsächlich etwas drinstehen (blen &amp;gt; 1), dann lassen wir uns dessen Inhalt via {{INLINE_CODE|glGetShaderInfoLog}} in {{INLINE_CODE|InfoLog}} ausgeben und liefern diesen als Ergebnis zurück.&lt;br /&gt;
&lt;br /&gt;
Wie bereits gesagt wird nur nach dem Kompilieren eines Shaders bzw. dem Linken eines Programmobjektes ein Infolog erstellt. Es bietet sich dadurch an, direkt danach einen solchen Aufruf zu machen :&lt;br /&gt;
&lt;br /&gt;
 glCompileShader(VertexShaderObject);&lt;br /&gt;
 ShowMessage(glSlang_GetInfoLog(VertexShaderObject));&lt;br /&gt;
&lt;br /&gt;
Wenn unser Vertex Shader komplett fehlerfrei kompiliert werden konnte, dann sehen wir als Ergebnis nur einen leeren Dialog. Ist dies nicht der Fall, so werden wir vom Treiber mit recht detaillierten Fehlerinformationen &amp;quot;belohnt&amp;quot;, z.B. so :&lt;br /&gt;
&lt;br /&gt;
[[Bild:GLSL_error_vshader.jpg]]&lt;br /&gt;
&lt;br /&gt;
Auch das Infolog nach dem Linken des Programmobjektes dürfte, selbst wenn keine Fehler vorkommen, recht interessant sein, das sieht dann nämlich so aus :&lt;br /&gt;
&lt;br /&gt;
[[Bild:GLSL info programobject.jpg]]&lt;br /&gt;
&lt;br /&gt;
Wie zu sehen, wird uns nach dem erfolgreichen Linken auch gesagt, ob und welcher Shader in Hardware bzw. Software läuft. Für Debuggingzwecke sicherlich eine mehr als brauchbare Information.&lt;br /&gt;
&lt;br /&gt;
==Shader benutzen==&lt;br /&gt;
Um den Shader auch für die nächsten Polygone zu benutzen oder Uniformparameter übergeben zu können, ruft man die Funktion&lt;br /&gt;
 glUseProgramt(ProgramObject);&lt;br /&gt;
um alle Shader zu deaktivieren, ruft man dieselbe Funktion mit dem Parameter 0.&lt;br /&gt;
&lt;br /&gt;
==Parameterübergabe==&lt;br /&gt;
Uniformparameter (mehr dazu später) stellen die Schnittstelle zwischen eurem Programm und dem Shader dar, werden also genutzt um Daten aus dem Programm heraus an einen Shader zu übergeben. Zur Übergabe dieser Parameter bietet OpenGL diverse Funktionen, die alle Abkömmlinge von [[glUniform]] sind. Während mit {{INLINE_CODE|glUniform4f}} z.B. ein Vier-Komponentenvektor an das Programmobjekt übergeben wird, kann man mittels {{INLINE_CODE|glUniformMatrix4fv}} ganze Matrizen schnell und einfach übergeben. Ausserdem gibt es nun die Möglichkeit Uniformparameter direkt über ihren Namen, statt wie unter ARB_FP/VP über einen festen Index zu adressieren. Die Funktion [[glGetUniformLocationARB]] gibt anhand des übergebenen Parameternamens dessen Position zurück. Man kann also ganz einfach über den Namen drauf zugreifen :&lt;br /&gt;
&lt;br /&gt;
 glUniform3f(glGetUniformLocation(ProgramObject, PGLCharARB('LightPosition')), LPos[0], LPos[1], LPos[2]);&lt;br /&gt;
 glUniform1i(glGetUniformLocation(ProgramObject, PGLCharARB('texSamplerTMU3')), 3);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wichtig ist hier, das man je nach Parametertyp auch die passende Anzahl von Argumenten übergibt. Also für einen 4-Komponenten Floatvektor {{INLINE_CODE|glUniform4fARB}} und für einen einfachen Integerwert (z.B. Textureinheit für einen Sampler) glUnifrom1iARB. Auch nicht vergessen dürft ihr, das die Namen der Parameter genauso wie im Shader geschrieben werden müssen, also Groß- und Kleinschreibung beachtet werden muß.&lt;br /&gt;
&lt;br /&gt;
=Die Shadersprache=&lt;br /&gt;
&lt;br /&gt;
Nachdem wir uns mit der Einbindung der glSlang-Shader in unser Programm beschäftigt haben, wollen wir uns in den folgenden Kapiteln um die Sprachelemente von glSlang kümmern. Wie schon gesagt basiert glSlang auf ANSI-C, wurde allerdings um speziell auf den Zielbereich angepasste Vektor- und Matrixtypen und einige C++-Features wie das freie deklarieren von Variablen an jeder Stelle und das Funktionsüberladen auf Basis des Argumenttyps erweitert. Wer sich ein wenig mit C/C++ auskennt sollte also in der nun folgenden Materie keine Probleme bekommen.&lt;br /&gt;
&lt;br /&gt;
'''Obligatorische Hinweise für verwöhnte Delphi-Nutzer : '''&lt;br /&gt;
*Wie von C/C++ her gewohnt, spielt auch in glSlang die Groß- und Kleinschreibung eine wichtige Rolle, also bitte achtet darauf. gl_Position ist eine komplett andere Variable als z.B. gl_position.&lt;br /&gt;
*Es findet keine automatische Typenkonvertierung statt. Das bedeutet also das float MyFloat = 1 ungültig ist und es in dem Falle float MyFloat = 1.0 heissen muss. Typecasts müssen also immer manuell stattfinden, z.B. MyFloat = float(MyInt).&lt;br /&gt;
&lt;br /&gt;
'''Kleine Programmstrukturkunde für C-Unkundige :'''&amp;lt;br&amp;gt;&lt;br /&gt;
Da sicherlich einige Delpher nie richtig was mit C gemacht haben, zeige ich mal anhand eines kleinen Beispieles (das auf keinen Fall nen brauchbaren Shader darstellt) den grundlegenden Aufbau eines glSlang-Shaders, der natürlich dem Aufbau eines C-Programmes stark ähnelt :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
uniform vec4 VariableA;&lt;br /&gt;
float VariableB;&lt;br /&gt;
vec3  VariableC;&lt;br /&gt;
const float KonstanteA = 256.0;&lt;br /&gt;
&lt;br /&gt;
float MyFunction(vec4 ArgumentA)&lt;br /&gt;
{&lt;br /&gt;
    float FunktionsVariableA = float(5.0);&lt;br /&gt;
&lt;br /&gt;
    return float(ArgumentA * (FunktionsVariableA + KonstanteA));&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Ich bin ein Kommentar&lt;br /&gt;
/* Und ich auch */&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
    gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;&lt;br /&gt;
    gl_TexCoord[0] = gl_MultiTexCoord0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sieht doch recht bekannt aus, unser Programmaufbau. Delphi und C haben ja so einige Grundlagen gleich, darunter auch der ungefähre Programmaufbau. Ausserhalb jeglicher Funktionen legen wir am Programmanfang unsere Variablen, Konstanten und Attribute fest, die dann ''global'' nutzbar sind, also in jeder Funktion.&lt;br /&gt;
&lt;br /&gt;
Darunter deklarieren wir dann eine kleine Funktion. Wie auch bei den Variablendeklarationen wird hier der Rückgabetyp nicht wie bei Pascal nach dem Funktionsnamen untergebracht, sondern davor. Innerhalb der Funktion können dann wieder Variablen deklariert werden, die dann allerdings ''lokal'', also nur in dieser Funktion nutzbar sind. Vorteil dieser Deklaration ist die Tatsache, dass je nach Grafikkarte nur bestimmt viele globale Variablen deklariert werden können. Wenn möglich sollte man also mit lokalen Vorlieb nehmen. Unsere Funktion gibt dann natürlich noch via return einen Wert zurück, ''was gemacht werden muss'', sofern man diese nicht als void deklariert hat (entspräche dann einer Prozedur in Pascal). Wird dies nicht getan, so spuckt der Compiler einen Fehler aus.&lt;br /&gt;
&lt;br /&gt;
Auch wichtig sind natürlich Kommentare. Erste Variante (Doppelslash) ist auch in der Pascalwelt verfügbar und kommentiert eine einzelne Zeile aus. Die Variante darunter kann man für Kommentarblöcke nutzen (/* .. */) und entspricht den Kommentaren in geschweiften Klammern in Delphi.&lt;br /&gt;
&lt;br /&gt;
Danach kommt dann die '''wichtigste Funktion''' des Shaders, nämlich '''main''', die in keinem Shader fehlen darf. Sie stellt quasi den Programmkörper dar und ist oft auch die einzige Funktion in einem Shader. Sie erhält weder ein Argument, noch gibt sie einen Wert zurück.&lt;br /&gt;
&lt;br /&gt;
Soviel also zum grundlegenden Aufbau eines Shader. Hoffe das jetzt alle die in C nicht so bewandert sind damit klar kommen, und dann bald ihre ersten glSlang-Shader schreiben können.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Datentypen==&lt;br /&gt;
&lt;br /&gt;
Obwohl einige Datentypen aus C übernommen wurden, sieht man der Typenliste an, das diese speziell auf den 3D-Bereich zugeschnitten wurde. Variablen müssen vor ihrer Nutzung eindeutig deklariert sein, Typecasting erfolgt über Konstruktoren (dazu später mehr). Folgende Datentypen stehen sowohl im Vertex- als auch Fragmentshader zur Verfügung :&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
!Datentyp  	&lt;br /&gt;
!Erklärung&lt;br /&gt;
|-&lt;br /&gt;
|void 	&lt;br /&gt;
|Für Funktionen die keinen Wert zurückgeben&lt;br /&gt;
|-&lt;br /&gt;
|bool 	&lt;br /&gt;
|Konditionaler Typ, entweder true (wahr) oder false (falsch)&lt;br /&gt;
|-&lt;br /&gt;
|int 	&lt;br /&gt;
|Vorzeichenbehafteter Integerwert&lt;br /&gt;
|-&lt;br /&gt;
|float 	&lt;br /&gt;
|Fließkommaskalar mit Singlegenauigkeit (32 Bit)&lt;br /&gt;
|-&lt;br /&gt;
|vec2 	&lt;br /&gt;
|2-Komponenten Fließkommavektor&lt;br /&gt;
|-&lt;br /&gt;
|vec3 	&lt;br /&gt;
|3-Komponenten Fließkommavektor&lt;br /&gt;
|-&lt;br /&gt;
|vec4 	&lt;br /&gt;
|4-Komponenten Fließkommavektor&lt;br /&gt;
|-&lt;br /&gt;
|bvec2 	&lt;br /&gt;
|2-Komponenten Booleanvektor&lt;br /&gt;
|-&lt;br /&gt;
|bvec3 	&lt;br /&gt;
|3-Komponenten Booleanvektor&lt;br /&gt;
|-&lt;br /&gt;
|bvec4 	&lt;br /&gt;
|4-Komponenten Booleanvektor&lt;br /&gt;
|-&lt;br /&gt;
|ivec2 	&lt;br /&gt;
|2-Komponenten Integervektor&lt;br /&gt;
|-&lt;br /&gt;
|ivec3 	&lt;br /&gt;
|3-Komponenten Integervektor&lt;br /&gt;
|-&lt;br /&gt;
|ivec4 	&lt;br /&gt;
|4-Komponenten Integervektor&lt;br /&gt;
|-&lt;br /&gt;
|mat2 	&lt;br /&gt;
|2x2 Fließkommamatrix&lt;br /&gt;
|-&lt;br /&gt;
|mat3 	&lt;br /&gt;
|3x3 Fließkommamatrix&lt;br /&gt;
|-&lt;br /&gt;
|mat4 	&lt;br /&gt;
|4x4 Fließkommamatrix&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Die sampler-Typen stellen eine besondere Klasse zum Zugriff auf Texturen dar, und werden im Kapitel 6.7 genauer erklärt, inklusive einiger Anwendungsbeispiele.&lt;br /&gt;
&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
!Datentyp  	&lt;br /&gt;
!Erklärung&lt;br /&gt;
|-&lt;br /&gt;
|sampler1D 	&lt;br /&gt;
|Zugriff auf 1D-Textur&lt;br /&gt;
|-&lt;br /&gt;
|sampler2D 	&lt;br /&gt;
|Zugriff auf 2D-Textur&lt;br /&gt;
|-&lt;br /&gt;
|sampler3D 	&lt;br /&gt;
|Zugriff auf 3D-Textur&lt;br /&gt;
|-&lt;br /&gt;
|samplerCube 	&lt;br /&gt;
|Zugriff auf Cubemap&lt;br /&gt;
|-&lt;br /&gt;
|sampler2DRect 	&lt;br /&gt;
|Zugriff auf Texturen die nicht 2^n * 2^n entsprechen (&amp;quot;non power-of-two&amp;quot;, NPOT)&lt;br /&gt;
|-&lt;br /&gt;
|sampler1DShadow 	&lt;br /&gt;
|Zugriff auf 1D-Tiefentextur mit Vergleichsoperation&lt;br /&gt;
|-&lt;br /&gt;
|sampler2DShadow 	&lt;br /&gt;
|Zugriff auf 2D-Tiefentextur mit Vergleichsoperation&lt;br /&gt;
|-&lt;br /&gt;
|samplerCubeShadow&lt;br /&gt;
|Zugriff auf Tiefentextur in einer Cubemap (z.b. für omni-diretionale Lichtquellen)&lt;br /&gt;
|-&lt;br /&gt;
|sampler2DRectShadow&lt;br /&gt;
|Zugriff auf 2D-NPOT-Tiefentextur &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|sampler1DArray&lt;br /&gt;
|Zugriff auf ein array aus 1D-Texturen &lt;br /&gt;
|-&lt;br /&gt;
|sampler2DArray&lt;br /&gt;
|Zugriff auf ein array aus 2D-Texturen &lt;br /&gt;
|-&lt;br /&gt;
|sampler1DArrayShadow&lt;br /&gt;
|Zugriff auf ein array aus 1D-Tiefentexturen &lt;br /&gt;
|-&lt;br /&gt;
|sampler2DArrayShadow&lt;br /&gt;
|Zugriff auf ein array aus 2D-Tiefentexturen &lt;br /&gt;
|-&lt;br /&gt;
|samplerBuffer&lt;br /&gt;
|Zugriff auf eine Puffertextur (1D-Texutr zum Speichern von Pufferobjekten)&lt;br /&gt;
|-&lt;br /&gt;
|sampler2DMS&lt;br /&gt;
|Zugriff auf eine 2D-Textur mit mehreren Samplepunkten (z.b. für Multisampling)&lt;br /&gt;
|-&lt;br /&gt;
|sampler2DMSArray&lt;br /&gt;
|Zugriff auf einarray aus 2D-Textur mit mehreren Samplepunkten (z.b. für Multisampling)&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Arrays===&lt;br /&gt;
&lt;br /&gt;
Natürlich unterstützt glSlang auch Arrays, die wie in C deklariert werden und deren Index bei 0 beginnt. Folgendes Array im Shader :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
float temp[3];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
beginnt also bei Index 0 und endet bei Index 2. Im Gegensatz zu C lassen sich Arrays in glSlang allerdings ''nicht bei der Initialisierung vorbelegen''. Wenn ein Array als Parameter einer Funktion deklariert wird, so darf dieses keine Dimensionierung erhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Strukturen===&lt;br /&gt;
&lt;br /&gt;
Neu ggü. ARB_FP/VP ist nun auch die Möglichkeit, Strukturen in einem Shader zu deklarieren. Vor allem die Übersicht komplexerer Shader kann dadurch stark verbessert werden. Strukturen werden wie gewohnt mit dem Schlüsselwort {{INLINE_CODE|struct}} eingeleitet und können dann zur Typisierung von Variablen genutzt werden. Folgendes Beispiel dürfte die Nutzung verdeutlichen :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct light&lt;br /&gt;
{&lt;br /&gt;
    bool active;&lt;br /&gt;
    float intensity;&lt;br /&gt;
    vec3 position;&lt;br /&gt;
    vec3 color;&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Im Shader können dann neue Variablen von diesem Typ ganz einfach deklariert werden :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
 light LightSource[3];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Der Zugriff auf die Elemente der Struktur erfolgt dann wie gewohnt über den Punkt :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
LightSource[3].position = vec3(1.0, 1.0, 5.0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Typenqualifzierer==&lt;br /&gt;
&lt;br /&gt;
Zusätzlich zur Typendeklaration kann eine Variable noch einen Typenqualifizerer vorangestellt bekommen, der an den Anfang der Deklaration gehört.&lt;br /&gt;
&lt;br /&gt;
* '''const'''&lt;br /&gt;
: Festgelegte (nur lesen) Konstante bzw. nur lesbarer Funktionsparameter.&lt;br /&gt;
&lt;br /&gt;
* '''uniform'''&lt;br /&gt;
: Ein den ganzen Shader über gleichbleibender Wert, der eine Schnittstelle zwischen dem Shader und der OpenGL-Anwendung darstellt. Ein Uniformwert wird in der Hauptanwendung an den entsprechenden Shader übergeben und kann dort dann genutzt werden.&lt;br /&gt;
&lt;br /&gt;
* '''attribute'''&lt;br /&gt;
: Nur lesbare Werte die eine Verbindung zwischen dem Shader und der OpenGL-VertexAPI darstellen (z.B. VertexParameter eines VertexArrays). Natürlich nur in einem Vertex Shader nutzbar.&lt;br /&gt;
&lt;br /&gt;
* '''varying'''&lt;br /&gt;
: Stellt die Verbindung zwischen einem Vertex- und einem FragmentShader dar. Werden im VertexShader geschrieben und dann perspektivisch korrekt über die Primitive interpoliert, um dann im Fragment Shader gelesen werden zu können. Nutzbar sind hier nur die Typen float, vec2, vec3, vec4, mat2, mat3 und mat4, Strukturen und andere Datentypen können nicht varying sein. Die Namen einer varying-Variable müssen sowohl im VertexShader als auch im FragmentShader gleich sein.&lt;br /&gt;
&lt;br /&gt;
* '''in'''&lt;br /&gt;
: Für Variablen die an eine Funktion übergeben und dort ausgelesen werden.&lt;br /&gt;
&lt;br /&gt;
* '''out'''&lt;br /&gt;
: Für Variablen die von einer Funktion nach aussen zurückgegeben werden.&lt;br /&gt;
&lt;br /&gt;
* '''inout'''&lt;br /&gt;
: Für Variablen die sowohl an eine Funktion übergeben als auch von dieser zurückgegeben werden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um obige Auflistung nicht leer im Raum stehen zu lassen zeige ich ein paar Beispiele die hoffentlich zum Verständnis beitragen :&lt;br /&gt;
&lt;br /&gt;
===Beispiel A=== &lt;br /&gt;
Vertexnormale soll an einen FragmenShader (interpoliert) übergeben werden :&lt;br /&gt;
&lt;br /&gt;
:Im VertexShader :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
varying vec3 VertexNormal;&lt;br /&gt;
...&lt;br /&gt;
VertexNormal = normalize(MV_IT * gl_Normal);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:Im FragmentShader :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
varying vec3 VertexNormal;&lt;br /&gt;
...&lt;br /&gt;
TempVector = VertexNormal*...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Beispiel B=== &lt;br /&gt;
Uniformparameter zur nachträglichen Farbänderung der Szene wird im Programm übergeben :&lt;br /&gt;
&lt;br /&gt;
:Im VertexShader :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
uniform vec4 GlobalColor;&lt;br /&gt;
...&lt;br /&gt;
gl_FrontColor = GlobalColor * gl_Color;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:Im Programm :&lt;br /&gt;
&lt;br /&gt;
 glUniform4fARB(glSlang_GetUniLoc(ProgramObject, 'GlobalColor'), Col[0], Col[1], Col[2], Col[3]);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Beispiel C=== &lt;br /&gt;
Konstante zur festen Farbänderung :&lt;br /&gt;
&lt;br /&gt;
:Im VertexShader :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
const vec4 ColorBias = vec4(0.2, 0.3, 0.0, 0.0);&lt;br /&gt;
...&lt;br /&gt;
gl_FrontColor = ColorBias * gl_Color;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Konstruktoren==&lt;br /&gt;
&lt;br /&gt;
Um in einem Shader ''Vektoren'' oder ''Matrizen'' mit Werten zu belegen, gibt es sogenannte Konstruktoren (nicht zu verwechseln mit z.B. Klassenkonstruktoren unter Delphi), die im Endeffekt nichts anderes als Funktionen zur Vorbelegung von Vektoren oder Matrizen darstellen. Dabei trägt der Konstruktor den selben Namen wie die Typendeklaration, also lässt sich eine Variable vom Typ {{INLINE_CODE|vec4}} mit dem Konstruktor {{INLINE_CODE|vec4(float, float, float, float)}} initialisieren.&lt;br /&gt;
&lt;br /&gt;
Allerdings hat man sich recht viel Mühe bei dieser Konstruktorgeschichte gemacht, so dass man einen vec4 nicht unbedingt mit einem {{INLINE_CODE|vec4}}-Konstruktor vorbelegen muss, sondern es vielseitige Möglichkeiten gibt. Um dies zu verdeutlichen gibts ein paar Beispiele :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
vec4 Color = vec4(1.0, 0.0, 0.0, 0.0);&lt;br /&gt;
vec4 Color = vec4(MyVec3, 1.0);&lt;br /&gt;
vec4 Color = vec4(MyVec2_A, MyVec2_B);&lt;br /&gt;
&lt;br /&gt;
vec3 LVec  = vec3(MyVec4);&lt;br /&gt;
vec2 Tmp   = vec2(MyVec3);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Trotz der recht wenigen Beispiele sollte schnell erkennbar sein, das man hier wirklich sehr viele Kombinationsmöglichkeiten hat, die dann gültig sind ''wenn man mindestens auf die benötigte Anzahl der Argumente kommt''. Im vorletzten Beispiel wird z.B. ein 3-Komponentenvektor aus einem 4-Komponentenvektor initialisiert. Das erzeugt keinen Fehler, sondern führt dazu das {{INLINE_CODE|vec3.x, vec3.y, vec3.z}} aus MyVec4 übernommen werden und MyVec4.w einfach ignoriert wird.&lt;br /&gt;
&lt;br /&gt;
Das Umkehrbeispiel, also&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
vec4 Color = vec4(MyVec3)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
funktioniert allerdings nicht, da hier die Zahl der benötigten Argumente nicht erreicht wird. In diesem Falle müsste es dann&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt; &lt;br /&gt;
vec4 Color = vec4(MyVec3, 0.0)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
heissen.&lt;br /&gt;
&lt;br /&gt;
Obiges gilt natürlich auch für ''Matrixkonstruktoren'', hier sind z.B. folgende Konstuktoren denkbar, obwohl eigentlich alle Möglichkeiten nutzbar sind, ''solange die benötigte Zahl an Argumenten erreicht wird'' :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
mat4 MyMatrix = mat4(MyVec4, MyVec4, MyVec4, MyVec4);&lt;br /&gt;
mat2 MyMatrix = mat4(1.0, 0.0, 0.0, 0.0,&lt;br /&gt;
                     0.0, 1.0, 0.0, 0.0,&lt;br /&gt;
                     0.0, 0.0, 1.0, 0.0,&lt;br /&gt;
                     0.0, 0.0, 0.0, 1.0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vektor- und Matrixkomponenten==&lt;br /&gt;
&lt;br /&gt;
Was natürlich in keiner Shadersprache fehlen darf, ist der leichte Zugriff auf die einzelnen Komponenten eines Vektors. glSlang bietet, je nach Anwendungsgebiet gleich drei Namensets für den Zugriff auf die Komponenten eines solchen Vektors, welches Set man nutzen will bleibt natürlich frei und ist unabhängig von der Deklaration eines Vektors. Man sollte nur darauf achten, beim gleichzeitigen Zugriff auf mehrere Komponenten im gleichen Namenset zu verbleiben :&lt;br /&gt;
&lt;br /&gt;
* {x, y, z, w}&lt;br /&gt;
:Für den Zugriff auf Vektoren die Punkte, Normale oder sonstige Vertexdaten repräsentieren.&lt;br /&gt;
&lt;br /&gt;
* {r, g, b, a}&lt;br /&gt;
:Für den Zugriff auf Vektoren die Farbwerte repräsentieren.&lt;br /&gt;
&lt;br /&gt;
* {s, t, p, q}&lt;br /&gt;
:Für den Zugriff auf Vektoren die Texturkoordinaten repräsentieren.&lt;br /&gt;
&lt;br /&gt;
Ein paar Beispiele zur Unterstreichung des oben gesagten :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
v4.rgba = vec4(1.0, 0.0, 0.0, 0.0);  // gültig&lt;br /&gt;
v4.rgzw = vec4(1.0, 1.0, 1.0, 2.0);  // Ungültig, da verschiedenen Namensets&lt;br /&gt;
v2.rgb  = vec3(1.0, 2.0, 1.0);       // Ungültig, da vec2 nur r+g besitzt&lt;br /&gt;
v2.xx   = vec2(5.0, 3.0);            // Ungültig, da 2 mal gleiche Komponente&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch der Zugriff auf die Komponenten einer Matrix geht leicht von der Hand. Namensets wie bei den Vektoren gibt es hier natürlich keine, aber folgende Beispiele sollen den Zugriff aufzeigen :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
MyMat4[2]    = vec4(1.0); // Setzt die 3.Zeile der Matrix komplett auf 1.0&lt;br /&gt;
MyMat4[3][3] = 3.5;       // Setzt das Element unren rechts auf 3.5&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ein Zugriff auf Matrixelemente ausserhalb ihrer Dimension (also z.B. MyMat4[4][4]) liefert unvorhersehabre Ergebnise, also sollte man auf diese Fälle prüfen. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vektor- und Matrixoperationen==&lt;br /&gt;
&lt;br /&gt;
Wie von C gewohnt sind in glSlang so ziemlich alle Operatoren die man auf Matrizen oder Vektoren anwenden kann überladen, so das man nicht umständlich über selbstgeschriebene Funktionen kombinieren muss. Darüber hinaus ist es in den meisten Fällen auch möglich ohne Konvertierung Fließkommawerte mit kompletten Matrizen oder Vektoren zu kombinieren. Folgende Beispiele zeigen einige der vielfältigen Kombinationsmöglichkeiten auf :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
vec3  dest;&lt;br /&gt;
vec3  source;&lt;br /&gt;
float factor;&lt;br /&gt;
&lt;br /&gt;
vec3 dest = source + factor; &lt;br /&gt;
&lt;br /&gt;
// Ist gleich&lt;br /&gt;
dest.x = source.x + factor;&lt;br /&gt;
dest.y = source.y + factor;&lt;br /&gt;
dest.z = source.z + factor;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Matrix * Vektor ist auch ohne manuelle Konvertierung möglich :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
vec3  dest;&lt;br /&gt;
vec3  source;&lt;br /&gt;
mat3  MyMat;&lt;br /&gt;
 &lt;br /&gt;
dest = source * MyMat; &lt;br /&gt;
 &lt;br /&gt;
// Ist gleich&lt;br /&gt;
dest.x = dot(source, MyMat[0]);&lt;br /&gt;
dest.y = dot(source, MyMat[1]);&lt;br /&gt;
dest.z = dot(source, MyMat[2]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch hier sind die Möglichkeiten fast unbeschränkt und zeigen wieder wie flexibel glSlang ausgelegt ist. &lt;br /&gt;
&lt;br /&gt;
==Operatoren==&lt;br /&gt;
&lt;br /&gt;
glSlang bietet (momentan) folgende Operatoren, die Liste ist nach ihrer Gewichtung sortiert (Anfang = höchste). Alle ''reservierten'' Operatoren werden erst in kommender Hardware/glSlang-Versionen nutzbar sein :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div  align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
!Operatorklasse  	&lt;br /&gt;
!Operatoren  	&lt;br /&gt;
!Assoziation&lt;br /&gt;
|-&lt;br /&gt;
|Gruppering 	&lt;br /&gt;
|() 	&lt;br /&gt;
| -&lt;br /&gt;
|-&lt;br /&gt;
|Arrayindizierung&amp;lt;br&amp;gt;Funktionsaufrufe und Konstruktoren&amp;lt;br&amp;gt;Strukturfeldwahl und Swizzle&amp;lt;br&amp;gt;Postinkrement und -dekrement&amp;lt;br&amp;gt; 	&lt;br /&gt;
|[]&amp;lt;br&amp;gt;()&amp;lt;br&amp;gt;.&amp;lt;br&amp;gt;++ -- 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Prefixinkrement- und dekrement&amp;lt;br&amp;gt;Einheitlich (~ reserviert) 	&lt;br /&gt;
| ++ --&amp;lt;br&amp;gt; + - ~ ! 	&lt;br /&gt;
|Rechts n. Links&lt;br /&gt;
|-&lt;br /&gt;
|Mulitplikation (% reserviert) 	&lt;br /&gt;
|* / % 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Additiv 	&lt;br /&gt;
| + - 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Bitweises Verschieben (reserviert) 	&lt;br /&gt;
|&amp;lt;&amp;lt;  &amp;gt;&amp;gt; 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Relation 	&lt;br /&gt;
|&amp;lt;  &amp;gt;  &amp;lt;=  &amp;gt;= 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Vergleich 	&lt;br /&gt;
|==  != 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Bitweises AND (reserviert) 	&lt;br /&gt;
|&amp;amp; 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Bitweises XOR (reserviert) 	&lt;br /&gt;
|^ 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Bitweises OR (reserviert) 	&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt; 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Logisches AND 	&lt;br /&gt;
|&amp;amp;&amp;amp; 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Logisches XOR 	&lt;br /&gt;
|^^ 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Logisches OR 	&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;||&amp;lt;/nowiki&amp;gt; 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|Auswahl 	&lt;br /&gt;
|?: 	&lt;br /&gt;
|Rechts n. Links&lt;br /&gt;
|-&lt;br /&gt;
|Zuweisung&amp;lt;br&amp;gt;Arithmetrische Zuweisung&amp;lt;br&amp;gt;(Modulis, Shift und bitweise Op. reserviert) 	&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;=&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt; &amp;lt;nowiki&amp;gt;+= -=  *=  /=  %=&amp;lt;/nowiki&amp;gt; &amp;lt;br&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;=  &amp;gt;&amp;gt;= &amp;amp;=  ^=  |=&amp;lt;/nowiki&amp;gt; 	&lt;br /&gt;
|Rechts n. Links&lt;br /&gt;
|-&lt;br /&gt;
|Aufzählung 	&lt;br /&gt;
|, 	&lt;br /&gt;
|Links n. Rechts&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Funktionen==&lt;br /&gt;
&lt;br /&gt;
Ein großer Vorteil von Hochsprachen ist u.A. die Möglichkeit oft genutzte Codeteile in Funktionen (bzw. auch Prozeduren unter Pascal) zu verpacken um so Flexibilität als auch Übersichtlichkeit zu steigern. Wer schonmal was in C geschrieben hat, der wird sich jetzt sicherlich kein Kopfzerbrechen machen müssen. Funktionen werden in glSlang genauso nach folgendem Prinzip deklariert :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
RückgabeTyp FunktionsName(Typ0 Argument0, Typ1, Argument1, ... , TypN, ArgumentN)&lt;br /&gt;
 {&lt;br /&gt;
 return RückgabeWert;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Funktionen die ''nichts zurückgeben'' müssen mit dem RückgabeTyp {{INLINE_CODE|void}} deklariert werden, ausserdem entfällt dann logischerweise das {{INLINE_CODE|return}}. Falls die Funktion eines ihrere Argumente nach aussen übergeben soll, muss dieses Argument mit dem Typenqualifizierer out (Siehe Kapitel 4.2) versehen werden. ''Arrays'' können nur als Eingabeargumente übergeben werden und dürfen nich dimensioniert als Argument verwendet werden, sondern müssen mit leeren Klammern argumentiert werden.&lt;br /&gt;
Ein paar Beispiele :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
void MeineFunktion(float EingabeWert; out float AusgabeWert)&lt;br /&gt;
 {&lt;br /&gt;
 AusgabeWert = EingabeWert*MyConstValue;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Funktion gibt ''nichts'' zurück, aber gibt EingabeWert*MyConstValue im Ausgabeargument AusgabeWert nach aussen.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
float MeineFunktion(float EingabeWert)&lt;br /&gt;
 {&lt;br /&gt;
 return EingabeWert*MyConstValue;&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bietet genau die selbe Funktionalität wie das Beispiel darüber. Allerdings wird hier der berechnete Wert als Ergebnis der Funktion zurückgeliefert.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
float VektorSumme(float v[])&lt;br /&gt;
 {&lt;br /&gt;
 return v[0]+v[1]+v[2]+v[3];&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie bereits gesagt darf ein Array als Argument keine Dimensionierung enthalten. Wenn man der Funktion also ein Array übergibt, sollte man vorher drauf achten das es entsprechend der in der Funktion genutzten Indizes dimensioniert wurde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==if-Anweisung==&lt;br /&gt;
&lt;br /&gt;
Selektion über eine if-Anweisung darf auch in keiner Hochsprache fehlen. Genauso wie in C oder Delphi erwartet auch hier die If-Anweisung einen boolschen Ausdruck (Wahr oder Falsch) und wird dann ausgeführt (wahr) bzw. verzweigt auf ein (wenn vorhanden) else (falsch). Verschachtelung ist wie erwartet auch möglich.&lt;br /&gt;
&lt;br /&gt;
'''Hinweis : ''' &lt;br /&gt;
Grafikkarten auf dem Stand des Shadermodells 2.0 (Radeon 9x00, Radeon X8x0, GeForceFX 5x00) unterstüzten im Fragmentshader kein Early-Out, was zur Folge hat das bei einer If-Anweisung immer alle Zweige ausgeführt werden. Am Ende wird dann aber nur ein Ergebnis geschrieben, die anderen verworfen. Auf solchen Karten bringen If-Anweisungen also im Normalfall keine Geschwindigkeitssteigerung, sondern oft eher das Gegenteil.&lt;br /&gt;
Neuere SM3.0-Karten (Radeon X1x00, GeForce6x00 und höher) ist dass nicht mehr der Fall, da hier dynamische Verzweigungen und auch Early-Out von der Hardware implementiert werden.&lt;br /&gt;
&lt;br /&gt;
==Schleifen==&lt;br /&gt;
&lt;br /&gt;
Auch Schleifen, ein wichtiges Konzept jeder Hochsprache haben ihren Weg in glSlang gefunden. Unterstützt werden folgende Schleifentypen :&lt;br /&gt;
&lt;br /&gt;
* '''for'''-Schleife&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
for (Startausdruck; Durchlaufbedingung; Wiederholungsausdruck)&lt;br /&gt;
  {&lt;br /&gt;
   statement&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''while'''-Schleife&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
while (Durchlaufbedingung)&lt;br /&gt;
 {&lt;br /&gt;
  statement&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* '''do'''-while-Schleife&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
do&lt;br /&gt;
 {&lt;br /&gt;
  statement&lt;br /&gt;
 }&lt;br /&gt;
 while (Durchlaufbedingung)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Hinweis :''' Grafikkarten auf dem Stand des Shadermodells 2.0 (Radeon 9x00, Radeon X8x0, GeForceFX 5x00) unterstüzten Schleifen nicht in Hardware. Schleifen werden dann beim Kompilieren vom Treiber entrollt, wodurch natürlich Shader mit weitaus mehr Instruktionen als erwartet generiert werden. Von daher sollte man auf solchen Karten möglichst auf Schleifen verzichten, oder diese nur recht kurz halten. Bei SM3.0-Karten (Radeon X1x00, GeForce6x00 und höher) ist dass nicht mehr der Fall.&lt;br /&gt;
&lt;br /&gt;
=Eingebaute Variablen, Attribute und Konstanten=&lt;br /&gt;
Nachdem wir uns nun lange genug mit den minderinterssanten Elementen der glSlang-Syntax beschäftigt haben, gehts jetzt endlich an die wirklich interessanten Dinge. Wie schon ARB_VP/ARB_FP bringt auch glSlang jede Menge eingabauter Variablen, Attribute und Konstanten mit, deren Aliase sie recht leicht identifizierbar machen (ganz im Gegensatz zum Indexgewusel bei den DX-Shadern).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variablen im Vertex Shader==&lt;br /&gt;
Exklusiv im Vertex Shader stehen die folgenden Variablen zur Verfügung :&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_Position    muss geschrieben werden&lt;br /&gt;
:Dieser Variable '''muss''' im Vertexshader ein Wert zugewiesen werden, wird dies nicht getan ist das Ergebnis (sprich die Position des Vertex) undefiniert. Vorgesehen ist diese Variable für die ''homogene Position des Vertex'' und wird u.a. zum Clipping und Culling verwendet. Sie darf natürlich auch (mehrfach) geschrieben und ausgelesen werden.&lt;br /&gt;
&lt;br /&gt;
* float gl_PointSize    kann geschrieben werden&lt;br /&gt;
:Diese Variable wurde dazu vorgesehen um dort im VertexShader die Punktgröße in Pixeln hineinzuschreiben.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_ClipVertex    kann geschrieben werden&lt;br /&gt;
:Falls genutzt, sollten hier die Vertexkoordinaten die im Zusammenhang mit benutzerdefinierten Clippingplanes genutzt werden abgelegt werden. Wichtig ist, das gl_ClipVertex im selben Koordinatenraum wie die Clippingplane definiert ist.&lt;br /&gt;
&lt;br /&gt;
==Attribute im Vertex Shader==&lt;br /&gt;
&lt;br /&gt;
Folgende Attribute stehen nur im Vertex Shader zur Verfügung und '''können nur gelesen werden''' :&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_Color&lt;br /&gt;
: Farbwert des Vertex.&lt;br /&gt;
* vec4 gl_SecondaryColor&lt;br /&gt;
:Sekundärer Farbwert des Vertex.&lt;br /&gt;
* vec4 gl_Normal&lt;br /&gt;
:Normale des Vertex.&lt;br /&gt;
* vec4 gl_Vertex&lt;br /&gt;
:Koordinaten des Vertex;&lt;br /&gt;
* vec4 gl_MultiTexCoord0..7&lt;br /&gt;
:Texturkoordinaten auf Textureinheit 0..7.&lt;br /&gt;
* float gl_FogCoord&lt;br /&gt;
:Nebelkoordinate des Vertex. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Variablen im Fragment Shader==&lt;br /&gt;
&lt;br /&gt;
Im Fragment Shader sind folgende Variablen exklusiv nutzbar :&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_FragColor&lt;br /&gt;
: Speichert den Farbwert des Fragmentes, der von folgenden Funktionen der festen Pipeline genutzt wird. Wird dieser Variable nichts zugewiesen, so ist ihr Inhalt undefiniert und darauf aufbauende Ergebnisse ebenfalls.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_FragData[0..15]&lt;br /&gt;
: Ersetzt gl_FragColor bei der Verwendung von multiplen Rendertargets. &lt;br /&gt;
&lt;br /&gt;
* float gl_FragDepth&lt;br /&gt;
: Durch schreiben dieser Variable kann man den von der festen Funktionspipeline ermittelten Tiefenwert überspringen, der mit {{INLINE_CODE|gl_FragCoord.z}} ausgelesen werden kann. Wird dieser Wert nicht geschrieben, nutzen folgende Funktionen der Pipeline den vorher fest berechneten Wert.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_FragCoord    nur lesen&lt;br /&gt;
: In dieser Variable ist die Position des Fragmentes relativ zur Fensterposition im Format x,y,z,1/w abgelegt, wobei z den von der festen Funktionspipeline berechneten Tiefenwert enthält.&lt;br /&gt;
&lt;br /&gt;
* bool gl_FrontFacing    nur lesen&lt;br /&gt;
: Gibt an ob das Fragment zu einer nach vorne zeigenden Primitive gehört (=true). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Im Bezug auf {{INLINE_CODE|gl_FragColor}} und {{INLINE_CODE|gl_FragDepth}} sei noch anzumerken das diese ''nicht'' in den Wertebereich 0..1 gebracht werden müssen, da dies später durch die feste Funktionspipeline automatisch gemacht wird.&lt;br /&gt;
&lt;br /&gt;
==Eingebaute Varyings==&lt;br /&gt;
&lt;br /&gt;
Wie bereits in Kapitel 4.2 erwähnt, stellen Varyings eine Schnittstelle zwischen dem Vertex und dem Fragment Shader dar. Sie werden im Vertex Shader geschrieben und können dann im Fragment Shader ausgelesen werden, ohne das die folgenden Varyings dafür explizit deklariert werden müssen :&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_FrontColor&lt;br /&gt;
: Farbe der Vorderseite des Vertex.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_BackColor&lt;br /&gt;
: Farbe der Rückseite des Vertex.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_FrontSecondaryColor&lt;br /&gt;
: Sekundäre Farbe der Vorderseite des Vertex.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_BackSecondaryColor&lt;br /&gt;
: Sekundäre Farbe der Rückseite des Vertex.&lt;br /&gt;
&lt;br /&gt;
* vec4 gl_TexCoord[x]&lt;br /&gt;
: Texturkoordinaten des Vertex auf Textureinheit x, wobei x die von der Hardware zur Verfügung gestellte Zahl der Textureinheiten-1 nicht überschreiten darf.&lt;br /&gt;
&lt;br /&gt;
* float gl_FogFragCoord&lt;br /&gt;
: Nebelkoordinate des Fragmentes. &lt;br /&gt;
&lt;br /&gt;
Die Varyings {{INLINE_CODE|gl_FrontColor, gl_FrontSecondaryColor, gl_BackColor}} und {{INLINE_CODE|gl_BackSecondaryColor}} können im FragmentShader nur unter den Aliases gl_Color bzw. gl_SecondaryColor gelesen werden. Welcher Wert des Vertex Shaders im Fragment Shader dort eingesetzt wird ist abhängig davon ob das Fragment zu einer nach vorne oder nach hinten zeigenden Primitive gehört.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eingebaute Konstanten==&lt;br /&gt;
Auch diverse Konstanten wurden definiert um darauf schnell im Shader zugreifen zu können. In den Klammern stehen die von einer GL-Implementation als Mindestanforderung anzubietenden Werte. Alle Konstanten sind sowohl im Vertex als auch im Fragment Shader abrufbar :&lt;br /&gt;
&lt;br /&gt;
: OpenGL 1.0/1.2 :&lt;br /&gt;
* int gl_MaxLights (8)&lt;br /&gt;
* int gl_MaxClipPlanes (6)&lt;br /&gt;
* int gl_MaxTextureUnits (2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ARB_Fragment_Program :&lt;br /&gt;
* int gl_MaxTextureCoordsARB (2)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Vertex_Shader :&lt;br /&gt;
* int gl_MaxVertexAttributesGL2 (16)&lt;br /&gt;
* int gl_MaxVertexUniformFloatsGL2 (512)&lt;br /&gt;
* int gl_MaxVaryingFloatsGL2 (32)&lt;br /&gt;
* int gl_MaxVertexTextureUnitsGL2 (1)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: Fragment_Shader :&lt;br /&gt;
* int gl_MaxFragmentTextureUnitsGL2 (2)&lt;br /&gt;
* int gl_MaxFragmentUniformFloatsGL2 (64)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Eingebaute Uniformvariablen==&lt;br /&gt;
&lt;br /&gt;
Um den Zugriff auf OpenGL-Staten zu vereinfachen wurden in glSlang diverse Uniformvariablen zur direkten Verwendung im Shader eingebaut. Wie gewohnt wurden auch hier sinnvolle Namen verwendet, so dass eine tiefere Erklärung unnötig sein dürfte :&lt;br /&gt;
&lt;br /&gt;
* mat4 gl_ModelViewMatrix&lt;br /&gt;
* mat4 gl_ProjectionMatrix&lt;br /&gt;
* mat4 gl_ModelViewProjectionMatrix&lt;br /&gt;
* mat3 gl_NormalMatrix&lt;br /&gt;
:{{INLINE_CODE|gl_NormalMatrix}} repräsentiert die invertierten und anschließend transponierten oberen 3x3 Werte der {{INLINE_CODE|gl_ModelViewMatrix}}.&lt;br /&gt;
* mat4 gl_TextureMatrix[gl_MaxTextureCoordsARB]&lt;br /&gt;
&lt;br /&gt;
* float gl_NormalScale&lt;br /&gt;
: Gibt den unter OpenGL festgelegten Faktor zur Skalierung der Normalen zurück.&lt;br /&gt;
&lt;br /&gt;
* struct gl_DepthRangeParameters&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_DepthRangeParameters&lt;br /&gt;
{&lt;br /&gt;
 float near;&lt;br /&gt;
 float far;&lt;br /&gt;
 float diff;&lt;br /&gt;
};&lt;br /&gt;
gl_DepthRangeParameters gl_DepthRange;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
: Clippingplanes : &lt;br /&gt;
* vec4 gl_ClipPlane[gl_MaxClipPlanes]&lt;br /&gt;
  &lt;br /&gt;
*struct gl_PointParameters&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_PointParameters&lt;br /&gt;
{&lt;br /&gt;
 float size;&lt;br /&gt;
 float sizeMin;&lt;br /&gt;
 float sizeMax;&lt;br /&gt;
 float fadeThresholdSize;&lt;br /&gt;
 float distanceConstantAttenuation;&lt;br /&gt;
 float distanceLinearAttenuation;&lt;br /&gt;
 float distanceQuadraticAttenuation;&lt;br /&gt;
};&lt;br /&gt;
gl_PointParameters gl_Point;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*struct gl_MaterialParameters&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_MaterialParameters&lt;br /&gt;
{&lt;br /&gt;
 vec4 emission;&lt;br /&gt;
 vec4 ambient;&lt;br /&gt;
 vec4 diffuse;&lt;br /&gt;
 vec4 specular;&lt;br /&gt;
 float shininess;&lt;br /&gt;
};&lt;br /&gt;
gl_MaterialParameters gl_FrontMaterial;&lt;br /&gt;
gl_MaterialParameters gl_BackMaterial;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*struct gl_LightSourceParameters&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_LightSourceParameters&lt;br /&gt;
{&lt;br /&gt;
 vec4 ambient;&lt;br /&gt;
 vec4 diffuse;&lt;br /&gt;
 vec4 specular;&lt;br /&gt;
 vec4 position;&lt;br /&gt;
 vec4 halfVector;&lt;br /&gt;
 vec3 spotDirection;&lt;br /&gt;
 float spotExponent;&lt;br /&gt;
 float spotCutoff;&lt;br /&gt;
 float spotCosCutoff;&lt;br /&gt;
 float constantAttenuation;&lt;br /&gt;
 float linearAttenuation;&lt;br /&gt;
 float quadraticAttenuation;&lt;br /&gt;
};&lt;br /&gt;
gl_LightSourceParameters gl_LightSource[gl_MaxLights];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*struct gl_LightModelParameters&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_LightModelParameters&lt;br /&gt;
{&lt;br /&gt;
 vec4 ambient;&lt;br /&gt;
};&lt;br /&gt;
gl_LightModelParameters gl_LightModel;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*struct gl_LightModelProducts&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_LightModelProducts&lt;br /&gt;
{&lt;br /&gt;
 vec4 sceneColor;&lt;br /&gt;
};&lt;br /&gt;
gl_LightModelProducts gl_FrontLightModelProduct;&lt;br /&gt;
gl_LightModelProducts gl_BackLightModelProduct;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
*struct gl_LightProducts&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_LightProducts&lt;br /&gt;
{&lt;br /&gt;
 vec4 ambient;&lt;br /&gt;
 vec4 diffuse;&lt;br /&gt;
 vec4 specular;&lt;br /&gt;
};&lt;br /&gt;
gl_LightProducts gl_FrontLightProduct[gl_MaxLights];&lt;br /&gt;
gl_LightProducts gl_BackLightProduct[gl_MaxLights];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* vec4 gl_TextureEnvColor[gl_MaxFragmentTextureUnitsGL2]&lt;br /&gt;
* vec4 gl_EyePlaneS[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_EyePlaneT[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_EyePlaneR[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_EyePlaneQ[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_ObjectPlaneS[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_ObjectPlaneT[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_ObjectPlaneR[gl_MaxTextureCoordsARB]&lt;br /&gt;
* vec4 gl_ObjectPlaneQ[gl_MaxTextureCoordsARB]&lt;br /&gt;
&lt;br /&gt;
*struct gl_FogParameters&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
struct gl_FogParameters&lt;br /&gt;
{&lt;br /&gt;
 vec4 color;&lt;br /&gt;
 float density;&lt;br /&gt;
 float start;&lt;br /&gt;
 float end;&lt;br /&gt;
 float scale;&lt;br /&gt;
};&lt;br /&gt;
gl_FogParameters gl_Fog;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Diese recht umfangreiche GL-Stateliste sollte eigentlich jeden Bedarf decken und momentan gibts kaum einen OpenGL-Status den man so nicht in einem Shader abfragen bzw. nutzen kann.&lt;br /&gt;
&lt;br /&gt;
=Eingebaute Funktionen=&lt;br /&gt;
glSlang ist mit diversen Skalar- und Vektorfunktionen ausgestattet, die teilweise (idealerweise) sogar direkt in der Hardware ausgeführt werden, weshalb einer fertigen Funktion ggü. gleichwertigen eigenen Berechnungen immer der Vorzug zu geben ist.&lt;br /&gt;
{{Hinweis| ''genType'' kann vom Type float, vec2, vec3 oder vec4 sein, ''mat'' vom Typ mat2, mat3 oder mat4.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Trigonometrie und Winkel==&lt;br /&gt;
Alle übergebenen Winkel sollten, soweit nicht anders vermerkt, in Radien angegeben werden.&lt;br /&gt;
&lt;br /&gt;
* genType radians (genType degrees)&lt;br /&gt;
: Wandelt von Grad nach Radien. &lt;br /&gt;
* genType degrees (genType radians)&lt;br /&gt;
: Wandelt von Radien nach Grad.&lt;br /&gt;
* genType sin (genType angle)&lt;br /&gt;
: Gibt den Sinus von Angle zurück, wobei Angle in Radien angegeben wird.&lt;br /&gt;
* genType cos (genType angle)&lt;br /&gt;
: Gibt den Cosinus von Angle zurück, wobei Angle in Radien angegeben wird.&lt;br /&gt;
* genType tan (genType angle)&lt;br /&gt;
: Gibt den Tangens von Angle zurück, wobei Angle in Radien angegeben wird.&lt;br /&gt;
* genType asin (genType x)&lt;br /&gt;
: Liefert den Arcsinus von x zurück, also den Winkel dessen Sinus x ergeben würde.&lt;br /&gt;
* genType acos (genType x)&lt;br /&gt;
: Liefert den Arccosinus von x zurück, also den Winkel dessen Cosinus x ergeben würde.&lt;br /&gt;
* genType atan (genType y, genType x)&lt;br /&gt;
: Liefert den Winkel zurück, dessen Tangens x/y ergeben würde.&lt;br /&gt;
* genType atan (genType y_over_x)&lt;br /&gt;
: Liefert den Winkel zurück, dessen Tangens x über y ergeben würde.&lt;br /&gt;
&lt;br /&gt;
==Exponentiell==&lt;br /&gt;
* genType pow (genType x, genType y)&lt;br /&gt;
: Gibt x hoch y zurück.&lt;br /&gt;
* genType exp2 (genType x)&lt;br /&gt;
: Gibt 2 hoch x zurück.&lt;br /&gt;
* genType log2 (genType x)&lt;br /&gt;
: Gibt den Logarithmus zur Basis 2 von x zurück.&lt;br /&gt;
* genType sqrt (genType x)&lt;br /&gt;
: Gibt die Wurzel von x zurück.&lt;br /&gt;
* genType inversesqrt (genType x)&lt;br /&gt;
: Gibt die umgekehrte Wurzel von x zurück. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Standardfunktionen==&lt;br /&gt;
* genType abs (genType x)&lt;br /&gt;
: Liefert den absoluten Wert von x zurück.&lt;br /&gt;
* genType sign (genType x)&lt;br /&gt;
: Gibt -1.0 zurück, wenn x &amp;lt; 0.0, 0.0 wenn x = 0.0 und 1.0 wenn x &amp;gt; 0.0.&lt;br /&gt;
* genType floor (genType x)&lt;br /&gt;
: Gibt denn nächsten Integerwert zurück, der kleiner oder gleich x ist.&lt;br /&gt;
* genType ceil (genType x)&lt;br /&gt;
: Gibt den nächsten Integerwert zurück, der größer oder gleich x ist.&lt;br /&gt;
* genType fract (genType x)&lt;br /&gt;
: Gibt den Nachkommateil von x zurück.&lt;br /&gt;
* genType mod (genType x, float y) &lt;br /&gt;
* genType mod (genType x, genType y)&lt;br /&gt;
: Gibt den Modulus zurück. (=x-y * floor(x/y)) &lt;br /&gt;
* genType min (genType x, genType y) &lt;br /&gt;
* genType min (genType x, float y)&lt;br /&gt;
: Liefert y zurück wenn y &amp;lt; x, ansonsten x. &lt;br /&gt;
* genType max (genType x, genType y) &lt;br /&gt;
* genType max (genType x, float y)&lt;br /&gt;
: Liefert y zurück wenn x &amp;lt; y, ansonsten x. &lt;br /&gt;
* genType clamp (genType x, genType minVal, genType maxVal) &lt;br /&gt;
* genType clamp (genType x, float minVal, float maxVal)&lt;br /&gt;
: Zwängt x in den Bereich minVal..maxVal. &lt;br /&gt;
* genType mix (genType x, genType y, genType a)&lt;br /&gt;
* genType mix (genType x, genType y, float a)&lt;br /&gt;
: Liefert den linearen Blend zwischen x und y zurück. (= x * (1-a) + y * a) &lt;br /&gt;
* genType step (genType edge, genType x)&lt;br /&gt;
* genType step (float edge, genType x)&lt;br /&gt;
: Liefert 0.0 zurück, wenn x &amp;lt;= edge, ansonsten 1.0. &lt;br /&gt;
* genType smoothstep (genType edge0, genType edge1, genType x)&lt;br /&gt;
* genType smoothstep (float edge0, float edge1, genType x)&lt;br /&gt;
: Liefert 0.0 zurück, wenn x &amp;lt;= edge und 1.0 wenn x &amp;gt;= edge. Dabei wird eine weiche Hermite Interpolation zwischen 0 und 1 durchgeführt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Geometrie==&lt;br /&gt;
* float length (genType x)&lt;br /&gt;
: Gibt die Länge des Vektors x (= sqrt(x[0]² + x[1]² + ... + x[n]²) zurück. &lt;br /&gt;
* float distance (genType p0, genType p1)&lt;br /&gt;
: Gibt die Distanz zwischen den zwei Vektoren p0 un p1 (= length(p0-p1)) zurück. &lt;br /&gt;
* float dot (genType x, genType y)&lt;br /&gt;
: Gibt das Punktprodukt von x und y zurück (=x[0]*y[0] + x[1]*y[1] + ... + x[n]*y[n]). &lt;br /&gt;
* vec3 cross (vec3 x, vec3 y)&lt;br /&gt;
: Gibt das Kreuzprodukt von x und y zurück. &lt;br /&gt;
* genType normalize (genType x)&lt;br /&gt;
: Normalisiert den Vektor x auf die Länge 1. &lt;br /&gt;
* vec4 ftransform()&lt;br /&gt;
: Nur im Vertex Shader. Die Funktion stellt sicher, das das eingehende Vertex haargenau so transformiert wird wie in der festen Funktionspipeline. gl_Position = ftransform() wird dann also gebraucht, wenn in mehreren Durchgängen sowohl im Shader als auch in der festen Pipeline gerendert wird, um sicherzustellen das in beiden Fällen die gleiche Vertexposition herauskommt. &lt;br /&gt;
* genType faceforward (genType N, genType I, genType Nref)&lt;br /&gt;
: Gibt einen nach vorne zeigenden Vektor N zurück. (If dot(NRef, I) &amp;lt; 0 return N else return -N) &lt;br /&gt;
* genType reflect (genType I, genType N)&lt;br /&gt;
: Gibt den an der Flächenausrichtung N reflektierten Vektor I zurück. (=I-2 * dot(N,I) * N) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Matrixfunktionen==&lt;br /&gt;
* mat matrixCompMult (mat x, mat y)&lt;br /&gt;
: Multipliziert Matrix X mit Matrix Y komponentenweise. Um eine normale lineare Matrixmultiplikation durchzuführen, sollte der &amp;quot;*&amp;quot;-Operator genutzt werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Vektorvergleiche==&lt;br /&gt;
Die meisten Vektorvergleichsfunktionen liefern als Ergebnis einen boolvektor zurück, da die Vergleiche per Komponente stattfinden. Wenn man also x = vec4(1.0, 3.0, 0.0, 0.0) mit y = vec4(2.0, 1.5, 1.5, 0.0) via lessThan(x, y) vergleicht, erhält man als Ergebnis bvec(true, false, true, false).&lt;br /&gt;
&lt;br /&gt;
* bvec lessThan (vec x, vec y)&lt;br /&gt;
* bvec lessThan (ivec x, ivec y)&lt;br /&gt;
: Gibt den komponentenweisen Vergleich x &amp;lt; y zurück. &lt;br /&gt;
* bvec lessThanEqual (vec x, vec y)&lt;br /&gt;
* bvec lessThanEqual (ivec x, ivec y)&lt;br /&gt;
: Gibt den komponentenweisen Vergleich x &amp;lt;= y zurück. &lt;br /&gt;
* bvec greaterThan (vec x, vec y)&lt;br /&gt;
* bvec greaterThan (ivec x, ivec y)&lt;br /&gt;
: Gibt den komponentenweisen Vergleich x &amp;gt; y zurück. &lt;br /&gt;
* bvec greaterThanEqual (vec x, vec y)&lt;br /&gt;
* bvec greaterThanEqual (ivec x, ivec y)&lt;br /&gt;
: Gibt den komponentenweisen Vergleich x &amp;gt;= y zurück. &lt;br /&gt;
* bvec equal (vec x, vec y)&lt;br /&gt;
* bvec equal (ivec x, ivec y)&lt;br /&gt;
* bvec equal (bvec x, bvec y)&lt;br /&gt;
: Gibt den komponentenweisen Vergleich x == y zurück. &lt;br /&gt;
* bvec notEqual (vec x, vec y)&lt;br /&gt;
* bvec notEqual (ivec x, ivec y)&lt;br /&gt;
* bvec notEqual (bvec x, bvec y)&lt;br /&gt;
: Gibt den komponentenweisen Vergleich x != y zurück. &lt;br /&gt;
* bool any (bvec x)&lt;br /&gt;
: Liefert true zurück, wenn mindestens eine der Komponenten von x true ist.&lt;br /&gt;
* bool all (bvec x)&lt;br /&gt;
: Liefert true zurück, wenn alle Komponenten von x true sind. &lt;br /&gt;
* bvec not (bvec x)&lt;br /&gt;
: Liefert die logische Negation von x zurück. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Texturenzugriffe==&lt;br /&gt;
&lt;br /&gt;
Diese wichtige Funktionskategorie dient dazu, Werte aus einer an eine Textureinheit gebundenen Textur zu ermitteln. Die Texturenzugriffe können sowohl im Vertex (!) als auch im Fragment Shader ausgeführt werden, wobei der optionale Parameter bias im Vertex Shader ignoriert wird. Allerdings gibt es zusätzlich Funktionen die auf &amp;quot;Lod&amp;quot; enden und nur im Vertex Shader genutzt werden dürfen um eben dieses Manko zu umgehen. Funktionen mit dem Suffix &amp;quot;Proj&amp;quot; geben einen projizierten Texturenwert zurück.&lt;br /&gt;
&lt;br /&gt;
: '''1D-Texturen :'''&lt;br /&gt;
* vec4 texture1D (sampler1D sampler, float coord [, float bias])&lt;br /&gt;
* vec4 texture1DProj (sampler1D sampler, vec2 coord [, float bias])&lt;br /&gt;
* vec4 texture1DProj (sampler1D sampler, vec4 coord [, float bias])&lt;br /&gt;
: Nur im Vertex Shader :&lt;br /&gt;
* vec4 texture1DLod (sampler1D sampler, float coord, float lod)&lt;br /&gt;
* vec4 texture1DProjLod (sampler1D sampler, vec2 coord, float lod)&lt;br /&gt;
* vec4 texture1DProjLod (sampler1D sampler, vec4 coord, float lod)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''2D-Texturen :'''&lt;br /&gt;
* vec4 texture2D (sampler2D sampler, vec2 coord [, float bias])&lt;br /&gt;
* vec4 texture2DProj (sampler2D sampler, vec3 coord [, float bias])&lt;br /&gt;
* vec4 texture2DProj (sampler2D sampler, vec4 coord [, float bias])&lt;br /&gt;
: Nur im Vertex Shader : &lt;br /&gt;
* vec4 texture2DLod (sampler2D sampler, vec2 coord, float lod)&lt;br /&gt;
* vec4 texture2DProjLod (sampler2D sampler, vec3 coord, float lod)&lt;br /&gt;
* vec4 texture2DProjLod (sampler2D sampler, vec4 coord, float lod)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''3D-Texturen :'''&lt;br /&gt;
* vec4 texture3D (sampler3D sampler, vec3 coord [, float bias])&lt;br /&gt;
* vec4 texture3DProj (sampler3D sampler, vec4 coord [, float bias])&lt;br /&gt;
: Nur im Vertex Shader : &lt;br /&gt;
* vec4 texture3DLod (sampler3D sampler, vec3 coord, float lod)&lt;br /&gt;
* vec4 texture3DProjLod (sampler3D sampler, vec4 coord, float lod)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Cubemap :'''&lt;br /&gt;
* vec4 textureCube (samplerCube sampler, vec3 coord [, float bias])&lt;br /&gt;
: Nur im Vertex Shader : &lt;br /&gt;
*vec4 textureCubeLod (samplerCube sampler, vec3 coord, float lod)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: '''Tiefentextur (Shadowmap) :'''&lt;br /&gt;
* vec4 shadow1D (sampler1DShadow sampler, vec3 coord [, float bias])&lt;br /&gt;
* vec4 shadow2D (sampler2DShadow sampler, vec3 coord [, float bias])&lt;br /&gt;
* vec4 shadow1DProj (sampler1DShadow sampler, vec4 coord [, float bias])&lt;br /&gt;
* vec4 shadow2DProj (sampler2DShadow sampler, vec4 coord [, float bias])&lt;br /&gt;
: Nur im Vertex Shader :&lt;br /&gt;
* vec4 shadow1DLod (sampler1DShadow sampler, vec3 coord, float lod)&lt;br /&gt;
* vec4 shadow2DLod (sampler2DShadow sampler, vec3 coord, float lod)&lt;br /&gt;
* vec4 shadow1DProjLod (sampler1DShadow sampler, vec4 coord, float lod)&lt;br /&gt;
* vec4 shadow2DProjLod (sampler2DShadow sampler, vec4 coord, float lod)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wie bereits eingangs gesagt ist dieses Kapitel ein sehr wichtiges, denn eine 3D-Szene ohne Texturen ist heute kaum denkbar. Darüber hinaus lassen sich durch Texturenzugriffe recht viele interessante Sachen machen, z.B. ein einfacher Blurfilter oder das freie überblenden bestimmter Texturenteile. Deshalb führe ich hier kurz ein paar Beispiele an, welche die Nutzung dieser Funktionen verdeutlichen sollen :&lt;br /&gt;
&lt;br /&gt;
===Beispiel A=== &lt;br /&gt;
Eine Textur gebunden die einfach ausgegeben werden soll&lt;br /&gt;
&lt;br /&gt;
''Im Vertex Shader'' :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
 gl_Position     = gl_ModelViewProjectionMatrix * gl_Vertex;&lt;br /&gt;
 gl_TexCoord[0]  = gl_MultiTexCoord0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
Der Vertex Shader ist recht minimal. Neben der homogenen Vertexposition leiten wir hier nur die im OpenGL-Programm angegebenen Texturkoordinaten weiter. ''Dies ist aber unbedingt nötig!'' Ohne die letzte Zeile hätten wir im Fragment Shader keine gültigen Texturkoordinaten auf TMU0, was in einer Fehldarstellung enden würde.&lt;br /&gt;
&lt;br /&gt;
''im Fragment Shader'' :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
uniform sampler2D texSampler;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
 gl_FragColor = texture2D(texSampler, vec2(gl_TexCoord[0]));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Zuerst deklarieren wir hier einen 2D-Texturensampler, wichtig : '''Texturensampler müssen IMMER als uniform deklariert werden!''' In der Hauptfunktion weisen wir dann einfach den über die Funktion texture2D aus unserer gebundenen Textur ausgelesenen Farbwert, anhand der vom Vertex Shader übergebenen Texturkoordinaten, zu.&lt;br /&gt;
&lt;br /&gt;
===Beispiel B=== &lt;br /&gt;
Zwei Texturen, jeweils auf TMU0 und TMU1. Fragmentfarbe soll eine Multiplikation der beiden Texturen darstellen.&lt;br /&gt;
&lt;br /&gt;
In diesem Beispielfall (der recht häufig vorkommt) müssen wir im Programm festlegen, ''welcher Sampler welche Textureinheit adressiert'', genau deshalb müssen die Texturensampler auch als uniform deklariert werden. Die Standardtextureneinheit eines Samplers ist TMU0, was in unserem Falle natürlich nicht brauchbar ist. Also müssen wir unserem zweiten Textursampler im Programm mitteilen das er seine Daten aus TMU1 beziehen soll :&lt;br /&gt;
&lt;br /&gt;
 glUniform1iARB(glSlang_GetUniLoc(ProgramObject, 'texSamplerTMU1'), 1);&lt;br /&gt;
&lt;br /&gt;
Dies ist also unbedingt zu machen, sobald ein Texturensampler eine Textureinheit &amp;gt; GL_TEXTURE_0 adressieren will. Die Textureneinheit des Samplers lässt sich also nicht im Shader selbst festlegen. Der Fragment Shader ist nun allerdings schnell hergeleitet (Vertex Shader verändert sich nicht, da TMU1 die Texturkoordinaten auch von TMU0 bezieht) :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
im Fragment Shader :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
uniform sampler2D texSamplerTMU0;&lt;br /&gt;
uniform sampler2D texSamplerTMU1;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
    gl_FragColor = texture2D(texSamplerTMU0, vec2(gl_TexCoord[0])) *&lt;br /&gt;
                   texture2D(texSamplerTMU1, vec2(gl_TexCoord[0]));&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Noisefunktionen==&lt;br /&gt;
Sowohl im Vertex als auch im Fragment Shader lassen sich [[GLSL noise|Noisefunktionen]] nutzen, mit deren Hilfe sich eine gewisse &amp;quot;Zufälligkeit&amp;quot; simulieren lässt (wirklich zufällige Werte sind es natürlich nicht). Ein zurückgegebener Wert liegt dabei immer im Bereich [-1..1] und ist immer bei gleichem Eigabewert auch immer gleich. Die Verwendung empfiehlt sich derzeit allerdings eher nicht, da nicht alle aktuellen Treiber die Funktionen unterstützen und eine Noisetextur wahrscheinlich performanter ist.&lt;br /&gt;
&lt;br /&gt;
* float noise1 (genType x)&lt;br /&gt;
* vec2 noise2 (genType x)&lt;br /&gt;
* vec3 noise3 (genType x)&lt;br /&gt;
* vec4 noise4 (genType x)&lt;br /&gt;
&lt;br /&gt;
==Discard==&lt;br /&gt;
Eigentlich keine Funktion, sondern eine Abbruchbedingung '''nur im Fragment Shader'''. Das Schlüsselwort {{INLINE_CODE|discard}} verwirft das aktuell bearbeitete Fragment und beendet gleichzeitig den Shader. Es kann z.B. genutzt werden um Alphamasking manuell durchzuführen.&lt;br /&gt;
Man sollte dabei jedoch beachten dass ein Großteil der aktuellen Hardware kein &amp;quot;early-out&amp;quot; (frühes Beenden) im Fragmentshader unterstützt. Wenn dort also ein {{INLINE_CODE|discard}} auftaucht, wird trotzdem auch der Code danach ausgeführt und einfach verworfen. Einen Geschwindigkeitsvorteil durch diesen Befehl wird man also erst auf neueren Karten feststellen, die dieses Faeature auch so unterstützen wie es angedacht war. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Beispielshader=&lt;br /&gt;
Wen bis hierhin nicht der Mut verlassen hat, und wer aufmerksam gelesen hat, dürfte jetzt also zumindest in der Lage sein kleinere Shader in glSlang zu schreiben und diese auch im Programm zu nutzen. Ich habe im Themenbereich &amp;quot;glSlang&amp;quot; versucht alle Bereiche der Shadersprache selbst anzusprechen und hoffe das auch brauchbar rübergebracht zu haben. Um oben erlerntes (hoffe ich doch mal) nochmal zu vertiefen werde ich jetzt (wie ich das bereits bei meinem ARB_VP-Tutorial getan habe) einen simplen Beispielshader (Vertex und Fragment Shader) auseinanderpflücken um so u.a. auch die Programmstruktur für alle die in C nicht so bewandert sind zu erörtern.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Der Vertex Shader==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
uniform vec4 GlobalColor;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
 gl_Position     = gl_ModelViewProjectionMatrix * gl_Vertex;&lt;br /&gt;
 gl_FrontColor   = gl_Color * GlobalColor;&lt;br /&gt;
 gl_TexCoord[0]  = gl_MultiTexCoord0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wie gesagt recht simpel. Angefangen wird mit der Deklaration einer globalen Uniformvariable namens {{INLINE_CODE|GlobalColor}}. Wie wir uns erinnern gibt der Typenqualifizierer uniform an, das wir den Wert dieser Variable (ein 4-Komponentenvektor, da Farbwerte aus R,G,B und A bestehen) in unserem Programm an den Shader übermitteln.&lt;br /&gt;
&lt;br /&gt;
Danach gehts ohne Umwege direkt in unsere Hauptfunktion, da wir im Vertex Shader keine anderen Funktionen benötigen. Dort berechnen wir zuerst die homogene Position unseres Vertex, die sich aus der eingehenden Vertexposition multipliziert mit der Modelansichtsmatrix ergibt. Wie schonmal gesagt '''muss diesem Wert etwas zugewiesen werden''', da sonst alle darauf aufbauenden Funktionen unvorhersehbare Ergebnisse liefern.&lt;br /&gt;
Ausserdem wollen wir die Frontfarbe unseres Vertex jedesmal mit der im Programm übergebenen GlobalColor multiplizieren, so dass wir den Farbwert der gesamten Szene aus unserem Programm heraus manipulieren können. Zu guterletzt geben wir dann noch unsere aus der festen Funktionspipeline erhaltenen Texturkoordinaten auf Textureinheit 0 weiter. Wenn im Fragmentshader Texturkoordinaten verwendet werden, '''muss das getan werden'''. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Der Fragment Shader==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;glsl&amp;quot;&amp;gt;&lt;br /&gt;
uniform sampler2D Texture0;&lt;br /&gt;
uniform sampler2D Texture1;&lt;br /&gt;
uniform sampler2D Texture2;&lt;br /&gt;
uniform sampler2D Texture3;&lt;br /&gt;
&lt;br /&gt;
void main(void)&lt;br /&gt;
{&lt;br /&gt;
 vec2 TexCoord = vec2( gl_TexCoord[0] );&lt;br /&gt;
 vec4 RGB      = texture2D( Texture0, TexCoord );&lt;br /&gt;
&lt;br /&gt;
 gl_FragColor  = texture2D(Texture1, TexCoord) * RGB.r +&lt;br /&gt;
                 texture2D(Texture2, TexCoord) * RGB.g +&lt;br /&gt;
                 texture2D(Texture3, TexCoord) * RGB.b;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Auch hier passiert nicht wirklich viel Großartiges. Wir deklarieren beim Shaderanfang zuerst vier Texturensampler, da wir insgesamt vier verschiedene Texturen im Shader auslesen wollen, eine Verlaufstextur und drei Oberflächentexturen. Auch hier sei wieder gesagt das man Sampler '''immer als uniform deklarieren muss'''. In der Hauptfunktion deklarieren wir dann einen Farbvektor, der auch direkt einen Farbwert aus Textureinheit 0 zugewiesen bekommt. Auf Textureinheit 0 haben wir ihm Hauptprogramm eine Verlaufstextur gebunden, die angibt wie die drei folgenden Texturen ineinander geblendet werden.&lt;br /&gt;
Danach schreiben wir dann den Farbwert des Fragmentes, der '''im Fragment Shader ausgegeben werden muss'''. Der besteht wie einfach zu erkennen aus Farbwert von Textureinheit 1 * Rotwert von Textureinheit 0 + Farbwert von Textureinheit 2 * Grünwert von Textureinheit 0 + Farbwert von Textureinheit 3 * Blauwert von Textureinheit 0. So ist z.B. an Stellen an denen in der Verlaufstextur reines blau liegt nur die dritte Textur sichtbar.&lt;br /&gt;
&lt;br /&gt;
So viel also zu unserem kleinen Beispielshader. Er ist weder besonders toll noch besonders sinnvoll, sollte aber auch eher dazu dienen euch glSlang ein wenig zu veranschaulichen, was mir hoffentlich gelungen ist.&lt;br /&gt;
&lt;br /&gt;
Wenn ihr in den vorangegangenen Kapiteln zumindest ein wenig aufgepasst habt, dann könnt ihr euch vor eurem inneren Auge hoffentlich vortstellen was der Shader macht : Er blendet drei Texturen weich anhand der Verlaufstextur ineinander über. Sowas kann man z.B. für ein Terrain nutzen, um dieses anhand einer Farbtextur zu texturieren. Für alle, die damit Probleme haben hier zwei Bilder die den Shader veranschaulichen. Links die Verlaufstextur, die angibt wo welche Textur wie stark gewichtet wird und rechts dann das Ergebnis :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt; [[BILD:GLSL_sample_shader_a.jpg]] [[BILD:GLSL_sample_shader_b.jpg]]&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Post Mortem=&lt;br /&gt;
Das wars also, meine &amp;quot;Einführung&amp;quot; in die OpenGL Shader Sprache. Ich hoffe es hat euch nicht gelangweilt und auch die von mir zur Verfügung gestellten Informationen haben euch hoffentlich ausgereicht. Mit der Veröffentlichung dieser Einführung geht übrigens auch die Eröffnung eines Shaderforums hier auf der DGL einher, in der ihr dann also fleissig Fragen zum Thema stellen oder eure Shader präsentieren könnt. In diesem Post Mortem gehe ich jetzt noch kurz auf die Zukunft von glSlang ein und zeige ein paar Screenshots (damit die Augen entspannen können), bevor ihr euch dann selbst in die Shaderwelt stürzen könnt. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Beispiele=&lt;br /&gt;
&lt;br /&gt;
Anbei ein paar exemplarische Screenshots. Da man mit GLSL aber alle möglichen Effekte berechnen kann (u.a. auch 1:1 die feste Funktionspipeline) ist es hier unmöglich einen Überblick aller möglichen Techniken zu geben.&lt;br /&gt;
&lt;br /&gt;
[[Datei:tut_glsl_eigenershader_01.png]] [[Datei:tut_glsl_eigenershader_02.png]] [[Datei:tut_glsl_eigenershader_03.png]]&lt;br /&gt;
&lt;br /&gt;
Wie im ersten (und dritten) Screenshot zu sehen ist es natürlich auch möglich mehrere Techniken innerhalb einer Szene zu nutzen. Hier sind letztendlich bis auf Hardwarelimitationen keine Grenzen gesetzt.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Die Zukunft=&lt;br /&gt;
Als dieses Tutorial geschrieben wurde, war noch nicht ganz abzusehen dass bzw. ob sich GLSL auch durchsetzen würde. ARB-Shadr und NVidias cG waren damals die Platzhirsche, aber inzwischen werden ARB-Shader nicht mehr genutzt (und auch schon länger nicht mehr weiterentwickelt) und auch NVidia setzt primär auf GLSL. GLSL wird permanent weiterenwtickelt und Hersteller können dank des flexiblen Extensionsystems auch in GLSL eigene Extensions offenlegen um die aktuellsten Features (wie z.b. den Tesselator auf aktuellen ATI-Karten) nutzen zu können. GLSL it als inzwischen auch offizielle die Shadersprache frü OpenGL und wird permanent an die neusten technischen Entwicklungen im Grafikkartenbereich angepasst.&lt;br /&gt;
&lt;br /&gt;
Wer also unter OpenGL etwas mit Shadern machen möchte, kommt an GLSL nicht vorbei!&lt;br /&gt;
&lt;br /&gt;
Also viel Spaß beim Experimentieren und Shaderschreiben! Und nicht vergessen : Wir wollen sehen was ihr so treibt,&lt;br /&gt;
&lt;br /&gt;
Euer&lt;br /&gt;
:Sascha Willems&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{TUTORIAL_NAVIGATION|-|[[Tutorial_glsl2]]}}&lt;br /&gt;
[[Kategorie:Tutorial|GLSL]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=Shader_(historisch)&amp;diff=25285</id>
		<title>Shader (historisch)</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=Shader_(historisch)&amp;diff=25285"/>
				<updated>2011-07-20T07:56:09Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: Wikisyntax; Links korrigiert&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Shader =&lt;br /&gt;
&lt;br /&gt;
== Konzept ==&lt;br /&gt;
Die traditionelle [[Feste Funktionspipeline|Funktionspipeline]] der [[OpenGL]] ist eine feste Pipeline, auf die man nur beschränkt Einfluß nehmen kann (durch Statechanges), man hat also an sehr vielen Stellen starre Vorgaben die nur minimal anpassbar sind. So sind z.B. Farbberechnungen oder die Beleuchtung fest definiert und nur wenige ihrer Attribute können variiert werden. Zurückzuführen war/ist dieser Umstand v.a. darauf dass Grafikkarten bis vor kurzem nur feste Berechnungseinheiten besaßen, die man auch nicht programmieren konnte. (siehe z.B. die fest verdrahtete T&amp;amp;L-Einheit der ersten nVidia GeForce-Karten)&lt;br /&gt;
&lt;br /&gt;
Allerdings haben vor einigen Jahren Grafikkarten mit teilweise programmierbaren Einheiten (erst waren dies recht eingeschränkt programmierbare Vertexeinheiten, inzwischen sind selbst die Fragmentprozessoren recht frei programmierbar, siehe z.B. VS/PS3.0) Einzug in den Consumermarkt gefunden, und so war es nötig OpenGL auch um programmierbare Pipeline-Teile zu erweitern, und die neuste Inkarnation sind dabei Shader.&lt;br /&gt;
&lt;br /&gt;
Seit neuestem gibt es neben den herstellerabhängigen Funktionen zum Programmieren der Vertex- und Fragmentprozessoren auch standardisierte Erweiterungen. Zuerst waren dies GL_VERTEX_PROGRAM_ARB/GL_FRAGMENT_PROGRAM_ARB, mit denen man diese beiden Prozessoren (sofern auf der Grafikkarte vorhanden) in einer an Assembler (recht primitiv, mit nur wenigen Befehlen, alle auf Grafikprogrammierung ausgelegt) angelehnten Sprache programmieren konnte. Man schreibt dazu also ein Programm dass den entsprechenden Teil der festen Funktionspipeline ersetzt und führt dieses dann auf der Grafikkarte aus. So kann man für Vertices und Fragmente komplett eigene Berechnungen durchführen. Allerdings ist eine solche Assemblersprache nicht nur recht eingeschränkt, sondern auch recht kryptisch und daher nicht zuletzt (besonders bei großen Programmen) schlecht zu warten. Also hat OpenGL hier genau wie die normalen Programmiersprachen als nächste Iteration (OpenGL 2.0) für programmierbare Teile der Pipeline eine ''Hochsprache'' verpasst bekommen, namentlich als '''[[GLSlang]]''' bekannt.&lt;br /&gt;
&lt;br /&gt;
Hießen die Programme unter der Assemblersprache noch Vertexprogramm bzw. Fragmentprogramm, so hat man sich unter [[GLSlang]] etwas angepasst (an D3D) und nennt diese nun '''[[Vertexshader]]''' bzw. '''[[Fragmentshader]]''' (Shader bedeutet &amp;quot;schattieren&amp;quot;, stimmt also nicht 100%ig). &lt;br /&gt;
&lt;br /&gt;
Diese Shader kann man wie angesprochen nun in einer '''an C angelehnten Hochsprache''' schreiben, was zur Folge hat dass sich die Programmierung der entsprechenden Grafikprozessoren reichlich vereinfacht hat, und ausserdem hat man glSlang um recht viele Dinge erweitert die in der Assemblersprache nicht (oder nicht gerade einfach) möglich waren. Darunter Schleifen, Funktionen, uvm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voraussetzungen ==&lt;br /&gt;
Shader sind ein recht neues Konzept unter OpenGL und mit glSlang wollte man eine reichlich zukunftsorientierte Hochsprache für Shader schaffen. Deshalb hat man gleich auf alte Shaderversionen verzichtet und setzt '''Vertexshader und Pixelshader in der Version 2.0''' voraus, die bei ATI ab der Radeon 9500 und bei NVidia ab der Geforce FX zur Verfügung stehen. &lt;br /&gt;
&lt;br /&gt;
Momentan stellt glSlang eine Erweiterung zur OpenGL-Version 1.5 dar, also benötigt man neben der oben erwähnten Hardware auch noch passende Treiber und OpenGL-Header. Für Delphi bietet die DGL einen eigenen Header an, der diese Funktionalität mitbringt ([http://www.delphigl.com/do_download.php?f=12000 Download]).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Extensions ==&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[[GL_ARB_shader_objects]]&amp;lt;/li&amp;gt;&lt;br /&gt;
Definiert die API-Aufrufe die zum Erstellen, Kompilieren, Linken, Anhängen und Aktivieren von Shader- und Programmobjekten nötig sind. &lt;br /&gt;
&amp;lt;li&amp;gt;[[GL_ARB_vertex_shader]]&amp;lt;/li&amp;gt;&lt;br /&gt;
Fügt der OpenGL Programmierbarkeit auf Vertexebene hinzu. &lt;br /&gt;
&amp;lt;li&amp;gt;[[GL_ARB_fragment_shader]]&amp;lt;/li&amp;gt;&lt;br /&gt;
Fügt der OpenGL Programmierbarkeit auf Fragmentebene hinzu. &lt;br /&gt;
&amp;lt;li&amp;gt;[[GL_ARB_shading_language_100]]&amp;lt;/li&amp;gt;&lt;br /&gt;
Gibt die unterstützte Version von glSlang an, momentan 1.00.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Alternativen ==&lt;br /&gt;
=== Vertex- und Fragmentprogramme ===&lt;br /&gt;
Die Erweiterungen [[GL_ARB_vertex_program]] und [[GL_ARB_fragment_program]] ermöglichen die Programmierung von Programmen (&amp;quot;andere&amp;quot; Bezeichnung für Shader) auf VS/PS2.0-Hardware in einer Assembler-Sprache. Die Erweiterungen sind herstellerunabhängig, werden aber wohl aufgrund von glSlang nicht mehr (oder nur marginal) weiterentwickelt.&lt;br /&gt;
&lt;br /&gt;
=== Vertex- und Fragmentprogramme (NVidia) ===&lt;br /&gt;
Ähnlich wie oben erwähnte, herstellerunabhängige, Erweiterungen für Vertex- und Fragmentprogramme bietet NVidia ein Äquivalent (auch Assembler, aber mit anderen Mnemonics, Befehlen und Syntax) dazu an. Diese Erweiterungen werden mit jeder neuen Hardwaregeneration weiterentwickelt, um deren Shaderfähigkeiten nutzbar machen zu können, ohne dabei auf eine vom ARB abgesegnete Erweiterung warten zu müssen. Je nach Hardware stehen dann [[GL_NV_vertex_program]], [[GL_NV_vertex_program1_1]], [[GL_NV_vertex_program2]] und [[GL_NV_vertex_program3]] bzw. [[GL_NV_fragment_program]] und [[GL_NV_fragment_program2]] zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Vertex- und Fragmentshader (ATI) ===&lt;br /&gt;
Mit Einführung der Radeon 8500-Reihe, die Pixelshader und Vertexshader in Version 1.4 beherschte, führte ATI (in Ermangelung passender GL-Funktionalität) eigene Erweiterungen ein mit denen man (jedoch recht undynamisch) VS/PS1.4 in OpenGL nutzen kann, und zwar in Form von [[GL_ATI_vertex_shader]], [[GL_ATI_fragment_shader]] und [[GL_ATI_text_fragment_shader]]. Trotz der Namensverwandschaft haben diese Extensions in Sachen Programmierung so gut wie nichts mit glSlang gemein.&lt;br /&gt;
&lt;br /&gt;
=== Registercombiner und Textureshader (NVidia) ===&lt;br /&gt;
Seit der GeForce2-Reihe gibt es von NVidia sog. Registercombiner und Textureshader, die man in etwa mit recht eingeschränkten Shadern vergleichen kann. Da neure NVidia Hardware VS/PS2.0+ kann, werden diese Erweiterungen nicht mehr weiterentwickelt. Je nach verwendeter Hardware sind die nutzbaren Erweiterungen [[GL_NV_register_combiners]] und [[GL_NV_register_combiners2]] bzw. [[GL_NV_texture_shader]], [[GL_NV_texture_shader2]] und [[GL_NV_texture_shader3]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funktionen ==&lt;br /&gt;
*[[glAttachObjectARB]]&lt;br /&gt;
*[[glBindAttribLocationARB]]&lt;br /&gt;
*[[glCompileShaderARB]]&lt;br /&gt;
*[[glCreateProgramObjectARB]]&lt;br /&gt;
*[[glCreateShaderObjectARB]]&lt;br /&gt;
*[[glDeleteObjectARB]]&lt;br /&gt;
*[[glDetachObjectARB]]&lt;br /&gt;
*[[glEnableVertexAttribArrayARB]]&lt;br /&gt;
*[[glGetActiveAttribARB]]&lt;br /&gt;
*[[glGetActiveUniformARB]]&lt;br /&gt;
*[[glGetAttachedObjectsARB]]&lt;br /&gt;
*[[glGetAttribLocationARB]]&lt;br /&gt;
*[[glGetHandleARB]]&lt;br /&gt;
*[[glGetInfoLogARB]]&lt;br /&gt;
*[[glGetObjectParameterARB]]&lt;br /&gt;
*[[glGetShaderSourceARB]]&lt;br /&gt;
*[[glGetUniformARB]]&lt;br /&gt;
*[[glGetUniformLocationARB]]&lt;br /&gt;
*[[glGetVertexAttribARB]]&lt;br /&gt;
*[[glGetVertexAttribPointervARB]]&lt;br /&gt;
*[[glLinkProgramARB]]&lt;br /&gt;
*[[glShaderSourceARB]]&lt;br /&gt;
*[[glUniformARB]]&lt;br /&gt;
*[[glUseProgramObjectARB]]&lt;br /&gt;
*[[glValidateProgramARB]]&lt;br /&gt;
*[[glVertexAttribARB]]&lt;br /&gt;
*[[glVertexAttribPointerARB]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ressourcen ==&lt;br /&gt;
=== Informationen ===&lt;br /&gt;
*[http://www.opengl.org/documentation/specs/version2.0/glspec20.pdf Official OpenGL 2.0 Specifications] (Englisch)&lt;br /&gt;
*[http://www.opengl.org/documentation/oglsl.html Offizielle GlSlang-Dokumentation] (Englisch)&lt;br /&gt;
*[http://developer.3dlabs.com/openGL2/index.htm Offizielle OpenGL2/OpenGL HLSL-Seiten] (Englisch)&lt;br /&gt;
*[[DGLOpenGL.pas|OpenGL-Header für Delphi (mit GlSlang-Extensions)]]&lt;br /&gt;
*[[Tutorial glsl|GLSlang-Tutorial auf DGL]] (Deutsch)&lt;br /&gt;
*[http://www.clockworkcoders.com/oglsl GlSlang Tutorials] (Englisch)&lt;br /&gt;
*[http://www.shadertech.com/ ShaderTech - GPU Programming] (Englisch)&lt;br /&gt;
*[http://nehe.gamedev.net/data/articles/article.asp?article=21 NeHe GLSL Introduction] (Englisch)&lt;br /&gt;
*[http://www.3ddrome.com/articles/cgshaders.php Cg Pixel Shaders in OpenGL] (Englisch)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Programme/Tools ===&lt;br /&gt;
*[http://www.typhoonlabs.com/ OpenGL-Shaderdesigner von Typhoon Labs]&lt;br /&gt;
*[http://www.weeselsoftware.tgaraas.com/shaderNinja.html Shader Ninja von Weesel Software]&lt;br /&gt;
*[http://mirror.ati.com/developer/sdk/radeonSDK/html/Tools/RenderMonkey.html ATIs RenderMonkey]&lt;br /&gt;
*[http://developer.nvidia.com/object/sdk_home.html nVidias SDK] (Beinhaltet diverse GlSlang-Beispielanwendungen/Shader)&lt;br /&gt;
*[http://www.gpgpu.org/ GPGPU - General-Purpose Computation Using Graphics Hardware]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glTexImage2D&amp;diff=25284</id>
		<title>glTexImage2D</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glTexImage2D&amp;diff=25284"/>
				<updated>2011-07-20T07:32:14Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Hinweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glTexImage2D =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glTexImage2D''' - Spezifiziert ein zweidimensionales Texturbild.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spezifikation ==&lt;br /&gt;
 procedure '''glTexImage2D'''(''target'': TGLenum; ''level'': TGLint; ''internalformat'': TGLint; ''width'': TGLsizei; &lt;br /&gt;
                        ''height'': TGLsizei; ''border'': TGLint; ''format'': TGLenum; ''_type'': TGLenum; &lt;br /&gt;
                        '''const''' ''pixels'': PGLvoid); &lt;br /&gt;
 &lt;br /&gt;
== Parameter ==&lt;br /&gt;
&amp;lt;table border=1 rules=all&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''target''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt das Ziel der Textur an.&lt;br /&gt;
 &lt;br /&gt;
'''GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z''' oder '''GL_PROXY_TEXTURE_CUBE_MAP'''&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''level''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt den Detailgrad für das gewünschte Bild an. &amp;lt;br&amp;gt;&lt;br /&gt;
''level'' '''0''' ist das Basisbild. Level n ist die n-te Mipmap-Reduzierung des Bildes.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''internalformat''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;'''1''' für '''R''' &amp;lt;br&amp;gt; '''2''' für '''R''' und '''A''' &amp;lt;br&amp;gt; '''3''' für '''RGB''' &amp;lt;br&amp;gt; '''4''' für '''RGBA''' &amp;lt;br&amp;gt;&lt;br /&gt;
oder eine der folgenden symbolischen Konstanten :&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_ALPHA,     GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA''' oder '''GL_SRGB8_ALPHA8'''.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''width''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Breite = Anzahl der Pixel pro Zeile &amp;lt;br&amp;gt; muss als Wert ''2^n + 2 * border'' für n Integerwerte haben.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''height''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Höhe = Anzahl der Zeilen &amp;lt;br&amp;gt; muss als Wert ''2^n + 2 * border'' für n Integerwerte haben&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''border''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Breite des Rahmens || '''0''' oder '''1'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''format''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Bestimmt das Format der Pixeldaten.&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende symbolische Werte werden akzeptiert: &amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE,''' und '''GL_LUMINANCE_ALPHA'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''_type''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Bestimmt den Pixeltyp für den Inhalt von ''pixels''.&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende Typen werden unterstützt:&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV.'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''pixels''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Die Texture-Image Daten vom Typ, der in ''format'' angegeben wurde (Array, in dem die Pixel gespeichert sind) &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Texturierung bildet einen bestimmten Teil eines Texturbildes auf alle [[Primitive|Grafikprimitiven]] ab für die Texturierung aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
Zur Aktivierung einer zweidimensionalen Textur ruft man [[glEnable]] mit dem Parameter '''GL_TEXTURE_2D''' auf. Die Deaktivierung erfolgt entsprechend mittels [[glDisable]].&lt;br /&gt;
Um Texturierung für [[Cubemap]]-Texturen zu aktivieren oder zu deaktivieren, ruft man [[glEnable]] oder [[glDisable]] mit Argument '''GL_TEXTURE_CUBE_MAP''' auf.&lt;br /&gt;
&lt;br /&gt;
Das Texturbild wird durch die Funktion '''glTexImage2D''' definiert. Die Argumente der Funktion beschreiben die Eigenschaften des Texturbildes wie z.B. Breite, Höhe, Tiefe (je nach Dimension), Breite des Randes, [[LOD]]-Nummer (siehe [[glTexParameter]]) und Anzahl der unterstützen Farbkomponenten. Die letzten 3 Argumente beschreiben wie das Bild im Speicher abgelegt wird. Die 3 Argumente sind identisch mit denen, die das Pixelformat bei [[glDrawPixels]] steuern.&lt;br /&gt;
&lt;br /&gt;
Falls ''target'' '''GL_PROXY_TEXTURE_2D''' oder '''GL_PROXY_TEXTURE_CUBE_MAP''' ist, werden keine Daten von ''data'' gelesen, sondern der Zustand des Texturbildes neu berechnet, auf Konsistenz überprüft und gegen die Fähigkeiten der Implementation geprüft. Falls die Implementation mit einer Textur der angeforderten Grösse nicht klarkommt, setzt sie jeden Bildzustand auf 0, generiert jedoch keinen Fehler ( siehe [[glGetError]] ). Um ein vollständiges Mipmap-Array abzufragen, sollte man ''level'' grösser oder gleich 1 wählen.&lt;br /&gt;
&lt;br /&gt;
Falls ''target'' '''GL_TEXTURE_2D''' oder eins der '''GL_TEXTURE_CUBE_MAP'''-targets ist, werden die Daten aus ''pixels'' als Sequenz von vorzeichenlosen oder -behafteten Byte-, Shortint- oder Longint-Werten oder als Fließkommazahlen einfacher Genauigkeit gelesen. Der Typ wird über ''type'' festgelegt. &amp;lt;br&amp;gt;&lt;br /&gt;
Die ausgelesen Werte werden abhängig von ''format'' gruppiert zu Gruppen mit je einem, zwei, drei oder vier Werten. Diese Gruppen entsprechen einem Element. &lt;br /&gt;
&lt;br /&gt;
Wenn ''type'' gleich '''GL_BITMAP''' ist, werden die Daten als Folge (orig.: &amp;quot;String&amp;quot;) von vorzeichenlosen Bytewerten angesehen (wobei ''format'' '''GL_COLOR_INDEX''' sein muss). Jedes Byte des Datenblocks wird als Gruppe von 8 1-Bit Elementen interpretiert. Die Reihenfolge der Bits wird durch '''GL_UNPACK_LSB_FIRST''' (siehe [[glPixelStore]]) festgelegt.&lt;br /&gt;
&lt;br /&gt;
Falls ein nichtnull benamtes [[VBO | Pufferobjekt]] an das '''GL_PIXEL_UNPACK_BUFFER '''-target gebunden ist ( siehe [[glBindBuffer]] ) während ein Texturbild definiert wird, wird ''data'' als Byte-Offset im Datenspeicher des Pufferobjektes behandelt.&lt;br /&gt;
                    &lt;br /&gt;
Das erste Element entspricht der unteren linken Ecke des Texturbildes. Nachfolgende Elemente laufen von links nach rechts durch die verbleibenden Texel in der untersten Zeile und dann in nachfolgenden höheren Zeilen. Das letzte Element entspricht der oberen rechten Ecke.&lt;br /&gt;
&lt;br /&gt;
Der ''format'' Parameter bestimmt die Zusammenstellung der Elemente aus ''pixels''. Folgende 13 möglichen Werte kann ''format'' haben:&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_INDEX'''&lt;br /&gt;
:Jedes Element entspricht einem einzelnen Wert, dem Farbindex. Jeder Index wird in eine Festkommazahl (mit einer unbestimmten Anzahl 0 Bits rechts vom Komma) konvertiert, abhängig von Wert und Vorzeichen von '''GL_INDEX_SHIFT''' bitweise nach rechts bzw. links verschoben und zu '''GL_INDEX_OFFSET''' addiert ( siehe [[glPixelTransfer]] ). Dann werden die Indizes durch ihre entsprechenden Werte aus den Tabellen '''GL_PIXEL_MAP_I_TO_R''', '''GL_PIXEL_MAP_I_TO_G''', '''GL_PIXEL_MAP_I_TO_B''' und '''GL_PIXEL_MAP_I_TO_A''' ersetzt und auf das Intervall [0, 1] heruntergerechnet.&lt;br /&gt;
&lt;br /&gt;
'''GL_RED'''&lt;br /&gt;
:Jedes Element entspricht einer roten Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_GREEN'''&lt;br /&gt;
:Jedes Element entspricht einer grünen Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_BLUE'''&lt;br /&gt;
:Jedes Element entspricht einer blauen Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_ALPHA'''&lt;br /&gt;
:Jedes Element entspricht einer Alpha-Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die drei anderen Farben hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_INTENSITY'''&lt;br /&gt;
:Jedes Element entspricht einem einzelnem Intesivitäts-Wert. OpenGL wandelt dieses in eine Fließkommazahl um und setzt es zu einem RGBA-Element zusammen, indem der Intensitätswert drei Mal für Rot, Grün, Blau und Alpha kopiert wird. Jede Komponente wird dann mit dem vorzeichenbehafteten Skalierungsfaktor '''GL_'''''c'''''_SCALE''' multipliziert, zu dem vorzeichenbehafteten Bias '''GL_'''''c'''''_BIAS''' addiert und auf den Bereich [0,1] begrenzt ( siehe [[glPixelTransfer]] ).&lt;br /&gt;
&lt;br /&gt;
'''GL_RGB'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_BGR'''&lt;br /&gt;
:Jedes Element entspricht den drei RGB-Farbwerten. Die Werte werden in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_RGBA'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_BGRA'''&lt;br /&gt;
:Jedes Element enthält alle vier Farbkomponenten. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE'''&lt;br /&gt;
:Jedes Element entspricht einem Helligkeitswert. Der Wert wird in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man den Helligkeitswert drei mal für R, G und B einsetzt und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE_ALPHA'''&lt;br /&gt;
:Jedes Element entspricht einem Paar aus Helligkeitswert und Alphawert. Beide Werte werden in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man den Helligkeitswert drei mal für R, G und B einsetzt und den Alphawert hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_DEPTH_COMPONENT'''&lt;br /&gt;
:Jedes Element ist ein einzelner Tiefenwert. OpenGL wandelt diesen in eine Fließkommazahl um, multipliziert diese mit dem vorzeichenbehafteten Skalierungsfaktor '''GL_DEPTH_SCALE''', addiert den vorzeichenbehafteten Bias '''GL_DEPTH_BIAS''' und begrenzt auf den Bereich [0,1] ( siehe [[glPixelTransfer]] ).&lt;br /&gt;
&lt;br /&gt;
Lesen Sie den Artikel [[glDrawPixels]] um eine Beschreibung der zulässigen Werte für ''type'' zu erhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn eine Anwendung die Textur in einer bestimmten Auflösung oder in einem bestimmten Format speichern möchte, kann sie die Auflösung und das Format mit ''internalFormat'' abfragen. OpenGL wird eine interne Repräsentation wählen die das gewünschte ''internalFormat'' approximiert, aber das Format muß nicht exakt übereinstimmen. ( Die Repräsentationen spezifiziert durch '''GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB''' und '''GL_RGBA''' müssen exakt übereinstimmen ). Die numerischen Werte 1, 2, 3 und 4 dürfen ebenfalls benutzt werden um die obrigen Repräsentationen zu spezifizieren.&lt;br /&gt;
&lt;br /&gt;
Wenn der Parameter ''internalFormat'' eins der generischen gepackten Formate '''GL_COMPRESSED_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_RGB''' oder '''GL_COMPRESSED_RGBA''' ist, wird OpenGL das interne Format mit der symbolischen Konstante für ein spezifisches internes Format ersetzen und die Textur vor der Speicherung komprimieren. Falls kein entsprechendes internes Format zu Verfügung steht oder OpenGL das Bild aus irgendeinem Grund nicht komprimieren kann, wird das interne Format stattdessen durch das entsprechende interne Basisformat ersetzt.&lt;br /&gt;
&lt;br /&gt;
Falls der Parameter ''internalFormat'' '''GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, GL_SRGB8_ALPHA8, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA''' oder '''GL_SLUMINANCE8_ALPHA8''' ist, wird die Textur behandelt als wären die roten, grünen, blauen oder Luminance-Komponenten im [[sRGB-Farbraum]] kodiert. Jegliche Alpha-Komponente bleibt unverändert. Die Umwandlung von der sRGB kodierten Komponente ''cs'' in eine lineare Komponente ''cl'' ist :&lt;br /&gt;
&lt;br /&gt;
[[Bild:Formel_sRGB.png]]&lt;br /&gt;
&lt;br /&gt;
Vorausgesetzt ''cs'' ist die sRGB-Komponente im Bereich [0,1].&lt;br /&gt;
       &lt;br /&gt;
Man kann als ''target'' '''GL_PROXY_TEXTURE_2D''' oder '''GL_PROXY_TEXTURE_CUBE_MAP''' nutzen um zu überprüfen, ob eine bestimmte Resolution und ein bestimmtes Format akzeptiert werden. Die Implementation wird ihre beste Anpassung für die geforderte Speicherauflösung und das Format aktualisieren und neu berechnen. Um dann den neu berechneten Zustand abzufragen ruft man [[glGetTexLevelParameter]]. Falls die Textur nicht gespeichert werden kann wird der Texturzustand auf 0 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Ein Einkomponenten-Texturbild benutzt nur die aus ''data'' extrahierte rote Komponente der RGBA-Farbe. Ein Zweikomponenten-Bild benutzt die R und A Werte. Ein Dreikomponenten-Bild benutzt die R, G und B Werte. Ein Vierkomponenten-Bild benutzt alle RGBA-Komponenten.&lt;br /&gt;
&lt;br /&gt;
Tiefentexturen können während der Texturfilterung und -anwendung als '''LUMINANCE, INTENSITY''' oder '''ALPHA'''-Texturen behandelt werden. [[Image-based shadowing]] kann aktiviert werden, indem die r-Koordinaten der Textur mit den Werten der Tiefentextur verglichen werden um ein Boolsches Ergebnis zu erhalten. Für mehr Details beim Texturvergleich siehe [[glTexParameter]].&lt;br /&gt;
&lt;br /&gt;
===Verwendungsmöglichkeit===&lt;br /&gt;
Abseits dem einfachen Laden von Texturen wird diese Funktion auch benutzt um Speicherbereiche für die spätere Verwendung zu reservieren. Ruft man glTexImage mit ''pixels'' = '''nil''' auf, wird der Speicherbereich zwar angelegt aber nicht gefüllt. Dies kann zum Beispiel gewünscht sein, wenn man einen Screenshot als Textur verwenden möchte (&amp;quot;Render To Texture&amp;quot;). Man kann dann den [[Framebuffer]] (=Screenshot) mittels [[glCopyTexImage]] in den durch glTexImage reservierten Speicherbereich kopieren. (Siehe dazu auch diesen [http://www.delphigl.com/forum/viewtopic.php?p=59156 Thread im Forum])&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Texturierung hat im Farbindexmodus keinen Effekt.&lt;br /&gt;
&lt;br /&gt;
Falls die [[GL_ARB_imaging|ARB_imaging]]-Erweiterung unterstützt wird, dürfen RGBA-Elemente auch in der [[Image-Pipeline]] verarbeitet werden.&lt;br /&gt;
Die folgenden Stufen dürfen an eine RGBA-Farbe angewendet werden, bevor die Farbkomponenten auf den Bereich [0;1] eingegrenzt werden:&lt;br /&gt;
&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
# Zweidimensionale [[Convolution | Convolution-Filterung]], falls aktiviert. Siehe [[glConvolutionFilter]].&amp;lt;br&amp;gt;Falls ein Convolution-Filter die Breite der Textur ändert (z.B. durch Abarbeitung mit einem '''GL_CONVOLUTION_BORDER_MODE''' von '''GL_REDUCE''') und OpenGL [[NPOT]]-Texturen nicht unterstützt, muss nach der Filterung die Breite ''2^n + 2*border'' für eine Integerzahl n und die Höhe muss ''2^m + 2*border'' für eine Integer-Zahl m sein.&lt;br /&gt;
# RGBA-Komponenten können mit '''GL_POST_CONVOLUTION_'''''c'''''_SCALE''' multipliziert und mit '''GL_POST_CONVOLUTION_'''''c'''''_BIAS''' addiert werden, falls aktiviert. Siehe [[glPixelTransfer]]&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_POST_CONVOLUTION_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
# Transformation durch die [[Farbmatrix]]. Siehe [[glMatrixMode]].&lt;br /&gt;
# RGBA-Komponenten können mit '''GL_POST_COLOR_MATRIX_'''''c'''''_SCALE''' multipliziert und mit '''GL_POST_COLOR_MATRIX_'''''c'''''_BIAS''' addiert werden, falls aktiviert. Siehe [[glPixelTransfer]].&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_POST_COLOR_MATRIX_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
                        &lt;br /&gt;
Das Texturbild kann in den selben Datenformaten vorliegen wie die Pixel bei [[glDrawPixels]] ausgenommen '''GL_STENCIL_INDEX''' und '''GL_DEPTH_COMPONENT'''. [[glPixelStore]] und [[glPixelTransfer]] beeinflussen das Texturbild in exakt der Art und Weise, wie sie auch [[glDrawPixels]] beeinflussen.&lt;br /&gt;
&lt;br /&gt;
Eine Textur, die 0 Pixel hoch oder breit ist, stellt die NULL-Textur dar. Wenn die NULL-Textur für die LOD-Stufe 0 spezifiziert wird, entspricht das Verhalten dem bei deaktivierter Texturierung.&lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
Folgende Erweiterungen hat die Funktion erfahren:&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.1 ===&lt;br /&gt;
'''glTexImage2D''' und '''GL_PROXY_TEXTURE_2D''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Andere interne Formate als 1, 2, 3 oder 4 dürfen benutzt werden.&lt;br /&gt;
&lt;br /&gt;
''data'' darf ein Null-Pointer sein. In diesem Fall wird Texturspeicher allokiert um eine Textur der Breite ''width'' und Höhe ''height'' aufzunehmen. Man kann dann Sub-Texturen laden um diesen Texturspeicher zu initialisieren. Das Bild ist undefiniert, falls der Nutzer versucht einen  nichtinitialisierten Teil des Texturbildes auf eine Primitive anzuwenden.     &lt;br /&gt;
    &lt;br /&gt;
=== Ab OpenGL Version 1.2 ===    &lt;br /&gt;
Die Formate '''GL_BGR''' und '''GL_BGRA''' und die Typen '''            GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.3 ===&lt;br /&gt;
'''glTexImage2D''' gibt die zweidimensionale Textur der aktuellen, mit [[glActiveTexture]] definierten Textur-Einheit an ( oder schon vorher, falls die [[ARB_multitexture]]-Erweiterung unterstützt wird ).&lt;br /&gt;
&lt;br /&gt;
'''GL_TEXTURE_CUBE_MAP''' und '''GL_PROXY_TEXTURE_CUBE_MAP''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.4 ===&lt;br /&gt;
'''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' und '''GL_DEPTH_COMPONENT32''' stehen zur Verfügung.&lt;br /&gt;
    &lt;br /&gt;
=== Ab OpenGL Version 2.0 ===  &lt;br /&gt;
[[NPOT]]-Texturen werden unterstützt ( oder schon vorher, falls die Implementation die [[GL_ARB_texture_non_power_of_two]]-Erweiterung unterstützt ).&lt;br /&gt;
        &lt;br /&gt;
=== Ab OpenGL Version 2.1 === &lt;br /&gt;
Die internen Formate '''GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, GL_SRGB8_ALPHA8, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA''' und '''GL_SLUMINANCE8_ALPHA8''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert wenn ''target'' nicht '''GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z''' oder '''GL_TEXTURE_CUBE_MAP_NEGATIVE_Z''' ist. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, falls ''target'' einer der sechs Cubemap ''target''-Parameter für '''glTexImage2D''' ist und ''width'' und ''height'' nicht gleich sind.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert wenn ''format'' ungültige Werte übergeben wurden. Akzeptiert werden alle Formatangaben außer '''GL_STENCIL_INDEX''' und '''GL_DEPTH_COMPONENT''' &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert wenn ''type'' keine gültige Typkonstante übergeben wurde. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert wenn '''GL_BITMAP''' als ''type'' und '''GL_COLOR_INDEX''' nicht(!) als ''format'' angegeben wurde. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert wenn ''level'' kleiner 0 oder größer ''ld(max)'' ist, wobei ''max'' der Rückgabewert von '''GL_MAX_TEXTURE_SIZE''' ist. (ld = Logarithmus Dualis = Basis 2). &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert wenn für ''internalformat'' etwas anderes als ''1'', ''2'', ''3'', ''4'' oder eine der akzeptieren Resolutions- und symbolischen Formatkonstanten angegeben wurde. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert wenn ''width'' bzw. ''height'' kleiner als 0 oder größer als 2 + '''GL_MAX_TEXTURE_SIZE''' ist, oder die Bedingung  ''2^k + 2 * border'' (k=Integerwerte) nicht erfüllt. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wenn ''border'' nicht ''0'' oder ''1'' ist. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''type'' eine der Konstanten '''GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5''' oder '''GL_UNSIGNED_SHORT_5_6_5_REV''' ist und ''format'' nicht '''GL_RGB'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''type'' eine der Konstanten '''GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' oder '''GL_UNSIGNED_INT_2_10_10_10_REV''' und ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''target'' nicht '''GL_TEXTURE_2D''' oder '''GL_PROXY_TEXTURE_2D''' und ''internalFormat'' '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''format'' '''GL_DEPTH_COMPONENT'''' und ''internalFormat'' nicht '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''internalFormat'' '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' und ''format'' nicht '''GL_DEPTH_COMPONENT''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und der Datenspeicher des Pufferobjektes währenddessen gemappt wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und die Daten derart vom Pufferobjekt entpackt werden, dass der gelesene Speicher die Grösse des Speichers der Daten überschreitet.&lt;br /&gt;
       &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und ''data'' nicht gleichartig auf die Anzahl der Bytes aufgeteilt werden kann, um im Speicher ein Datum abzuspeichern welches durch ''type'' angegeben wurde.&lt;br /&gt;
 &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert wenn eine '''glTexImage'''-Funktion in einem [[glBegin]]- und [[glEnd]]-Block aufgerufen wird. &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetTexImage]] &amp;lt;br&amp;gt;&lt;br /&gt;
[[glIsEnabled]] mit dem Token '''GL_TEXTURE_2D''' oder '''GL_TEXTURE_CUBE_MAP'''.&amp;lt;br&amp;gt;&lt;br /&gt;
[[glGet]] mit Argument '''GL_PIXEL_UNPACK_BUFFER_BINDING'''&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
http://www.opengl.org/sdk/docs/man/xhtml/glTexImage2D.xml&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glActiveTexture]], [[glColorTable]], [[glConvolutionFilter2D]], [[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glCopyTexSubImage3D]], [[glDrawPixels]], [[glMatrixMode]], [[glPixelStore]], [[glPixelTransfer]], [[glSeparableFilter2D]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage3D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]] &lt;br /&gt;
&lt;br /&gt;
*[[getObject]] (Pixeldaten eines TBitmap bekommen)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|TexImage2D]]&lt;br /&gt;
 [[Kategorie:GL1.0]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glTexImage3D&amp;diff=25283</id>
		<title>glTexImage3D</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glTexImage3D&amp;diff=25283"/>
				<updated>2011-07-20T07:29:22Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Hinweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glTexImage3D =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glTexImage3D''' - Spezifiziert ein dreidimensionales Texturbild.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spezifikation ==&lt;br /&gt;
 procedure '''glTexImage3D'''(''target'': TGLenum; ''level'': TGLint; ''internalformat'': TGLint; ''width'': TGLsizei; &lt;br /&gt;
                        ''height'': TGLsizei; ''depth'': TGLsizei; ''border'': TGLint; ''format'': TGLenum; &lt;br /&gt;
                        ''_type'': TGLenum; '''const''' ''pixels'': PGLvoid); &amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&amp;lt;table border=1 rules=all&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''target''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt den Typ der Textur an. '''GL_TEXTURE_3D''' oder '''GL_PROXY_TEXTURE_3D'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''level''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt den Detailgrad für das gewünschte Bild an. &amp;lt;br&amp;gt;&lt;br /&gt;
''level'' '''0''' ist das Basisbild. Level n ist die n-te Mipmap-Reduzierung des Bildes.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''internalformat''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;'''1''' für '''R''' &amp;lt;br&amp;gt; '''2''' für '''R''' und '''A''' &amp;lt;br&amp;gt; '''3''' für '''RGB''' &amp;lt;br&amp;gt; '''4''' für '''RGBA'''&amp;lt;br&amp;gt;&lt;br /&gt;
oder eine der folgenden symbolischen Konstanten :&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_ALPHA,     GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA''' oder '''GL_SRGB8_ALPHA8'''.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''width''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Breite = Anzahl der Pixel pro Zeile &amp;lt;br&amp;gt; muss als Wert ''2^n + 2 * border'' für n Integerwerte haben. Alle Implementationen unterstützen 3D-Texturbilder, die mindestens 16 Texel breit sind.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''height''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Höhe = Anzahl der Zeilen &amp;lt;br&amp;gt; muss als Wert ''2^n + 2 * border'' für n Integerwerte haben. Alle Implementationen unterstützen 3D-Texturbilder, die mindestens 16 Texel hoch sind.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''depth''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Tiefe = Anzahl der &amp;quot;Scheiben&amp;quot; &amp;lt;br&amp;gt; muss als Wert ''2^n + 2 * border'' für n Integerwerte haben. Alle Implementationen unterstützen 3D-Texturbilder, die mindestens 16 Texel tief sind.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''border''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Breite des Rahmens || '''0''' oder '''1'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''format''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Bestimmt das Format der Pixeldaten.&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende symbolische Werte werden akzeptiert: &amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE,''' und '''GL_LUMINANCE_ALPHA'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''_type''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Bestimmt den Pixeltyp für den Inhalt von ''pixels''.&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende Typen werden unterstützt:&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV.'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''pixels''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Die Texture-Image Daten vom Typ, der in ''format'' angegeben wurde (Array, in dem die Pixel gespeichert sind) &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Texturierung bildet einen bestimmten Teil eines Texturbildes auf alle [[Primitive|Grafikprimitiven]] ab für die Texturierung aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
Eine 3D-Textur besitzt gegenüber einer &amp;quot;normalen&amp;quot; 2D Textur eine zusätzliche Dimension. Anstatt als &amp;quot;Überzug&amp;quot; über ein Objekt, kann man mit 3D Texturen den Eindruck erzeugen, das Objekt wäre aus der Textur herausgeschnitten worden - als würde das Objekt aus dem Material bestehen, welches die 3D Textur abbildet. Diese Wirkung wird dadurch erreicht, dass selbst bei komplexesten Formen eine 3D Textur verzerrungsfrei auf das Objekt übertragen werden kann.&lt;br /&gt;
&lt;br /&gt;
Um eine 3D-Textur zu aktivieren ruft man [[glEnable]] mit dem Parameter '''GL_TEXTURE_3D''' auf. Die Deaktivierung erfolgt entsprechend mittels [[glDisable]].&lt;br /&gt;
&lt;br /&gt;
Das Texturbild wird durch die Funktion '''glTexImage3D''' definiert. Die Argumente der Funktion beschreiben die Eigenschaften des Texturbildes wie z.B. Breite, Höhe, Tiefe, Breite des Randes, [[LOD]]-Nummer (siehe [[glTexParameter]]) und Anzahl der unterstützen Farbkomponenten. Die letzten 3 Argumente beschreiben wie das Bild im Speicher abgelegt wird. Die 3 Argumente sind identisch mit denen, die das Pixelformat bei [[glDrawPixels]] steuern.&lt;br /&gt;
&lt;br /&gt;
Falls ''target'' '''GL_PROXY_TEXTURE_3D''' ist, werden keine Daten von ''data'' gelesen, sondern der Zustand des Texturbildes neu berechnet, auf Konsistenz überprüft und gegen die Fähigkeiten der Implementation geprüft. Falls die Implementation mit einer Textur der angeforderten Grösse nicht klarkommt, setzt sie jeden Bildzustand auf 0, generiert jedoch keinen Fehler ( siehe [[glGetError]] ). Um ein vollständiges Mipmap-Array abzufragen, sollte man ''level'' grösser oder gleich 1 wählen.&lt;br /&gt;
&lt;br /&gt;
Falls ''target'' '''GL_TEXTURE_3D''' ist, werden die Daten aus ''pixels'' als Sequenz von vorzeichenlosen oder -behafteten Byte-, Shortint- oder Longint-Werten oder als Fließkommazahlen einfacher Genauigkeit gelesen. Der Typ wird über ''type'' festgelegt. &amp;lt;br&amp;gt;&lt;br /&gt;
Die ausgelesen Werte werden abhängig von ''format'' gruppiert zu Gruppen mit je einem, zwei, drei oder vier Werten. Diese Gruppen entsprechen einem Element. &lt;br /&gt;
&lt;br /&gt;
Wenn ''type'' gleich '''GL_BITMAP''' ist, werden die Daten als Folge (orig.: &amp;quot;String&amp;quot;) von vorzeichenlosen Bytewerten angesehen (wobei ''format'' '''GL_COLOR_INDEX''' sein muss). Jedes Byte des Datenblocks wird als Gruppe von 8 1-Bit Elementen interpretiert. Die Reihenfolge der Bits wird durch '''GL_UNPACK_LSB_FIRST''' (siehe [[glPixelStore]]) festgelegt.&lt;br /&gt;
&lt;br /&gt;
Falls ein nichtnull benamtes [[VBO | Pufferobjekt]] an das '''GL_PIXEL_UNPACK_BUFFER '''-target gebunden ist ( siehe [[glBindBuffer]] ) während ein Texturbild definiert wird, wird ''data'' als Byte-Offset im Datenspeicher des Pufferobjektes behandelt.&lt;br /&gt;
                    &lt;br /&gt;
Das erste Element entspricht der unteren linken Ecke des Texturbildes. Nachfolgende Elemente laufen von links nach rechts durch die verbleibenden Texel in der untersten Zeile und dann in nachfolgenden höheren Zeilen. Das letzte Element entspricht der oberen rechten Ecke.&lt;br /&gt;
&lt;br /&gt;
Der ''format'' Parameter bestimmt die Zusammenstellung der Elemente aus ''pixels''. Folgende 12 möglichen Werte kann ''format'' haben:&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_INDEX'''&lt;br /&gt;
:Jedes Element entspricht einem einzelnen Wert, dem Farbindex. Jeder Index wird in eine Festkommazahl (mit einer unbestimmten Anzahl 0 Bits rechts vom Komma) konvertiert, abhängig von Wert und Vorzeichen von '''GL_INDEX_SHIFT''' bitweise nach rechts bzw. links verschoben und zu '''GL_INDEX_OFFSET''' addiert ( siehe [[glPixelTransfer]] ). Dann werden die Indizes durch ihre entsprechenden Werte aus den Tabellen '''GL_PIXEL_MAP_I_TO_R''', '''GL_PIXEL_MAP_I_TO_G''', '''GL_PIXEL_MAP_I_TO_B''' und '''GL_PIXEL_MAP_I_TO_A''' ersetzt und auf das Interval [0, 1] heruntergerechnet.&lt;br /&gt;
&lt;br /&gt;
'''GL_RED'''&lt;br /&gt;
:Jedes Element entspricht einer roten Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_GREEN'''&lt;br /&gt;
:Jedes Element entspricht einer grünen Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_BLUE'''&lt;br /&gt;
:Jedes Element entspricht einer blauen Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_ALPHA'''&lt;br /&gt;
:Jedes Element entspricht einer Alpha-Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die drei anderen Farben hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_INTENSITY'''&lt;br /&gt;
:Jedes Element entspricht einem einzelnem Intesivitäts-Wert. OpenGL wandelt dieses in eine Fließkommazahl um und setzt es zu einem RGBA-Element zusammen, indem der Intensitätswert drei Mal für Rot, Grün, Blau und Alpha kopiert wird. Jede Komponente wird dann mit dem vorzeichenbehafteten Skalierungsfaktor '''GL_'''''c'''''_SCALE''' multipliziert, zu dem vorzeichenbehafteten Bias '''GL_'''''c'''''_BIAS''' addiert und auf den Bereich [0,1] begrenzt ( siehe [[glPixelTransfer]] ).&lt;br /&gt;
&lt;br /&gt;
'''GL_RGB'''&lt;br /&gt;
'''GL_BGR'''&lt;br /&gt;
:Jedes Element entspricht den drei RGB-Farbwerten. Die Werte werden in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_RGBA'''&lt;br /&gt;
'''GL_BGRA'''&lt;br /&gt;
:Jedes Element enthält alle vier Farbkomponenten. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE'''&lt;br /&gt;
:Jedes Element entspricht einem Helligkeitswert. Der Wert wird in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man den Helligkeitswert drei mal für R, G und B einsetzt und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE_ALPHA'''&lt;br /&gt;
:Jedes Element entspricht einem Paar aus Helligkeitswert und Alphawert. Beide Werte werden in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man den Helligkeitswert drei mal für R, G und B einsetzt und den Alphawert hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
Lesen Sie den Artikel [[glDrawPixels]] um eine Beschreibung der zulässigen Werte für ''type'' zu erhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn eine Anwendung die Textur in einer bestimmten Auflösung oder in einem bestimmten Format speichern möchte, kann sie die Auflösung und das Format mit ''internalFormat'' abfragen. OpenGL wird eine interne Repräsentation wählen die das gewünschte ''internalFormat'' approximiert, aber das Format muß nicht exakt übereinstimmen. ( Die Repräsentationen spezifiziert durch '''GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB''' und '''GL_RGBA''' müssen exakt übereinstimmen ). Die numerischen Werte 1, 2, 3 und 4 dürfen ebenfalls benutzt werden um die obrigen Repräsentationen zu spezifizieren.&lt;br /&gt;
&lt;br /&gt;
Wenn der Parameter ''internalFormat'' eins der generischen gepackten Formate '''GL_COMPRESSED_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_RGB''' oder '''GL_COMPRESSED_RGBA''' ist, wird OpenGL das interne Format mit der symbolischen Konstante für ein spezifisches internes Format ersetzen und die Textur vor der Speicherung komprimieren. Falls kein entsprechendes internes Format zur Verfügung steht oder OpenGL das Bild aus irgendeinem Grund nicht komprimieren kann, wird das interne Format stattdessen durch ein entsprechendes internes Basisformat ersetzt.&lt;br /&gt;
&lt;br /&gt;
Falls der Parameter ''internalFormat'' '''GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, GL_SRGB8_ALPHA8, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA''' oder '''GL_SLUMINANCE8_ALPHA8''' ist, wird die Textur behandelt als wäre die roten, grünen, blauen oder Luminance-Komponenten im [[sRGB-Farbraum]] kodiert. Jegliche Alpha-Komponente bleibt unverändert. Die Umwandlung von der sRGB kodierten Komponente ''cs'' in eine lineare Komponente ''cl'' ist :&lt;br /&gt;
&lt;br /&gt;
[[Bild:Formel_sRGB.png]]&lt;br /&gt;
&lt;br /&gt;
Vorausgesetzt ''cs'' ist die sRGB-Komponente im Bereich [0,1].&lt;br /&gt;
       &lt;br /&gt;
Man kann als ''target'' '''GL_PROXY_TEXTURE_3D''' nutzen um zu überprüfen, ob eine bestimmte Resolution und ein bestimmtes Format akzeptiert werden. Die Implementation wird ihre beste Anpassung für die geforderte Speicherauflösung und das Format aktualisieren und neu berechnen. Um dann den neu berechneten Zustand abzufragen ruft man [[glGetTexLevelParameter]]. Falls die Textur nicht gespeichert werden kann wird der Texturzustand auf 0 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Ein Einkomponenten-Texturbild benutzt nur die aus ''data'' extrahierte rote Komponente der RGBA-Farbe. Ein Zweikomponenten-Bild benutzt die R und A Werte. Ein Dreikomponenten-Bild benutzt die R, G und B Werte. Ein Vierkomponenten-Bild benutzt alle RGBA-Komponenten.&lt;br /&gt;
&lt;br /&gt;
Tiefentexturen können während der Texturfilterung und -anwendung als '''LUMINANCE, INTENSITY''' oder '''ALPHA'''-Texturen behandelt werden. [[Image-based shadowing]] kann aktiviert werden, indem die r-Koordinaten der Textur mit den Werten der Tiefentextur verglichen werden um ein Boolsches Ergebnis zu erhalten. Für mehr Details beim Texturvergleich siehe [[glTexParameter]].&lt;br /&gt;
&lt;br /&gt;
===Verwendungsmöglichkeit===&lt;br /&gt;
Abseits dem einfachen Laden von Texturen wird diese Funktion auch benutzt um Speicherbereiche für die spätere Verwendung zu reservieren. Ruft man glTexImage mit ''pixels'' = '''nil''' auf, wird der Speicherbereich zwar angelegt aber nicht gefüllt. Dies kann zum Beispiel gewünscht sein, wenn man einen Screenshot als Textur verwenden möchte (&amp;quot;Render To Texture&amp;quot;). Man kann dann den [[Framebuffer]] (=Screenshot) mittels [[glCopyTexImage]] in den durch glTexImage reservierten Speicherbereich kopieren. (Siehe dazu auch diesen [http://www.delphigl.com/forum/viewtopic.php?p=59156 Thread im Forum])&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
'''glTexImage3D''' war bis zu OpenGL 1.2 nur eine Erweiterung. Deswegen ist bei manchen Chipsätzen die Funktion nur als '''glTexImage3DEXT''' verfügbar.&lt;br /&gt;
&lt;br /&gt;
Texturierung hat im Farbindexmodus keinen Effekt.&lt;br /&gt;
&lt;br /&gt;
Falls die [[GL_ARB_imaging|ARB_imaging]]-Erweiterung unterstützt wird, dürfen RGBA-Elemente auch in der [[Image-Pipeline]] verarbeitet werden.&lt;br /&gt;
Die folgenden Stufen dürfen an eine RGBA-Farbe angewendet werden, bevor die Farbkomponenten auf den Bereich [0,1] eingegrenzt werden:&lt;br /&gt;
&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_POST_CONVOLUTION_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
# Transformation durch die [[Farbmatrix]]. Siehe [[glMatrixMode]].&lt;br /&gt;
# RGBA-Komponenten können mit '''GL_POST_COLOR_MATRIX_'''''c'''''_SCALE''' multipliziert und mit '''GL_POST_COLOR_MATRIX_'''''c'''''_BIAS''' addiert werden, falls aktiviert. Siehe [[glPixelTransfer]].&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_POST_COLOR_MATRIX_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
                        &lt;br /&gt;
Das Texturbild kann in den selben Datenformaten vorliegen wie die Pixel bei [[glDrawPixels]] ausgenommen '''GL_STENCIL_INDEX''' und '''GL_DEPTH_COMPONENT'''. [[glPixelStore]] und [[glPixelTransfer]] beeinflussen das Texturbild in exakt der Art und Weise, wie sie auch [[glDrawPixels]] beeinflussen.&lt;br /&gt;
&lt;br /&gt;
Eine Textur die 0 Pixel breit, hoch oder tief ist, stellt die NULL-Textur dar. Wenn die NULL-Textur für die LOD-Stufe 0 spezifiziert wird, entspricht das Verhalten dem bei deaktivierter Texturierung.&lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
Folgende Erweiterungen hat die Funktion erfahren:&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.1 ===&lt;br /&gt;
Andere interne Formate als 1, 2, 3 oder 4 dürfen benutzt werden.&lt;br /&gt;
&lt;br /&gt;
''data'' darf ein Null-Pointer sein. In diesem Fall wird Texturspeicher allokiert um eine Textur der Breite ''width'', der Höhe ''height'' und der Tiefe ''depth'' aufzunehmen. Man kann dann Sub-Texturen laden um diesen Texturspeicher zu initialisieren. Das Bild ist undefiniert, falls der Nutzer versucht einen  nichtinitialisierten Teil des Texturbildes auf eine Primitive anzuwenden.     &lt;br /&gt;
    &lt;br /&gt;
=== Ab OpenGL Version 1.2 ===    &lt;br /&gt;
Die Formate '''GL_BGR''' und '''GL_BGRA''' und die Typen '''            GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.3 ===&lt;br /&gt;
'''glTexImage3D''' gibt die dreidimensionale Textur der aktuellen, mit [[glActiveTexture]] definierten Textur-Einheit an ( oder schon vorher, falls die [[ARB_multitexture]]-Erweiterung unterstützt wird ).&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 2.0 ===  &lt;br /&gt;
[[NPOT]]-Texturen werden unterstützt (oder schon vorher, falls die Implementation die [[GL_ARB_texture_non_power_of_two]]-Erweiterung unterstützt wird).&lt;br /&gt;
        &lt;br /&gt;
=== Ab OpenGL Version 2.1 === &lt;br /&gt;
Die internen Formate '''GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, GL_SRGB8_ALPHA8, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA''' und '''GL_SLUMINANCE8_ALPHA8''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht '''GL_TEXTURE_3D''' oder '''GL_PROXY_TEXTURE_3D''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' ungültige Werte übergeben wurden. Akzeptiert werden alle Formatangaben außer '''GL_STENCIL_INDEX''' und '''GL_DEPTH_COMPONENT'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' keine gültige Typkonstante übergeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn GL_BITMAP als ''type'' und '''GL_COLOR_INDEX''' nicht(!) als ''format'' angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''level'' kleiner 0 oder größer ''ld(max)'' ist, wobei ''max'' der Rückgabewert von '''GL_MAX_TEXTURE_SIZE''' ist (ld = Logarithmus Dualis = Basis 2).&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn für ''internalformat'' etwas anderes als ''1'', ''2'', ''3'', ''4'' oder eine der akzeptieren Resolutions- und symbolischen Formatkonstanten angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'', ''height'' bzw. ''depth'' kleiner als 0 oder größer als 2 + '''GL_MAX_TEXTURE_SIZE''' ist, oder die Bedingung  ''2^k + 2 * border'' (k=Integerwerte) nicht erfüllt.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''border'' nicht ''0'' oder ''1'' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''type'' eine der Konstanten '''GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5''' oder '''GL_UNSIGNED_SHORT_5_6_5_REV''' ist und ''format'' nicht '''GL_RGB'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''type'' eine der Konstanten '''GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' oder '''GL_UNSIGNED_INT_2_10_10_10_REV''' und ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''format'' oder ''internalFormat'' '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und der Datenspeicher des Pufferobjektes währenddessen gemappt wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und die Daten derart vom Pufferobjekt entpackt werden, dass der gelesene Speicher die Grösse des Speichers der Daten überschreitet.&lt;br /&gt;
       &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und ''data'' nicht gleichartig auf die Anzahl der Bytes aufgeteilt werden kann, um im Speicher ein Datum abzuspeichern welches durch ''type'' angegeben wurde.&lt;br /&gt;
 &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert wenn die '''glTexImage3D'''-Funktion in einem [[glBegin]]- und [[glEnd]]-Block aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetTexImage]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]] mit dem Token '''GL_TEXTURE_3D'''&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Argument [[glGet#GL_PIXEL_UNPACK_BUFFER_BINDING|GL_PIXEL_UNPACK_BUFFER_BINDING]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
http://www.opengl.org/sdk/docs/man/xhtml/glTexImage3D.xml&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glActiveTexture]], [[glColorTable]], [[glCompressedTexImage1D]],&lt;br /&gt;
[[glCompressedTexImage2D]], [[glCompressedTexImage3D]], [[glCompressedTexSubImage1D]],&lt;br /&gt;
[[glCompressedTexSubImage2D]], [[glCompressedTexSubImage3D]],  [[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage2D]], [[glCopyTexSubImage1D]], [[glCopyTexSubImage2D]], [[glCopyTexSubImage3D]], [[glDrawPixels]], [[glGetCompressedTexImage]], [[glMatrixMode]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage1D]], [[glTexImage2D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|TexImage3D]]&lt;br /&gt;
 [[Kategorie:GL1.2|TexImage3D]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glTexImage1D&amp;diff=25282</id>
		<title>glTexImage1D</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glTexImage1D&amp;diff=25282"/>
				<updated>2011-07-20T07:26:58Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Hinweise */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glTexImage1D =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glTexImage1D''' - Spezifiziert ein eindimensionales Texturbild.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Spezifikation ==&lt;br /&gt;
 procedure '''glTexImage1D'''(''target'': TGLenum; ''level'': TGLint; ''internalformat'': TGLint; ''width'': TGLsizei; &lt;br /&gt;
                        ''border'': TGLint; ''format'': TGLenum; ''_type'': TGLenum; '''const''' ''pixels'': PGLvoid);&lt;br /&gt;
 &lt;br /&gt;
== Parameter ==&lt;br /&gt;
&amp;lt;table border=1 rules=all&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''target''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt den Typ der Textur an.  &lt;br /&gt;
 &lt;br /&gt;
'''GL_TEXTURE_1D''' oder '''GL_PROXY_TEXTURE_1D'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''level''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt den Detailgrad für das gewünschte Bild an. &amp;lt;br&amp;gt;&lt;br /&gt;
''level'' '''0''' ist das Basisbild. Level n ist die n-te [[Mipmap]]-Reduzierung des Bildes.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''internalformat''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;'''1''' für '''R''' &amp;lt;br&amp;gt; '''2''' für '''R''' und '''A''' &amp;lt;br&amp;gt; '''3''' für '''RGB''' &amp;lt;br&amp;gt; '''4''' für '''RGBA''' &amp;lt;br&amp;gt;&lt;br /&gt;
oder eine der folgenden symbolischen Konstanten :&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA''' oder '''GL_SRGB8_ALPHA8'''.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''width''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Gibt die Breite des Texturbildes an. Diese beinhaltet die Rahmenbreite ''border'', falls mit angegeben. Falls die GL-Version keine [[NPOT]]-Größe unterstützt, muß dieser Wert ''2^n + 2 * border'' für eine Integerzahl n sein. Alle Implementationen unterstützen Texturbilder die mindestens 64 Texel breit sind. Die Höhe eines 1D-Texturbildes ist 1.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''border''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Breite des Rahmens || '''0''' oder '''1'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''format''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Bestimmt das Format der Pixeldaten.&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende symbolische Werte werden akzeptiert: &amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_COLOR_INDEX, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE''' und '''GL_LUMINANCE_ALPHA'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''_type''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Bestimmt den Pixeltyp für den Inhalt von ''pixels''.&amp;lt;br&amp;gt;&lt;br /&gt;
Folgende Typen werden unterstützt:&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV.'''&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;''pixels''&amp;lt;/td&amp;gt;&lt;br /&gt;
 &amp;lt;td&amp;gt;Die Textur-Image Daten vom Typ, der in ''format'' angegeben wurde (Array, in dem die Pixel gespeichert sind) &amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Texturierung bildet einen bestimmten Teil eines Texturbildes auf alle [[Primitive|Grafikprimitiven]] ab, für die Texturierung aktiviert ist.&lt;br /&gt;
&lt;br /&gt;
Zur Aktivierung einer eindimensionalen Textur ruft man [[glEnable]] mit dem Parameter '''GL_TEXTURE_1D''' auf. Die Deaktivierung erfolgt entsprechend mittels [[glDisable]].&lt;br /&gt;
&lt;br /&gt;
Das Texturbild wird durch die Funktion '''glTexImage1D''' definiert. Die Argumente der Funktion beschreiben die Eigenschaften des Texturbildes wie z.B. Breite, Breite des Randes, [[LOD]]-Nummer (siehe [[glTexParameter]]) und Anzahl der unterstützten Farbkomponenten. Die letzten 3 Argumente beschreiben wie das Bild im Speicher abgelegt wird. Die 3 Argumente sind identisch mit denen, die das Pixelformat bei [[glDrawPixels]] steuern.&lt;br /&gt;
&lt;br /&gt;
Falls ''target'' '''GL_PROXY_TEXTURE_1D''' ist, werden keine Daten von ''data'' gelesen, sondern der Zustand des Texturbildes neu berechnet, auf Konsistenz überprüft und gegen die Fähigkeiten der Implementation geprüft. Falls die Implementation mit einer Textur der angeforderten Grösse nicht klarkommt, setzt sie jeden Bildzustand auf 0, generiert jedoch keinen Fehler ( siehe [[glGetError]] ). Um ein vollständiges Mipmap-Array abzufragen, sollte man ''level'' grösser oder gleich 1 wählen.&lt;br /&gt;
&lt;br /&gt;
Falls ''target'' '''GL_TEXTURE_1D''' ist, werden die Daten aus ''pixels'' als Sequenz von vorzeichenlosen oder -behafteten Byte-, Shortint- oder Longint-Werten oder als Fließkommazahlen einfacher Genauigkeit gelesen. Der Typ wird über ''type'' festgelegt. &amp;lt;br&amp;gt;&lt;br /&gt;
Die ausgelesen Werte werden abhängig von ''format'' gruppiert zu Gruppen mit je einem, zwei, drei oder vier Werten. Diese Gruppen entsprechen einem Element. &lt;br /&gt;
&lt;br /&gt;
Wenn ''type'' gleich '''GL_BITMAP''' ist, werden die Daten als Folge (orig.: &amp;quot;String&amp;quot;) von vorzeichenlosen Bytewerten angesehen (wobei ''format'' '''GL_COLOR_INDEX''' sein muss). Jedes Byte des Datenblocks wird als Gruppe von 8 1-Bit Elementen interpretiert. Die Reihenfolge der Bits wird durch '''GL_UNPACK_LSB_FIRST''' (siehe [[glPixelStore]]) festgelegt.&lt;br /&gt;
&lt;br /&gt;
Falls ein nichtnull benamtes [[VBO | Pufferobjekt]] an das '''GL_PIXEL_UNPACK_BUFFER '''-target gebunden ist ( siehe [[glBindBuffer]] ) während ein Texturbild definiert wird, wird ''data'' als Byte-Offset im Datenspeicher des Pufferobjektes behandelt.&lt;br /&gt;
                    &lt;br /&gt;
Das erste Element entspricht dem linken Ende des Texturfeldes. Nachfolgende Elemente gehen von links nach rechts durch die verbleibenden Texel im Texturfeld. Das letzte Element entspricht dem rechten Ende des Texturfeldes.&lt;br /&gt;
&lt;br /&gt;
Der ''format'' Parameter bestimmt die Zusammenstellung der Elemente aus ''pixels''. Folgende 13 möglichen Werte kann ''format'' haben:&lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR_INDEX'''&lt;br /&gt;
:Jedes Element entspricht einem einzelnen Wert, dem Farbindex. Jeder Index wird in eine Festkommazahl (mit einer unbestimmten Anzahl 0 Bits rechts vom Komma) konvertiert, abhängig von Wert und Vorzeichen von '''GL_INDEX_SHIFT''' bitweise nach rechts bzw. links verschoben und zu '''GL_INDEX_OFFSET''' addiert ( siehe [[glPixelTransfer]] ). Dann werden die Indizes durch ihre entsprechenden Werte aus den Tabellen '''GL_PIXEL_MAP_I_TO_R''', '''GL_PIXEL_MAP_I_TO_G''', '''GL_PIXEL_MAP_I_TO_B''' und '''GL_PIXEL_MAP_I_TO_A''' ersetzt und auf das Interval [0, 1] heruntergerechnet.&lt;br /&gt;
&lt;br /&gt;
'''GL_RED'''&lt;br /&gt;
:Jedes Element entspricht einer roten Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_GREEN'''&lt;br /&gt;
:Jedes Element entspricht einer grünen Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_BLUE'''&lt;br /&gt;
:Jedes Element entspricht einer blauen Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die beiden anderen Farben und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_ALPHA'''&lt;br /&gt;
:Jedes Element entspricht einer Alpha-Farbkomponente. Der Wert wird in eine Fließkommazahl konvertiert und zu einem RGBA Wert ergänzt, indem man 0.0 für die drei anderen Farben hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_INTENSITY'''&lt;br /&gt;
:Jedes Element entspricht einem einzelnem Intesivitäts-Wert. OpenGL wandelt dieses in eine Fließkommazahl um und setzt es zu einem RGBA-Element zusammen, indem der Intensitätswert drei Mal für Rot, Grün, Blau und Alpha kopiert wird. Jede Komponente wird dann mit dem vorzeichenbehafteten Skalierungsfaktor '''GL_'''''c'''''_SCALE''' multipliziert, zu dem vorzeichenbehafteten Bias '''GL_'''''c'''''_BIAS''' addiert und auf den Bereich [0,1] begrenzt ( siehe [[glPixelTransfer]] ).&lt;br /&gt;
&lt;br /&gt;
'''GL_RGB'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_BGR'''&lt;br /&gt;
:Jedes Element entspricht den drei RGB-Farbwerten. Die Werte werden in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_RGBA'''&amp;lt;br&amp;gt;&lt;br /&gt;
'''GL_BGRA'''&lt;br /&gt;
:Jedes Element enthält alle vier Farbkomponenten. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE'''&lt;br /&gt;
:Jedes Element entspricht einem Helligkeitswert. Der Wert wird in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man den Helligkeitswert drei mal für R, G und B einsetzt und 1.0 für den Alphakanal hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_LUMINANCE_ALPHA'''&lt;br /&gt;
:Jedes Element entspricht einem Paar aus Helligkeitswert und Alphawert. Beide Werte werden in Fließkommazahlen konvertiert und zu einem RGBA Wert ergänzt, indem man den Helligkeitswert drei mal für R, G und B einsetzt und den Alphawert hinzufügt. Jede Komponente wird mit '''GL_'''''c'''''_SCALE''' multipliziert und zu '''GL_'''''c'''''_BIAS''' addiert, und am Schluss auf den Bereich [0,1] begrenzt, wobei ''c'' durch R, G, B oder A ersetzt werden soll. (siehe [[glPixelTransfer]])&lt;br /&gt;
&lt;br /&gt;
'''GL_DEPTH_COMPONENT'''&lt;br /&gt;
:Jedes Element ist ein einzelner Tiefenwert. OpenGL wandelt diesen in eine Fließkommazahl um, multipliziert diese mit dem vorzeichenbehafteten Skalierungsfaktor '''GL_DEPTH_SCALE''', addiert den vorzeichenbehafteten Bias '''GL_DEPTH_BIAS''' und begrenzt auf den Bereich [0,1] ( siehe [[glPixelTransfer]] ).&lt;br /&gt;
&lt;br /&gt;
Lesen Sie den Artikel [[glDrawPixels]] um eine Beschreibung der zulässigen Werte für ''type'' zu erhalten.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Wenn eine Anwendung die Textur in einer bestimmten Auflösung oder in einem bestimmten Format speichern möchte, kann sie die Auflösung und das Format mit ''internalFormat'' abfragen. OpenGL wird eine interne Repräsentation wählen die das gewünschte ''internalFormat'' approximiert, aber das Format muß nicht exakt übereinstimmen. ( Die Repräsentationen spezifiziert durch '''GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB''' und '''GL_RGBA''' müssen exakt übereinstimmen ). Die numerischen Werte 1, 2, 3 und 4 dürfen ebenfalls benutzt werden um die obrigen Repräsentationen zu spezifizieren.&lt;br /&gt;
&lt;br /&gt;
Wenn der Parameter ''internalFormat'' eins der generischen gepackten Formate '''GL_COMPRESSED_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_RGB''' oder '''GL_COMPRESSED_RGBA''' ist, wird OpenGL das interne Format mit der symbolischen Konstante für ein spezifisches internes Format ersetzen und die Textur vor der Speicherung komprimieren. Falls kein entsprechendes internes Format zur Verfügung steht oder OpenGL das Bild aus irgendeinem Grund nicht komprimieren kann, wird das interne Format stattdessen durch ein entsprechendes internes Basisformat ersetzt.&lt;br /&gt;
&lt;br /&gt;
Falls der Parameter ''internalFormat'' '''GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, GL_SRGB8_ALPHA8, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA''' oder '''GL_SLUMINANCE8_ALPHA8''' ist, wird die Textur behandelt als wären die roten, grünen, blauen oder Luminance-Komponenten im [[sRGB-Farbraum]] kodiert. Jegliche Alpha-Komponente bleibt unverändert. Die Umwandlung von der sRGB kodierten Komponente ''cs'' in eine lineare Komponente ''cl'' ist :&lt;br /&gt;
&lt;br /&gt;
[[Bild:Formel_sRGB.png]]&lt;br /&gt;
&lt;br /&gt;
Vorausgesetzt ''cs'' ist die sRGB-Komponente im Bereich [0,1].&lt;br /&gt;
       &lt;br /&gt;
Man kann als ''target'' '''GL_PROXY_TEXTURE_1D''' nutzen um zu überprüfen, ob eine bestimmte Resolution und ein bestimmtes Format akzeptiert werden. Die Implementation wird ihre beste Anpassung für die geforderte Speicherauflösung und das Format aktualisieren und neu berechnen. Um dann den neu berechneten Zustand abzufragen ruft man [[glGetTexLevelParameter]]. Falls die Textur nicht gespeichert werden kann wird der Texturzustand auf 0 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Ein Einkomponenten-Texturbild benutzt nur die aus ''data'' extrahierte rote Komponente der RGBA-Farbe. Ein Zweikomponenten-Bild benutzt die R und A Werte. Ein Dreikomponenten-Bild benutzt die R, G und B Werte. Ein Vierkomponenten-Bild benutzt alle RGBA-Komponenten.&lt;br /&gt;
&lt;br /&gt;
Tiefentexturen können während der Texturfilterung und -anwendung als '''LUMINANCE, INTENSITY''' oder '''ALPHA'''-Texturen behandelt werden. [[Image-based shadowing]] kann aktiviert werden, indem die r-Koordinaten der Textur mit den Werten der Tiefentextur verglichen werden um ein Boolsches Ergebnis zu erhalten. Für mehr Details beim Texturvergleich siehe [[glTexParameter]].&lt;br /&gt;
&lt;br /&gt;
===Verwendungsmöglichkeit===&lt;br /&gt;
Abseits dem einfachen Laden von Texturen wird diese Funktion auch benutzt um Speicherbereiche für die spätere Verwendung zu reservieren. Ruft man glTexImage mit ''pixels'' = '''nil''' auf, wird der Speicherbereich zwar angelegt aber nicht gefüllt. Dies kann zum Beispiel gewünscht sein, wenn man einen Screenshot als Textur verwenden möchte (&amp;quot;Render To Texture&amp;quot;). Man kann dann den [[Framebuffer]] (=Screenshot) mittels [[glCopyTexImage]] in den durch glTexImage reservierten Speicherbereich kopieren. (Siehe dazu auch diesen [http://www.delphigl.com/forum/viewtopic.php?p=59156 Thread im Forum])&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Texturierung hat im Farbindexmodus keinen Effekt.&lt;br /&gt;
&lt;br /&gt;
Falls die [[GL_ARB_imaging|ARB_imaging]]-Erweiterung unterstützt wird, dürfen RGBA-Elemente auch in der [[Image-Pipeline]] verarbeitet werden.&lt;br /&gt;
Die folgenden Stufen dürfen an eine RGBA-Farbe angewendet werden, bevor die Farbkomponenten auf den Bereich [0,1] eingegrenzt werden:&lt;br /&gt;
&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
# Eindimensionale [[Convolution | Convolution-Filterung]], falls aktiviert. Siehe [[glConvolutionFilter1D]].&amp;lt;br&amp;gt;Falls ein Convolution-Filter die Breite der Textur ändert (z.B. durch Abarbeitung mit einem '''GL_CONVOLUTION_BORDER_MODE''' von '''GL_REDUCE''') und OpenGL nicht [[NPOT]]-Texturen unterstützt, muss die Breite nach der Filterung ''2^n + 2*border'' für eine Integerzahl n sein.&lt;br /&gt;
# RGBA-Komponenten können mit '''GL_POST_CONVOLUTION_'''''c'''''_SCALE''' multipliziert und mit '''GL_POST_CONVOLUTION_'''''c'''''_BIAS''' addiert werden, falls aktiviert. Siehe [[glPixelTransfer]].&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_POST_CONVOLUTION_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
# Transformation durch die [[Farbmatrix]]. Siehe [[glMatrixMode]].&lt;br /&gt;
# RGBA-Komponenten können mit '''GL_POST_COLOR_MATRIX_'''''c'''''_SCALE''' multipliziert und mit '''GL_POST_COLOR_MATRIX_'''''c'''''_BIAS''' addiert werden, falls aktiviert. Siehe [[glPixelTransfer]].&lt;br /&gt;
# Ersetzung der Farbkomponenten durch die Farbtabelle, die durch '''GL_POST_COLOR_MATRIX_COLOR_TABLE''' definiert wurde, falls aktiviert. Siehe [[glColorTable]].&lt;br /&gt;
&lt;br /&gt;
                        &lt;br /&gt;
Das Texturbild kann in den selben Datenformaten vorliegen wie die Pixel bei [[glDrawPixels]] ausgenommen '''GL_STENCIL_INDEX''' und '''GL_DEPTH_COMPONENT'''. [[glPixelStore]] und [[glPixelTransfer]] beeinflussen das Texturebild in exakt der Art und Weise, wie sie auch [[glDrawPixels]] beeinflussen.&lt;br /&gt;
&lt;br /&gt;
Eine Textur, die 0 Pixel breit ist, stellt die NULL-Textur dar. Wenn die NULL-Textur für die LOD-Stufe 0 spezifiziert wird, entspricht das Verhalten dem bei deaktivierter Texturierung.&lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
Folgende Erweiterungen hat die Funktion erfahren:&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.1 ===&lt;br /&gt;
'''GL_PROXY_TEXTURE_1D''' steht als ''target'' zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
Andere interne Formate als 1, 2, 3 oder 4 dürfen benutzt werden.&lt;br /&gt;
&lt;br /&gt;
''data'' darf ein Null-Pointer sein. In diesem Fall wird Texturspeicher allokiert um eine Textur der Breite ''width'' aufzunehmen. Man kann dann Sub-Texturen laden um diesen Texturspeicher zu initialisieren. Das Bild ist undefiniert, falls der Nutzer versucht einen  nichtinitialisierten Teil des Texturbildes auf eine Primitive anzuwenden.     &lt;br /&gt;
    &lt;br /&gt;
=== Ab OpenGL Version 1.2 ===    &lt;br /&gt;
Die Formate '''GL_BGR''' und '''GL_BGRA''' und die Typen '''            GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' und '''GL_UNSIGNED_INT_2_10_10_10_REV''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.3 ===&lt;br /&gt;
'''glTexImage1D''' gibt die eindimensionale Textur der aktuellen, mit [[glActiveTexture]] definierten Textur-Einheit an ( oder schon vorher, falls die [[ARB_multitexture]]-Erweiterung unterstützt wird ).&lt;br /&gt;
&lt;br /&gt;
=== Ab OpenGL Version 1.4 ===&lt;br /&gt;
'''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' und '''GL_DEPTH_COMPONENT32''' stehen zur Verfügung.&lt;br /&gt;
    &lt;br /&gt;
=== Ab OpenGL Version 2.0 ===  &lt;br /&gt;
[[NPOT]]-Texturen werden unterstützt ( oder schon vorher, falls die Implementation die [[GL_ARB_texture_non_power_of_two]]-Erweiterung unterstützt ).&lt;br /&gt;
        &lt;br /&gt;
=== Ab OpenGL Version 2.1 === &lt;br /&gt;
Die internen Formate '''GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, GL_SRGB8_ALPHA8, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA''' und '''GL_SLUMINANCE8_ALPHA8''' stehen zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht '''GL_TEXTURE_1D''' oder '''GL_PROXY_TEXTURE_1D''' ist (entsprechend der benutzten Funktion).&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' ungültige Werte übergeben wurden. Akzeptiert werden alle Formatangaben außer '''GL_STENCIL_INDEX''' und '''GL_DEPTH_COMPONENT'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''type'' keine gültige Typkonstante übergeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn '''GL_BITMAP''' als ''type'' und '''GL_COLOR_INDEX''' nicht(!) als ''format'' angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''level'' kleiner 0 oder größer ''ld(max)'' ist, wobei ''max'' der Rückgabewert von '''GL_MAX_TEXTURE_SIZE''' ist. (ld = Logarithmus Dualis = Basis 2).&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn für ''internalformat'' etwas anderes als ''1'', ''2'', ''3'', ''4'' oder eine der akzeptieren Resolutions- und symbolischen Formatkonstanten angegeben wurde.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''width'' kleiner als 0 oder größer als 2 + '''GL_MAX_TEXTURE_SIZE''' ist, oder die Bedingung  ''2^k + 2 * border'' (k=Integerwerte) nicht erfüllt.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_VALUE''' wird generiert, wenn ''border'' nicht ''0'' oder ''1'' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''type'' eine der Konstanten '''GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5''' oder '''GL_UNSIGNED_SHORT_5_6_5_REV''' ist und ''format'' nicht '''GL_RGB'''.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''type'' eine der Konstanten '''GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2''' oder '''GL_UNSIGNED_INT_2_10_10_10_REV''' und ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''target'' nicht '''GL_TEXTURE_2D''' oder '''GL_PROXY_TEXTURE_2D''' und ''internalFormat'' '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''format'' '''GL_DEPTH_COMPONENT'''' und ''internalFormat'' nicht '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' ist.&lt;br /&gt;
        &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ''internalFormat'' '''GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24''' oder '''GL_DEPTH_COMPONENT32''' und ''format'' nicht '''GL_DEPTH_COMPONENT''' ist.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und der Datenspeicher des Pufferobjektes währenddessen gemappt wird.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und die Daten derart vom Pufferobjekt entpackt werden, dass der gelesene Speicher die Grösse des Speichers der Daten überschreitet.&lt;br /&gt;
       &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, falls ein Pufferobjekt-Name ungleich null an das '''GL_PIXEL_UNPACK_BUFFER'''-target gebunden ist und ''data'' nicht gleichartig auf die Anzahl der Bytes aufgeteilt werden kann, um im Speicher ein Datum abzuspeichern welches durch ''type'' angegeben wurde.&lt;br /&gt;
 &lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert wenn die '''glTexImage1D'''-Funktion in einem [[glBegin]]- und [[glEnd]]-Block aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGetTexImage]] &amp;lt;br&amp;gt;&lt;br /&gt;
[[glIsEnabled]] mit dem Token '''GL_TEXTURE_1D'''.&amp;lt;br&amp;gt;&lt;br /&gt;
[[glGet]] mit Argument '''GL_PIXEL_UNPACK_BUFFER_BINDING'''&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
http://www.opengl.org/sdk/docs/man/xhtml/glTexImage1D.xml&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glActiveTexture]], [[glColorTable]], [[glCompressedTexImage1D]],&lt;br /&gt;
[[glCompressedTexSubImage1D]], [[glConvolutionFilter1D]], [[glCopyPixels]], [[glCopyTexImage1D]], [[glCopyTexImage1D]], [[glCopyTexSubImage1D]], [[glDrawPixels]], [[glGetCompressedTexImage]], [[glMatrixMode]], [[glPixelStore]], [[glPixelTransfer]], [[glTexEnv]], [[glTexGen]], [[glTexImage2D]], [[glTexImage3D]], [[glTexSubImage1D]], [[glTexSubImage2D]], [[glTexSubImage3D]], [[glTexParameter]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|TexImage1D]]&lt;br /&gt;
 [[Kategorie:GL1.0|TexImage1D]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glMatrixMode&amp;diff=25281</id>
		<title>glMatrixMode</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glMatrixMode&amp;diff=25281"/>
				<updated>2011-07-20T07:23:00Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Parameter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= glMatrixMode =&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
&lt;br /&gt;
'''glMatrixMode''' - Legt fest, welche [[Matrix]] gerade aktiv ist.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 '''glMatrixMode''': procedure('''mode: TGLenum''');&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
{| border=1  cellspacing=0&lt;br /&gt;
! Parameter &lt;br /&gt;
! Beschreibung &lt;br /&gt;
|-&lt;br /&gt;
| mode&lt;br /&gt;
|Mit den Konstanten '''GL_MODELVIEW''', '''GL_PROJECTION''' oder '''GL_TEXTURE''' kann die '''aktuelle [[Matrix]]''' festgelegt werden. Der Initialwert ist '''GL_MODELVIEW'''. Zusätzlich wird auch '''GL_COLOR''' akzeptiert, falls [[GL_ARB_imaging|ARB_imaging]] unterstützt wird.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
Setzt den aktuellen [[Matrizen|Matrix-Modus]].&lt;br /&gt;
''mode'' kann vier verschiedene Werte annehmen :&lt;br /&gt;
&lt;br /&gt;
'''GL_MODELVIEW'''&lt;br /&gt;
:Wendet nachfolgende Matrix-Operationen auf den Modelview-Matrixstack an.&lt;br /&gt;
                        &lt;br /&gt;
'''GL_PROJECTION'''&lt;br /&gt;
:Wendet nachfolgende Matrix-Operationen auf den Projektions-Matrixstack an.&lt;br /&gt;
&lt;br /&gt;
'''GL_TEXTURE'''&lt;br /&gt;
:Wendet nachfolgende Matrix-Operationen auf den Textur-Matrixstack an.                        &lt;br /&gt;
&lt;br /&gt;
'''GL_COLOR'''&lt;br /&gt;
:Wendet nachfolgende Matrix-Operationen auf den Farb-Matrixstack an.                           &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Der Matrix-Modus bezieht sich auf folgende Operationen:&lt;br /&gt;
&lt;br /&gt;
*[[glTranslate]]&lt;br /&gt;
*[[glRotate]]&lt;br /&gt;
*[[glScale]]&lt;br /&gt;
*[[glLoadIdentity]]&lt;br /&gt;
*[[glPushMatrix]]&lt;br /&gt;
*[[glPopMatrix]]&lt;br /&gt;
*[[glLoadMatrix]]&lt;br /&gt;
*[[glMultMatrix]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Um herauszufinden, welcher Matrix-Stack aktuell das Ziel aller Matrix-Operationen ist (kurz: die aktive Matrix bestimmen), muß man [[glGet]] mit Argument '''GL_MATRIX_MODE''' aufrufen. Der Initalwert ist '''GL_MODELVIEW'''.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
&lt;br /&gt;
* '''GL_INVALID_ENUM''' wird generiert, wenn ein ungülter Wert an ''mode'' übergeben wurde.&lt;br /&gt;
&lt;br /&gt;
* '''GL_INVALID_OPERATION''' wird generiert, wenn man die Funktion zwischen [[glBegin]] und [[glEnd]] aufruft.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Zugehörige Wertrückgabe ==&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_MATRIX_MODE|GL_MATRIX_MODE]]&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
http://www.opengl.org/sdk/docs/man/xhtml/glMatrixMode.xml&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Matrix]], [[glLoadIdentity]], [[glLoadMatrix]], [[glLoadTransposeMatrix]], [[glMultMatrix]], [[glMultTransposeMatrix]], [[glPopMatrix]], [[glPushMatrix]], [[glRotate]], [[glScale]], [[glTranslate]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|MatrixMode]]&lt;br /&gt;
 [[Kategorie:GL1.0]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glBlendFunc&amp;diff=25280</id>
		<title>glBlendFunc</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glBlendFunc&amp;diff=25280"/>
				<updated>2011-07-20T07:21:09Z</updated>
		
		<summary type="html">&lt;p&gt;Thoronador: /* Ab OpenGL Version 1.4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Excellent}}&lt;br /&gt;
= glBlendFunc =&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glBlendFunc''' - Bestimmt das Verhalten beim Schreiben von Fragmenten (Pixeln) in den Framebuffer&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
 procedure '''glBlendFunc'''(''sfactor'' : TGLEnum; ''dfactor'': TGLEnum);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
{|border=1 rules=all&lt;br /&gt;
!'''sfactor'''&lt;br /&gt;
|Gibt an, wie der Rot-, Grün-, Blau- und Alphaanteil des Quell-Blendfaktors berechnet wird. Folgende symbolische Konstanten sind erlaubt : '''GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA''' und '''GL_SRC_ALPHA_SATURATE'''. &amp;lt;br&amp;gt;&lt;br /&gt;
Vorgabewert ist '''GL_ONE'''.&lt;br /&gt;
|-&lt;br /&gt;
!'''dfactor'''&lt;br /&gt;
|Gibt an, wie der Rot-, Grün-, Blau- und Alphaanteil des Ziel-Blendfaktors berechnet wird. Folgende symbolische Konstanten sind erlaubt : '''GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA''' und '''GL_ONE_MINUS_CONSTANT_ALPHA'''.&amp;lt;br&amp;gt;&lt;br /&gt;
Vorgabewert ist '''GL_ZERO'''.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Im RGBA-Modus, können Pixel so gezeichnet werden, dass anhand einer Funktion die ankommenden RGBA-Werte (Quelle) mit dem bereits im Framepuffer befindlichen RGBA-Werten (Ziel) gemischt werden. Mischung ist als Vorgabe deaktiviert, kann jedoch mit [[glEnable]]/[[glEnable|glDisable]] und dem Token '''GL_BLEND''' gesteuert werden.&lt;br /&gt;
&lt;br /&gt;
'''glBlendFunc''' beschreibt die Funktion der Mischung, sofern aktiviert. ''sfactor'' gibt dabei an welche Methode genutzt wird um die Quellfarbkomponenten zu skalieren. ''dfactor'' gibt an, welche der Methode genutzt wird um die Zielfarbkomponenten zu skalieren. Die möglichen Methoden werden in der folgenden Tabelle beschrieben, wobei jede insgesamt vier Skalierungsfaktoren besitzt, für die vier Komponenten einer RGBA-Farbe.&lt;br /&gt;
&lt;br /&gt;
In der Tabelle (und allen folgenden Gleichungen), werden Quell- bzw. Zielfarbkomponenten als (Rs, Gs, Bs, As) und (Rd, Gd, Bd, Ad) dargestellt. Diese Komponenten besitzen Ganzzahlwerte, die zwischen 0 und (kR, kG, kB, kA) liegen, wobei &lt;br /&gt;
&lt;br /&gt;
 kc = 2^mc - 1;&lt;br /&gt;
&lt;br /&gt;
und (mR, mG, mB, mA) gleich der Zahl der Rot-, Grün-, Blau- und Alphabitflächen ist. (Beispiel: Wenn man 8 Bit für eine Farbe (z.B. Rot) hat, dann ist kR = 2^8 - 1 = 255.)&lt;br /&gt;
&lt;br /&gt;
Konstante Farbkomponenten (gesetzt mit [[glBlendColor]]) werden als (Rc, Gc, Bc, Ac) angegeben und werden nicht mit (kR, kG, kB, kA) skaliert, da sie bereits im Intervall [0,1] liegen.&lt;br /&gt;
&lt;br /&gt;
Quell- und Zielskalierungsfaktoren werden als (sR, sG, sB, sA) und (dR, dG, dB, dA) angegeben. Die in der Tabelle beschriebenen Skalierungsfaktoren, angegeben als (fR, fG, fB, fA) repräsentieren entweder Quell- oder Zielfaktoren. Alle Skalierungsfaktoren liegen im Intervall [0,1].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{| {{Prettytable_B1}}&lt;br /&gt;
|'''Parameter'''&lt;br /&gt;
|'''(fR, fG, fB, fA)'''&lt;br /&gt;
|-&lt;br /&gt;
|GL_ZERO	&lt;br /&gt;
|(0,0,0,0)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE	&lt;br /&gt;
|(1,1,1,1)&lt;br /&gt;
|-&lt;br /&gt;
|GL_SRC_COLOR	&lt;br /&gt;
|(Rs/kR, Gs/kG, Bs/kB, As/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE_MINUS_SRC_COLOR	&lt;br /&gt;
|(1,1,1,1) - (Rs/kR, Gs/kG, Bs/kB, As/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_DST_COLOR	&lt;br /&gt;
|(Rd/kR, Gd/kG, Bd/kB, Ad/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE_MINUS_DST_COLOR	&lt;br /&gt;
|(1,1,1,1) - (Rd/kR, Gd/kG, Bd/kB, Ad/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_SRC_ALPHA	&lt;br /&gt;
|(As/kA, As/kA, As/kA, As/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE_MINUS_SRC_ALPHA	&lt;br /&gt;
|(1,1,1,1) - (As/kA, As/kA, As/kA, As/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_DST_ALPHA	&lt;br /&gt;
|(Ad/kA, Ad/kA, Ad/kA, Ad/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE_MINUS_DST_ALPHA	&lt;br /&gt;
|(1,1,1,1) - (Ad/kA, Ad/kA, Ad/kA, Ad/kA)&lt;br /&gt;
|-&lt;br /&gt;
|GL_CONSTANT_COLOR	&lt;br /&gt;
|(Rc, Gc, Bc, Ac)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE_MINUS_CONSTANT_COLOR	&lt;br /&gt;
|(1,1,1,1) - (Rc, Gc, Bc, Ac)&lt;br /&gt;
|-&lt;br /&gt;
|GL_CONSTANT_ALPHA	&lt;br /&gt;
|(Ac, Ac, Ac, Ac)&lt;br /&gt;
|-&lt;br /&gt;
|GL_ONE_MINUS_CONSTANT_ALPHA	&lt;br /&gt;
|(1,1,1,1) - (Ac, Ac, Ac, Ac)&lt;br /&gt;
|-&lt;br /&gt;
|GL_SRC_ALPHA_SATURATE	&lt;br /&gt;
|(i,i,i,1)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In der Tabelle ist&lt;br /&gt;
 &lt;br /&gt;
 i = min(As, kA - Ad) /kA&lt;br /&gt;
&lt;br /&gt;
Um die gemischten RGBA-Werte eines Pixels im RGBA-Modus zu ermitteln, nutzt das System folgende Gleichungen (wenn die Mischungs-Gleichung Erweiterung nicht unterstützt wird) :&lt;br /&gt;
&lt;br /&gt;
 Rd = min(kR, RssR + RddR)&lt;br /&gt;
 Gd = min(kG, GssG + GddR)&lt;br /&gt;
 Bd = min(kB, BssB + BddB)&lt;br /&gt;
 Ad = min(kA, AssB + AddA)&lt;br /&gt;
&lt;br /&gt;
Trotz der offensichtlichen Präzisions obiger Gleichungen, ist die Mischungsarithmetik nicht exakt spezifiziert, aufgrund Mischungsoperationen mit unpräzisen Ganzzahlwerten. Bei einem Mischungsfaktor von 1 ist jedoch garantiert, dass dieser seinen Mulitplikanten nicht verändert, und ein Mischungsfaktor gleich 0 verrringert seinen Multiplikanten auf 0. Wenn ''sfactor'' z.B. '''GL_SCR_ALPHA''' ist, und ''dfactor'' gleich '''GL_ONE_MINUS_SRC_ALPHA''', dann ist ''As'' gleich ''kA'', und die Funktionen können auf ihre einfache Entsprechung reduziert werden :&lt;br /&gt;
&lt;br /&gt;
 Rd = Rs&lt;br /&gt;
 Gd = Gs&lt;br /&gt;
 Bd = Bs&lt;br /&gt;
 Ad = As&lt;br /&gt;
&lt;br /&gt;
Wenn die Erweiterung für Mischungsgleichungen vorhanden ist, werden die gemischten RGBA-Werte anhand der gesetzten Mischungsgleichung gesetzt. Siehe dazu [[glBlendEquation]].&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Der Alpha-Eingangswert (Quelle) kann im Endeffekt als Materialdurchlässigkeit betrachtet werden, reichend von ''KA'' = 1, also komplett solide, bis ''KA''=0, was ein komplett transparentes (=unsichtbares) Material darstellen würde.&lt;br /&gt;
&lt;br /&gt;
Wenn mehr als ein Farbpuffer zum Rendern aktiv ist, wird die GL für jeden dieser Puffer separat Mischung durchführen, unter Nutzung des entsprechenden Pufferinhaltes als Zielkomponente. Siehe [[glDrawBuffer]].&lt;br /&gt;
&lt;br /&gt;
Mischung funktioniert übrigens nur im RGBA-Modus. Im Farbindex-Modus nicht. &lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
=== Ab OpenGL Version 1.4 ===&lt;br /&gt;
'''GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA''' und '''GL_ONE_MINUS_CONSTANT_ALPHA''' stehen sowohl für ''sfactor'' als auch für ''dfactor'' zur Verfügung (oder schon vorher, falls [[GL_ARB_imaging|ARB_imaging]] durch die Implementation unterstützt wird). &lt;br /&gt;
&lt;br /&gt;
'''GL_SRC_COLOR''' und '''GL_ONE_MINUS_SRC_COLOR''' stehen für ''sfactor'' zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
'''GL_DST_COLOR''' und '''GL_ONE_MINUS_DST_COLOR''' stehen für ''dfactor'' zur Verfügung.&lt;br /&gt;
&lt;br /&gt;
== Beispiele ==&lt;br /&gt;
'''Transparenz''' implementiert man am besten mit den Mischungsfunktionen ('''GL_SRC_ALPHA''', '''GL_ONE_MINUS_SRC_ALPHA) und Sortierung der Primitiven von hinten nach vorne. &lt;br /&gt;
&lt;br /&gt;
Die Mischungsfunktion('''GL_SRC_ALPHA''', '''GL_ONE_MINUS_SRC_ALPHA''') ist auch zum '''Rendern kantengeglätteter''' Punkte nützlich, egal in welcher Reihenfolge diese vorkommen.&lt;br /&gt;
&lt;br /&gt;
'''Kantenglättung von Polygonen''' lässt sich mit der Mischungsfunktion ('''GL_SRC_ALPHA_SATURATE''', '''GL_ONE''') optimieren, wobei die Polygone von vorne nach hinten sortiert werden. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nachfolgend finden Sie eine Übersicht einiger Blendergebnisse. Der Code blieb unverändert, nur die Blendfunktion wurde geändert.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
{|{{Prettytable_B1}}&lt;br /&gt;
!code&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;  glClearColor(1.0,1.0,1.0,0.0);&lt;br /&gt;
  [...]&lt;br /&gt;
&lt;br /&gt;
  glEnable(GL_BLEND);&lt;br /&gt;
  glBlendFunc(GL_ONE, GL_ONE);&lt;br /&gt;
&lt;br /&gt;
  glBegin(GL_QUADS);&lt;br /&gt;
    glColor4f(0.8,0.2,0.2,0.7);&lt;br /&gt;
    glVertex3f(-1, 1, 1);&lt;br /&gt;
    glVertex3f(-1,-1, 1);&lt;br /&gt;
    glVertex3f( 1,-1, 1);&lt;br /&gt;
    glVertex3f( 1, 1, 1);&lt;br /&gt;
    glColor4f(0.2,0.8,0.2,0.5);&lt;br /&gt;
    glVertex3f(-1, 1, 1.5);&lt;br /&gt;
    glVertex3f(-1,-1, 1.5);&lt;br /&gt;
    glVertex3f( 1,-1, 1.5);&lt;br /&gt;
    glVertex3f( 1, 1, 1.5);&lt;br /&gt;
    glColor4f(0.2,0.2,0.8,0.3);&lt;br /&gt;
    glVertex3f(-1, 1, 2);&lt;br /&gt;
    glVertex3f(-1,-1, 2);&lt;br /&gt;
    glVertex3f( 1,-1, 2);&lt;br /&gt;
    glVertex3f( 1, 1, 2);&lt;br /&gt;
  glEnd;&amp;lt;/source&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|[[Bild:Blend GL DST ALPHA GL ONE MINUS DST ALPHA.jpg|center|framed|GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA]]&lt;br /&gt;
|[[Bild:Blend GL DST COLOR, GL SRC COLOR.jpg|center|framed|GL_DST_COLOR, GL_SRC_COLOR]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Blend GL DST COLOR GL SRC ALPHA.jpg|center|framed|GL_DST_COLOR, GL_SRC_ALPHA]]&lt;br /&gt;
|[[Bild:Blend GL ONE GL ZERO.jpg|center|framed|GL_ONE, GL_ZERO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Blend GL ONE GL ONE s.jpg|center|framed|GL_ONE, GL_ONE mit glClearColor(0,0,0,0) entspricht additiven Blending]]&lt;br /&gt;
|[[Bild:Blend GL ONE GL ONE w.jpg|center|framed|GL_ONE, GL_ONE mit glClearColor(1,1,1,0) weiß wegen &amp;quot;Überbelichtung&amp;quot;]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Blend GL ONE MINUS DST COLOR GL ONE MINUS SRC COLOR.jpg|center|framed|GL_ONE_MINUS_DST_COLOR, GL_ONE_MINUS_SRC_COLOR]]&lt;br /&gt;
|[[Bild:Blend GL ONE MINUS SRC ALPHA GL SRC ALPHA.jpg|center|framed|GL_ONE_MINUS_SRC_ALPHA, GL_SRC_ALPHA]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Blend GL ONE MINUS DST ALPHA GL DST ALPHA.jpg|center|framed|GL_ONE_MINUS_DST_ALPHA, GL_DST_ALPHA]]&lt;br /&gt;
|[[Bild:Blend GL SRC ALPHA GL ONE MINUS SRC ALPHA.jpg|center|framed|GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Blend GL SRC ALPHA GL SRC COLOR.jpg|center|framed|GL_SRC_ALPHA, GL_SRC_COLOR]]&lt;br /&gt;
|[[Bild:Blend GL ZERO GL ZERO.jpg|center|framed|GL_ZERO, GL_ZERO]]&lt;br /&gt;
|-&lt;br /&gt;
|[[Bild:Blend GL ZERO GL ONE.jpg|center|framed|GL_ZERO, GL_ONE]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Sinnvolle Kombinationen ==&lt;br /&gt;
&lt;br /&gt;
Im folgenden sind Rq, Gq, Bq und Aq die Farbkomponenten des Fragmentes, dass neu dazukommt. Rz, Gz, Bz und Az sind die Farbkomponenten des bereits im Framebuffer enthaltenen Pixels und Rn, Gn, Bn und An sind die Farbkomponenten des sich ergebenden Fragmentes. Alle Werte sind skaliert auf einen Bereich von 0.0 bis 1.0, inklusive.&lt;br /&gt;
Die Ergebnisswerte werden danach auf den Bereich 0.0 bis 1.0 geclampt.&lt;br /&gt;
&lt;br /&gt;
=== Normales Blending ===&lt;br /&gt;
Das normale Blending ist das, was man wohl am meisten gebraucht wird. Je stärker die Deckkraft (also das Alpha) der Quelle ist, desto weniger bleibt vom ursprünglichen Framebufferinhalt erhalten und desto mehr wird von der Quelle genommen. Daraus ergibt sich:&lt;br /&gt;
 Rn = Rz * (1.0 - Aq) + Rq * Aq;&lt;br /&gt;
 Gn = Gz * (1.0 - Aq) + Gq * Aq;&lt;br /&gt;
 Bn = Bz * (1.0 - Aq) + Bq * Aq;&lt;br /&gt;
 An = Az * (1.0 - Aq) + Aq * Aq;&lt;br /&gt;
Die beiden Konstanten hierfür sind '''GL_SRC_ALPHA''' und '''GL_SRC_ONE_MINUS_ALPHA'''.&lt;br /&gt;
&lt;br /&gt;
=== Additives Blending (ohne Alpha) ===&lt;br /&gt;
Das additive Blending wird zum Beispiel für Lichteffekte und dergleichen verwendet. Eben für Dinge, wo man die Helligkeit im Framebuffer erhöhen will.&lt;br /&gt;
 Rn = Rz + Rq;&lt;br /&gt;
 Gn = Gz + Gq;&lt;br /&gt;
 Bn = Bz + Bq;&lt;br /&gt;
 An = Az + Aq;&lt;br /&gt;
Die beiden Konstanten hierfür sind '''GL_ONE''' und '''GL_ONE'''.&lt;br /&gt;
&lt;br /&gt;
=== Additives Blending (mit Alpha) ===&lt;br /&gt;
Das funktioniert eigentlich genauso wie das andere additive Blending, nur wird hier der Alphawert des neuen Fragmentes beachtet.&lt;br /&gt;
 Rn = Rz + Rq * Aq;&lt;br /&gt;
 Gn = Gz + Gq * Aq;&lt;br /&gt;
 Bn = Bz + Bq * Aq;&lt;br /&gt;
 An = Az + Aq * Aq;&lt;br /&gt;
Die beiden Konstanten hierfür sind '''GL_SRC_ALPHA''' und '''GL_ONE'''.&lt;br /&gt;
&lt;br /&gt;
=== Multiplikatives Blending ===&lt;br /&gt;
Beim multiplikativen Blending werden die beiden Werte multipliziert. Zum Einfärben eines Bildes ist das sehr praktisch, aber auch für andere Effekte kann man es gebrauchen.&lt;br /&gt;
 Rn = Rz * Rq;&lt;br /&gt;
 Gn = Gz * Gq;&lt;br /&gt;
 Bn = Bz * Bq;&lt;br /&gt;
 An = Az * Aq;&lt;br /&gt;
Die beiden Konstanten hierfür sind '''GL_DST_COLOR''' und '''GL_ZERO'''.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
'''GL_INVALID_ENUM''' wird generiert, wenn ''sfactor'' oder ''dfactor'' keine gültigen Werte darstellen.&lt;br /&gt;
&lt;br /&gt;
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glBlendFunc''' in einem [[glBegin]]-[[glEnd]]-Block aufgerufen wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zugehörige Wertrückgaben ==&lt;br /&gt;
[[glGet]] mit dem Argument [[glGet#GL_BLEND_SRC|GL_BLEND_SRC]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit dem Argument [[glGet#GL_BLEND_DST|GL_BLEND_DST]]&lt;br /&gt;
&lt;br /&gt;
[[glGet]] mit dem Argument [[glGet#GL_BLEND_COLOR|GL_BLEND_COLOR]]&lt;br /&gt;
&lt;br /&gt;
[[glIsEnabled]] mit dem Argument [[glGet#GL_BLEND|GL_BLEND]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glAlphaFunc]], [[glBlendColor]], [[glBlendEquation]], [[glBlendFuncSeparate]], [[glClear]], [[glDrawBuffer]], [[glEnable]], [[glLogicOp]], [[glStencilFunc]]&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
[[RedBook]] Kapitel 7&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
http://www.opengl.org/sdk/docs/man/xhtml/glBlendFunc.xml&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|BlendFunc]]&lt;br /&gt;
 [[Kategorie:GL1.0|BlendFunc]]&lt;br /&gt;
[[Kategorie:GL3|BlendFunc]]&lt;/div&gt;</summary>
		<author><name>Thoronador</name></author>	</entry>

	</feed>