Interface ID2D1Layer (d2d1.h)

Représente le magasin de stockage nécessaire au rendu d’une couche.

Héritage

L’interface ID2D1Layer hérite d’ID2D1Resource. ID2D1Layer possède également les types de membres suivants :

Méthodes

L’interface ID2D1Layer utilise ces méthodes.

 
ID2D1Layer::GetSize

Obtient la taille de la couche en pixels indépendants de l’appareil.

Remarques

Pour créer une couche, appelez la méthode CreateLayer de la cible de rendu où la couche sera utilisée. Pour dessiner vers une couche, envoyez-la à la pile cible de rendu en appelant la méthode PushLayer . Une fois que vous avez terminé le dessin dans le calque, appelez la méthode PopLayer .

Entre les appels PushLayer et PopLayer , la couche est en cours d’utilisation et ne peut pas être utilisée par une autre cible de rendu.

Si la taille du calque n’est pas spécifiée, l’appel PushLayer correspondant détermine la taille minimale de la couche, en fonction des limites de contenu de la couche et du masque géométrique. La ressource de couche peut être supérieure à la taille requise par PushLayer sans artefact de rendu.

Si la taille d’un calque est spécifiée, ou si la couche a été utilisée et que la taille du magasin de stockage de stockage requise calculée pendant PushLayer est supérieure à la couche, la ressource de couche est développée sur chaque axe de manière monotone pour garantir qu’elle est suffisamment grande. La taille de la ressource de couche ne diminue jamais.

Création d’objets ID2D1Layer

Pour créer une couche, appelez la méthode CreateLayer de la cible de rendu où la couche sera utilisée.

Une couche est une ressource dépendante de l’appareil : votre application doit créer des couches après avoir initialisé la cible de rendu avec laquelle les couches seront utilisées, et recréer les couches chaque fois que la cible de rendu doit être recréée. (Pour plus d’informations sur les ressources, consultez Vue d’ensemble des ressources.)

Exemples

L’exemple suivant utilise un calque pour couper un dessin sur un masque géométrique. Pour obtenir l’exemple complet, consultez Comment cliper un masque géométrique.

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

Configuration requise

   
Client minimal pris en charge Windows 7, Windows Vista avec SP2 et Mise à jour de plateforme pour Windows Vista [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2, Windows Server 2008 avec SP2 et Mise à jour de plateforme pour Windows Server 2008 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête d2d1.h

Voir aussi

ID2D1RenderTarget

ID2D1Resource

Vue d’ensemble des couches