glLineWidth-Funktion

Die glLineWidth-Funktion gibt die Breite von gerasterten Linien an.

Syntax

void WINAPI glLineWidth(
   GLfloat width
);

Parameter

width

Die Breite gerasterter Linien. Der Standardwert ist 1.0.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Fehlercodes

Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.

Name Bedeutung
GL_INVALID_VALUE
die Breite war kleiner oder gleich 0.
GL_INVALID_OPERATION
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen.

Bemerkungen

Die glLineWidth-Funktion gibt die gerasterte Breite von Alias- und Antialiased-Linien an. Die Verwendung einer anderen Linienbreite als 1.0 hat unterschiedliche Auswirkungen, je nachdem, ob das Zeilen antialiasing aktiviert ist. Das Line Antialiasing wird gesteuert, indem glEnable und glDisable mit argument GL_LINE_SMOOTH aufgerufen wird.

Wenn das Zeilen-Antialiasing deaktiviert ist, wird die tatsächliche Breite bestimmt, indem die angegebene Breite auf die nächste ganze Zahl gerundet wird. (Wenn die Rundung den Wert 0,0 ergibt, ist es so, als wäre die Linienbreite 1,0) Wenn | ? x | = | ? y |, i Pixel werden in jeder Spalte gefüllt, die gerastert ist, wobei i der gerundete Wert der Breite ist. Andernfalls werden i-Pixel in jeder Zeile gefüllt, die gerastert ist.

Wenn das Antialiasing aktiviert ist, erzeugt die Linienrasterung ein Fragment für jedes Pixelquadrat, das den innerhalb des Rechtecks liegenden Bereich schneidet, wobei die Breite der aktuellen Linienbreite entspricht, die Länge der tatsächlichen Länge der Linie entspricht und auf dem mathematischen Liniensegment zentriert ist. Der Abdeckungswert für jedes Fragment ist der Fensterkoordinatenbereich des Schnittpunkts des rechteckigen Bereichs mit dem entsprechenden Pixelquadrat. Dieser Wert wird gespeichert und im abschließenden Rasterungsschritt verwendet.

Nicht alle Breiten können unterstützt werden, wenn das Zeilen-Antialiasing aktiviert ist. Wenn eine nicht unterstützte Breite angefordert wird, wird die nächstgelegene unterstützte Breite verwendet. Nur breite 1.0 wird garantiert unterstützt; andere sind von der Implementierung abhängig. Der Bereich der unterstützten Breiten und der Größenunterschied zwischen unterstützten Breiten innerhalb des Bereichs kann abgefragt werden, indem glGet mit Argumenten GL_LINE_WIDTH_RANGE und GL_LINE_WIDTH_GRANULARITY aufgerufen wird.

Die von glLineWidth angegebene Linienbreite wird immer zurückgegeben, wenn GL_LINE_WIDTH abgefragt wird. Klemmen und Rundungen für Alias- und Antialiased-Linien haben keine Auswirkungen auf den angegebenen Wert.

Die Nicht antialiasierte Linienbreite kann auf ein implementierungsabhängiges Maximum geklemmt werden. Obwohl dieses Maximum nicht abgefragt werden kann, darf es nicht kleiner als der Maximalwert für Antialiased-Linien sein, gerundet auf den nächsten ganzzahligen Wert.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glLineWidth ab:

glGet mit argument GL_LINE_WIDTH

glGet mit Argument GL_LINE_WIDTH_RANGE

glGet mit Argument GL_LINE_WIDTH_GRANULARITY

glIsEnabled mit Argument GL_LINE_SMOOTH

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glEnable

glEnd

glIsEnabled