次の方法で共有


D1110: フラッシュ エラー

レンダー ターゲットによる Flush 呼び出しが失敗しました [resource]。 タグ [tag1, tag2].

プレースホルダー

リソース

レンダー ターゲットのアドレス。

tag1

最初のタグ値。 詳細については 、「SetTags 」を参照してください。

tag2

2 番目のタグ値。 詳細については 、「SetTags 」を参照してください。

   
エラー レベル 警告

 

例 1: 次のコードは、描画呼び出しが無効な状態であることを示しています。 警告メッセージを回避するには、 SetAntialiasMode を使用して 、FillOpacityMask 呼び出しの前にD2D1_ANTIALIAS_MODE_ANTIALIASEDを設定します。

       
        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:次のコードは、EndDraw 呼び出しの後に Flush が呼び出されることを示しています。

        // 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 呼び出しは、2 つの理由のいずれかで失敗する可能性があります。 BeginDraw/EndDraw 呼び出しの外部でメソッドが呼び出されたために失敗する場合や、最後の Flush 呼び出しまたは EndDraw 呼び出し以降に処理されたレンダー ターゲット操作の 1 つによって生成されたエラーが原因で失敗する可能性があります。 この問題を解決するには、アプリケーションでエラーの原因を特定し、適切なアクションを実行する必要があります。

修正

Flush 呼び出しが失敗する理由は多数あります。 アプリケーションでエラーの原因を特定し、適切なアクションを実行する必要があります。