wglUseFontOutlines: Unterschied zwischen den Versionen
Aus DGL Wiki
Flo (Diskussion | Beiträge) K |
Flo (Diskussion | Beiträge) () |
||
Zeile 1: | Zeile 1: | ||
− | { | + | = wglUseFontOutlines = |
+ | |||
+ | <br> | ||
+ | == Name == | ||
+ | '''wglUseFontOutlines''' - Erzeugt Displaylisten mit 3D Buchstaben. | ||
+ | |||
+ | <br> | ||
+ | == Delphi-Spezifikation == | ||
+ | |||
+ | |||
+ | <b>function</b> wglUseFontOutlines(<b><i>DC</i></b>: HDC; <b><i>first</i></b>, <b><i>count</i></b>, <b><i>listBase</i></b>: DWORD; <b><i>deviation</i></b>, <b><i>extrusion</i></b>: Single; | ||
+ | <b><i>format</i></b>: Integer; <b><i>lpgmf</i></b> : PGlyphMetricsFloat): BOOL; | ||
+ | |||
+ | <br> | ||
+ | == Parameter == | ||
+ | |||
+ | {| border="1" rules="all" | ||
+ | ! 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]]) | ||
+ | |} | ||
+ | |||
+ | <br> | ||
+ | == Beschreibung == | ||
+ | |||
+ | Aus einer True Font Schrifteinstellung eines Device Contextes werden [[Display Liste]]n 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. | ||
+ | |||
+ | <br> | ||
+ | == Beispiel == | ||
+ | |||
+ | === Bild === | ||
+ | [[Bild:wglUseFontOutlines_Beispiel.png]] | ||
+ | === Quelltext === | ||
+ | <b>var</b> | ||
+ | FontLists:Cardinal; | ||
+ | agmf:<b>array</b> [0..255] <b>of</b> GLYPHMETRICSFLOAT ; | ||
+ | <br> | ||
+ | <b>procedure</b> NachAktivierung; | ||
+ | <b>var</b> | ||
+ | CustomFont:HFont; | ||
+ | <b>begin</b> | ||
+ | FontLists := glGenLists<b>(</b>256<b>)</b>; | ||
+ | <font color="#000080"><i>(*CustomFont := GetStockObject (SYSTEM_FONT);*)//Eine Alternative zu CreateFont</i></font> | ||
+ | CustomFont := CreateFont<b>(</b> | ||
+ | 32, <font color="#000080"><i>// Höhe</i></font> | ||
+ | 0, <font color="#000080"><i>// Breite 0=Keine Vorgabe</i></font> | ||
+ | 0, | ||
+ | 0, | ||
+ | 0, <font color="#000080"><i>// Fett?</i></font> | ||
+ | 0, <font color="#000080"><i>// Kursiv?</i></font> | ||
+ | 0, <font color="#000080"><i>// Unterstrichen?</i></font> | ||
+ | 0, <font color="#000080"><i>// Durchgestrichen?</i></font> | ||
+ | ANSI_CHARSET, | ||
+ | OUT_TT_PRECIS, | ||
+ | CLIP_DEFAULT_PRECIS, | ||
+ | NONANTIALIASED_QUALITY, | ||
+ | FF_DONTCARE <b>or</b> DEFAULT_PITCH, | ||
+ | <font color="#800000">'Times New Roman'</font><b>)</b>; <font color="#000080"><i>// Name der Schrift</i></font> | ||
+ | glEnable<b>(</b>GL_POINT_SMOOTH<b>)</b>; | ||
+ | SelectObject<b>(</b>glControl1.DC, CustomFont<b>)</b>; | ||
+ | wglUseFontOutlines<b>(</b>glControl1.DC, | ||
+ | 0, <font color="#000080"><i>//Von Zeichen #0</i></font> | ||
+ | 255, <font color="#000080"><i>//Bis Zeichen #255</i></font> | ||
+ | FontLists, | ||
+ | 0, <font color="#000080"><i>//So genau wie möglich</i></font> | ||
+ | 0.2, <font color="#000080"><i>//0.2 LE tiefe Buchstaben</i></font> | ||
+ | WGL_FONT_LINES,<font color="#000080"><i>//Linen keine Polygone</i></font> | ||
+ | @agmf<b>)</b>;<font color="#000080"><i>//Speichere dort die Informationen</i></font> | ||
+ | <b>end</b>; | ||
+ | <br> | ||
+ | <b>procedure</b> ShowText<b>(</b>pText:<b>String)</b>; | ||
+ | <b>begin</b> | ||
+ | glListBase<b>(</b>FontLists<b>)</b>;<font color="#000080"><i>// Liste auswählen</i></font> | ||
+ | glCallLists<b>(</b>Length<font color="#008000"><b>(</b></font>pText<font color="#008000"><b>)</b></font>, GL_UNSIGNED_BYTE, Pointer<font color="#008000"><b>(</b></font>pText<font color="#008000"><b>)</b></font><b>)</b>; | ||
+ | <b>end</b>; | ||
+ | <br> | ||
+ | <b>procedure</b> Zeichne; | ||
+ | <b>begin</b> | ||
+ | glClear<b>(</b>GL_COLOR_BUFFER_BIT <b>or</b> GL_DEPTH_BUFFER_BIT<b>)</b>; | ||
+ | glLoadIdentity; | ||
+ | glColor3f<b>(</b>1,1,0<b>)</b>;<font color="#000080"><i>//Farbe Gelb</i></font> | ||
+ | glTranslatef<b>(</b>-1,0,-2<b>)</b>;<font color="#000080"><i>//Position festlegen</i></font> | ||
+ | ShowText<b>(</b><font color="#800000">'Test'</font><b>)</b>; | ||
+ | <b>end</b>; | ||
+ | |||
+ | <br> | ||
+ | == Siehe auch == | ||
+ | [[wglUseFontBitmaps]], [[glListBase]], [[glCallLists]] und [[glTexGen]] |
Version vom 9. September 2004, 15:16 Uhr
Inhaltsverzeichnis
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;