Compartilhar via


Interface ID2D1Layer (d2d1.h)

Representa o repositório de backup necessário para renderizar uma camada.

Herança

A interface ID2D1Layer herda de ID2D1Resource. ID2D1Layer também tem estes tipos de membros:

Métodos

A interface ID2D1Layer tem esses métodos.

 
ID2D1Layer::GetSize

Obtém o tamanho da camada em pixels independentes do dispositivo.

Comentários

Para criar uma camada, chame o método CreateLayer do destino de renderização em que a camada será usada. Para desenhar em uma camada, efetue push da camada para a pilha de destino de renderização chamando o método PushLayer . Depois de terminar de desenhar na camada, chame o método PopLayer .

Entre as chamadas PushLayer e PopLayer , a camada está em uso e não pode ser usada por outro destino de renderização.

Se o tamanho da camada não for especificado, a chamada pushLayer correspondente determinará o tamanho mínimo da camada, com base nos limites de conteúdo da camada e na máscara geométrica. O recurso de camada pode ser maior do que o tamanho exigido pelo PushLayer sem nenhum artefato de renderização.

Se o tamanho de uma camada for especificado ou se a camada tiver sido usada e o tamanho do repositório de backup necessário, conforme calculado durante PushLayer for maior que a camada, o recurso de camada será expandido em cada eixo monotonicamente para garantir que ele seja grande o suficiente. O recurso de camada nunca diminui de tamanho.

Criando objetos ID2D1Layer

Para criar uma camada, chame o método CreateLayer do destino de renderização em que a camada será usada.

Uma camada é um recurso dependente do dispositivo: seu aplicativo deve criar camadas depois de inicializar o destino de renderização com o qual as camadas serão usadas e recriar as camadas sempre que o destino de renderização precisar ser recriado. (Para obter mais informações sobre recursos, consulte Visão geral de recursos.)

Exemplos

O exemplo a seguir usa uma camada para recortar um desenho para uma máscara geométrica. Para obter o exemplo completo, consulte Como recortar para uma máscara geométrica.

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;
}

Requisitos

   
Cliente mínimo com suporte Windows 7, Windows Vista com SP2 e Atualização de Plataforma para Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 R2, Windows Server 2008 com SP2 e Platform Update para Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho d2d1.h

Confira também

ID2D1RenderTarget

ID2D1Resource

Visão geral das camadas