Метод 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 |
Header | d2d1.h |
Библиотека | D2d1.lib |
DLL | D2d1.dll |