wglUseFontOutlinesA-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.
BOOL wglUseFontOutlinesA(
HDC unnamedParam1,
DWORD unnamedParam2,
DWORD unnamedParam3,
DWORD unnamedParam4,
FLOAT unnamedParam5,
FLOAT unnamedParam6,
int unnamedParam7,
LPGLYPHMETRICSFLOAT unnamedParam8
);
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
unnamedParam8
Verweist auf ein Array AnzahlGLYPHMETRICSFLOAT Strukturen, die die Metriken der Glyphen empfangen sollen. Wenn lpgmf-NULL-ist, werden keine Glyphenmetriken zurückgegeben.
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.
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.
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.");
Hinweis
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.
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 |