ID2D1RenderTarget::CreateLayer メソッド
このレンダー ターゲットおよびそれと互換性のあるレンダー ターゲットで使用できるレイヤー リソースを作成します。新しいレイヤーは指定された初期サイズになります。
構文
virtual HRESULT CreateLayer(
[in, optional] D2D1_SIZE_F *size,
[out] ID2D1Layer **layer
) = 0;
パラメーター
- size [in, optional]
D2D1_SIZE_F レイヤーの初期サイズ (デバイス非依存のピクセル単位)、または NULL。NULL または (0, 0) が指定された場合、バッキング ストアはレイヤー リソースの背後に作成されません。レイヤー リソースは、PushLayer が呼び出されると、最小サイズに割り当てられます。 - layer [out]
ID2D1Layer メソッドが返されるときに、新しいレイヤーへのポインターへのポインターが格納されます。このパラメーターは初期化されずに渡されます。
戻り値
HRESULT
メソッドが成功した場合は、S_OK が返されます。 それ以外の場合は、エラー コードが返されます。HRESULT.
解説
サイズが最初に指定されているかどうかにかかわらず、レイヤーは必要に応じてサイズを自動的に変更します。
例
次の例では、レイヤーを使用して、ビットマップをジオメトリ マスクにクリップします。完全な例については、「ジオメトリ マスクにクリップする方法」を参照してください。
HRESULT DemoApp::RenderWithLayer(ID2D1RenderTarget *pRT)
{
HRESULT hr = S_OK;
// Create a layer.
ID2D1Layer *pLayer = NULL;
hr = pRT->CreateLayer(NULL, &pLayer);
if (SUCCEEDED(hr))
{
pRT->SetTransform(D2D1::Matrix3x2F::Translation(350, 50));
// Push the layer with the geometric mask.
pRT->PushLayer(
D2D1::LayerParameters(D2D1::InfiniteRect(), m_pPathGeometry),
pLayer
);
pRT->DrawBitmap(m_pOrigBitmap, D2D1::RectF(0, 0, 200, 133));
pRT->FillRectangle(D2D1::RectF(0.f, 0.f, 25.f, 25.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(25.f, 25.f, 50.f, 50.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(50.f, 50.f, 75.f, 75.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(75.f, 75.f, 100.f, 100.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(100.f, 100.f, 125.f, 125.f), m_pSolidColorBrush);
pRT->FillRectangle(D2D1::RectF(125.f, 125.f, 150.f, 150.f), m_pSolidColorBrush);
pRT->PopLayer();
}
SafeRelease(&pLayer);
return hr;
}
要件
クライアントの最小要件 |
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 |