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

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=glWindowPos&amp;diff=17239&amp;oldid=prev</id>
		<title>Dj3hut1: neu erstellt</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=glWindowPos&amp;diff=17239&amp;oldid=prev"/>
				<updated>2006-04-14T16:35:35Z</updated>
		
		<summary type="html">&lt;p&gt;neu erstellt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= glWindowPos =&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''glWindowPos''' - Setzt die aktuelle Rasterposition in [[Fensterkoordinatensystem|Fensterkoordinaten]].&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glWindowPos2d''' (''x'': TGLdouble; ''y'': TGLdouble);&lt;br /&gt;
 procedure '''glWindowPos2f''' (''x'': TGLfloat; ''y'': TGLfloat);&lt;br /&gt;
 procedure '''glWindowPos2i''' (''x'': TGLint; ''y'': TGLint);&lt;br /&gt;
 procedure '''glWindowPos2s''' (''x'': TGLshort; ''y'': TGLshort);&lt;br /&gt;
 procedure '''glWindowPos3d''' (''x'': TGLdouble; ''y'': TGLdouble; ''z'': TGLdouble);&lt;br /&gt;
 procedure '''glWindowPos3f''' (''x'': TGLfloat; ''y'': TGLfloat; ''z'': TGLfloat);&lt;br /&gt;
 procedure '''glWindowPos3i''' (''x'': TGLint; ''y'': TGLint; ''z'': TGLint);&lt;br /&gt;
 procedure '''glWindowPos3s''' (''x'': TGLshort; ''y'': TGLshort; ''z'': TGLshort); &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''&lt;br /&gt;
| X-Wert der neuen Rasterposition in Fensterkoordinaten.&lt;br /&gt;
|-&lt;br /&gt;
! ''y''&lt;br /&gt;
| Y-Wert der neuen Rasterposition in Fensterkoordinaten.&lt;br /&gt;
|-&lt;br /&gt;
! ''z''&lt;br /&gt;
| Z-Wert der neuen Rasterposition in Fensterkoordinaten; Standardwert ist 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 procedure '''glWindowPos2dv'''('''const''' ''v'': PGLdouble);&lt;br /&gt;
 procedure '''glWindowPos2fv'''('''const''' ''v'': PGLfloat);&lt;br /&gt;
 procedure '''glWindowPos2iv'''('''const''' ''v'': PGLint);&lt;br /&gt;
 procedure '''glWindowPos2sv'''('''const''' ''v'': PGLshort);&lt;br /&gt;
 procedure '''glWindowPos3dv'''('''const''' ''v'': PGLdouble);&lt;br /&gt;
 procedure '''glWindowPos3fv'''('''const''' ''v'': PGLfloat);&lt;br /&gt;
 procedure '''glWindowPos3iv'''('''const''' ''v'': PGLint);&lt;br /&gt;
 procedure '''glWindowPos3sv'''('''const''' ''v'': PGLshort);&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;
