glXUseXFont

Aus DGL Wiki
Wechseln zu: Navigation, Suche

glXUseXFont

Name

glXUseXFont - Erzeugt Bitmap-Displaylisten aus einem XFont.


Delphi-Spezifikation

procedure glXUseXFont(font: XFont; first: Integer; count: Integer; listBase: Integer);


Parameter

font Gibt die Schriftart an, von der die Zeichen genommen werden sollen
first Index des ersten Zeichens
count Anzahl der Zeichen
listBase Index der ersten zu erzeugenden Displayliste


Beschreibung

Die Funktion glXUseXFont erzeugt count Displaylisten, welche die Indizes listBase bis listBase+count-1 tragen. Jede dieser Displaylisten enthält einen einzelnen glBitmap-Befehl. Die Parameter des glBitmap-Befehls der Displayliste listBase+i sind vom Zeichen first+i abhängig und die glBitmap-Parameter xorig, yorig, width und height werden anhand der Zeichenmetrik als descent-1, -lbearing, rbearing-lbearing und ascent+descent berechnet. Der Wert für xmove wird anhand der Breite des Zeichens bestimmt und ymove wird auf null gesetzt. Abschließend wird das Abbild des Zeichens in ein für glBitmap passendes Format umgewandelt.

Das Nutzen von glXUseXFont ist möglicherweise effizienter als auf die Schriftart selbst zuzugreifen und die Displaylisten explizit zu erzeugen, da die Displaylisten auf dem Server erzeugt werden, ohne einen Round Trip zu benötigen, und da der Server die Erzeugung der Displaylisten hinauszögern kann, bis auf diese auch tatsächlich zugegriffen wird.


Hinweise

Für alle Zeichen, die zwar angefordert wurden aber nicht in der Schriftart font definiert sind, werden leere Displaylisten erzeugt. glXUseXFont wird ignoriert, falls es keinen aktuellen GLX-Kontext gibt.


Fehlermeldungen

BadFont wird generiert, wenn font keine gültige Schriftart angibt.

GLXBadContextState wird generiert, wenn der aktuelle GLX-Kontext gerade Displaylisten erzeugt ("display-list construction mode").

GLXBadCurrentWindow wird generiert, falls die mit dem aktuellen Kontext des aufrufenden Threads assoziierte Zeichenfläche ein Fenster ist und dieses Fenster nicht mehr gültig ist.


Siehe auch

glBitmap, glXMakeCurrent