ID2D1DeviceContext4
COM公式ドキュメント
このインターフェースは ID2D1DeviceContext3 インターフェースと同じ機能をすべて実行し、加えて新しい種類のカラーフォントグリフを扱う機能を提供します。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
SVG グリフスタイルオブジェクトを作成します。
| svgGlyphStyle | ID2D1SvgGlyphStyle** | out | 完了時に、作成された ID2D1SvgGlyphStyle オブジェクトを指します。 |
戻り値
型: HRESULT
このメソッドは、成功またはエラーを示す HRESULT コードを返します。
| string | LPWSTR | in | 描画する文字列(UTF-16)を指すポインタ。 |
| stringLength | DWORD | in | 描画する文字列の文字数を指定する。 |
| textFormat | IDWriteTextFormat* | in | フォントやサイズなどの書式を定義するテキストフォーマットを指すポインタ。 |
| layoutRect | D2D_RECT_F* | in | テキストを配置するレイアウト矩形(DIP単位)を指すポインタ。 |
| defaultFillBrush | ID2D1Brush* | inoptional | テキストの既定の塗りつぶしに用いるブラシを指すポインタ。 |
| svgGlyphStyle | ID2D1SvgGlyphStyle* | inoptional | SVGグリフ描画に適用するスタイルを指すポインタ。NULL可。 |
| colorPaletteIndex | DWORD | in | カラーフォントで使用するカラーパレットの番号を指定する。 |
| options | D2D1_DRAW_TEXT_OPTIONS | in | クリッピングやカラー有効化などテキスト描画オプションのフラグ列挙値。 |
| measuringMode | DWRITE_MEASURING_MODE | in | テキスト計測方法を表す列挙値。NaturalまたはGDI互換を指定する。 |
テキストレイアウトオブジェクトを描画します。以降レイアウトが変更されない場合、同じレイアウトを繰り返し描画する際には DrawText よりも効率的です。
| origin | D2D_POINT_2F | in | textLayout で記述されるテキストの左上隅を描画する位置。デバイス非依存ピクセルで指定します。 |
| textLayout | IDWriteTextLayout* | in | 描画する書式付きテキスト。ID2D1Resource を継承しない描画エフェクトはすべて無視されます。ID2D1Resource を継承するがブラシではない描画エフェクトが存在する場合、このメソッドは失敗し、レンダーターゲットはエラー状態になります。 |
| defaultFillBrush | ID2D1Brush* | inoptional | テキストの描画に使用するブラシ。 |
| svgGlyphStyle | ID2D1SvgGlyphStyle* | inoptional | SVG グリフのレンダリング時に使用される context-fill、context-stroke、context-value の値。 |
| colorPaletteIndex | DWORD | in | カラーフォント内のカラーパレットを選択するために使用するインデックス。 |
| options | D2D1_DRAW_TEXT_OPTIONS | in | テキストをピクセル境界にスナップするかどうか、およびテキストをレイアウト矩形にクリップするかどうかを示す値。 既定値は D2D1_DRAW_TEXT_OPTIONS_NONE であり、 テキストをピクセル境界にスナップし、レイアウト矩形にクリップしないことを示します。 |
ビットマップ形式のいずれかを使用して、カラービットマップグリフランを描画します。
| glyphImageFormat | DWRITE_GLYPH_IMAGE_FORMATS | in | グリフイメージの形式を指定します。サポートされる形式は DWRITE_GLYPH_IMAGE_FORMATS_PNG、DWRITE_GLYPH_IMAGE_FORMATS_JPEG、 DWRITE_GLYPH_IMAGE_FORMATS_TIFF、または DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 です。カラーグリフランに要求された形式が含まれていない場合、このメソッドはエラーになります。 一度に指定できる形式は 1 つだけであり、複数のフラグの組み合わせは有効な入力ではありません。 |
| baselineOrigin | D2D_POINT_2F | in | グリフランのベースラインの原点。 |
| glyphRun | DWRITE_GLYPH_RUN* | in | レンダリングするグリフ。 |
| measuringMode | DWRITE_MEASURING_MODE | in | 計測方法を示します。 |
| bitmapSnapOption | D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION | in | カラービットマップグリフのレンダリング時のピクセルスナップポリシーを指定します。 |
DWRITE_GLYPH_IMAGE_FORMATS_SVG 形式を持つカラーグリフランを描画します。
| baselineOrigin | D2D_POINT_2F | in | グリフランのベースラインの原点。 |
| glyphRun | DWRITE_GLYPH_RUN* | in | レンダリングするグリフ。 |
| defaultFillBrush | ID2D1Brush* | inoptional | 指定されたグリフの描画に使用するブラシ。 |
| svgGlyphStyle | ID2D1SvgGlyphStyle* | inoptional | SVG グリフのレンダリング時に使用される context-fill、context-stroke、context-value の値。 |
| colorPaletteIndex | DWORD | in | カラーフォント内のカラーパレットを選択するために使用するインデックス。これは DWRITE_COLOR_GLYPH_RUN 構造体の paletteIndex とは異なる点に注意してください。paletteIndex は SVG グリフには関係しません。 |
| measuringMode | DWRITE_MEASURING_MODE | in | テキストレイアウトに使用される計測方法を示します。 |
カラーグリフキャッシュからカラービットマップグリフのイメージを取得します。
| glyphImageFormat | DWRITE_GLYPH_IMAGE_FORMATS | in | グリフイメージの形式。 要求されたグリフに対して要求された形式のイメージデータが存在しない場合、このメソッドはエラーを返します。 |
| glyphOrigin | D2D_POINT_2F | in | グリフの原点。 |
| fontFace | IDWriteFontFace* | in | フォントフェイスへの参照。フォントフェイスの種類、適切なファイル参照、フェイス識別データ、およびメトリック、名前、グリフアウトラインなどの各種フォントデータが含まれます。 |
| fontEmSize | FLOAT | in | 指定されたフォントサイズは、フォントからどのビットマップを使用するかの選択に影響します。また出力される glyphTransform にも影響し、グリフが適切にスケーリングされるようにします。 |
| glyphIndex | WORD | in | グリフのインデックス。 |
| isSideways | BOOL | in | true の場合、グリフを左に 90 度回転させ、縦書きメトリックを使用することを指定します。縦書きは、isSideways を true に指定し、回転トランスフォームによってラン全体を右に 90 度回転させることで実現されます。 |
| worldTransform | D2D_MATRIX_3X2_F* | inoptional | イメージに適用するトランスフォーム。この入力トランスフォームは、フォントからどのビットマップを使用するかの選択に影響します。また、出力される glyphTransform にも反映されます。 |
| dpiX | FLOAT | in | x 軸方向の 1 インチあたりのドット数。 |
| dpiY | FLOAT | in | y 軸方向の 1 インチあたりのドット数。 |
| glyphTransform | D2D_MATRIX_3X2_F* | out | 出力トランスフォーム。グリフの空間から worldTransform と同じ出力空間へ変換します。これには入力された glyphOrigin、glyphOrigin からのグリフのオフセット、およびその他必要なトランスフォームが含まれます。 |
| glyphImage | ID2D1Image** | out | 完了時に、取得されたグリフイメージが格納されます。 |
戻り値
型: HRESULT
このメソッドは、成功またはエラーを示す HRESULT コードを返します。
カラーグリフキャッシュから SVG グリフのイメージを取得します。
| glyphOrigin | D2D_POINT_2F | in | グリフの原点。 |
| fontFace | IDWriteFontFace* | in | フォントフェイスへの参照。フォントフェイスの種類、適切なファイル参照、フェイス識別データ、およびメトリック、名前、グリフアウトラインなどの各種フォントデータが含まれます。 |
| fontEmSize | FLOAT | in | 指定されたフォントサイズは、出力される glyphTransform に影響し、グリフが適切にスケーリングされるようにします。 |
| glyphIndex | WORD | in | 取得するグリフのインデックス。 |
| isSideways | BOOL | in | true の場合、グリフを左に 90 度回転させ、縦書きメトリックを使用することを指定します。縦書きは、isSideways を true に指定し、回転トランスフォームによってラン全体を右に 90 度回転させることで実現されます。 |
| worldTransform | D2D_MATRIX_3X2_F* | inoptional | イメージに適用するトランスフォーム。 |
| defaultFillBrush | ID2D1Brush* | inoptional | 領域の描画方法を記述します。 |
| svgGlyphStyle | ID2D1SvgGlyphStyle* | inoptional | SVG グリフのレンダリング時に使用される context-fill、context-stroke、context-value の値。 |
| colorPaletteIndex | DWORD | in | カラーフォント内のカラーパレットを選択するために使用するインデックス。 これは DWRITE_COLOR_GLYPH_RUN 構造体の paletteIndex とは異なる点に注意してください。paletteIndex は SVG グリフには関係しません。 |
| glyphTransform | D2D_MATRIX_3X2_F* | out | 出力トランスフォーム。グリフの空間から worldTransform と同じ出力空間へ変換します。 これには入力された glyphOrigin、glyphOrigin からのグリフのオフセット、およびその他必要なトランスフォームが含まれます。 |
| glyphImage | ID2D1CommandList** | out | 完了時に、取得されたグリフイメージが格納されます。 |
戻り値
型: HRESULT
このメソッドは、成功またはエラーを示す HRESULT コードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ID2D1DeviceContext4 "{8C427831-3D90-4476-B647-C4FAE349E4DB}" #usecom global ID2D1DeviceContext4 IID_ID2D1DeviceContext4 "{}" #comfunc global ID2D1DeviceContext4_CreateSvgGlyphStyle 108 sptr #comfunc global ID2D1DeviceContext4_DrawText 109 wstr,int,sptr,var,sptr,sptr,int,int,int #comfunc global ID2D1DeviceContext4_DrawTextLayout 110 int,sptr,sptr,sptr,int,int #comfunc global ID2D1DeviceContext4_DrawColorBitmapGlyphRun 111 int,int,var,int,int #comfunc global ID2D1DeviceContext4_DrawSvgGlyphRun 112 int,var,sptr,sptr,int,int #comfunc global ID2D1DeviceContext4_GetColorBitmapGlyphImage 113 int,int,sptr,float,int,int,var,float,float,var,sptr #comfunc global ID2D1DeviceContext4_GetSvgGlyphImage 114 int,sptr,float,int,int,var,sptr,sptr,int,var,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ID2D1DeviceContext4 "{8C427831-3D90-4476-B647-C4FAE349E4DB}" #usecom global ID2D1DeviceContext4 IID_ID2D1DeviceContext4 "{}" #comfunc global ID2D1DeviceContext4_CreateSvgGlyphStyle 108 sptr #comfunc global ID2D1DeviceContext4_DrawText 109 wstr,int,sptr,sptr,sptr,sptr,int,int,int #comfunc global ID2D1DeviceContext4_DrawTextLayout 110 int,sptr,sptr,sptr,int,int #comfunc global ID2D1DeviceContext4_DrawColorBitmapGlyphRun 111 int,int,sptr,int,int #comfunc global ID2D1DeviceContext4_DrawSvgGlyphRun 112 int,sptr,sptr,sptr,int,int #comfunc global ID2D1DeviceContext4_GetColorBitmapGlyphImage 113 int,int,sptr,float,int,int,sptr,float,float,sptr,sptr #comfunc global ID2D1DeviceContext4_GetSvgGlyphImage 114 int,sptr,float,int,int,sptr,sptr,sptr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。