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 錯誤碼。
備註
層次會視需要自動重設大小。
範例
下列範例使用圖層將點陣圖裁剪為幾何遮罩。 如需完整範例,請參閱 How to Clip to a Geometric Mask。
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 |
程式庫 | D2d1.lib |
Dll | D2d1.dll |