D1110: Leerungsfehler

Ein Flush-Aufruf durch eine fehlerhafte [ Renderzielressource. ] 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.

   
Fehlerstufe 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 zu setzen.

       
        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 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. Möglicherweise tritt ein Fehler auf, weil die Methode außerhalb des BeginDraw / EndDraw-Aufrufs aufgerufen wurde, oder weil ein Fehler aufgetreten ist, der von einem der Renderzielvorgänge erzeugt 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 ergreifen.

Fehlerbehebungen

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