次の方法で共有


wglUseFontOutlinesA 関数 (wingdi.h)

wglUseFontOutlines 関数は、現在のレンダリング コンテキストで使用するために、デバイス コンテキストの現在選択されているアウトライン フォントのグリフごとに 1 つずつ、一連の表示リストを作成します。 表示リストは、TrueType フォントの 3-D 文字を描画するために使用されます。 各表示リストには、浮動小数点座標のグリフ アウトラインが記述されています。

グリフの実行は、指定されたデバイス コンテキストのフォントの thefirstglyph で始まります。 フォントの角のサイズ (フォントが収まる元のフォント アウトラインの概念グリッド サイズ) は、表示リストの x 座標と y 座標で 1.0 にマップされます。 3-D パラメーターは、フォントの z 方向の奥行きを設定します。

Thelpgmfparameter は、文字セル内の各グリフの配置と方向に関する情報を含む GLYPHMETRICSFLOAT 構造体を返します。

構文

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

パラメーター

unnamedParam1

目的のアウトライン フォントを使用してデバイス コンテキストを指定します。 hdc のアウトライン フォントは、現在のレンダリング コンテキストで表示リストを作成するために使用されます。

unnamedParam2

フォント アウトライン表示リストを形成するグリフのセットの最初のセットを指定します。

unnamedParam3

フォント アウトライン表示リストの形成に使用するグリフのセット内のグリフの数を指定します。 wglUseFontOutlines 関数は、一連のグリフ グリフごとに 1 つの表示リスト 表示リストを作成します。

unnamedParam4

開始表示リストを指定します。

unnamedParam5

元のアウトラインからの最大和音偏差を指定します。 偏差が 0 の場合、和音偏差は元のフォントの 1 つのデザイン単位に相当します。 偏差 の値は 0 以上である必要があります。

unnamedParam6

z 方向の負の にフォントを押し出す量を指定します。 値は 0 以上である必要があります。 押し出し が 0 の場合、表示リストは押し出されません。

unnamedParam7

表示リストで使用する形式 (WGL_FONT_LINESまたはWGL_FONT_POLYGONS) を指定します。 書式 WGL_FONT_LINESすると、wglUseFontOutlines 関数によって、行セグメントを含むフォントが作成されます。 書式 WGL_FONT_POLYGONSすると、wglUseFontOutlines 多角形を含むフォントが作成されます。

unnamedParam8

グリフのメトリック受け取る GLYPHMETRICSFLOAT 構造体 カウントの配列を指します。 lpgmf が NULL場合、グリフ メトリックは返されません。

戻り値

関数が成功すると、戻り値は TRUE

関数が失敗すると、戻り値は FALSE され、表示リストは生成されません。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

wglUseFontOutlines 関数は、現在のレンダリング コンテキストに表示リストを含むアウトライン フォントのグリフを定義します。 wglUseFontOutlines 関数は TrueType フォントでのみ機能します。ストロークとラスター フォントはサポートされていません。

各表示リストは、線分またはポリゴンで構成され、listBase 番号から始まる一意の識別番号を持っています。

wglUseFontOutlines 関数は、アウトラインと補間された中間点の間の距離が偏差で指定された値の範囲内になるまで、アウトラインの 2 次 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 構造体の配列です。 各表示リストは、gmfCellIncX で指定された変換で終わり、対応する GLYPHMETRICSFLOAT 構造体の gmfCellIncY メンバーを します。 翻訳を使用すると、glCallListsを 1 回呼び出して、連続する文字を自然な方向 描画できます。

Windows 用 OpenGL では、ピクセル形式がダブル バッファーされている場合、デバイス コンテキストに対して GDI 呼び出しを行うことはできません。 この制限を回避するには、wglUseFontOutlines を使用し、wglUseFontBitmapsを します。これは、ダブルバッファリングされたデバイス コンテキストを使用する場合です。
 

次のコード例は、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 プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして wglUseFontOutlines を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wingdi.h
ライブラリ Opengl32.lib
DLL Opengl32.dll

関連項目

GLYPHMETRICSFLOAT を する

Windows で OpenGL を する

WGL 関数 の

glCallLists を する

glListBase を する

glTexGen を する

wglUseFontBitmaps を する