ID2D1RenderTarget::CreateCompatibleRenderTarget(D2D1_SIZE_F,ID2D1BitmapRenderTarget**) メソッド (d2d1.h)

現在のレンダー ターゲットと互換性のある中間オフスクリーン描画中に使用するビットマップ レンダー ターゲットを作成します。

構文

HRESULT CreateCompatibleRenderTarget(
  D2D1_SIZE_F             desiredSize,
  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
    );

この例では、コードは省略されています。

要件

要件
サポートされている最小のクライアント Windows 7、Windows Vista SP2 および Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー d2d1.h
Library D2d1.lib
[DLL] D2d1.dll

こちらもご覧ください

ID2D1RenderTarget

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