glLoadMatrix: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K ()
K (Trennlinien entfernt)
Zeile 3: Zeile 3:
 
<br>
 
<br>
 
== Name ==
 
== Name ==
----
 
 
'''glLoadMatrix''' - ersetzt die aktuelle Matrix durch eine Beliebige Matrix.
 
'''glLoadMatrix''' - ersetzt die aktuelle Matrix durch eine Beliebige Matrix.
  
Zeile 9: Zeile 8:
  
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
----
 
 
  '''procedure''' glLoadMatrixd('''const''' ''m'': PGLdouble); <br>
 
  '''procedure''' glLoadMatrixd('''const''' ''m'': PGLdouble); <br>
 
  '''procedure''' glLoadMatrixf('''const''' ''m'': PGLfloat);
 
  '''procedure''' glLoadMatrixf('''const''' ''m'': PGLfloat);
Zeile 15: Zeile 13:
 
<br>
 
<br>
 
== Parameter ==
 
== Parameter ==
----
 
 
<table border=1 rules=all>
 
<table border=1 rules=all>
 
<tr>
 
<tr>
Zeile 25: Zeile 22:
 
<br>
 
<br>
 
== Beschreibung ==  
 
== Beschreibung ==  
----
 
 
'''glLoadMatrix''' ersetzt die aktuelle Matrix durch die, über ''m'' definierte.<br>
 
'''glLoadMatrix''' ersetzt die aktuelle Matrix durch die, über ''m'' definierte.<br>
 
Die aktuelle Matrix ist entweder die Projektionsmatrix, die Modelviewmatrix oder die Texturematrix (je nach aktuellem Matrixmodus ([[glMatrixMode]]) ). <br>
 
Die aktuelle Matrix ist entweder die Projektionsmatrix, die Modelviewmatrix oder die Texturematrix (je nach aktuellem Matrixmodus ([[glMatrixMode]]) ). <br>
Zeile 81: Zeile 77:
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
----
 
 
GL_INVALID_OPERATION wird generiert wenn glLoadMatrix innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.
 
GL_INVALID_OPERATION wird generiert wenn glLoadMatrix innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.
 
<br>
 
<br>
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
----
 
 
[[glGet]] mit Token GL_MATRIX_MODE<br>
 
[[glGet]] mit Token GL_MATRIX_MODE<br>
 
[[glGet]] mit Token GL_MODELVIEW_MATRIX<br>
 
[[glGet]] mit Token GL_MODELVIEW_MATRIX<br>
Zeile 93: Zeile 87:
 
<br>
 
<br>
 
== Siehe auch ==
 
== Siehe auch ==
----
 
 
[[glLoadIdentity]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]]
 
[[glLoadIdentity]], [[glMatrixMode]], [[glMultMatrix]], [[glPushMatrix]]

Version vom 16. August 2004, 01:06 Uhr

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

Als Ersatzt für glPushMatrix / glPopMatrix:
type
  TVektor = record X,Y,Z,W:glFloat end;
  TMatrix = array[(mat_XAchse,mat_YAchse,mat_ZAchse,mat_Position)] of TVertex;
var
  TempMatrix:TMatrix;
begin
 glClearColor(0,0,0,0);
 glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity;  
 glTranslatef(-0.8,-0.5,0); //Vorgebene Startposition
 glGetFloatv(GL_MODELVIEW_MATRIX,@TempMatrix);//Matrix wird gespeichert
 {Rotes Dreieck}
 glColor3f(1,0,0);
 gltranslatef(1,0,0);
 glbegin(GL_TRIANGLES);
   glvertex3f(1,0  ,-2);
   glvertex3f(0,1  ,-2);
   glvertex3f(0,0  ,-2);
 glend;
 glLoadMatrixf(@TempMatrix);//Gespeicherte Matrix wird wieder geladen
 {Grünes Dreieck}
 glColor3f(0,1,0);
 glbegin(GL_TRIANGLES);
   glvertex3f(1,0  ,-2);
   glvertex3f(0,1  ,-2);
   glvertex3f(0,0  ,-2);
 glend;
end;


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


Siehe auch

glLoadIdentity, glMatrixMode, glMultMatrix, glPushMatrix