glLineWidth

Aus DGL Wiki
Version vom 31. August 2004, 11:52 Uhr von Flo (Diskussion | Beiträge) (Der Kategorie GL zugeordnet)

Wechseln zu: Navigation, Suche

ACHTUNG DIESER ARTIKEL IST NOCH UNFERTIG

glLineWidth


Name

glLineWidth - definiert die Breite mit der Linien gerastert werden


Delphi-Spezifikation

procedure glLineWidth(width : TGLfloat);


Parameter

width Definiert die Breite mit der Linien gerastert werden sollen. Der Standardwert ist 1.


Beschreibung

glLineWidth setzt die Breite mit der sowohl aliased als auch antialiased Linien wiedergegeben werden. Wenn eine Linienbreite ungleich 1 verwendet wird, kann dies - abhängig ob Antialiasing aktiviert ist - unterschiedliche Effekte mit sich bringen. Antialiasing kann Linien mittels glEnable und dem Token GL_LINE_SMOOTH aktiviert und mittels glDisable (und GL_LINE_SMOOTH) wieder deaktiviert werden.
Antialiasing für Linien ist bei der Initalisierung deaktiviert.

Wenn Antialiasing für Linien deaktiviert ist, wird die tatsächliche Breite durch Runden auf den nächst gelegenen Integer-Wert ermittelt. (Wenn das Rundungsergebnis den Wert 0 ergeben sollte, wird so weiter gearbeitet als sei die Linienbreite 1). Wenn | Δx | >= | Δy |, werden i Pixel in jeder Spalte gefüllt, wobei i der Rundungswert der Breite ist. Ansonsten werden in jeder Reihe die gerastert wird i Pixel gefüllt.

If antialiasing is enabled, line rasterization produces a fragment for each pixel square that intersects the region lying within the rectangle having width equal to the current line width, length equal to the actual length of the line, and centered on the mathematical line segment. The coverage value for each fragment is the window coordinate area of the intersection of the rectangular region with the corresponding pixel square. This value is saved and used in the final rasterization step.

Wenn Antialiasing aktiviert ist können nicht alle Breiten unterstützt werden. Wenn eine nicht unterstützte Breite angefordert wird, wird die nächste unterstützte Breite verwendet. Nur die Breite "1.0" wird garantiert unterstützt, andere Breiten sind abhängig von der jeweiligen Implementierung. Um die Spanne der möglichen Breiten und die Größenabstände zwischen den unterstützen Breiten abzufragen, kann glGet mit den Tokens GL_LINE_WIDTH_RANGE bzw. GL_LINE_WIDTH_GRANULARITY benutzt werden.



Hinweise

Die eingestellte Breite der Linien wird immer zurückgegeben, wenn GL_LINE_WIDTH abgefragt wird. Clamping und Runden beim Antialising kann eine Auswirkung auf die dargestellte Breite haben. Dies wird jedoch bei dem Rückgabewert nicht berücksichtigt.


Übersetzung folgt.(phobeus) Non-antialiased line width may be clamped to an implementation-dependent maximum. Although this maximum cannot be queried, it must be no less than the maximum value for antialiased lines, rounded to the nearest integer value. Auch wenn der maximale Wert hierfür nicht abgefragt werden kann, so darf er nicht geringer sein als der maximale Wert für antialiased Linien gerundet auf den nächsten Integer-Wert.

Fehlermeldungen

GL_INVALID_VALUE wird generiert wenn die Breite kleiner oder gleich Null ist.
GL_INVALID_OPERATION wird generiert wenn glLineWidth zwischen einem glBegin oder dem dazugehörigen glEnd ausgeführt wird.


Zugehörige Wertrückgaben

glGet mit Token GL_LINE_WIDTH
glGet mit Token GL_LINE_WIDTH_RANGE
glGet mit Token GL_LINE_WIDTH_GRANULARITY
glGet mit Token GL_LINE_SMOOTH


Siehe auch

glEnable