次の方法で共有


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