Win32 API 日本語リファレンス
ホームGraphics.DirectWrite › IDWriteFontFace2

IDWriteFontFace2

COM
IIDd8b768ff-64bc-4e66-982b-ec8e87f693f7継承元IDWriteFontFace1自前メソッド開始 vtbl30

公式ドキュメント

フォントフェイスの種類、適切なファイル参照、フェイス識別データを格納します。(IDWriteFontFace2)

メソッド 5

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 30 BOOL IsColorFont()

カラーレンダリングパスが必要となる可能性があるかどうかを判断できます。

戻り値

種類: BOOL

カラーレンダリングパスが必要となる可能性がある場合は TRUE を返します。

vtbl 31 DWORD GetColorPaletteCount()

フォントで定義されているカラーパレットの数を取得します。

戻り値

フォントにカラー情報がない場合、戻り値は 0 になります。カラーフォントは少なくとも 1 つのパレットを定義する必要があり、パレットインデックス 0 は既定のパレットとして予約されています。

vtbl 32 DWORD GetPaletteEntryCount()

各カラーパレット内のエントリ数を取得します。

戻り値

各カラーパレット内のエントリ数。フォント内のすべてのカラーパレットは同じ数のパレットエントリを持ちます。フォントにカラー情報がない場合、戻り値は 0 になります。

vtbl 33 HRESULT GetPaletteEntries(DWORD colorPaletteIndex, DWORD firstEntryIndex, DWORD entryCount, DWRITE_COLOR_F* paletteEntries)

フォントのカラーパレットからカラー値を取得します。

colorPaletteIndexDWORDinカラーパレットの 0 から始まるインデックス。指定したインデックスのパレットがフォントに存在しない場合、このメソッドは DWRITE_E_NOCOLOR を返します。
firstEntryIndexDWORDin読み取る最初のパレットエントリの 0 から始まるインデックス。
entryCountDWORDin読み取るパレットエントリの数。
paletteEntriesDWRITE_COLOR_F*outカラー値を受け取る配列。

戻り値

このメソッドは次のいずれかの値を返すことがあります。

戻り値 説明
E_INVALIDARG
firstEntryIndexentryCount の合計が、GetPaletteEntryCount メソッドが返す実際のパレットエントリ数を超えています。
DWRITE_E_NOCOLOR
指定したパレットインデックスのパレットがフォントに存在しません。
vtbl 34 HRESULT GetRecommendedRenderingMode(FLOAT fontEmSize, FLOAT dpiX, FLOAT dpiY, DWRITE_MATRIX* transform, BOOL isSideways, DWRITE_OUTLINE_THRESHOLD outlineThreshold, DWRITE_MEASURING_MODE measuringMode, IDWriteRenderingParams* renderingParams, DWRITE_RENDERING_MODE* renderingMode, DWRITE_GRID_FIT_MODE* gridFitMode)

フォント、サイズ、ワールド変換、および測定モードに基づいて、使用が推奨されるテキストレンダリングモードとグリッドフィットモードを判定します。(IDWriteFontFace2.GetRecommendedRenderingMode)

fontEmSizeFLOATinDIP 単位の論理フォントサイズ。
dpiXFLOATin水平方向の論理インチあたりのピクセル数。
dpiYFLOATin垂直方向の論理インチあたりのピクセル数。
transformDWRITE_MATRIX*inoptionalワールド変換を記述する DWRITE_MATRIX 構造体。
isSidewaysBOOLinフォントが横倒し(sideways)かどうかを指定します。フォントが横倒しの場合は TRUE、それ以外の場合は FALSE
outlineThresholdDWRITE_OUTLINE_THRESHOLDinグラフィックスシステムのアウトラインレンダリングの品質を指定する DWRITE_OUTLINE_THRESHOLD 型の値。アウトラインレンダリングが使用されるサイズのしきい値に影響します。
measuringModeDWRITE_MEASURING_MODEinテキストレイアウト時の測定に使用する方法を指定する DWRITE_MEASURING_MODE 型の値。適切なグリフ間隔を得るために、このメソッドは指定した測定モードと互換性のあるレンダリングモードを返します。
renderingParamsIDWriteRenderingParams*inoptionalレンダリングパラメーターオブジェクトの IDWriteRenderingParams インターフェイスへのポインター。このパラメーターは、レンダリングパラメーターオブジェクトがレンダリングモードをオーバーライドする場合に必要です。
renderingModeDWRITE_RENDERING_MODE*out推奨されるレンダリングモードを表す DWRITE_RENDERING_MODE 型の値を受け取る変数へのポインター。
gridFitModeDWRITE_GRID_FIT_MODE*out推奨されるグリッドフィットモードを表す DWRITE_GRID_FIT_MODE 型の値を受け取る変数へのポインター。

戻り値

種類: HRESULT

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。