Freigeben über


ID2D1Layer-Schnittstelle (d2d1.h)

Stellt den Sicherungsspeicher dar, der zum Rendern einer Ebene erforderlich ist.

Vererbung

Die ID2D1Layer-Schnittstelle erbt von ID2D1Resource. ID2D1Layer verfügt auch über folgende Membertypen:

Methoden

Die ID2D1Layer-Schnittstelle verfügt über diese Methoden.

 
ID2D1Layer::GetSize

Ruft die Größe der Ebene in geräteunabhängigen Pixeln ab.

Hinweise

Um eine Ebene zu erstellen, rufen Sie die CreateLayer-Methode des Renderziels auf, in dem die Ebene verwendet wird. Um auf eine Ebene zu zeichnen, pushen Sie die Ebene auf den Renderzielstapel, indem Sie die PushLayer-Methode aufrufen. Nachdem Sie das Zeichnen für die Ebene abgeschlossen haben, rufen Sie die PopLayer-Methode auf.

Zwischen PushLayer - und PopLayer-Aufrufen wird die Ebene verwendet und kann nicht von einem anderen Renderziel verwendet werden.

Wenn die Größe der Ebene nicht angegeben wird, bestimmt der entsprechende PushLayer-Aufruf die Mindestebenengröße basierend auf den Ebeneninhaltsgrenzen und der geometrischen Maske. Die Ebenenressource kann größer sein als die für PushLayer erforderliche Größe ohne Renderingartefakte.

Wenn die Größe einer Ebene angegeben wird oder die Ebene verwendet wurde und die erforderliche Größe des Sicherungsspeichers, wie sie während PushLayer berechnet wird, größer als die Ebene ist, wird die Ebenenressource monoton auf jeder Achse erweitert, um sicherzustellen, dass sie groß genug ist. Die Ebenenressource verkleinern sich nie.

Erstellen von ID2D1Layer-Objekten

Um eine Ebene zu erstellen, rufen Sie die CreateLayer-Methode des Renderziels auf, in dem die Ebene verwendet wird.

Eine Ebene ist eine geräteabhängige Ressource: Ihre Anwendung sollte Ebenen erstellen, nachdem sie das Renderziel initialisiert hat, mit dem die Ebenen verwendet werden, und die Ebenen immer dann neu erstellen, wenn das Renderziel neu erstellt werden muss. (Weitere Informationen zu Ressourcen finden Sie unter Ressourcenübersicht.)

Beispiele

Im folgenden Beispiel wird eine Ebene verwendet, um eine Zeichnung an eine geometrische Maske zu schneiden. Das vollständige Beispiel finden Sie unter Ausschnitt in eine geometrische Maske.

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

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 7, Windows Vista mit SP2 und Plattformupdate für Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2, Windows Server 2008 mit SP2 und Plattformupdate für Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile d2d1.h

Weitere Informationen

ID2D1RenderTarget

ID2D1Resource

Übersicht über Ebenen