Portieren von bgn/end-Befehlen

IRIS GL verwendet das Begin/End-Paradigma, verfügt jedoch für jede Grafikprimitive über eine andere Funktion. Beispielsweise verwenden Sie wahrscheinlich bgnpolygon und endpolygon, um Polygone zu zeichnen, und bgnline und endline, um Linien zu zeichnen. In OpenGL verwenden Sie für beide die glBegin / glEnd-Struktur. In OpenGL zeichnen Sie die meisten geometrischen Objekte, indem Sie eine Reihe von Funktionen umschließen, die Scheitelpunkt, Normal, Texturen und Farben zwischen Paaren von glBegin- und glEnd-Aufrufen angeben. Beispiel:

void glBegin( GLenum mode) ; 
   /* vertex list, colors, normals, textures, materials */ 
void glEnd( void );

Die glBegin-Funktion verwendet einen einzelnen Parameter, der den Zeichnungsmodus und somit den Primitiven angibt. Hier sehen Sie ein OpenGL-Codebeispiel, das ein Polygon und dann eine Linie zeichnet:

glBegin( GL_POLYGON ) ; 
   glVertex2f(20.0, 10.0); 
   glVertex2f(10.0, 30.0); 
   glVertex2f(20.0, 50.0); 
   glVertex2f(40.0, 50.0); 
   glVertex2f(50.0, 30.0); 
   glVertex2f(40.0, 10.0); 
glEnd(); 
glBegin( GL_LINES ) ; 
   glVertex2i(100,100); 
   glVertex2i(500,500); 
glEnd();

Mit OpenGL zeichnen Sie verschiedene geometrische Objekte, indem Sie verschiedene Parameter für glBegin angeben. In der folgenden Tabelle sind die OpenGL glBegin-Parameter aufgeführt, die entsprechenden IRIS GL-Funktionen entsprechen.

IRIS GL-Funktion Wert des glBegin-Modus Bedeutung
bgnpoint GL _ POINTS Einzelne Punkte.
bgnline GL _ LINE _ STRIP Eine Reihe verbundener Liniensegmente.
bgnclosedline GL _ _ LINE-SCHLEIFE Eine Reihe verbundener Liniensegmente mit einem Segment, das zwischen dem ersten und dem letzten Scheitelstrich hinzugefügt wird.
GL _ LINES Vertices-Paare, die als einzelne Liniensegmente interpretiert werden.
bgnpolygon GL _ POLYGON Begrenzung eines einfachen konvexen Polygons.
_GL-DREIECKE Triples von Scheitelstellen, die als Dreiecke interpretiert werden.
bgntmesh GL _ TRIANGLE _ STRIP Verknüpfte Dreiecksstreifen.
GL _ TRIANGLE _ FAN Verknüpfte Lüfter von Dreiecken.
GL _ QUADS Vierfache von Scheitelungen, die als Quadrieren interpretiert werden.
bgnqstrip GL _ QUAD _ STRIP Verknüpfte Strips von Quadrierten.

Eine ausführliche Erläuterung der Unterschiede zwischen Dreiecksgittern, -strips und -Lüftern finden Sie unter Portieren von Dreiecken.

Es gibt keine Beschränkung für die Anzahl von Scheitelzeichen, die Sie zwischen einem glBegin / glEnd-Paar angeben können.

Zusätzlich zur Angabe von Scheiteltices innerhalb eines glBegin / glEnd-Paars können Sie eine aktuelle normale, aktuelle Texturkoordinate und eine aktuelle Farbe angeben. In der folgenden Tabelle sind die befehle aufgeführt, die in einem glBegin / glEnd-Paar gültig sind.

IRIS GL-Funktion OpenGL-Funktion Bedeutung
v2, v3, v4 glVertex Legt Scheitelpunktkoordinaten fest.
RGBcolor, cpack glColor Legt die aktuelle Farbe fest.
color glIndex Legt den aktuellen Farbindex fest.
n3f glNormal Legt normale Vektorkoordinaten fest.
glEvalCoord Wertet aktivierte ein- und zweidimensionale Zuordnungen aus.
callobj glCallList, glCallLists Führt Anzeigelisten aus.
t2 glTexCoord Legt Texturkoordinaten fest.
glEdgeFlag Steuert das Zeichnen von Kanten.
lmbind glMaterial Legt Materialeigenschaften fest.

Hinweis

Wenn Sie eine andere OpenGL-Funktion als die in der obigen Tabelle in einem glBegin / glEnd-Paar aufgeführten Verwenden, erhalten Sie unvorhersehbare Ergebnisse oder möglicherweise einen Fehler.