等同于DirectX 9的DirectX 11错误

时间:2019-02-18 08:11:38

标签: c++ directx-11 directx-9 dxgi

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

D3DERR_INVALIDDEVICE
D3DERR_DRIVERINVALIDCALL
D3DERR_TOOMANYOPERATIONS
D3DERR_DEVICELOST
D3DERR_DEVICENOTRESET
D3DERR_NOTAVAILABLE

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

1 个答案:

答案 0 :(得分:0)

基于DXGI的Direct3D版本没有“丢失的设备”方案,只有TDRdevice removed,因此D3DERR_DEVICELOSTD3DERR_DEVICENOTRESETD3DERR_DRIVERINTERNALERROR ,并且D3DERR_NOTAVAILABLE情况在Direct3D 10或更高版本中永远不会发生。

Microsoft Docs所述,您将永远不会得到D3DERR_DRIVERINVALIDCALL

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

许多这些较旧的错误,例如D3DERR_UNSUPPORTEDALPHAARGD3DERR_UNSUPPORTEDALPHAOPERATION等,都与旧的旧版“大写位”有关,这与Direct3D 10或更高版本的管理方式无关。而是使用Direct3D hardware feature levels

在Direct3D9返回D3DERR_INVALIDDEVICE的情况下,您现在可能会得到E_INVALIDARG

  

您可能想看看this blog post