Funzione wglUseFontOutlinesA (wingdi.h)
La funzione wglUseFontOutlines crea un set di elenchi di visualizzazione, uno per ogni glifo del tipo di carattere struttura attualmente selezionato di un contesto di dispositivo, da usare con il contesto di rendering corrente. Gli elenchi di visualizzazione vengono usati per disegnare caratteri 3D di tipi di carattere TrueType. Ogni elenco di visualizzazione descrive il contorno di un glifo nelle coordinate a virgola mobile.
L'esecuzione dei glifi inizia con ilfirstglyph del tipo di carattere del contesto di dispositivo specificato. La dimensione quadrata em del tipo di carattere, le dimensioni della griglia notale del contorno del carattere originale da cui è montato il tipo di carattere, viene mappato a 1,0 nelle coordinate x e y negli elenchi di visualizzazione. Il parametro di estrusione imposta la profondità del tipo di carattere nella direzione z.
Illpgmfparameter restituisce una struttura GLYPHMETRICSFLOAT che contiene informazioni sulla posizione e l'orientamento di ogni glifo in una cella di caratteri.
Sintassi
BOOL wglUseFontOutlinesA(
HDC unnamedParam1,
DWORD unnamedParam2,
DWORD unnamedParam3,
DWORD unnamedParam4,
FLOAT unnamedParam5,
FLOAT unnamedParam6,
int unnamedParam7,
LPGLYPHMETRICSFLOAT unnamedParam8
);
Parametri
unnamedParam1
Specifica il contesto del dispositivo con il tipo di carattere della struttura desiderato. Il tipo di carattere struttura di hdc viene usato per creare gli elenchi di visualizzazione nel contesto di rendering corrente.
unnamedParam2
Specifica il primo set di glifi che formano gli elenchi di visualizzazione della struttura del carattere.
unnamedParam3
Specifica il numero di glifi nel set di glifi utilizzati per formare gli elenchi di visualizzazione struttura del tipo di carattere. La funzione wglUseFontOutlines crea elenchi di visualizzazione conteggio , un elenco di visualizzazione per ogni glifo in un set di glifi.
unnamedParam4
Specifica un elenco di visualizzazione iniziale.
unnamedParam5
Specifica la deviazione massima del coro dai contorni originali. Quando la deviazione è zero, la deviazione del coro equivale a un'unità di progettazione del tipo di carattere originale. Il valore della deviazione deve essere uguale o maggiore di 0.
unnamedParam6
Specifica la quantità di carattere estrusa nella direzione z negativa. Il valore deve essere uguale o maggiore di 0. Quando l'estrusione è 0, gli elenchi di visualizzazione non vengono estrusi.
unnamedParam7
Specifica il formato, WGL_FONT_LINES o WGL_FONT_POLYGONS, da utilizzare negli elenchi di visualizzazione. Quando format è WGL_FONT_LINES, la funzione wglUseFontOutlines crea tipi di carattere con segmenti di linea. Quando il formato è WGL_FONT_POLYGONS, wglUseFontOutlines crea tipi di carattere con poligoni.
unnamedParam8
Punta a una matrice di struttureGLYPHMETRICSFLOAT che ricevono le metriche dei glifi. Quando lpgmf è NULL, non viene restituita alcuna metrica del glifo.
Valore restituito
Quando la funzione ha esito positivo, il valore restituito è TRUE.
Quando la funzione ha esito negativo, il valore restituito è FALSE e non vengono generati elenchi di visualizzazione. Per informazioni dettagliate sull'errore, chiamare GetLastError.
Commenti
La funzione wglUseFontOutlines definisce i glifi di un tipo di carattere struttura con elenchi di visualizzazione nel contesto di rendering corrente. La funzione wglUseFontOutlines funziona solo con tipi di carattere TrueType; i tipi di carattere stroke e raster non sono supportati.
Ogni elenco di visualizzazione è costituito da segmenti di linea o poligoni e ha un numero di identificazione univoco che inizia con il numero listBase .
La funzione wglUseFontOutlines approssima i contorni del glifo suddividendo le curve quadratiche B-spline del contorno in segmenti di linea, fino a quando la distanza tra il contorno e il punto intermedio interpolato è all'interno del valore specificato dalla deviazione. Questo è il formato finale usato quando il formato è WGL_FONT_LINES. Quando si specifica WGL_FONT_OUTLINES, gli elenchi di visualizzazione creati non contengono normali; quindi l'illuminazione non funziona correttamente. Per ottenere la corretta illuminazione delle linee, usare WGL_FONT_POLYGONS e impostare glPolygonMode( GL_FRONT, GL_LINE ). Quando si specifica il formato come WGL_FONT_POLYGONS i contorni vengono ulteriormente tassellati in triangoli separati, ventole di triangoli, strisce di triangoli o strisce quadrilateri per creare la superficie di ogni glifo. Con WGL_FONT_POLYGONS, gli elenchi di visualizzazione creati chiamano glFrontFace( GL_CW ) o glFrontFace( GL_CCW ); pertanto il valore anteriore corrente potrebbe essere modificato. Per un aspetto ottimale del testo con WGL_FONT_POLYGONS, rimettere i visi indietro come indicato di seguito:
glCullFace(GL_BACK);
glEnable(GL_CULL_FACE);
Una struttura GLYPHMETRICSFLOAT contiene informazioni sulla posizione e l'orientamento di ogni glifo in una cella di caratteri. Il parametro lpgmf è una matrice di strutture GLYPHMETRICSFLOAT che contengono l'intero set di glifi per un tipo di carattere. Ogni elenco di visualizzazione termina con una traduzione specificata con i membri gmfCellIncX e gmfCellIncY della struttura GLYPHMETRICSFLOAT corrispondente. La traduzione consente il disegno di caratteri successivi nella loro direzione naturale con una singola chiamata a glCallLists.
Esempio
Nell'esempio di codice seguente viene illustrato come disegnare testo usando 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.");
Nota
L'intestazione wingdi.h definisce wglUseFontOutlines come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.
Requisiti
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wingdi.h |
Libreria | Opengl32.lib |
DLL | Opengl32.dll |