Freigeben über


wglUseFontOutlinesA-Funktion (wingdi.h)

Die wglUseFontOutlines-Funktion erstellt einen Satz von Anzeigelisten, eine für jede Glyphe der derzeit ausgewählten Gliederungsschriftart eines Gerätekontexts, zur Verwendung mit dem aktuellen Renderingkontext. Die Anzeigelisten werden verwendet, um 3D-Zeichen von TrueType-Schriftarten zu zeichnen. Jede Anzeigeliste beschreibt eine Glyphenkontur in Gleitkommakoordinaten.

Die Ausführung von Glyphen beginnt mit der Firstglyphe der Schriftart des angegebenen Gerätekontexts. Die quadratische Größe der Schriftart, die fiktive Rastergröße der ursprünglichen Schriftgliederung, aus der die Schriftart angepasst wird, wird in den x- und y-Koordinaten in den Anzeigelisten dem Wert 1,0 zugeordnet. Der Extrusionsparameter legt fest, wie viel Tiefe die Schriftart in z-Richtung hat.

Thelpgmfparameter gibt eine GLYPHMETRICSFLOAT-Struktur zurück, die Informationen über die Platzierung und Ausrichtung der einzelnen Glyphe in einer Zeichenzelle enthält.

Syntax

BOOL wglUseFontOutlinesA(
  HDC                 unnamedParam1,
  DWORD               unnamedParam2,
  DWORD               unnamedParam3,
  DWORD               unnamedParam4,
  FLOAT               unnamedParam5,
  FLOAT               unnamedParam6,
  int                 unnamedParam7,
  LPGLYPHMETRICSFLOAT unnamedParam8
);

Parameter

unnamedParam1

Gibt den Gerätekontext mit der gewünschten Gliederungsschriftart an. Die Gliederungsschriftart von hdc wird verwendet, um die Anzeigelisten im aktuellen Renderingkontext zu erstellen.

unnamedParam2

Gibt die erste der Glyphen an, die die Anzeigelisten der Schriftartgliederung bilden.

unnamedParam3

Gibt die Anzahl der Glyphen im Satz von Glyphen an, die zum Bilden der Anzeigelisten für die Schriftartgliederung verwendet werden. Die wglUseFontOutlines-Funktion erstellt Anzeigelisten für die Anzahl , eine Anzeigeliste für jede Glyphe in einem Satz von Glyphen.

unnamedParam4

Gibt eine Startanzeigeliste an.

unnamedParam5

Gibt die maximale Chordalabweichung von den ursprünglichen Konturen an. Wenn die Abweichung null ist, entspricht die Chordabweichung einer Entwurfseinheit der ursprünglichen Schriftart. Der Wert der Abweichung muss gleich oder größer 0 sein.

unnamedParam6

Gibt an, wie viel eine Schriftart in der negativen z-Richtung extrudiert wird. Der Wert muss gleich oder größer 0 sein. Wenn die Extrusion 0 ist, werden die Anzeigelisten nicht extrudiert.

unnamedParam7

Gibt das Format an, entweder WGL_FONT_LINES oder WGL_FONT_POLYGONS, das in den Anzeigelisten verwendet werden soll. Wenn das Format WGL_FONT_LINES ist, erstellt die wglUseFontOutlines-Funktion Schriftarten mit Zeilensegmenten. Wenn das Format WGL_FONT_POLYGONS ist, erstellt wglUseFontOutlines Schriftarten mit Polygonen.

unnamedParam8

Verweist auf ein Array von GLYPHMETRICSFLOAT-Count-Strukturen, die die Metriken der Glyphen empfangen sollen. Wenn lpgmfNULL ist, werden keine Glyphenmetriken zurückgegeben.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.

Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE , und es werden keine Anzeigelisten generiert. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie GetLastError auf.

Hinweise

Die wglUseFontOutlines-Funktion definiert die Glyphen einer Gliederungsschriftart mit Anzeigelisten im aktuellen Renderingkontext. Die wglUseFontOutlines-Funktion funktioniert nur mit TrueType-Schriftarten. Strich- und Rasterschriftarten werden nicht unterstützt.

