ホーム › Graphics.DirectWrite › IDWriteFactory4
IDWriteFactory4
COM公式ドキュメント
すべての DirectWrite オブジェクトのルートファクトリインターフェイスです。(IDWriteFactory4)
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 40 HRESULT TranslateColorGlyphRun(D2D_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN* glyphRun, DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription, DWRITE_GLYPH_IMAGE_FORMATS desiredGlyphImageFormats, DWRITE_MEASURING_MODE measuringMode, DWRITE_MATRIX* worldAndDpiTransform, DWORD colorPaletteIndex, IDWriteColorGlyphRunEnumerator1** colorLayers)
グリフランを一連のカラーグリフランに変換します。これらをレンダリングすることで、元の "base" ランのカラー表現を生成できます。
| baselineOrigin | D2D_POINT_2F | in | 変換前座標における、ベースグリフランの水平方向および垂直方向の原点。 |
| glyphRun | DWRITE_GLYPH_RUN* | in | 元の "base" グリフランへのポインター。 |
| glyphRunDescription | DWRITE_GLYPH_RUN_DESCRIPTION* | inoptional | 省略可能なグリフランの説明。 |
| desiredGlyphImageFormats | DWRITE_GLYPH_IMAGE_FORMATS | in | ランをどのデータ形式に分割するか。 |
| measuringMode | DWRITE_MEASURING_MODE | in | 各グリフの原点を計算するために必要な測定モード。 |
| worldAndDpiTransform | DWRITE_MATRIX* | inoptional | クライアントの座標空間からデバイス座標(ピクセル)への変換行列。すなわち、ワールド変換に DPI スケーリングを乗じたものです。 |
| colorPaletteIndex | DWORD | in | 使用するカラーパレットの 0 から始まるインデックス。 有効なインデックスは、IDWriteFontFace2::GetColorPaletteCount が返すフォント内のパレット数未満である必要があります。 |
| colorLayers | IDWriteColorGlyphRunEnumerator1** | out | 関数が成功した場合、カラーグリフランの取得に使用できる列挙子オブジェクトへのポインターを受け取ります。 ベースランにカラーグリフが含まれていない場合、出力ポインターは NULL となり、メソッドは DWRITE_E_NOCOLOR を返します。 |
戻り値
Type: HRESULT
フォントにカラー情報がない場合、グリフランにカラーグリフが含まれていない場合、または指定されたカラーパレットインデックスが範囲外の場合、DWRITE_E_NOCOLOR を返します。この場合、クライアントは元のグリフランをレンダリングする必要があります。それ以外の場合は、標準の HRESULT エラーコードを返します。
解説(Remarks)
IDWriteFactory2::TranslateColorGlyphRun の呼び出しは、次の形式を指定して IDWriteFactory4::TranslateColorGlyph run を呼び出すことと同等です: DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE|DWRITE_GLYPH_IMAGE_FORMATS_CFF|DWRITE_GLYPH_IMAGE_FORMATS_COLR。
vtbl 41 HRESULT ComputeGlyphOrigins(DWRITE_GLYPH_RUN* glyphRun, D2D_POINT_2F baselineOrigin, D2D_POINT_2F* glyphOrigins)
| glyphRun | DWRITE_GLYPH_RUN* | in | 各グリフの原点を計算する対象のグリフランである。 |
| baselineOrigin | D2D_POINT_2F | in | ランのベースライン原点座標である。 |
| glyphOrigins | D2D_POINT_2F* | out | 計算された各グリフの原点座標を受け取るD2D_POINT_2F配列の出力先である。 |
vtbl 42 HRESULT ComputeGlyphOrigins(DWRITE_GLYPH_RUN* glyphRun, DWRITE_MEASURING_MODE measuringMode, D2D_POINT_2F baselineOrigin, DWRITE_MATRIX* worldAndDpiTransform, D2D_POINT_2F* glyphOrigins)
| glyphRun | DWRITE_GLYPH_RUN* | in | 各グリフの原点を計算する対象のグリフランである。 |
| measuringMode | DWRITE_MEASURING_MODE | in | 計測方式を指定するDWRITE_MEASURING_MODEである。 |
| baselineOrigin | D2D_POINT_2F | in | ランのベースライン原点座標である。 |
| worldAndDpiTransform | DWRITE_MATRIX* | inoptional | ワールド変換とDPIを表す変換行列である。NULL可。 |
| glyphOrigins | D2D_POINT_2F* | out | 計算された各グリフの原点座標を受け取るD2D_POINT_2F配列の出力先である。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDWriteFactory4 "{4B0B5BD3-0797-4549-8AC5-FE915CC53856}" #usecom global IDWriteFactory4 IID_IDWriteFactory4 "{}" #comfunc global IDWriteFactory4_TranslateColorGlyphRun 40 int,var,var,int,int,var,int,sptr #comfunc global IDWriteFactory4_ComputeGlyphOrigins 41 var,int,var #comfunc global IDWriteFactory4_ComputeGlyphOrigins 42 var,int,int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteFactory4 "{4B0B5BD3-0797-4549-8AC5-FE915CC53856}" #usecom global IDWriteFactory4 IID_IDWriteFactory4 "{}" #comfunc global IDWriteFactory4_TranslateColorGlyphRun 40 int,sptr,sptr,int,int,sptr,int,sptr #comfunc global IDWriteFactory4_ComputeGlyphOrigins 41 sptr,int,sptr #comfunc global IDWriteFactory4_ComputeGlyphOrigins 42 sptr,int,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。