IDWriteFontFace2
COM公式ドキュメント
フォントフェイスの種類、適切なファイル参照、フェイス識別データを格納します。(IDWriteFontFace2)
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
カラーレンダリングパスが必要となる可能性があるかどうかを判断できます。
戻り値
種類: BOOL
カラーレンダリングパスが必要となる可能性がある場合は TRUE を返します。
フォントで定義されているカラーパレットの数を取得します。
戻り値
フォントにカラー情報がない場合、戻り値は 0 になります。カラーフォントは少なくとも 1 つのパレットを定義する必要があり、パレットインデックス 0 は既定のパレットとして予約されています。
各カラーパレット内のエントリ数を取得します。
戻り値
各カラーパレット内のエントリ数。フォント内のすべてのカラーパレットは同じ数のパレットエントリを持ちます。フォントにカラー情報がない場合、戻り値は 0 になります。
フォントのカラーパレットからカラー値を取得します。
| colorPaletteIndex | DWORD | in | カラーパレットの 0 から始まるインデックス。指定したインデックスのパレットがフォントに存在しない場合、このメソッドは DWRITE_E_NOCOLOR を返します。 |
| firstEntryIndex | DWORD | in | 読み取る最初のパレットエントリの 0 から始まるインデックス。 |
| entryCount | DWORD | in | 読み取るパレットエントリの数。 |
| paletteEntries | DWRITE_COLOR_F* | out | カラー値を受け取る配列。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| 戻り値 | 説明 |
|---|---|
| firstEntryIndex と entryCount の合計が、GetPaletteEntryCount メソッドが返す実際のパレットエントリ数を超えています。 | |
| 指定したパレットインデックスのパレットがフォントに存在しません。 |
フォント、サイズ、ワールド変換、および測定モードに基づいて、使用が推奨されるテキストレンダリングモードとグリッドフィットモードを判定します。(IDWriteFontFace2.GetRecommendedRenderingMode)
| fontEmSize | FLOAT | in | DIP 単位の論理フォントサイズ。 |
| dpiX | FLOAT | in | 水平方向の論理インチあたりのピクセル数。 |
| dpiY | FLOAT | in | 垂直方向の論理インチあたりのピクセル数。 |
| transform | DWRITE_MATRIX* | inoptional | ワールド変換を記述する DWRITE_MATRIX 構造体。 |
| isSideways | BOOL | in | フォントが横倒し(sideways)かどうかを指定します。フォントが横倒しの場合は TRUE、それ以外の場合は FALSE。 |
| outlineThreshold | DWRITE_OUTLINE_THRESHOLD | in | グラフィックスシステムのアウトラインレンダリングの品質を指定する DWRITE_OUTLINE_THRESHOLD 型の値。アウトラインレンダリングが使用されるサイズのしきい値に影響します。 |
| measuringMode | DWRITE_MEASURING_MODE | in | テキストレイアウト時の測定に使用する方法を指定する DWRITE_MEASURING_MODE 型の値。適切なグリフ間隔を得るために、このメソッドは指定した測定モードと互換性のあるレンダリングモードを返します。 |
| renderingParams | IDWriteRenderingParams* | inoptional | レンダリングパラメーターオブジェクトの IDWriteRenderingParams インターフェイスへのポインター。このパラメーターは、レンダリングパラメーターオブジェクトがレンダリングモードをオーバーライドする場合に必要です。 |
| renderingMode | DWRITE_RENDERING_MODE* | out | 推奨されるレンダリングモードを表す DWRITE_RENDERING_MODE 型の値を受け取る変数へのポインター。 |
| gridFitMode | DWRITE_GRID_FIT_MODE* | out | 推奨されるグリッドフィットモードを表す DWRITE_GRID_FIT_MODE 型の値を受け取る変数へのポインター。 |
戻り値
種類: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteFontFace2 "{D8B768FF-64BC-4E66-982B-EC8E87F693F7}" #usecom global IDWriteFontFace2 IID_IDWriteFontFace2 "{}" #comfunc global IDWriteFontFace2_IsColorFont 30 #comfunc global IDWriteFontFace2_GetColorPaletteCount 31 #comfunc global IDWriteFontFace2_GetPaletteEntryCount 32 #comfunc global IDWriteFontFace2_GetPaletteEntries 33 int,int,int,var #comfunc global IDWriteFontFace2_GetRecommendedRenderingMode 34 float,float,float,var,int,int,int,sptr,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteFontFace2 "{D8B768FF-64BC-4E66-982B-EC8E87F693F7}" #usecom global IDWriteFontFace2 IID_IDWriteFontFace2 "{}" #comfunc global IDWriteFontFace2_IsColorFont 30 #comfunc global IDWriteFontFace2_GetColorPaletteCount 31 #comfunc global IDWriteFontFace2_GetPaletteEntryCount 32 #comfunc global IDWriteFontFace2_GetPaletteEntries 33 int,int,int,sptr #comfunc global IDWriteFontFace2_GetRecommendedRenderingMode 34 float,float,float,sptr,int,int,int,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。