DirectX 11 错误等同于 DirectX 9

DirectX 11 errors equivalent to DirectX 9

本文关键字:DirectX 等同于 错误      更新时间:2023-10-16

我需要查找 DirectX 9 实现中使用的 DirectX 11 等效错误代码的参考,如下所示:

D3DERR_INVALIDDEVICE
D3DERR_DRIVERINVALIDCALL
D3DERR_TOOMANYOPERATIONS
D3DERR_DEVICELOST
D3DERR_DEVICENOTRESET
D3DERR_NOTAVAILABLE

我发现winerror.h包含所有DXGI错误代码,但在DiretcX 9中找不到上述错误的等效代码。 请帮助我找到参考或 wiki 以查找等效的错误代码。

基于DXGI 的 Direct3D 版本没有"丢失设备"方案,只有 TDR 和设备已删除,因此 Direct3D 10 或更高版本永远不会发生D3DERR_DEVICELOSTD3DERR_DEVICENOTRESETD3DERR_DRIVERINTERNALERRORD3DERR_NOTAVAILABLE情况。

如Microsoft文档中所述,您将永远不会得到D3DERR_DRIVERINVALIDCALL

D3DERR_TOOMANYOPERATIONSD3DERR_CONFLICTINGRENDERSTATED3DERR_CONFLICTINGTEXTUREFILTER等适用于 Direct3D 10 或更高版本不存在的旧版固定函数管道。

许多这些较旧的错误,如D3DERR_UNSUPPORTEDALPHAARGD3DERR_UNSUPPORTEDALPHAOPERATION等,都与旧的旧版"大写位"有关,这不是Direct3D 10或更高版本的管理方式。相反,它使用 Direct3D 硬件功能级别。

如果 Direct3D9 将返回D3DERR_INVALIDDEVICE则您现在可能会E_INVALIDARG

你可能想看看这篇博文