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 |