Udostępnij przez


D1110: Niepowodzenie opróżniania

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.