다음을 통해 공유


ID2D1Layer 인터페이스(d2d1.h)

레이어를 렌더링하는 데 필요한 백업 저장소를 나타냅니다.

상속

ID2D1Layer 인터페이스는 ID2D1Resource에서 상속됩니다. ID2D1Layer 에는 다음과 같은 유형의 멤버도 있습니다.

메서드

ID2D1Layer 인터페이스에는 이러한 메서드가 있습니다.

 
ID2D1Layer::GetSize

디바이스 독립적 픽셀에서 계층의 크기를 가져옵니다.

설명

레이어를 만들려면 레이어를 사용할 렌더링 대상의 CreateLayer 메서드를 호출합니다. 레이어에 그리려면 PushLayer 메서드를 호출하여 레이어를 렌더링 대상 스택으로 푸시합니다. 레이어에 그리기를 완료한 후 PopLayer 메서드를 호출합니다.

PushLayerPopLayer 호출 사이에 계층이 사용 중이며 다른 렌더링 대상에서 사용할 수 없습니다.

레이어의 크기를 지정하지 않으면 해당 PushLayer 호출은 레이어 콘텐츠 범위 및 기하학적 마스크에 따라 최소 레이어 크기를 결정합니다. 레이어 리소스는 렌더링 아티팩트 없이 PushLayer 에 필요한 크기보다 클 수 있습니다.

레이어의 크기를 지정하거나 레이어가 사용되었으며 PushLayer 중에 계산된 필수 백업 저장소 크기가 레이어보다 큰 경우 레이어 리소스가 각 축에서 단조로 확장되어 충분히 큰지 확인합니다. 계층 리소스의 크기는 절대 줄어들지 않습니다.

ID2D1Layer 개체 만들기

레이어를 만들려면 레이어를 사용할 렌더링 대상의 CreateLayer 메서드를 호출합니다.

계층은 디바이스 종속 리소스입니다. 애플리케이션은 레이어가 사용될 렌더링 대상을 초기화한 후 레이어를 만들고 렌더링 대상이 다시 만들어질 때마다 레이어를 다시 만들어야 합니다. (리소스에 대한 자세한 내용은 리소스 개요를 참조하세요.)

예제

다음 예제에서는 레이어를 사용하여 드로잉을 기하학적 마스크로 클리핑합니다. 전체 예제는 기하학적 마스크로 클리핑하는 방법을 참조하세요.

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용 플랫폼 업데이트가 포함된 Windows Vista [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2008 R2, Windows Server 2008 SP2 및 Windows Server 2008용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 d2d1.h

추가 정보

ID2D1RenderTarget

ID2D1Resource

레이어 개요