ID2D1RenderTarget::CreateLayer(constD2D1_SIZE_F*,ID2D1Layer**) メソッド (d2d1.h)
このレンダー ターゲットとその互換性のあるレンダー ターゲットで使用できるレイヤー リソースを作成します。
構文
HRESULT CreateLayer(
const D2D1_SIZE_F *size,
ID2D1Layer **layer
);
パラメーター
size
型: [in] const D2D1_SIZE_F*
(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 |
ヘッダー | d2d1.h |
Library | D2d1.lib |
[DLL] | D2d1.dll |