Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Fehler bei einem Flush-Aufruf eines Renderziels [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 .
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 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 " 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 zwei Gründen fehlschlagen. Möglicherweise schlägt die Methode fehl, da die Methode außerhalb desBeginDraw EndDraw-Aufrufs/ aufgerufen wurde, oder sie schlägt fehl, da es einen Fehler gab, 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 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.