共用方式為


wglUseFontOutlinesA 函式 (wingdi.h)

wglUseFontOutlines 函式會建立一組顯示清單,其中一個用於裝置內容目前選取大綱字型的每個字元,以便與目前的轉譯內容搭配使用。 顯示清單用來繪製 TrueType 字型的 3D 字元。 每個顯示清單都會描述浮點座標的圖像外框。

字元的執行是以指定裝置內容字型的firstglyph 開頭。 字型的 em 平方大小、要從中安裝字型的原始字型外框的指標網格線大小,會對應至顯示清單中的 x 和 Y 座標中的 1.0。 立體化參數會設定字型在 z 方向的深度。

lpgmfparameter 會傳回 GLYPHMETRICSFLOAT 結構,其中包含字元單元格中每個字元的位置和方向相關信息。

語法

BOOL wglUseFontOutlinesA(
  HDC                 unnamedParam1,
  DWORD               unnamedParam2,
  DWORD               unnamedParam3,
  DWORD               unnamedParam4,
  FLOAT               unnamedParam5,
  FLOAT               unnamedParam6,
  int                 unnamedParam7,
  LPGLYPHMETRICSFLOAT unnamedParam8
);

參數

unnamedParam1

指定具有所需外框字型的裝置內容。 hdc 的外框字型可用來在目前的轉譯內容中建立顯示清單。

unnamedParam2

指定形成字型外框顯示清單的第一組字元。

unnamedParam3

指定用來形成字型外框顯示清單的字元集內的字元數目。 wglUseFontOutlines 函式會建立 計數 顯示清單,一組字元中每個圖像的一個顯示清單。

unnamedParam4

指定開始顯示清單。

unnamedParam5

指定原始外框的最大和弦偏差。 當偏差為零時,和弦偏差相當於原始字型的一個設計單位。 偏差 的值必須等於或大於 0。

unnamedParam6

指定以負 z 方向立體化字型。 值必須等於或大於 0。 當 立體化 為 0 時,顯示清單不會立體化。

unnamedParam7

指定要在顯示清單中使用的格式,WGL_FONT_LINES或WGL_FONT_POLYGONS。 當 格式 WGL_FONT_LINES 時,wglUseFontOutlines 函式會建立具有行段的字型。 當 格式 WGL_FONT_POLYGONS 時,wglUseFontOutlines 會使用多邊形建立字型。

unnamedParam8

指向 計數陣列,GLYPHMETRICSFLOAT 結構,該結構會接收圖像的計量。 lpgmfNULL時,不會傳回字元計量。

傳回值

函式成功時,傳回值會 TRUE

當函式失敗時,傳回值會 FALSE,而且不會產生任何顯示清單。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

言論

wglUseFontOutlines 函式會定義大綱字型的字元,並在目前的轉譯內容中顯示清單。 wglUseFontOutlines 函式僅適用於 TrueType 字型;不支援筆劃和點陣字型。

每個顯示清單都包含線條區段或多邊形,且具有從 listBase 編號開始的唯一識別編號。

wglUseFontOutlines 函式會藉由將外框的二次曲線二次曲線細分為線段,以近似字元外框,直到大綱與插補中間點之間的距離在 偏差所指定的值內。 這是 格式 WGL_FONT_LINES 時所使用的最終格式。 當您指定WGL_FONT_OUTLINES時,所建立的顯示清單不包含任何常態;因此,光源無法正常運作。 若要取得正確的線條光源,請使用WGL_FONT_POLYGONS並設定 glPolygonMode(GL_FRONT,GL_LINE )。 當您將 格式 指定為WGL_FONT_POLYGONS外框會進一步鑲嵌成個別的三角形、三角形風扇、三角形帶或四邊帶,以建立每個圖像的表面。 使用 WGL_FONT_POLYGONS,建立的顯示列表會呼叫 glFrontFaceGL_CW 或 glFrontFace(GL_CCW] :因此,可能會改變目前的正面值。 如需具有WGL_FONT_POLYGONS文字的最佳外觀,請依下列方式擷取後臉:

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

GLYPHMETRICSFLOAT 結構包含字元儲存格中每個字元的位置和方向的相關信息。 lpgmf 參數是一個 GLYPHMETRICSFLOAT 結構數位,其中包含字型的整組字元。 每個顯示清單的結尾都是使用對應之 GLYPHMETRICSFLOAT 結構之 gmfCellIncYgmfCellIncY 成員所指定的翻譯。 此轉譯可透過單一呼叫 glCallLists ,在自然方向繪製連續字元。

注意 搭配 OpenGL for Windows 時,您無法在圖元格式雙緩衝時對裝置內容進行 GDI 呼叫。 使用雙緩衝裝置內容時,您可以使用 wglUseFontOutlineswglUseFontBitmaps來解決此問題。
 

例子

下列程式代碼範例示範如何使用 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.");

注意

wingdi.h 標頭會根據 UNICODE 預處理器常數的定義,將 wglUseFontOutlines 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
支援的最低伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平臺 窗戶
標頭 wingdi.h
連結庫 Opengl32.lib
DLL Opengl32.dll

另請參閱

GLYPHMETRICSFLOAT

在 Windows 上 OpenGL

WGL 函式

glCallLists

glListBase

glTexGen

wglUseFontBitmaps