IDWriteBitmapRenderTarget インターフェイス (dwrite.h)
グリフのレンダリングに使用できる 32 ビットデバイスに依存しないビットマップとデバイス コンテキストをカプセル化します。
継承
IDWriteBitmapRenderTarget インターフェイスは、IUnknown インターフェイスから継承します。 IDWriteBitmapRenderTarget には、次の種類のメンバーもあります。
メソッド
IDWriteBitmapRenderTarget インターフェイスには、これらのメソッドがあります。
IDWriteBitmapRenderTarget::D rawGlyphRun 指定した位置にあるビットマップ ターゲットにグリフの実行を描画します。 |
IDWriteBitmapRenderTarget::GetCurrentTransform 抽象座標を DIP にマップする変換を取得します。 既定では、これは ID 変換です。 これは、基になるデバイス コンテキストのワールド変換とは無関係であることに注意してください。 |
IDWriteBitmapRenderTarget::GetMemoryDC メモリ デバイス コンテキストへのハンドルを取得します。 |
IDWriteBitmapRenderTarget::GetPixelsPerDip DIP あたりのビットマップ ピクセル数を取得します。 |
IDWriteBitmapRenderTarget::GetSize ターゲット ビットマップのディメンションを取得します。 |
IDWriteBitmapRenderTarget::Resize ビットマップのサイズを変更します。 |
IDWriteBitmapRenderTarget::SetCurrentTransform 抽象座標を DIP (デバイスに依存しないピクセル) にマップする変換を設定します。 これは、基になるデバイス コンテキストのワールド変換には影響しません。 |
IDWriteBitmapRenderTarget::SetPixelsPerDip DIP あたりのビットマップ ピクセル数 (デバイスに依存しないピクセル) を設定します。 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::D rawGlyphRun メソッドを呼び出して、次のコードに示すようにグリフを描画します。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 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | dwrite.h |