wglUseFontOutlinesW, fonction (wingdi.h)
La fonction wglUseFontOutlines crée un ensemble de listes d’affichage, un pour chaque glyphe de la police hiérarchique 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 premier glyphe de la police du contexte d’appareil spécifié. La taille carrée em de la police, la taille de grille notionale du contour 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 la direction z.
Thelpgmfparameter retourne une structure GLYPHMETRICSFLOAT qui contient des informations sur le positionnement et l’orientation de chaque glyphe dans une cellule de caractère.
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 hiérarchique souhaitée. La police hiérarchique 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 des contours de police.
unnamedParam3
Spécifie le nombre de glyphes dans l’ensemble de glyphes utilisés pour former les listes d’affichage des contours de police. La fonction wglUseFontOutlines crée nombre de listes d’affichage, 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 des 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 écart doit être égale ou supérieure à 0.
unnamedParam6
Spécifie la quantité d’une police extrudée dans la direction négative z. La valeur doit être égale ou supérieure à 0. Lorsque d’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 format est WGL_FONT_LINES, la fonction wglUseFontOutlines crée des polices avec des segments de ligne. Lorsque format est WGL_FONT_POLYGONS, wglUseFontOutlines crée des polices avec des polygones.
unnamedParam8
Pointe vers un tableau de countGLYPHMETRICSFLOAT structures qui doivent recevoir les métriques des glyphes. Lorsque lpgmf est NULL, aucune métrique de glyphe n’est retournée.
Valeur de retour
Lorsque la fonction réussit, la valeur de retour est TRUE.
Lorsque la fonction échoue, la valeur de retour est FAUX et aucune liste d’affichage n’est générée. Pour obtenir des informations d’erreur étendues, appelez GetLastError.
Remarques
La fonction wglUseFontOutlines définit les glyphes d’une police hiérarchique 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 a un numéro d’identification unique commençant par le numéro listBase.
Le wglUseFontOutlines fonction correspond approximativement aux contours de glyphe en subdividant les courbes B-spline quadratiques du contour en segments de trait, jusqu’à ce que la distance entre le contour et le milieu interpolé se trouve dans la valeur spécifiée par écart. Il s’agit du format final utilisé lorsque format est WGL_FONT_LINES. Lorsque vous spécifiez WGL_FONT_OUTLINES, les listes d’affichage créées ne contiennent pas de normales ; l’éclairage ne fonctionne donc 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 format comme WGL_FONT_POLYGONS les contours sont plus tessellés en triangles distincts, ventilateurs de triangle, bandes de triangles ou bandes quadrilatérales 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) ; Ainsi, la valeur frontale actuelle peut être modifiée. Pour la meilleure apparence du texte avec WGL_FONT_POLYGONS, découpez les visages de dos comme suit :
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
Une structure GLYPHMETRICSFLOAT contient des informations sur le positionnement et l’orientation de chaque glyphe dans une cellule de caractère. Le paramètre
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.");
Note
L’en-tête wingdi.h définit wglUseFontOutlines comme 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | wingdi.h |
bibliothèque | Opengl32.lib |
DLL | Opengl32.dll |