glRasterPos

Aus DGL Wiki
Version vom 17. September 2004, 14:52 Uhr von Flo (Diskussion | Beiträge) (Hatte Zuordnung zu der GL Kategorie vergessen)

Wechseln zu: Navigation, Suche

glRasterPos


Name

glRasterPos - Legt die Rasterposition für Pixel Operationen fest.


Delphi-Spezifikation

procedure glRasterPos2d (x: TGLdouble; y: TGLdouble);
procedure glRasterPos2f (x: TGLfloat; y: TGLfloat);
procedure glRasterPos2i (x: TGLint; y: TGLint);
procedure glRasterPos2s (x: TGLshort; y: TGLshort);
procedure glRasterPos3d (x: TGLdouble; y: TGLdouble; z: TGLdouble);
procedure glRasterPos3f (x: TGLfloat; y: TGLfloat; z: TGLfloat);
procedure glRasterPos3i (x: TGLint; y: TGLint; z: TGLint);
procedure glRasterPos3s (x: TGLshort; y: TGLshort; z: TGLshort);
procedure glRasterPos4d (x: TGLdouble; y: TGLdouble; z: TGLdouble; w: TGLdouble);
procedure glRasterPos4f (x: TGLfloat; y: TGLfloat; z: TGLfloat; w: TGLfloat);
procedure glRasterPos4i (x: TGLint; y: TGLint; z: TGLint; w: TGLint);
procedure glRasterPos4s (x: TGLshort; y: TGLshort; z: TGLshort; w: TGLshort);


Parameter

x X Wert der neuen Rasterposition
y Y Wert der neuen Rasterposition
z Z Wert der neuen Rasterposition; Standartwert ist 0
w W Wert der neuen Rasterposition; Standartwert ist 1


Delphi-Spezifikation

procedure glRasterPos2dv(const v: PGLdouble);
procedure glRasterPos2fv(const v: PGLfloat);
procedure glRasterPos2iv(const v: PGLint);
procedure glRasterPos2sv(const v: PGLshort);
procedure glRasterPos3dv(const v: PGLdouble);
procedure glRasterPos3fv(const v: PGLfloat);
procedure glRasterPos3iv(const v: PGLint);
procedure glRasterPos3sv(const v: PGLshort);
procedure glRasterPos4dv(const v: PGLdouble);
procedure glRasterPos4fv(const v: PGLfloat);
procedure glRasterPos4iv(const v: PGLint);
procedure glRasterPos4sv(const v: PGLshort);


Parameter

v Ein Zeiger auf 2,3 oder 4 Elemente je nach Funktions Typ


Beschreibung

Die GL speichert eine 3D Position in Fenster Koordinaten ab. Diese Position wird Rasterposition genannt und wird zur positioniertung von Pixel und Bitmap-Schreibvorgängen genutzt. Diese werden mit absoluter Pixel Genauigkeit durchgeführt. Siehe glBitmap, glDrawPixels, und glCopyPixels.


Die aktuelle Rasterposition besteht aus den drei Fensterkoordinaten (X,Y,Z), der Clip Koordinate W,den Auge-Koordinaten Abstand, einen Gültigkeits Bit, sowie zugewieser Farbwerte und Textur Koordinaten. Die W Koordinate ist eine Clip Koordinate da sie nicht erst in Fensterkoordinaten umgerechnet wird. Falls ein Funktions Aufruf Z oder W nicht beinhaltet so werden diese auf ihre Standartwerte(Z=0;W=1) gesetzt.

Die an glRasterPos übergebe Position wird so behandelt als ob sie ein von glVertex erzeugter Punkt ist. Das heißt auf sie wird Projektions und Modelview Matrix angewant und wird zurrechtgeschnitten(en :"passed to the clipping stage"). Falls der resultierende Punkt nicht weggeschnitten wurde, wird der Punkt auf die Fenstergröße angepasst, als neue Rasterposition übernommen und dass Gültigkeits Flag GL_CURRENT_RASTER_POSITION_VALID gesetzt. Falls der Punkt weggeschnitten würde so wird das Flag geleert und die aktuelle Rasterposition inklusive Farbe und Texturkoordinaten ist undefeniert.

Die aktuelle Rasterposition behaltet auch einen Farbwert und Texturkoordinaten. Falls die Beleuchtung aktiviert wurde, dann wird GL_CURRENT_RASTER_COLOR (im RGBA Farbmodus) oder GL_CURRENT_RASTER_INDEX (im Farb Index Modus) auf die Farbe gesetz die durch die Lichtberechnungen ensteht(siehe glLight, glLightModel, und glShadeModel). Ist die Beleuchtung deaktivert, so wird die aktuelle Farbe(im RGBA Farbmodus die Status Variable GL_CURRENT_COLOR) oder der Farben Index (im Farben Index Modus die Status Variable GL_CURRENT_INDEX) genutz um die neue Raster Farbe zu bestimmen.

GL_CURRENT_RASTER_TEXTURE_COORDS wird so wie eine Funktion von GL_CURRENT_TEXTURE_COORDS, basierend auf der Texturmatrix und den Textur generations Funktionen aktuelliesiert. Finally, the distance from the origin of the eye coordinate system to the vertex as transformed by only the modelview matrix replaces GL_CURRENT_RASTER_DISTANCE.

Die Start Einstellungen von der aktuellen Rasterposition ist die Position (X:0;Y:0;Z:0;W:1), der Abstand 0, die Farbe weiß(1,1,1,1), der Farb-Index 1, die Textur Koordinaten (0,0,0,1) und ein gesetzes gültigkeits Flag. Im RGBA Farbmodus ist GL_CURRENT_RASTER_INDEX immer 1, im Farben Index Modus hingegen enthält die RGBA Farbe ihren Startwert.


Hinweise

Die aktuelle Rasterposition kann nicht nur durch glRasterPos gesetzt sondern auch durch glBitmap verschoben werden.

Falls die aktuelle Rasterposition ungültig ist(Das Flag GL_CURRENT_RASTER_POSITION_VALID ist nicht gesetzt), dann werden sämtliche Zeichen Befehle ignoriert die eine Rasterposition benötigen.

Ein Aufruf von glDrawElements hinterläßt eventuell eine nicht bestimmte Farbe bzw Index. Wird wärend die aktuelle Farbe bzw der Index unbestimmt ist glRasterPos aufgerufen, so ist die aktuelle Rasterfarbe bzw. der Raster Index undefiniert.

Durch einen Aufruf von glBitmap (mit dem Bild Parameter nil) ist es möglich die Rasterposition auch auserhalb des sichtbaren Bereiches positionieren.


Fehlermeldungen

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


Zugehörige Wertrückgaben

glGet mit Token GL_CURRENT_RASTER_POSITION
glGet mit Token GL_CURRENT_RASTER_POSITION_VALID
glGet mit Token GL_CURRENT_RASTER_DISTANCE
glGet mit Token GL_CURRENT_RASTER_COLOR
glGet mit Token GL_CURRENT_RASTER_INDEX
glGet mit Token GL_CURRENT_RASTER_TEXTURE_COORDS


Siehe auch

glBitmap, glCopyPixels, glDrawElements, glDrawPixels, glWindowPos, glLight, glLightModel, glShadeModel, glTexCoord, glTexGen, glVertex