Share via


ID2D1RenderTarget::CreateLayer(constD2D1_SIZE_F*,ID2D1Layer**)-Methode (d2d1.h)

Erstellt eine Ebenenressource, die mit diesem Renderziel und seinen kompatiblen Renderzielen verwendet werden kann.

Syntax

HRESULT CreateLayer(
  const D2D1_SIZE_F *size,
  ID2D1Layer        **layer
);

Parameter

size

Typ: [in] const D2D1_SIZE_F*

Wenn (0, 0) angegeben ist, wird hinter der Layerressource kein Sicherungsspeicher erstellt. Die Layerressource wird der Mindestgröße zugeordnet, wenn PushLayer aufgerufen wird.

layer

Typ: [out] ID2D1Layer**

Wenn die Methode zurückgibt, enthält einen Zeiger auf einen Zeiger auf die neue Ebene. Dieser Parameter wird nicht initialisiert übergeben.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein HRESULT-Fehlercode zurückgegeben.

Hinweise

Die Ebene ändert sich bei Bedarf automatisch selbst.

Beispiele

Im folgenden Beispiel wird eine Ebene verwendet, um eine Bitmap in eine geometrische Maske zu schneiden. Das vollständige Beispiel finden Sie unter How to Clip to a Geometric Mask.For the complete example, see How to Clip to a Geometric Mask.

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

Anforderung Wert
Zielplattform Windows
Kopfzeile d2d1.h
Bibliothek D2d1.lib
DLL D2d1.dll

Weitere Informationen

ID2D1RenderTarget

Übersicht über Ebenen