Condividi tramite


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.

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

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

Vedi anche

GLYPHMETRICSFLOAT

OpenGL in Windows

Funzioni WGL

glCallLists

glListBase

glTexGen

wglUseFontBitmaps