Condividi tramite


Interfaccia ID2D1Layer (d2d1.h)

Rappresenta l'archivio di backup necessario per eseguire il rendering di un livello.

Ereditarietà

L'interfaccia ID2D1Layer eredita da ID2D1Resource. ID2D1Layer include anche questi tipi di membri:

Metodi

L'interfaccia ID2D1Layer include questi metodi.

 
ID2D1Layer::GetSize

Ottiene le dimensioni del livello in pixel indipendenti dal dispositivo.

Commenti

Per creare un livello, chiamare il metodo CreateLayer della destinazione di rendering in cui verrà usato il livello. Per disegnare su un livello, eseguire il push del livello nello stack di destinazione di rendering chiamando il metodo PushLayer . Al termine del disegno al livello, chiamare il metodo PopLayer .

Tra le chiamate PushLayer e PopLayer , il livello è in uso e non può essere usato da un'altra destinazione di rendering.

Se le dimensioni del livello non vengono specificate, la chiamata PushLayer corrispondente determina le dimensioni minime del livello, in base ai limiti del contenuto del livello e alla maschera geometrica. La risorsa livello può essere maggiore delle dimensioni richieste da PushLayer senza alcun artefatto di rendering.

Se si specificano le dimensioni di un livello o se il livello è stato usato e le dimensioni dell'archivio di backup necessarie calcolate durante PushLayer sono maggiori del livello, la risorsa livello viene espansa su ogni asse in modo monotonico per garantire che sia sufficientemente grande. La risorsa livello non si riduce mai di dimensioni.

Creazione di oggetti ID2D1Layer

Per creare un livello, chiamare il metodo CreateLayer della destinazione di rendering in cui verrà usato il livello.

Un livello è una risorsa dipendente dal dispositivo: l'applicazione deve creare livelli dopo aver inizializzato la destinazione di rendering con cui verranno usati i livelli e ricreare i livelli ogni volta che la destinazione di rendering deve essere ricreata. Per altre informazioni sulle risorse, vedere Panoramica delle risorse.

Esempio

Nell'esempio seguente viene utilizzato un livello per ritagliare un disegno in una maschera geometrica. Per l'esempio completo, vedere Come ritagliare una maschera geometrica.

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

Requisiti

   
Client minimo supportato Windows 7, Windows Vista con SP2 e Aggiornamento della piattaforma per Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2, Windows Server 2008 con SP2 e Platform Update per Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione d2d1.h

Vedi anche

ID2D1RenderTarget

ID2D1Resource

Panoramica dei livelli