Partager via


D1110 : Échec de vidage

Un appel de vidage par une cible de rendu a échoué [ressource]. Balises [tag1, tag2].

Espaces réservés

Ressource

Adresse de la cible de rendu.

tag1

Valeur de la première balise. Pour plus d’informations, consultez SetTags .

tag2

Deuxième valeur de balise. Pour plus d’informations, consultez SetTags .

   
Niveau d’erreur Avertissement

 

Exemples

Exemple 1 : Le code suivant montre qu’un appel de dessin est dans un état non valide. Pour éviter le message d’avertissement, utilisez SetAntialiasMode pour définir D2D1_ANTIALIAS_MODE_ANTIALIASED avant un appel FillOpacityMask .

       
        if(SUCCEEDED(hr))
        {
            hr = m_pRenderTarget->CreateBitmap(
                D2D1::SizeU(1,1),
                NULL,
                0,
                D2D1::BitmapProperties(D2D1::PixelFormat(
                    DXGI_FORMAT_A8_UNORM, 
                    D2D1_ALPHA_MODE_PREMULTIPLIED
                    )),
                &m_pBitmap
                );                    
        }


        m_pRenderTarget->FillOpacityMask(
            m_pBitmapMask,
            m_pFernBitmapBrush,
            D2D1_OPACITY_MASK_CONTENT_GRAPHICS,
            &rcBrushRect
            );

        hr = m_pRenderTarget->Flush();

        hr = m_pRenderTarget->EndDraw();

Cet exemple génère le message de débogage suivant :

D2D DEBUG WARNING - Flush call on render target failed [88990001]. Tags [0, 0].

Exemple 2 : Le code suivant montre que l’élément Flush est appelé après l’appel EndDraw .

        // Calling Flush after EndDraw generates a
        // flush error message from the debug layer.
       hr = m_pRenderTarget->EndDraw();       
       
       hr = m_pRenderTarget->Flush();

Cet exemple génère le message de débogage suivant :

DEBUG WARNING - A Flush call by a render target failed [88990001]. Tags [0, 0].

Causes possibles

L’appel De vidage peut échouer pour l’une des deux raisons. Elle peut échouer, car la méthode a été appelée en dehors de l’appel BeginDraw/EndDraw , ou elle peut échouer en raison d’une erreur générée par l’une des opérations de rendu cible qui ont été traitées depuis le dernier appel Flush ou EndDraw . Pour résoudre le problème, l’application doit déterminer la cause de l’erreur et prendre les mesures appropriées.

Correctifs

Il existe de nombreuses raisons pour lesquelles un appel de vidage peut échouer. L’application doit déterminer la cause de l’erreur et prendre l’action appropriée.