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

ID2D1DeviceContext4

COM
IID8c427831-3d90-4476-b647-c4fae349e4db継承元ID2D1DeviceContext3自前メソッド開始 vtbl108

公式ドキュメント

このインターフェースは ID2D1DeviceContext3 インターフェースと同じ機能をすべて実行し、加えて新しい種類のカラーフォントグリフを扱う機能を提供します。

メソッド 7

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

vtbl 108 HRESULT CreateSvgGlyphStyle(ID2D1SvgGlyphStyle** svgGlyphStyle)

SVG グリフスタイルオブジェクトを作成します。

svgGlyphStyleID2D1SvgGlyphStyle**out完了時に、作成された ID2D1SvgGlyphStyle オブジェクトを指します。

戻り値

型: HRESULT

このメソッドは、成功またはエラーを示す HRESULT コードを返します。

vtbl 109 void DrawText(LPWSTR string, DWORD stringLength, IDWriteTextFormat* textFormat, D2D_RECT_F* layoutRect, ID2D1Brush* defaultFillBrush, ID2D1SvgGlyphStyle* svgGlyphStyle, DWORD colorPaletteIndex, D2D1_DRAW_TEXT_OPTIONS options, DWRITE_MEASURING_MODE measuringMode)
stringLPWSTRin描画する文字列(UTF-16)を指すポインタ。
stringLengthDWORDin描画する文字列の文字数を指定する。
textFormatIDWriteTextFormat*inフォントやサイズなどの書式を定義するテキストフォーマットを指すポインタ。
layoutRectD2D_RECT_F*inテキストを配置するレイアウト矩形(DIP単位)を指すポインタ。
defaultFillBrushID2D1Brush*inoptionalテキストの既定の塗りつぶしに用いるブラシを指すポインタ。
svgGlyphStyleID2D1SvgGlyphStyle*inoptionalSVGグリフ描画に適用するスタイルを指すポインタ。NULL可。
colorPaletteIndexDWORDinカラーフォントで使用するカラーパレットの番号を指定する。
optionsD2D1_DRAW_TEXT_OPTIONSinクリッピングやカラー有効化などテキスト描画オプションのフラグ列挙値。
measuringModeDWRITE_MEASURING_MODEinテキスト計測方法を表す列挙値。NaturalまたはGDI互換を指定する。
vtbl 110 void DrawTextLayout(D2D_POINT_2F origin, IDWriteTextLayout* textLayout, ID2D1Brush* defaultFillBrush, ID2D1SvgGlyphStyle* svgGlyphStyle, DWORD colorPaletteIndex, D2D1_DRAW_TEXT_OPTIONS options)

テキストレイアウトオブジェクトを描画します。以降レイアウトが変更されない場合、同じレイアウトを繰り返し描画する際には DrawText よりも効率的です。

originD2D_POINT_2FintextLayout で記述されるテキストの左上隅を描画する位置。デバイス非依存ピクセルで指定します。
textLayoutIDWriteTextLayout*in描画する書式付きテキスト。ID2D1Resource を継承しない描画エフェクトはすべて無視されます。ID2D1Resource を継承するがブラシではない描画エフェクトが存在する場合、このメソッドは失敗し、レンダーターゲットはエラー状態になります。
defaultFillBrushID2D1Brush*inoptionalテキストの描画に使用するブラシ。
svgGlyphStyleID2D1SvgGlyphStyle*inoptionalSVG グリフのレンダリング時に使用される context-fill、context-stroke、context-value の値。
colorPaletteIndexDWORDinカラーフォント内のカラーパレットを選択するために使用するインデックス。
optionsD2D1_DRAW_TEXT_OPTIONSinテキストをピクセル境界にスナップするかどうか、およびテキストをレイアウト矩形にクリップするかどうかを示す値。 既定値は D2D1_DRAW_TEXT_OPTIONS_NONE であり、 テキストをピクセル境界にスナップし、レイアウト矩形にクリップしないことを示します。
vtbl 111 void DrawColorBitmapGlyphRun(DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat, D2D_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN* glyphRun, DWRITE_MEASURING_MODE measuringMode, D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION bitmapSnapOption)

ビットマップ形式のいずれかを使用して、カラービットマップグリフランを描画します。

glyphImageFormatDWRITE_GLYPH_IMAGE_FORMATSin

グリフイメージの形式を指定します。サポートされる形式は DWRITE_GLYPH_IMAGE_FORMATS_PNGDWRITE_GLYPH_IMAGE_FORMATS_JPEGDWRITE_GLYPH_IMAGE_FORMATS_TIFF、または DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 です。カラーグリフランに要求された形式が含まれていない場合、このメソッドはエラーになります。

一度に指定できる形式は 1 つだけであり、複数のフラグの組み合わせは有効な入力ではありません。

baselineOriginD2D_POINT_2Finグリフランのベースラインの原点。
glyphRunDWRITE_GLYPH_RUN*inレンダリングするグリフ。
measuringModeDWRITE_MEASURING_MODEin計測方法を示します。
bitmapSnapOptionD2D1_COLOR_BITMAP_GLYPH_SNAP_OPTIONinカラービットマップグリフのレンダリング時のピクセルスナップポリシーを指定します。
vtbl 112 void DrawSvgGlyphRun(D2D_POINT_2F baselineOrigin, DWRITE_GLYPH_RUN* glyphRun, ID2D1Brush* defaultFillBrush, ID2D1SvgGlyphStyle* svgGlyphStyle, DWORD colorPaletteIndex, DWRITE_MEASURING_MODE measuringMode)

DWRITE_GLYPH_IMAGE_FORMATS_SVG 形式を持つカラーグリフランを描画します。