! ''v''&lt;br /&gt;
| Ein Zeiger auf 2 oder 3 Elemente je nach Funktionstyp.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Beschreibung == &lt;br /&gt;
'''glWindowPos''' ist eine Alternative zum Setzen von der aktuellen Rasterposition in Fensterkoordinaten mit [[glRasterPos]] .&lt;br /&gt;
&lt;br /&gt;
'''glWindowPos3''' erhält drei Werte, welche x, y und z angeben, während '''glWindowPos2''' nur zwei Werte x und y annimmt. (z wird implizit auf 0 gesetzt). Die aktuelle Rasterposition, (x&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;, z&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;, w&amp;lt;sub&amp;gt;c&amp;lt;/sub&amp;gt;) wird definiert durch : x&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; = x, y&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; = y,&lt;br /&gt;
&lt;br /&gt;
[[Bild:Raster_z_formel.png]]&lt;br /&gt;
&lt;br /&gt;
und w&amp;lt;sub&amp;gt;c&amp;lt;/sub&amp;gt; = 1, wobei n und f die Werte sind, welche an [[glDepthRange]] übergeben werden.&lt;br /&gt;
&lt;br /&gt;
Im Gegensatz zu [[glRasterPos]] wird die Beleuchtung, die Erzeugung der Texturkoordinaten und die Clipping-Operation nicht durch '''glWindowPos''' durchgeführt. Stattdessen wird im RGBA-Modus die aktuelle Raster- und Zweitfarbe durch Mapping der aktuellen Farbe (spezifiziert mit [[glColor]]) bzw. Zweitfarbe (spezifiziert mit [[glSecondaryColor]]) auf den Bereich [0, 1] erhalten. Im Farbindexmodus wird der aktuelle Raster-Farbindex auf den aktuellen Farbindex gesetzt. Die aktuellen Raster-Texturkoordinaten werden auf die aktuellen Texturkoordinaten gesetzt, und das [[Gültigkeitsbit]] wird gesetzt.&lt;br /&gt;
&lt;br /&gt;
Falls der Wert der Nebelquelle auf '''GL_FOR_COORD_SRC''' ist, wird der aktuelle Rasterabstand auf den Wert der aktuellen Nebelkoordinate gesetzt. Ansonsten wird der Rasterabstand auf 0 gesetzt.&lt;br /&gt;
&lt;br /&gt;
Die aktuelle Rasterposition braucht sechs einfachgenaue Fliesskomma-Werte für ihre x&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt;, y&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; und z&amp;lt;sub&amp;gt;w&amp;lt;/sub&amp;gt; Fensterkoordinaten, ihre w&amp;lt;sub&amp;gt;c&amp;lt;/sub&amp;gt; Klipkoordinate, ihren Rasterabstand (als Nebelkoordinate im [[Rasterprozess]] genutzt), ein einfaches Gültigkeitsbit, vier Fliesskoma-Werte um die aktuelle RGBA-Farbe zu speichern, vier Fliesskomma-Werte um die aktuelle RGBA-Zweitfarbe zu speichern, ein Fliesskomma-Wert um den aktuellen Farbindex zu speichern und vier Fliesskomma-Werte für die Texturkoordinaten jeder einzelnen Textureinheit. Im Anfangszustand sind die Koordinaten und Texturkoordinaten alle (0, 0, 0, 1), der Abstand im [[Augenkoordinatensystem]] ist 0, die Nebelkoordinate ist 0, das Gültigkeitsbit ist gesetzt, die zugeordnete RGBA-Farbe ist (1, 1, 1, 1), die zugeordnete RGBA-Zweitfarbe ist (0, 0, 0, 0) (bzw. ab OpenGL Version 2.0 (0, 0, 0, 1)) und die zugeordnete Farbindexfarbe ist 1. Im RGBA-Modus hat der zugeordnete Farbindex immer seinen Anfangswert; im Farbindex-Modus behalten die RGBA-Farbe und Zweitfarbe immer ihre Anfangswerte.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
'''glWindowPos''' ist erst ab OpenGL-Version 1.4 oder höher verfügbar.&lt;br /&gt;
&lt;br /&gt;
Wenn das Flag '''GL_CURRENT_RASTER_POSITION_VALID''' nicht gesetzt ist, also die aktuelle Rasterposition ungültig ist, werden sämtliche Zeichenbefehle ignoriert, die eine Rasterposition benötigen.&lt;br /&gt;
&lt;br /&gt;
Ein Aufruf von [[glDrawElements]] hinterläßt eventuell eine nicht bestimmte Farbe bzw. Index. Wird '''glWindowPos''' aufgerufen, während die aktuelle Farbe bzw. der Index unbestimmt sind, so ist die aktuelle Rasterfarbe bzw. der Rasterindex undefiniert.&lt;br /&gt;
&lt;br /&gt;
Mit '''glWindowPos''' ist es nun möglich, 2D-Rendering einfacher zu gestalten.&lt;br /&gt;
Zum einen wird mit diesem einen Aufruf folgende Sequenz an OpenGL-Befehlen ersetzt :&lt;br /&gt;
 glMatrixMode(GL_PROJECTION);&lt;br /&gt;
 glLoadIdentity();&lt;br /&gt;
 gluOrtho2D(0.0, (GLfloat) width, 0.0, (GLfloat) height);&lt;br /&gt;
 glMatrixMode(GL_MODELVIEW);&lt;br /&gt;
 glLoadIdentity();&lt;br /&gt;
, und zum anderen müssen Texturierung und Beleuchtung nicht mehr explizit abgeschaltet werden, um z.B. 2D-Text auf den Bildschirm zu rendern.&lt;br /&gt;
&lt;br /&gt;
== Änderungen ==&lt;br /&gt;
Folgende Erweiterungen hat die Funktion erfahren:&lt;br /&gt;
=== Ab OpenGL-Version 2.0 ===&lt;br /&gt;
Auch Transformationsbefehle (z.B. gesetzt mit [[glScale]], [[glTranslate]] und [[glRotate]]) wirken sich nicht mehr auf die mit '''glWindowPos''' gesetzte Rasterposition aus.&lt;br /&gt;
&lt;br /&gt;
== Fehlermeldungen ==&lt;br /&gt;
;'''GL_INVALID_OPERATION''': '''glWindowPos''' wurde innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen. &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]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_POSITION_VALID|GL_CURRENT_RASTER_POSITION_VALID]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_DISTANCE|GL_CURRENT_RASTER_DISTANCE]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_COLOR|GL_CURRENT_RASTER_COLOR]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_INDEX|GL_CURRENT_RASTER_INDEX]]&amp;lt;br /&amp;gt;&lt;br /&gt;
[[glGet]] mit Token [[glGet#GL_CURRENT_RASTER_TEXTURE_COORDS|GL_CURRENT_RASTER_TEXTURE_COORDS]]&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
[[glColor]], [[glDepthRange]], [[glFogCoord]], [[glIndex]], [[glRasterPos]], [[glSecondaryColor]], [[glTexCoord]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:GL|WindowPos]]&lt;/div&gt;</summary>
		<author><name>Dj3hut1</name></author>	</entry>

	</feed>