ID2D1RenderTarget::P ushLayer(constD2D1_LAYER_PARAMETERS&,ID2D1Layer*) 메서드(d2d1.h)
PopLayer가 호출될 때까지 모든 후속 그리기 작업을 받을 수 있도록 렌더링 대상에 지정된 레이어를 추가합니다.
구문
void PushLayer(
[ref] const D2D1_LAYER_PARAMETERS & layerParameters,
[in] ID2D1Layer *layer
);
매개 변수
[ref] layerParameters
형식: const D2D1_LAYER_PARAMETERS
레이어에 대한 콘텐츠 경계, 기하학적 마스크, 불투명도, 불투명 마스크 및 앤티앨리어싱 옵션입니다.
[in] layer
형식: ID2D1Layer*
후속 그리기 작업을 수신하는 계층입니다.
반환 값
없음
설명
PushLayer 메서드를 사용하면 호출자가 렌더링을 계층으로 리디렉션하기 시작할 수 있습니다. 모든 렌더링 작업은 계층에서 유효합니다. 레이어의 위치는 렌더링 대상에 설정된 월드 변환의 영향을 받습니다.
각 PushLayer 에는 일치하는 PopLayer 호출이 있어야 합니다. PushLayer 호출보다 더 많은 PopLayer 호출이 있는 경우 렌더링 대상이 오류 상태에 놓입니다. 모든 미해결 계층이 표시되기 전에 Flush 가 호출되면 렌더링 대상이 오류 상태로 전환되고 오류가 반환됩니다. EndDraw를 호출하여 오류 상태를 지울 수 있습니다.
특정 ID2D1Layer 리소스는 한 번에 활성화할 수 있습니다. 즉, PushLayer 메서드를 호출한 다음, 동일한 계층 리소스가 있는 다른 PushLayer 메서드를 즉시 따를 수 없습니다. 대신 다른 계층 리소스를 사용하여 두 번째 PushLayer 메서드를 호출해야 합니다.
이 메서드는 실패할 경우 오류 코드를 반환하지 않습니다. 그리기 작업(예: PushLayer)이 실패했는지 여부를 확인하려면 ID2D1RenderTarget::EndDraw 또는 ID2D1RenderTarget::Flush 메서드에서 반환된 결과를 검사.
예제
다음 예제에서는 레이어를 사용하여 비트맵을 기하학적 마스크로 클리핑합니다. 전체 예제는 기하학적 마스크로 클립하는 방법을 참조하세요.
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용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | d2d1.h |
라이브러리 | D2d1.lib |
DLL | D2d1.dll |