Поделиться через


D1110: сбой очистки

Сбой вызова flush целевого объекта отрисовки [ресурс]. Теги [тег1, тег2].

Заполнители

Ресурсов

Адрес целевого объекта отрисовки.

tag1

Первое значение тега. Дополнительные сведения см. в разделе SetTags .

tag2

Второе значение тега. Дополнительные сведения см. в разделе SetTags .

   
Уровень ошибки Предупреждение

 

Примеры

Пример 1. В следующем коде показано, что вызов draw находится в недопустимом состоянии. Чтобы избежать предупреждения, используйте SetAntialiasMode , чтобы задать D2D1_ANTIALIAS_MODE_ANTIALIASED перед вызовом 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();

В этом примере показано следующее сообщение об отладке:

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

Пример 2. В следующем коде показано, что flush вызывается после вызова EndDraw .

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

В этом примере показано следующее сообщение об отладке:

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

Возможные причины

Вызов Flush может завершиться ошибкой по одной из двух причин. Может произойти сбой, так как метод был вызван вне вызова BeginDraw/EndDraw , или из-за ошибки, вызванной одной из целевых операций отрисовки, которые были обработаны с момента последнего вызова Flush или вызова EndDraw . Чтобы устранить эту проблему, приложение должно определить причину ошибки и предпринять соответствующие действия.

Исправления

Существует множество причин, по которым вызов Flush может завершиться ошибкой. Приложение должно определить причину ошибки и предпринять соответствующие действия.