IDWriteFactory2
COM公式ドキュメント
すべての DirectWrite オブジェクトのルートとなるファクトリインターフェイスです。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
システムのフォントフォールバックリストからフォントフォールバックオブジェクトを作成します。
| fontFallback | IDWriteFontFallback** | out | 新しく作成されたフォントフォールバックオブジェクトへのポインターのアドレスを格納します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
フォントフォールバックビルダーオブジェクトを作成します。
| fontFallbackBuilder | IDWriteFontFallbackBuilder** | out | 新しく作成されたフォントフォールバックビルダーオブジェクトへのポインターのアドレスを格納します。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
このメソッドはグリフランに対して呼び出され、それを複数のカラーグリフランへと変換します。
| baselineOriginX | FLOAT | in | 元のグリフランの水平方向のベースライン原点。 |
| baselineOriginY | FLOAT | in | 元のグリフランの垂直方向のベースライン原点。 |
| glyphRun | DWRITE_GLYPH_RUN* | in | モノクロのグリフ ID を含む元のグリフラン。 |
| glyphRunDescription | DWRITE_GLYPH_RUN_DESCRIPTION* | inoptional | 省略可能なグリフランの記述。 |
| measuringMode | DWRITE_MEASURING_MODE | in | ランがカラーグリフを含む場合にグリフの位置を計算するために使用する測定モード。 |
| worldToDeviceTransform | DWRITE_MATRIX* | inoptional | ワールド変換に DPI スケーリングを乗じたもの。ランがカラーグリフを含み、かつ測定モードが DWRITE_MEASURING_MODE_NATURAL でない場合に、グリフの位置を計算するために必要です。 このパラメーターが NULL の場合は、単位変換が想定されます。 |
| colorPaletteIndex | DWORD | in | 使用するカラーパレットの 0 から始まるインデックス。有効なインデックスは、 IDWriteFontFace2::GetColorPaletteCount が返すフォント内のパレット数未満です。 |
| colorLayers | IDWriteColorGlyphRunEnumerator** | out | 元のグリフランがカラーグリフを含む場合、このパラメーターは IDWriteColorGlyphRunEnumerator インターフェイスへのポインターを受け取ります。 クライアントは、返されたインターフェイスを使用して、元のグリフランの代わりに描画するグリフランおよび関連する色に関する情報を取得します。 元のグリフランがカラーグリフを含まない場合、このメソッドは DWRITE_E_NOCOLOR を返し、出力ポインターは NULL になります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
カラー情報を含まないグリフランを指定してこのメソッドを呼び出した場合、メソッドは DWRITE_E_NOCOLOR を返し、 アプリケーションに対して元のグリフランをそのまま描画できることを知らせます。グリフランがカラー情報を含む場合、この関数は、 列挙することでランおよび関連する色を取得できるオブジェクトを返します。次にアプリケーションは、 返された各グリフランと前景色を指定して DrawGlyphRun を呼び出します。
指定したプロパティを持つレンダリングパラメーターオブジェクトを作成します。(IDWriteFactory2.CreateCustomRenderingParams)
| gamma | FLOAT | in | ガンマ補正に使用するガンマ値。0 より大きく、256 を超えることはできません。 |
| enhancedContrast | FLOAT | in | コントラスト強調の量。0 以上。 |
| grayscaleEnhancedContrast | FLOAT | in | コントラスト強調の量。0 以上。 |
| clearTypeLevel | FLOAT | in | ClearType レベルの度合い。0.0f(ClearType なし)から 1.0f(完全な ClearType)まで。 |
| pixelGeometry | DWRITE_PIXEL_GEOMETRY | in | デバイスピクセルのジオメトリ。 |
| renderingMode | DWRITE_RENDERING_MODE | in | グリフのレンダリング方法。ほとんどの場合、適切なモードを自動的に使用するために DWRITE_RENDERING_MODE_DEFAULT を指定します。 |
| gridFitMode | DWRITE_GRID_FIT_MODE | in | グリフのアウトラインをグリッドフィットする方法。ほとんどの場合、適切なモードを自動的に選択するために DWRITE_GRID_FIT_DEFAULT を指定します。 |
| renderingParams | IDWriteRenderingParams2** | out | 新しく作成されたレンダリングパラメーターオブジェクトを保持します。失敗した場合は NULL になります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
グリフランのレンダリングに使用する情報をカプセル化する、グリフラン解析オブジェクトを作成します。(IDWriteFactory2.CreateGlyphRunAnalysis)
| glyphRun | DWRITE_GLYPH_RUN* | in | グリフランのプロパティを指定する構造体。 |
| transform | DWRITE_MATRIX* | inoptional | グリフおよびその位置に適用される省略可能な変換。この変換は、emSize と pixelsPerDip で指定される スケーリングの後に適用されます。 |
| renderingMode | DWRITE_RENDERING_MODE | in | レンダリングモードを指定します。これはラスターレンダリングモードのいずれか(すなわち default および outline 以外)である必要があります。 |
| measuringMode | DWRITE_MEASURING_MODE | in | グリフを測定する方法を指定します。 |
| gridFitMode | DWRITE_GRID_FIT_MODE | in | グリフのアウトラインをグリッドフィットする方法。これは default 以外である必要があります。 |
| antialiasMode | DWRITE_TEXT_ANTIALIAS_MODE | in | アンチエイリアスモードを指定します。 |
| baselineOriginX | FLOAT | in | ベースライン原点の水平方向の位置(DIP 単位)。 |
| baselineOriginY | FLOAT | in | ベースライン原点の垂直方向の位置(DIP 単位)。 |
| glyphRunAnalysis | IDWriteGlyphRunAnalysis** | out | 新しく作成されたオブジェクトへのポインターを受け取ります。 |
戻り値
型: HRESULT
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IDWriteFactory2 "{0439FC60-CA44-4994-8DEE-3A9AF7B732EC}" #usecom global IDWriteFactory2 IID_IDWriteFactory2 "{}" #comfunc global IDWriteFactory2_GetSystemFontFallback 26 sptr #comfunc global IDWriteFactory2_CreateFontFallbackBuilder 27 sptr #comfunc global IDWriteFactory2_TranslateColorGlyphRun 28 float,float,var,var,int,var,int,sptr #comfunc global IDWriteFactory2_CreateCustomRenderingParams 29 float,float,float,float,int,int,int,sptr #comfunc global IDWriteFactory2_CreateGlyphRunAnalysis 30 var,var,int,int,int,int,float,float,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDWriteFactory2 "{0439FC60-CA44-4994-8DEE-3A9AF7B732EC}" #usecom global IDWriteFactory2 IID_IDWriteFactory2 "{}" #comfunc global IDWriteFactory2_GetSystemFontFallback 26 sptr #comfunc global IDWriteFactory2_CreateFontFallbackBuilder 27 sptr #comfunc global IDWriteFactory2_TranslateColorGlyphRun 28 float,float,sptr,sptr,int,sptr,int,sptr #comfunc global IDWriteFactory2_CreateCustomRenderingParams 29 float,float,float,float,int,int,int,sptr #comfunc global IDWriteFactory2_CreateGlyphRunAnalysis 30 sptr,sptr,int,int,int,int,float,float,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。