baselineOriginD2D_POINT_2Finグリフランのベースラインの原点。
glyphRunDWRITE_GLYPH_RUN*inレンダリングするグリフ。
defaultFillBrushID2D1Brush*inoptional指定されたグリフの描画に使用するブラシ。
svgGlyphStyleID2D1SvgGlyphStyle*inoptionalSVG グリフのレンダリング時に使用される context-fill、context-stroke、context-value の値。
colorPaletteIndexDWORDinカラーフォント内のカラーパレットを選択するために使用するインデックス。これは DWRITE_COLOR_GLYPH_RUN 構造体の paletteIndex とは異なる点に注意してください。paletteIndex は SVG グリフには関係しません。
measuringModeDWRITE_MEASURING_MODEinテキストレイアウトに使用される計測方法を示します。
vtbl 113 HRESULT GetColorBitmapGlyphImage(DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat, D2D_POINT_2F glyphOrigin, IDWriteFontFace* fontFace, FLOAT fontEmSize, WORD glyphIndex, BOOL isSideways, D2D_MATRIX_3X2_F* worldTransform, FLOAT dpiX, FLOAT dpiY, D2D_MATRIX_3X2_F* glyphTransform, ID2D1Image** glyphImage)

カラーグリフキャッシュからカラービットマップグリフのイメージを取得します。

glyphImageFormatDWRITE_GLYPH_IMAGE_FORMATSinグリフイメージの形式。 要求されたグリフに対して要求された形式のイメージデータが存在しない場合、このメソッドはエラーを返します。
glyphOriginD2D_POINT_2Finグリフの原点。
fontFaceIDWriteFontFace*inフォントフェイスへの参照。フォントフェイスの種類、適切なファイル参照、フェイス識別データ、およびメトリック、名前、グリフアウトラインなどの各種フォントデータが含まれます。
fontEmSizeFLOATin指定されたフォントサイズは、フォントからどのビットマップを使用するかの選択に影響します。また出力される glyphTransform にも影響し、グリフが適切にスケーリングされるようにします。
glyphIndexWORDinグリフのインデックス。
isSidewaysBOOLintrue の場合、グリフを左に 90 度回転させ、縦書きメトリックを使用することを指定します。縦書きは、isSideways を true に指定し、回転トランスフォームによってラン全体を右に 90 度回転させることで実現されます。
worldTransformD2D_MATRIX_3X2_F*inoptionalイメージに適用するトランスフォーム。この入力トランスフォームは、フォントからどのビットマップを使用するかの選択に影響します。また、出力される glyphTransform にも反映されます。
dpiXFLOATinx 軸方向の 1 インチあたりのドット数。
dpiYFLOATiny 軸方向の 1 インチあたりのドット数。
glyphTransformD2D_MATRIX_3X2_F*out出力トランスフォーム。グリフの空間から worldTransform と同じ出力空間へ変換します。これには入力された glyphOrigin、glyphOrigin からのグリフのオフセット、およびその他必要なトランスフォームが含まれます。
glyphImageID2D1Image**out完了時に、取得されたグリフイメージが格納されます。

戻り値

型: HRESULT

このメソッドは、成功またはエラーを示す HRESULT コードを返します。

vtbl 114 HRESULT GetSvgGlyphImage(D2D_POINT_2F glyphOrigin, IDWriteFontFace* fontFace, FLOAT fontEmSize, WORD glyphIndex, BOOL isSideways, D2D_MATRIX_3X2_F* worldTransform, ID2D1Brush* defaultFillBrush, ID2D1SvgGlyphStyle* svgGlyphStyle, DWORD colorPaletteIndex, D2D_MATRIX_3X2_F* glyphTransform, ID2D1CommandList** glyphImage)

カラーグリフキャッシュから SVG グリフのイメージを取得します。

glyphOriginD2D_POINT_2Finグリフの原点。
fontFaceIDWriteFontFace*inフォントフェイスへの参照。フォントフェイスの種類、適切なファイル参照、フェイス識別データ、およびメトリック、名前、グリフアウトラインなどの各種フォントデータが含まれます。
fontEmSizeFLOATin指定されたフォントサイズは、出力される glyphTransform に影響し、グリフが適切にスケーリングされるようにします。
glyphIndexWORDin取得するグリフのインデックス。
isSidewaysBOOLintrue の場合、グリフを左に 90 度回転させ、縦書きメトリックを使用することを指定します。縦書きは、isSideways を true に指定し、回転トランスフォームによってラン全体を右に 90 度回転させることで実現されます。
worldTransformD2D_MATRIX_3X2_F*inoptionalイメージに適用するトランスフォーム。
defaultFillBrushID2D1Brush*inoptional領域の描画方法を記述します。
svgGlyphStyleID2D1SvgGlyphStyle*inoptionalSVG グリフのレンダリング時に使用される context-fill、context-stroke、context-value の値。
colorPaletteIndexDWORDinカラーフォント内のカラーパレットを選択するために使用するインデックス。 これは DWRITE_COLOR_GLYPH_RUN 構造体の paletteIndex とは異なる点に注意してください。paletteIndex は SVG グリフには関係しません。
glyphTransformD2D_MATRIX_3X2_F*out出力トランスフォーム。グリフの空間から worldTransform と同じ出力空間へ変換します。 これには入力された glyphOrigin、glyphOrigin からのグリフのオフセット、およびその他必要なトランスフォームが含まれます。
glyphImageID2D1CommandList**out完了時に、取得されたグリフイメージが格納されます。

戻り値

型: HRESULT

このメソッドは、成功またはエラーを示す 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_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 指定が可能。