Freigeben über


wglUseFontOutlinesW-Funktion (wingdi.h)

Die wglUseFontOutlines--Funktion erstellt eine Gruppe von Anzeigelisten, eine für jede Glyphe der aktuell ausgewählten Gliederungsschriftart eines Gerätekontexts für die 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 ersten Lyphe der Schriftart des angegebenen Gerätekontexts. Der quadratische Schriftgrad, der notionale Rastergrad der ursprünglichen Schriftgliederung, von der die Schriftart angebracht ist, wird in den x- und y-Koordinaten in den Anzeigelisten 1,0 zugeordnet. Der Extrusionsparameter legt fest, wie viel Tiefe die Schriftart in der Z-Richtung hat.

Thelpgmfparameter returns a GLYPHMETRICSFLOAT structure that contains information about the placement and orientation of each glyph in a character cell.

Syntax

BOOL wglUseFontOutlinesW(
  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 hdc wird verwendet, um die Anzeigelisten im aktuellen Renderingkontext zu erstellen.

unnamedParam2

Gibt den ersten Satz von Glyphen an, die die Anzeigelisten für die Schriftartkontur bilden.

unnamedParam3

Gibt die Anzahl der Glyphen in der Gruppe von Glyphen an, die verwendet werden, um die Schriftartgliederungsanzeigelisten zu bilden. Die wglUseFontOutlines--Funktion erstellt Anzahl Anzeigelisten, eine Anzeigeliste für jede Glyphe in einer Gruppe 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 Chordalabweichung einer Entwurfseinheit der ursprünglichen Schriftart. Der Wert der Abweichung muss gleich oder größer als 0 sein.

unnamedParam6

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

unnamedParam7

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

unnamedParam8

Verweist auf ein Array AnzahlGLYPHMETRICSFLOAT Strukturen, die die Metriken der Glyphen empfangen sollen. Wenn lpgmf-NULL-ist, werden keine Glyphenmetriken zurückgegeben.

Rückgabewert

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

Wenn die Funktion fehlschlägt, wird der Rückgabewert FALSE und keine Anzeigelisten generiert. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

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 Liniensegmenten oder Polygonen und weist eine eindeutige Identifikationsnummer auf, beginnend mit der listBase Nummer.

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

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

Eine GLYPHMETRICSFLOAT- Struktur enthält Informationen zur Platzierung und Ausrichtung jeder Glyphe in einer Zeichenzelle. Der lpgmf Parameter ist ein Array GLYPHMETRICSFLOAT Strukturen, die den gesamten Satz von Glyphen für eine Schriftart enthalten. Jede Anzeigeliste endet mit einer übersetzung, die mit der gmfCellIncX und gmfCellIncY Member der entsprechenden GLYPHMETRICSFLOAT Struktur angegeben ist. Die Übersetzung ermöglicht die Zeichnung aufeinander folgender 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 tätigen, wenn ein Pixelformat doppelt gepuffert wird. Sie können diese Einschränkung umgehen, indem Sie wglUseFontOutlines und wglUseFontBitmapsverwenden, wenn Sie doppelpufferte Gerätekontexte verwenden.
 

Beispiele

Das folgende Codebeispiel zeigt, wie Text mithilfe wglUseFontOutlinesgezeichnet 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.");

Anmerkung

The wingdi.h header defines wglUseFontOutlines as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. 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

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- wingdi.h
Library Opengl32.lib
DLL- Opengl32.dll

Siehe auch

GLYPHMETRICSFLOAT-

OpenGL unter Windows

WGL-Funktionen

glCallLists-

glListBase-

glTexGen-

wglUseFontBitmaps