Share via


ID2D1RenderTarget::CreateCompatibleRenderTarget メソッド

中間オフスクリーン描画中に使用する、現在のレンダー ターゲットと互換性があり、ピクセル形式 (アルファ モードは除く) が現在のレンダー ターゲットと同じ新しいビットマップ レンダー ターゲットを作成します。

構文

HRESULT CreateCompatibleRenderTarget(
         D2D1_SIZE_F desiredSize,
  [out]  ID2D1BitmapRenderTarget **bitmapRenderTarget
);

パラメーター

  • desiredSize
    D2D1_SIZE_F 新しいレンダー ターゲットの必要なサイズ (デバイス非依存のピクセル単位)。ピクセル サイズは、親ターゲットの DPI を使用して必要なサイズから計算されます。desiredSize が整数ピクセル サイズにマップされる場合、互換性のあるレンダー ターゲットの DPI は、親ターゲットの DPI と同じになります。desiredSize が分数のピクセル サイズにマップされる場合、ピクセル サイズは最も近い整数に丸められ、互換性のあるレンダー ターゲットの DPI は親レンダー ターゲットの DPI より少し高くなります。いずれの場合も、座標 (desiredSize.width, desiredSize.height) は互換性のあるレンダー ターゲットの右下隅にマップされます。
  • bitmapRenderTarget [out]
    ID2D1BitmapRenderTarget このメソッドが返されるときに、新しいビットマップ レンダー ターゲットへのポインターのアドレスが格納されます。このパラメーターは初期化されずに渡されます。

戻り値

HRESULT

メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.

解説

このメソッドで作成されたビットマップ レンダー ターゲットは、GDI と互換性がありません。

次の例では、CreateCompatibleRenderTarget メソッドを使用して ID2D1BitmapRenderTarget を作成し、これを利用してグリッド パターンを描画します。グリッド パターンは、ID2D1BitmapBrush のソースとして使用されます。

  HRESULT DemoApp::CreateGridPatternBrush(
    ID2D1RenderTarget *pRenderTarget,
    ID2D1BitmapBrush **ppBitmapBrush
    )
{
    // Create a compatible render target.
    ID2D1BitmapRenderTarget *pCompatibleRenderTarget = NULL;
    HRESULT hr = pRenderTarget->CreateCompatibleRenderTarget(
        D2D1::SizeF(10.0f, 10.0f),
        &pCompatibleRenderTarget
        );
    if (SUCCEEDED(hr))
    {
        // Draw a pattern.
        ID2D1SolidColorBrush *pGridBrush = NULL;
        hr = pCompatibleRenderTarget->CreateSolidColorBrush(
            D2D1::ColorF(D2D1::ColorF(0.93f, 0.94f, 0.96f, 1.0f)),
            &pGridBrush
            );
        if (SUCCEEDED(hr))
        {
            pCompatibleRenderTarget->BeginDraw();
            pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.0f, 10.0f, 1.0f), pGridBrush);
            pCompatibleRenderTarget->FillRectangle(D2D1::RectF(0.0f, 0.1f, 1.0f, 10.0f), pGridBrush);
            pCompatibleRenderTarget->EndDraw();

            // Retrieve the bitmap from the render target.
            ID2D1Bitmap *pGridBitmap = NULL;
            hr = pCompatibleRenderTarget->GetBitmap(&pGridBitmap);
            if (SUCCEEDED(hr))
            {
                // Choose the tiling mode for the bitmap brush.
                D2D1_BITMAP_BRUSH_PROPERTIES brushProperties =
                    D2D1::BitmapBrushProperties(D2D1_EXTEND_MODE_WRAP, D2D1_EXTEND_MODE_WRAP);

                // Create the bitmap brush.
                hr = m_pRenderTarget->CreateBitmapBrush(pGridBitmap, brushProperties, ppBitmapBrush);

                pGridBitmap->Release();
            }

            pGridBrush->Release();
        }

        pCompatibleRenderTarget->Release();
    }

    return hr;
}

次のコード例では、ブラシを使用してパターンを描画します。

  // Paint a grid background.
m_pRenderTarget->FillRectangle(
    D2D1::RectF(0.0f, 0.0f, renderTargetSize.width, renderTargetSize.height),
    m_pGridPatternBitmapBrush
    );

この例では、コードが省略されています。完全なコードについては、「"Hello World" サンプル」を参照してください。

要件

クライアントの最小要件

Windows 7, Windows Vista SP2 および Windows Vista 用のプラットフォーム更新プログラム

サーバーの最小要件

Windows Server 2008 R2, Windows Server 2008 SP2 および Windows Server 2008 用のプラットフォーム更新プログラム

ヘッダー

D2d1.h

ライブラリ

D2d1.lib

DLL

D2d1.dll

参照

ID2D1RenderTarget

サポートされているピクセル形式とアルファ モード