Compartir a través de


Interfaz ID2D1Layer (d2d1.h)

Representa el almacén de respaldo necesario para representar una capa.

Herencia

La interfaz ID2D1Layer hereda de ID2D1Resource. ID2D1Layer también tiene estos tipos de miembros:

Métodos

La interfaz ID2D1Layer tiene estos métodos.

 
ID2D1Layer::GetSize

Obtiene el tamaño de la capa en píxeles independientes del dispositivo.

Comentarios

Para crear una capa, llame al método CreateLayer del destino de representación donde se usará la capa. Para dibujar en una capa, inserte la capa en la pila de destino de representación llamando al método PushLayer . Cuando haya terminado de dibujar en la capa, llame al método PopLayer .

Entre las llamadas PushLayer y PopLayer , la capa está en uso y no se puede usar con otro destino de representación.

Si no se especifica el tamaño de la capa, la llamada a PushLayer correspondiente determina el tamaño mínimo de la capa, en función de los límites de contenido de la capa y la máscara geométrica. El recurso de capa puede ser mayor que el tamaño requerido por PushLayer sin necesidad de representar artefactos.

Si se especifica el tamaño de una capa, o si se ha usado la capa y el tamaño de la memoria auxiliar necesaria, según se calcula durante PushLayer es mayor que la capa, el recurso de capa se expande en cada eje de forma monotónica para asegurarse de que es lo suficientemente grande. El recurso de capa nunca se reduce en tamaño.

Creación de objetos ID2D1Layer

Para crear una capa, llame al método CreateLayer del destino de representación donde se usará la capa.

Una capa es un recurso dependiente del dispositivo: la aplicación debe crear capas después de inicializar el destino de representación con el que se usarán las capas y volver a crear las capas cada vez que se necesite volver a crear el destino de representación. (Para obtener más información sobre los recursos, consulte Información general sobre recursos).

Ejemplos

En el ejemplo siguiente se usa una capa para recortar un dibujo en una máscara geométrica. Para obtener el ejemplo completo, vea Cómo recortar a una 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 compatible Windows 7, Windows Vista con SP2 y Platform Update para Windows Vista [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2, Windows Server 2008 con SP2 y Actualización de plataforma para Windows Server 2008 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado d2d1.h

Consulte también

ID2D1RenderTarget

ID2D1Resource

Introducción a las capas