wglUseFontOutlines

Aus DGL Wiki
Wechseln zu: Navigation, Suche

wglUseFontOutlines


Name

wglUseFontOutlines - Erzeugt Displaylisten mit 3D Buchstaben.


Delphi-Spezifikation

function wglUseFontOutlines(DC: HDC; first, count, listBase: DWORD; deviation, extrusion: Single;
                            format: Integer; lpgmf : PGlyphMetricsFloat): BOOL;


Parameter

DC Ein Display Context mit entsprechenden Font-Einstellungen.
first Mit welchen Zeichen soll begonnen werden
count Anzahl der zu erzeugenden Listen/Zeichen
ListBase Der Name/Index der Liste für das erste Zeichen
deviation Gibt die maximale Abweichung zur True Schrift vor
extrusion Tiefe der Zeichen(muss positiv sein)
format Legt fest ob die Buchstaben aus Linen oder Polygonen bestehen.
lpgmf Optionaler Puffer in den zusätliche Informationen zu den Zeichen geschrieben werden.(Siehe GLYPHMETRICSFLOAT)


Beschreibung

Aus einer True Font Schrifteinstellung eines Device Contextes werden Display Listen generiert. Diese enthalten dann die gewünschten Zeichen als Polygone oder als Linen. Wobei immer ein Zeichen in einer Display Liste enthalten ist.

Falls ein Fehler auftritt wird false statt true zurückgeben und keine Display Listen erzeugt. Nähere Informationen zum aufgetretenen Fehler erhält man mit der Funktion GetLastError.


Beispiel

Bild

Datei:wglUseFontOutlines Beispiel.png

Quelltext

var
  FontLists:Cardinal;
  agmf:array [0..255] of GLYPHMETRICSFLOAT ;

procedure NachAktivierung; var CustomFont:HFont; begin FontLists := glGenLists(256); (*CustomFont := GetStockObject (SYSTEM_FONT);*)//Eine Alternative zu CreateFont CustomFont := CreateFont( 32, // Höhe 0, // Breite 0=Keine Vorgabe 0, 0, 0, // Fett? 0, // Kursiv? 0, // Unterstrichen? 0, // Durchgestrichen? ANSI_CHARSET, OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, NONANTIALIASED_QUALITY, FF_DONTCARE or DEFAULT_PITCH, 'Times New Roman'); // Name der Schrift glEnable(GL_POINT_SMOOTH); SelectObject(glControl1.DC, CustomFont); wglUseFontOutlines(glControl1.DC, 0, //Von Zeichen #0 255, //Bis Zeichen #255 FontLists, 0, //So genau wie möglich 0.2, //0.2 LE tiefe Buchstaben WGL_FONT_LINES,//Linen keine Polygone @agmf);//Speichere dort die Informationen end;
procedure ShowText(pText:String); begin glListBase(FontLists);// Liste auswählen glCallLists(Length(pText), GL_UNSIGNED_BYTE, Pointer(pText)); end;
procedure Zeichne; begin glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glLoadIdentity; glColor3f(1,1,0);//Farbe Gelb glTranslatef(-1,0,-2);//Position festlegen ShowText('Test'); end;


Siehe auch

wglUseFontBitmaps, glListBase, glCallLists und glTexGen