<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
		<id>https://wiki.delphigl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mikescher</id>
		<title>DGL Wiki - Benutzerbeiträge [de]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.delphigl.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mikescher"/>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php/Spezial:Beitr%C3%A4ge/Mikescher"/>
		<updated>2026-04-21T02:08:50Z</updated>
		<subtitle>Benutzerbeiträge</subtitle>
		<generator>MediaWiki 1.27.4</generator>

	<entry>
		<id>https://wiki.delphigl.com/index.php?title=wglUseFontBitmaps&amp;diff=24986</id>
		<title>wglUseFontBitmaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.delphigl.com/index.php?title=wglUseFontBitmaps&amp;diff=24986"/>
				<updated>2010-11-16T17:57:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mikescher: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= wglUseFontBitmaps =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Name ==&lt;br /&gt;
'''wglUseFontBitmaps''' - Erzeugt aus der Schrifteinstellungen des [[Device Context]] eine Reihe von [[glBitmap]] Befehlen für die Buchstaben und speichert diese in [[Displaylisten]].&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Delphi-Spezifikation ==&lt;br /&gt;
&lt;br /&gt;
 '''function''' wglUseFontBitmaps ('''''DC''''': HDC; '''''first''''', '''''count''''', '''''listBase''''': DWORD): BOOL;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Parameter ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; rules=&amp;quot;all&amp;quot;&lt;br /&gt;
! ''DC''&lt;br /&gt;
| Ein Display Context mit entsprechenden Font-Einstellungen.&lt;br /&gt;
|-&lt;br /&gt;
! ''first''&lt;br /&gt;
| Mit welchen Zeichen soll begonnen werden&lt;br /&gt;
|-&lt;br /&gt;
! ''count''&lt;br /&gt;
| Anzahl der zu erzeugenden Listen/Zeichen&lt;br /&gt;
|-&lt;br /&gt;
! ''listBase''&lt;br /&gt;
| Der Name/Index der Liste für das erste Zeichen&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Beschreibung ==&lt;br /&gt;
Die Schrifteinstellungen des [[Device Context]]es werden genutzt, um mit [[glBitmap]]-Befehlen die angebenen Zeichen in [[Displaylisten]] zu speichern.&lt;br /&gt;
Wenn ein Fehler auftritt, wird statt '''true''', '''false''' zurückgegeben und der Fehler kann über [[GetLastError]] abgerufen werden.&lt;br /&gt;
&lt;br /&gt;
== Hinweise ==&lt;br /&gt;
Jede Display Liste erhält logischerweise nur einen [[glBitmap]] Aufruf.&lt;br /&gt;
&lt;br /&gt;
Da der [[glBitmap]] Befehl genutzt wird ändert sich die Rasterposition nach aufruf einer Liste.&lt;br /&gt;
&lt;br /&gt;
Falls für ein Zeichen in der gewählten Schrift keine Daten vorliegen wird für dieses Zeichen eine leere Displayliste zurückgegeben.&lt;br /&gt;
&lt;br /&gt;
Die durch diese Funktion unter Windows zur Verfügung stehende Schrift hat eine festgelegte Größe und ist logischerweise nur 2D. Möchte man eine 3D-Schrift haben so kann man dafür den Befehl [[wglUseFontOutlines]] benutzen.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== Beispiel ==&lt;br /&gt;
&lt;br /&gt;
Zum Erstellen der Bitmapfonts gibt es wie üblich mehrere Wege. Einmal den Weg direkt über die Windowsapi oder den Weg über die Delphiklasse TFont. Das Zeichnen bleibt bei beiden gleich. Aus diesem Grund ist es auch vom Rest ein wenig getrennt.&lt;br /&gt;
&lt;br /&gt;
=== Procedural ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  FontLists: Cardinal;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure CreateLists; // Wird einmal am Anfang aufgerufen&lt;br /&gt;
var&lt;br /&gt;
  CustomFont: HFont;&lt;br /&gt;
begin&lt;br /&gt;
  FontLists := glGenLists(256);&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  // CustomFont := GetStockObject (SYSTEM_FONT);&lt;br /&gt;
  // Eine Alternative mit der man die Systemschriftart zurück bekommt.&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  CustomFont := CreateFont(&lt;br /&gt;
                           32,                  // Höhe&lt;br /&gt;
                           0,                   // Breite 0=Keine Vorgabe&lt;br /&gt;
                           0,&lt;br /&gt;
                           0,&lt;br /&gt;
                           0,                   // Fett?&lt;br /&gt;
                           0,                   // Kursiv?&lt;br /&gt;
                           0,                   // Unterstrichen?&lt;br /&gt;
                           0,                   // Durchgestrichen?&lt;br /&gt;
                           ANSI_CHARSET,&lt;br /&gt;
                           OUT_TT_PRECIS,&lt;br /&gt;
                           CLIP_DEFAULT_PRECIS,&lt;br /&gt;
                           NONANTIALIASED_QUALITY,&lt;br /&gt;
                           FF_DONTCARE or DEFAULT_PITCH,&lt;br /&gt;
                           'Times New Roman');  // Name der Schrift&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  SelectObject(DC, CustomFont);               // Font auf einen Device Context benutzen&lt;br /&gt;
  wglUseFontBitmaps (DC, 0, 255, FontLists);  // Mit selektiertem Font Zeichen erstellen&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Objekt orientiert ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
var&lt;br /&gt;
  Font: TFont;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure CreateLists; // Wird einmal am Anfang aufgerufen&lt;br /&gt;
begin&lt;br /&gt;
  FontLists := glGenLists(256);&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
  Font := TFont.Create;  // Instanz einer Fontklasse erstellen&lt;br /&gt;
  try&lt;br /&gt;
    Font.Name := 'Times New Roman'; // Name&lt;br /&gt;
    Font.Size := 32;                // Schriftgröße&lt;br /&gt;
    Font.Style := [fsBold];         // Styles (fsBold, fsItalic, ...)&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    SelectObject(DC, Font.Handle);              // Font auf einen Device Context benutzen&lt;br /&gt;
    wglUseFontBitmaps (DC, 0, 255, FontLists);  // Mit selektiertem Font Zeichen erstellen&lt;br /&gt;
  finally&lt;br /&gt;
    FreeAndNil(Font);  // erstellte Instanz wieder frei geben&lt;br /&gt;
  end;&lt;br /&gt;
end;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bitmapfonts benutzen ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;pascal&amp;quot;&amp;gt;&lt;br /&gt;
procedure ShowText(pText: AnsiString);&lt;br /&gt;
begin&lt;br /&gt;
   glListBase(FontLists);  // Liste auswählen&lt;br /&gt;
   glCallLists(Length(pText), GL_UNSIGNED_BYTE, Pointer(pText));  // Entsprechende Listen aufrufen&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
procedure Draw;  // Zeichen Routine&lt;br /&gt;
begin&lt;br /&gt;
  glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);&lt;br /&gt;
  glColor3f(1,0.5,0);        // Aktuelle Farbe für glRasterPos festlegen&lt;br /&gt;
  glRasterPos3f(-0.1,0,-1);  // (sichtbare) Rasterposition eintellen&lt;br /&gt;
  ShowText('OpenGL ');&lt;br /&gt;
  ShowText('Wiki');          // Steht nach &amp;quot;OpenGL&amp;quot; da glBitmap die Rasterposition verschiebt.&lt;br /&gt;
end;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[glBitmap]], [[glListBase]], [[glCallLists]], [[wglUseFontOutlines]]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:WGL|UseFontBitmaps]]&lt;/div&gt;</summary>
		<author><name>Mikescher</name></author>	</entry>

	</feed>