fonction wglUseFontOutlinesW (wingdi.h)
La fonction wglUseFontOutlines crée un ensemble de listes d’affichage, une pour chaque glyphe de la police de plan actuellement sélectionnée d’un contexte d’appareil, à utiliser avec le contexte de rendu actuel. Les listes d’affichage sont utilisées pour dessiner des caractères 3D de polices TrueType. Chaque liste d’affichage décrit un plan de glyphe en coordonnées à virgule flottante.
L’exécution des glyphes commence par le premierglyphe de la police du contexte d’appareil spécifié. La taille carrée em de la police, la taille de grille théorique du plan de police d’origine à partir de laquelle la police est ajustée, est mappée à 1.0 dans les coordonnées x et y dans les listes d’affichage. Le paramètre d’extrusion définit la profondeur de la police dans le sens z.
Thelpgmfparameter retourne une structure GLYPHMETRICSFLOAT qui contient des informations sur l’emplacement et l’orientation de chaque glyphe dans une cellule de caractères.
Syntaxe
BOOL wglUseFontOutlinesW(
HDC unnamedParam1,
DWORD unnamedParam2,
DWORD unnamedParam3,
DWORD unnamedParam4,
FLOAT unnamedParam5,
FLOAT unnamedParam6,
int unnamedParam7,
LPGLYPHMETRICSFLOAT unnamedParam8
);
Paramètres
unnamedParam1
Spécifie le contexte de l’appareil avec la police de plan souhaitée. La police de plan de hdc est utilisée pour créer les listes d’affichage dans le contexte de rendu actuel.
unnamedParam2
Spécifie le premier de l’ensemble de glyphes qui forment les listes d’affichage du plan de police.
unnamedParam3
Spécifie le nombre de glyphes dans l’ensemble de glyphes utilisés pour former les listes d’affichage du plan de police. La fonction wglUseFontOutlines crée des listes d’affichage de nombre , une liste d’affichage pour chaque glyphe dans un ensemble de glyphes.
unnamedParam4
Spécifie une liste d’affichage de départ.
unnamedParam5
Spécifie l’écart chordal maximal par rapport aux contours d’origine. Lorsque l’écart est égal à zéro, l’écart chordal équivaut à une unité de conception de la police d’origine. La valeur de l’écart doit être égale ou supérieure à 0.
unnamedParam6
Spécifie la quantité d’une police extrudée dans le sens z négatif. La valeur doit être égale ou supérieure à 0. Lorsque l’extrusion est 0, les listes d’affichage ne sont pas extrudées.
unnamedParam7
Spécifie le format, WGL_FONT_LINES ou WGL_FONT_POLYGONS, à utiliser dans les listes d’affichage. Lorsque le format est WGL_FONT_LINES, la fonction wglUseFontOutlines crée des polices avec des segments de ligne. Lorsque le format est WGL_FONT_POLYGONS, wglUseFontOutlines crée des polices avec des polygones.
unnamedParam8
Pointe vers un tableau de structures GLYPHMETRICSFLOAT de comptage qui doit recevoir les métriques des glyphes. Lorsque lpgmf a la valeur NULL, aucune métrique de glyphe n’est retournée.
Valeur retournée
Lorsque la fonction réussit, la valeur de retour est TRUE.
En cas d’échec de la fonction, la valeur de retour est FALSE et aucune liste d’affichage n’est générée. Pour obtenir des informations détaillées sur l’erreur, appelez GetLastError.
Remarques
La fonction wglUseFontOutlines définit les glyphes d’une police de plan avec des listes d’affichage dans le contexte de rendu actuel. La fonction wglUseFontOutlines fonctionne uniquement avec les polices TrueType ; les polices de trait et de raster ne sont pas prises en charge.
Chaque liste d’affichage se compose de segments de ligne ou de polygones, et possède un numéro d’identification unique commençant par le numéro listBase .
La fonction wglUseFontOutlines se rapproche des contours de glyphes en subdivisant les courbes B-spline quadratiques du plan en segments de trait, jusqu’à ce que la distance entre le contour et le point intermédiaire interpolé soit à l’intérieur de la valeur spécifiée par écart. Il s’agit du format final utilisé lorsque le format est WGL_FONT_LINES. Lorsque vous spécifiez WGL_FONT_OUTLINES, les listes d’affichage créées ne contiennent pas de normales ; par conséquent, l’éclairage ne fonctionne pas correctement. Pour obtenir l’éclairage correct des lignes, utilisez WGL_FONT_POLYGONS et définissez glPolygonMode( GL_FRONT, GL_LINE ). Lorsque vous spécifiez le format comme WGL_FONT_POLYGONS les contours sont ensuite divisés en triangles, ventilateurs de triangles, bandes de triangles ou bandes quadrilatérales distinctes pour créer la surface de chaque glyphe. Avec WGL_FONT_POLYGONS, les listes d’affichage créées appellent glFrontFace( GL_CW ) ou glFrontFace( GL_CCW) ; par conséquent, la valeur frontale actuelle peut être modifiée. Pour une apparence optimale du texte avec WGL_FONT_POLYGONS, effectuez l’abattage des faces arrière comme suit :
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
Une structure GLYPHMETRICSFLOAT contient des informations sur l’emplacement et l’orientation de chaque glyphe dans une cellule de caractères. Le paramètre lpgmf est un tableau de structures GLYPHMETRICSFLOAT contenant l’ensemble entier de glyphes pour une police. Chaque liste d’affichage se termine par une traduction spécifiée avec les membres gmfCellIncX et gmfCellIncY de la structure GLYPHMETRICSFLOAT correspondante. La traduction permet de dessiner des caractères successifs dans leur sens naturel avec un seul appel à glCallLists.
Exemples
L’exemple de code suivant montre comment dessiner du texte à l’aide de wglUseFontOutlines.
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.");
Notes
L’en-tête wingdi.h définit wglUseFontOutlines comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wingdi.h |
Bibliothèque | Opengl32.lib |
DLL | Opengl32.dll |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour