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 |