glLoadMatrix: Unterschied zwischen den Versionen
Flo (Diskussion | Beiträge) K (→Siehe auch) |
(→Beispiel-Quelltext: Quelltext-Bereiche vereint) |
||
Zeile 36: | Zeile 36: | ||
===Beispiel-Quelltext=== | ===Beispiel-Quelltext=== | ||
− | {| border=" | + | {| border="0" |
|+Als Ersatzt für [[glPushMatrix]] / [[glPopMatrix]]: | |+Als Ersatzt für [[glPushMatrix]] / [[glPopMatrix]]: | ||
| | | | ||
<b>type</b> | <b>type</b> | ||
TVektor = <b>record</b> X,Y,Z,W:glFloat <b>end</b>; | TVektor = <b>record</b> X,Y,Z,W:glFloat <b>end</b>; | ||
− | TMatrix = <b>array</b>[(mat_XAchse,mat_YAchse,mat_ZAchse,mat_Position)] <b>of</b> TVertex; | + | TMatrix = <b>array</b>[(mat_XAchse,mat_YAchse,mat_ZAchse,mat_Position)] <b>of</b> TVertex;<br /> |
− | |||
<b>var</b> | <b>var</b> | ||
TempMatrix:TMatrix; | TempMatrix:TMatrix; | ||
Zeile 49: | Zeile 48: | ||
glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); | glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); | ||
glMatrixMode(GL_MODELVIEW); | glMatrixMode(GL_MODELVIEW); | ||
− | glLoadIdentity; | + | glLoadIdentity; <br /> |
− | |||
glTranslatef(-0.8,-0.5,0); <font color="#000080"><i>//Vorgebene Startposition</i></font> | glTranslatef(-0.8,-0.5,0); <font color="#000080"><i>//Vorgebene Startposition</i></font> | ||
− | glGetFloatv(GL_MODELVIEW_MATRIX,@TempMatrix);<font color="#000080"><i>//Matrix wird gespeichert | + | glGetFloatv(GL_MODELVIEW_MATRIX,@TempMatrix);<font color="#000080"><i>//Matrix wird gespeichert<br /> |
− | |||
{Rotes Dreieck}</i></font> | {Rotes Dreieck}</i></font> | ||
glColor3f(1,0,0); | glColor3f(1,0,0); | ||
Zeile 62: | Zeile 59: | ||
glvertex3f(0,0 ,-2); | glvertex3f(0,0 ,-2); | ||
glend; | glend; | ||
− | glLoadMatrixf(@TempMatrix);<font color="#000080"><i>//Gespeicherte Matrix wird wieder geladen | + | glLoadMatrixf(@TempMatrix);<font color="#000080"><i>//Gespeicherte Matrix wird wieder geladen<br /> |
− | |||
{Grünes Dreieck}</i></font> | {Grünes Dreieck}</i></font> | ||
glColor3f(0,1,0); | glColor3f(0,1,0); |
Version vom 27. Dezember 2004, 22:28 Uhr
Inhaltsverzeichnis
glLoadMatrix
Name
glLoadMatrix - ersetzt die aktuelle Matrix durch eine Beliebige Matrix.
Delphi-Spezifikation
procedure glLoadMatrixd(const m: PGLdouble);
procedure glLoadMatrixf(const m: PGLfloat);
Parameter
m | Zeiger auf eine 4x4 Matrix welche die aktuelle Matrix ersetzen soll. |
Beschreibung
glLoadMatrix ersetzt die aktuelle Matrix durch die, über m definierte.
Die aktuelle Matrix ist entweder die Projektionsmatrix, die Modelviewmatrix oder die Texturematrix (je nach aktuellem Matrixmodus (glMatrixMode) ).
Der Parameter m zeigt auf eine 4x4 Matrix welche spaltenweise Fließkommazahlen mit einfacher oder doppelter Genauigkeit enthält (single oder double).
Die Matrix wird somit in folgender Reihenfolge gespeichert:
+- -+ | 0 4 8 12 | | 1 5 9 13 | | 2 6 10 14 | | 3 7 11 15 | +- -+
Beispiel-Quelltext
type TVektor = record X,Y,Z,W:glFloat end; TMatrix = array[(mat_XAchse,mat_YAchse,mat_ZAchse,mat_Position)] of TVertex; |
Fehlermeldungen
GL_INVALID_OPERATION wird generiert wenn glLoadMatrix innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_MATRIX_MODE
glGet mit Token GL_MODELVIEW_MATRIX
glGet mit Token GL_PROJECTION_MATRIX
glGet mit Token GL_TEXTURE_MATRIX