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 |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |