Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wywołanie opróżniania przez element docelowy renderowania nie powiodło się [zasób]. Tagi [tag1, tag2].
Symbole zastępcze
-
zasób
-
Adres obiektu docelowego renderowania.
-
tag1
-
Pierwsza wartość tagu. Aby uzyskać więcej informacji, zobacz SetTags .
-
tag2
-
Druga wartość tagu. Aby uzyskać więcej informacji, zobacz SetTags .
| Poziom błędu | Ostrzeżenie |
Przykłady
Przykład 1: Poniższy kod pokazuje, że wywołanie rysowania jest w nieprawidłowym stanie. Aby uniknąć komunikatu ostrzegawczego, użyj polecenia SetAntialiasMode , aby ustawić D2D1_ANTIALIAS_MODE_ANTIALIASED przed wywołaniem maski 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();
W tym przykładzie zostanie wyświetlony następujący komunikat debugowania:
D2D DEBUG WARNING - Flush call on render target failed [88990001]. Tags [0, 0].
Przykład 2: Poniższy kod pokazuje, że opróżnianie jest wywoływane po wywołaniu EndDraw .
// Calling Flush after EndDraw generates a
// flush error message from the debug layer.
hr = m_pRenderTarget->EndDraw();
hr = m_pRenderTarget->Flush();
W tym przykładzie zostanie wyświetlony następujący komunikat debugowania:
DEBUG WARNING - A Flush call by a render target failed [88990001]. Tags [0, 0].
Możliwe przyczyny
Wywołanie opróżniania może zakończyć się niepowodzeniem z jednego z dwóch powodów. Może się to nie powieść, ponieważ metoda została wywołana poza wywołaniem BeginDraw/EndDraw lub może zakończyć się niepowodzeniem, ponieważ wystąpił błąd wygenerowany przez jedną z operacji obiektu docelowego renderowania, które zostały przetworzone od ostatniego wywołania opróżniania lub wywołania EndDraw . Aby rozwiązać ten problem, aplikacja powinna określić przyczynę błędu i podjąć odpowiednie działania.
Poprawki
Istnieje wiele powodów, dla których wywołanie opróżniania może zakończyć się niepowodzeniem. Aplikacja powinna określić przyczynę błędu i podjąć odpowiednie działania.