D1110: Fehler beim Leeren

Ein Flush-Aufruf durch ein Renderziel ist fehlgeschlagen [Ressource]. Tags [tag1, tag2].

Platzhalter

Ressource

Die Adresse des Renderziels.

tag1

Der erste Tagwert. Weitere Informationen finden Sie unter SetTags .

tag2

Der zweite Tagwert. Weitere Informationen finden Sie unter SetTags .

   
Fehlerebene Warnung

 

Beispiele

Beispiel 1: Der folgende Code zeigt, dass sich ein Draw-Aufruf in einem ungültigen Zustand befindet. Um die Warnmeldung zu vermeiden, verwenden Sie SetAntialiasMode , um D2D1_ANTIALIAS_MODE_ANTIALIASED vor einem FillOpacityMask-Aufruf festzulegen.

       
        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();

In diesem Beispiel wird die folgende Debugmeldung erzeugt:

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

Beispiel 2: Der folgende Code zeigt, dass das Flush nach dem EndDraw-Aufruf aufgerufen wird.

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

In diesem Beispiel wird die folgende Debugmeldung erzeugt:

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

Mögliche Ursachen

Der Flush-Aufruf kann aus einem von zwei Gründen fehlschlagen. Es kann ein Fehler auftreten, weil die Methode außerhalb des BeginDraw/EndDraw-Aufrufs aufgerufen wurde, oder es kann ein Fehler auftreten, weil ein Fehler von einem der Renderzielvorgänge verursacht wurde, die seit dem letzten Flush- oder EndDraw-Aufruf verarbeitet wurden. Um das Problem zu beheben, sollte die Anwendung die Ursache des Fehlers ermitteln und die entsprechende Aktion ausführen.

Fehlerbehebungen

Es gibt viele Gründe, warum ein Flush-Aufruf fehlschlägt. Die Anwendung sollte die Ursache des Fehlers ermitteln und die entsprechende Aktion ergreifen.