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