D2DERR_RECREATE_TARGET错误是否真的意味着我必须跟踪渲染目标创建的所有内容?

Mic*_*ron 2 c# c++ directx direct2d sharpdx

我每小时多次随机获取此错误(D2DERR_RECREATE_TARGET),在阅读该错误后,我似乎无法避免它.我使用的是SharpDX,它是"一个在.Net平台下提供完整DirectX API的开源项目".

根据microsoft的文档:"Direct2D通过从EndDraw方法返回错误代码D2DERR_RECREATE_TARGET来指示丢失的设备.如果收到此错误代码,则必须重新创建渲染目标和所有依赖于设备的资源."

这是否真的意味着我需要跟踪渲染目标创建的每个依赖于设备的资源(有很多!)并停止使用或者我错了吗?或者也许这里有人知道解决这个错误的方法?

vt.*_*vt. 5

由D2DERR_RECREATE_TARGET失败的渲染目标创建的对象不能再用于绘制.

所以:是的,您需要跟踪所需的对象并重新创建它们或不使用它们.

很奇怪,你经常得到错误.也许您的复杂渲染会触发视频驱动程序中的错误或使用太多内存.

有时,错误可能就像在特定视频卡上绘制位图边界之外一样简单.

启用D2DD3D调试层可能有助于找到错误原因.