Jede Anzeigeliste besteht aus Zeilensegmenten oder Polygonen und verfügt über eine eindeutige Identifikationsnummer, die mit der listBase-Nummer beginnt.

Die wglUseFontOutlines-Funktion nähert Glyphenkonturen an, indem die quadratischen B-Splinekurven der Kontur in Liniensegmente unterteilt werden, bis der Abstand zwischen der Kontur und dem interpolierten Mittelpunkt innerhalb des durch Abweichung angegebenen Werts liegt. Dies ist das endgültige Format, das verwendet wird, wenn das Format WGL_FONT_LINES. Wenn Sie WGL_FONT_OUTLINES angeben, enthalten die erstellten Anzeigelisten keine Normalen. daher funktioniert die Beleuchtung nicht ordnungsgemäß. Um die richtige Beleuchtung von Linien zu erhalten, verwenden Sie WGL_FONT_POLYGONS, und legen Sie glPolygonMode( GL_FRONT, GL_LINE ) fest. Wenn Sie das Format als WGL_FONT_POLYGONS werden die Konturen weiter in separate Dreiecke, Dreiecksfächer, Dreiecksstreifen oder viereckigen Streifen unterteilt, um die Oberfläche der einzelnen Glyphen zu erstellen. Bei WGL_FONT_POLYGONS rufen die erstellten Anzeigelisten glFrontFace( GL_CW ) oder glFrontFace( GL_CCW ) auf. Daher kann der aktuelle Front-Face-Wert geändert werden. Um die beste Darstellung von Text mit WGL_FONT_POLYGONS zu erzielen, klammern Sie die Rückflächen wie folgt ab:

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

Eine GLYPHMETRICSFLOAT-Struktur enthält Informationen über die Platzierung und Ausrichtung der einzelnen Glyphe in einer Zeichenzelle. Der lpgmf-Parameter ist ein Array von GLYPHMETRICSFLOAT-Strukturen , die den gesamten Satz von Glyphen für eine Schriftart enthalten. Jede Anzeigeliste endet mit einer Übersetzung, die mit den Membern gmfCellIncX und gmfCellIncY der entsprechenden GLYPHMETRICSFLOAT-Struktur angegeben ist. Die Übersetzung ermöglicht das Zeichnen aufeinanderfolgender Zeichen in ihrer natürlichen Richtung mit einem einzigen Aufruf von glCallLists.

Hinweis Mit OpenGL für Windows können Sie keine GDI-Aufrufe an einen Gerätekontext durchführen, wenn ein Pixelformat doppelt gepuffert ist. Sie können diese Einschränkung umgehen, indem Sie wglUseFontOutlines und wglUseFontBitmaps verwenden, wenn Sie doppelt gepufferte Gerätekontexte verwenden.
 

Beispiele

Im folgenden Codebeispiel wird gezeigt, wie Text mit wglUseFontOutlines gezeichnet wird.

HDC    hdc;  // A TrueType font has already been selected  
HGLRC  hglrc; 
GLYPHMETRICSFLOAT agmf[256]; 
 
// Make hglrc the calling thread's current rendering context  
wglMakeCurrent(hdc, hglrc); 
 
// create display lists for glyphs 0 through 255 with 0.1 extrusion  
// and default deviation. The display list numbering starts at 1000  
// (it could be any number)  
wglUseFontOutlines(hdc, 0, 255, 1000, 0.0f, 0.1f,  
            WGL_FONT_POLYGONS, &agmf); 
 
// Set up transformation to draw the string  
glLoadIdentity(); 
glTranslate(0.0f, 0.0f, -5.0f) 
glScalef(2.0f, 2.0f, 2.0f); 
 
// Display a string  
glListBase(1000); // Indicates the start of display lists for the glyphs  
// Draw the characters in a string  
glCallLists(24, GL_UNSIGNED_BYTE, "Hello Windows OpenGL World.");

Hinweis

Der wingdi.h-Header definiert wglUseFontOutlines als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wingdi.h
Bibliothek Opengl32.lib
DLL Opengl32.dll

Weitere Informationen

GLYPHMETRICSFLOAT

OpenGL unter Windows

WGL-Funktionen

glCallLists

glListBase

glTexGen

wglUseFontBitmaps