Condividi tramite


Funzione wglUseFontOutlinesW (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 utilizzati per disegnare caratteri 3D di tipi di carattere TrueType. Ogni elenco di visualizzazione descrive un contorno del 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, la dimensione della griglia notzionale del contorno del carattere originale da cui è montato il tipo di carattere, viene mappata 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 sull'orientamento di ogni glifo in una cella di caratteri.

Sintassi

BOOL wglUseFontOutlinesW(
  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 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 del 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 della struttura del carattere. La funzione wglUseFontOutlines crea conteggio elenchi di visualizzazione, 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 negativa z. Il valore deve essere uguale o maggiore di 0. Quando '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 formato è WGL_FONT_LINES, la funzione wglUseFontOutlines crea tipi di carattere con segmenti di linea. Quando formato è WGL_FONT_POLYGONS, wglUseFontOutlines crea tipi di carattere con poligoni.

unnamedParam8

Punta a una matrice di conteggiostrutture GLYPHMETRICSFLOAT 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 viene TRUE.

Quando la funzione ha esito negativo, il valore restituito viene FALSE e non vengono generati elenchi di visualizzazione. Per ottenere informazioni estese sull'errore, chiamare GetLastError.

Osservazioni

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 i tipi di carattere TrueType; i tipi di carattere tratti e raster non sono supportati.

Ogni elenco di visualizzazione è costituito da segmenti di linea o poligoni e ha un numero di identificazione univoco a partire dal listBase numero.

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 si trova all'interno del valore specificato da deviazione. Questo è il formato finale utilizzato quando formato è WGL_FONT_LINES. Quando si specifica WGL_FONT_OUTLINES, gli elenchi di visualizzazione creati non contengono normali; così 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 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 posteriore come segue:

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

Una struttura GLYPHMETRICSFLOAT contiene informazioni sulla posizione e sull'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 il gmfCellIncX e gmfCellIncY membri del GLYPHMETRICSFLO AT corrispondente. La traduzione consente il disegno di caratteri successivi nella direzione naturale con una singola chiamata a glCallLists.

Nota Con OpenGL per Windows, non è possibile effettuare chiamate GDI a un contesto di dispositivo quando un formato pixel è doppio buffer. È possibile aggirare questa limitazione usando wglUseFontOutlines e wglUseFontBitmaps, quando si usano contesti di dispositivo con buffer doppio.
 

Esempi

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 non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione wingdi.h
libreria Opengl32.lib
dll Opengl32.dll

Vedere anche

GLYPHMETRICSFLOAT

OpenGL in Windows

funzioni WGL

glCallLists

glListBase

glTexGen

wglUseFontBitmaps