IDWriteBitmapRenderTarget インターフェイス
グリフのレンダリングに使用できる 32 ビットのデバイス非依存のビットマップとデバイス コンテキストをカプセル化します。
メンバー
IDWriteBitmapRenderTarget インターフェイス の継承元は次のとおりです: IUnknown インターフェイス. IDWriteBitmapRenderTarget は次のメンバーも定義します:
- メソッド
メソッド
IDWriteBitmapRenderTarget インターフェイス は次の項目を定義します: メソッド.
メソッド | 説明 |
---|---|
DrawGlyphRun | 指定されたブラック ボックス四角形内のビットマップ ターゲットに一連のグリフを描画します。 |
GetCurrentTransform | 抽象座標を DIP にマップする変換を取得します。既定では、これは単位変換です。基になるデバイス コンテキストのワールド変換とは無関係であることに注意してください。 |
GetMemoryDC | メモリ デバイス コンテキストへのハンドルを取得します。 |
GetPixelsPerDip | 1 DIP あたりのビットマップ ピクセル数を取得します。 |
GetSize | ターゲット ビットマップの寸法を取得します。 |
Resize | ビットマップのサイズを変更します。 |
SetCurrentTransform | 抽象座標を DIP にマップする変換を設定します。これは、基になるデバイス コンテキストのワールド変換には影響しません。 |
SetPixelsPerDip | 1 DIP あたりのビットマップ ピクセル数を設定します。1 DIP (デバイス非依存のピクセル) は 1/96 インチなので、この値は 1 インチあたりのピクセル数を 96 で除算した場合の数値となります。 |
解説
次のコードに示すように、IDWriteGdiInterop::CreateBitmapRenderTarget メソッドを使用して、IDWriteBitmapRenderTarget を作成します。
if (SUCCEEDED(hr))
{
hr = g_pGdiInterop->CreateBitmapRenderTarget(hdc, r.right, r.bottom, &g_pBitmapRenderTarget);
}
IDWriteGdiInterop::CreateBitmapRenderTarget は DC へのハンドル、および必要な幅と高さを受け取ります。上記の例では、指定された幅と高さはウィンドウの四角形のサイズです。
レンダリング
ビットマップにレンダリングする場合に IDWriteBitmapRenderTarget を使用する 1 つの方法として、IDWriteTextRenderer インターフェイスから派生したカスタム レンダラー インターフェイスを実装します。次のコードに示すように、カスタム レンダラーの DrawGlyphRun メソッドの実装で、IDWriteBitmapRenderTarget::DrawGlyphRun メソッドを呼び出してグリフを描画します。
STDMETHODIMP GdiTextRenderer::DrawGlyphRun(
__maybenull void* clientDrawingContext,
FLOAT baselineOriginX,
FLOAT baselineOriginY,
DWRITE_MEASURING_MODE measuringMode,
__in DWRITE_GLYPH_RUN const* glyphRun,
__in DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
IUnknown* clientDrawingEffect
)
{
HRESULT hr = S_OK;
// Pass on the drawing call to the render target to do the real work.
RECT dirtyRect = {0};
hr = pRenderTarget_->DrawGlyphRun(
baselineOriginX,
baselineOriginY,
measuringMode,
glyphRun,
pRenderingParams_,
RGB(0,200,255),
&dirtyRect
);
return hr;
}
IDWriteBitmapRenderTarget はビットマップをメモリにカプセル化してレンダリングします。GetMemoryDC 関数は、このビットマップのデバイス コンテキストへのハンドルを返します。
要件
クライアントの最小要件 |
Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム |
サーバーの最小要件 |
Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム |
ヘッダー |
Dwrite.h |
ライブラリ |
Dwrite.lib |
DLL |
Dwrite.dll |