呈现器目标的刷新调用失败 [resource]。 标记 [tag1, tag2]。
占位符
-
资源
-
呈现目标的地址。
-
tag1
-
第一个标记值。 有关详细信息 ,请参阅 SetTags 。
-
tag2
-
第二个标记值。 有关详细信息 ,请参阅 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 调用可能会失败,原因有两个。 它可能会失败,因为该方法是在BeginDraw EndDraw/ 调用之外调用的,也可能失败,因为自上次 Flush 调用或 EndDraw 调用以来已处理的呈现目标作之一生成了错误。 若要解决此问题,应用程序应确定错误的原因并采取相应的作。
修补程序
刷新调用可能失败的原因有很多。 应用程序应确定错误的原因并采取相应的作。