共用方式為


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

glCullFace(GL_BACK); 
glEnable(GL_CULL_FACE);

GLYPHMETRICSFLOAT結構包含字元儲存格中每個字元的位置和方向的相關資訊。 lpgmf參數是GLYPHMETRICSFLOAT結構的陣列,保存字型的整組字元。 每個顯示清單都會以對應GLYPHMETRICSFLOAT結構的gmfCellIncXgmfCellIncY成員指定的翻譯結尾。 翻譯可透過單一呼叫 glCallLists,以自然方向繪製連續字元。

注意 使用適用于 Windows 的 OpenGL 時,當像素格式為雙緩衝時,您無法對裝置內容進行 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 標頭會將 wglUseFontOutlines 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wingdi.h
程式庫 Opengl32.lib
Dll Opengl32.dll

另請參閱

GLYPHMETRICSFLOAT

Windows 上的 OpenGL

WGL 函式

glCallLists

glListBase

glTexGen

wglUseFontBitmaps