Funktions Anhang: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
 
K (Art der Parameterübergabe)
 
(9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Der Funktions Anhang==
 
==Der Funktions Anhang==
Um OpenGL flexibel zu halten, sind viele Funktionen überladen.
+
OpenGL Befehle sind immer nach einem ganz speziellen Muster aufgebaut:
  
Damit der Compiler genau weis wie die übergeben Parameter zu verstehen sind, gibt es alternative Funktionen welche die gleiche Aufgabe erfüllen. Diese unterscheiden sich vom Namen her nur durch einen Anhang, welcher genau festlegt wie die Werte übergeben werden.
+
{{Center|[[Bild:Befehlsaufbau_OpenGL.PNG]]}}
  
 +
 +
===Bibliotheken===
 +
Das Befehlschema ist nur für OpenGL Befehle definiert. Allerdings halten sich alle anderen Bibiotheken, die mit OpenGL zusammenarbeiten auch an das Schema, was das arbeiten erleichtert.
 +
 +
Folgende Bibiotheksbezeichner können vorkommen:
 +
* '''gl''' [[OpenGL-Funktionsübersicht#GL|Funktionsübersicht]]
 +
* '''glu''' [[OpenGL-Funktionsübersicht#GLU|Funktionsübersicht]]
 +
* '''wgl''' [[OpenGL-Funktionsübersicht#WGL|Funktionsübersicht]]
 +
* '''glX''' [[OpenGL-Funktionsübersicht#GLX|Funktionsübersicht]]
 +
* '''glut'''
  
 
===Anzahl der Parameter===
 
===Anzahl der Parameter===
Falls eine Funktion mit unterschiedlich vielen Parametern aufgerufen werden kann, dann wird dies duch eine Zahl angezeigt:
+
Als Parameteranzahl kommt 2, 3 und 4 in Frage.
  
z.B: [[glTexCoord]]'''2'''s
+
Wenn nur ein oder kein Parameter erwartet wird, wird keine 0 bzw. 1 geschrieben sondern dieser Teil übersprungen und direkt der Typ angehängt.
  
===Typ-Festlegung===
+
===Typ Kürzel===
Ein bis zwei Buchstaben legen Typ der übergeben Parameter fest
+
Ein bis zwei Buchstaben legen den Typ der übergeben Parameter fest:
{| Border=1
+
<div align="center">
 +
{| {{Prettytable_B1}}
 
|'''Anhang'''
 
|'''Anhang'''
 
|'''Bezeichnung'''
 
|'''Bezeichnung'''
|'''in Delphi'''
+
|'''Entspricht <br>Delphityp'''
 
|-
 
|-
 
|f
 
|f
Zeile 49: Zeile 60:
 
|LongWord
 
|LongWord
 
|}
 
|}
 +
</div>
  
z.B: [[glTranslate]]'''f'''
+
Einige Beispiele: [[glTranslate]]'''f''', [[glRotate]]'''f''', [[glVertex]]2'''i'''
  
 
===Art der Parameterübergabe===
 
===Art der Parameterübergabe===
Am Schluss kann der Buchstabe "v" stehen um festzulegen, dass die Werte als ein einziger Zeiger auf ein array des entsprechenden Types übergeben werden.
+
Am Schluss '''''kann''''' der Buchstabe "v" stehen um festzulegen, dass die Werte als ein einziger Zeiger auf ein Array des entsprechenden Types übergeben werden.
  
z.B: [[glColor]]3b'''v'''
+
z.B: [[glColor]]3b'''v''' (Hier erwartet der Befehl '''ein''' Feld mit '''drei''' Byte Werten.)

Aktuelle Version vom 27. Februar 2006, 15:21 Uhr

Der Funktions Anhang

OpenGL Befehle sind immer nach einem ganz speziellen Muster aufgebaut:

Befehlsaufbau OpenGL.PNG


Bibliotheken

Das Befehlschema ist nur für OpenGL Befehle definiert. Allerdings halten sich alle anderen Bibiotheken, die mit OpenGL zusammenarbeiten auch an das Schema, was das arbeiten erleichtert.

Folgende Bibiotheksbezeichner können vorkommen:

Anzahl der Parameter

Als Parameteranzahl kommt 2, 3 und 4 in Frage.

Wenn nur ein oder kein Parameter erwartet wird, wird keine 0 bzw. 1 geschrieben sondern dieser Teil übersprungen und direkt der Typ angehängt.

Typ Kürzel

Ein bis zwei Buchstaben legen den Typ der übergeben Parameter fest:

Anhang Bezeichnung Entspricht
Delphityp
f GLfloat Single
d GLdouble Double
b GLbyte ShortInt
s GLshort Smallint
i GLint Integer(Longint)
ub GLubyte Byte
us GLushort Word
ui GLuint LongWord

Einige Beispiele: glTranslatef, glRotatef, glVertex2i

Art der Parameterübergabe

Am Schluss kann der Buchstabe "v" stehen um festzulegen, dass die Werte als ein einziger Zeiger auf ein Array des entsprechenden Types übergeben werden.

z.B: glColor3bv (Hier erwartet der Befehl ein Feld mit drei Byte Werten.)