我需要参考来查找DirectX 9实现中使用的DirectX 11的等效错误代码,如下所示:
D3DERR_INVALIDDEVICE
D3DERR_DRIVERINVALIDCALL
D3DERR_TOOMANYOPERATIONS
D3DERR_DEVICELOST
D3DERR_DEVICENOTRESET
D3DERR_NOTAVAILABLE
我发现winerror.h包含所有DXGI错误代码,但在DiretcX 9中找不到上述错误的等效代码。 请帮助我找到参考书或Wiki,以找到等效的错误代码。
答案 0 :(得分:0)
基于DXGI的Direct3D版本没有“丢失的设备”方案,只有TDR和device removed,因此D3DERR_DEVICELOST
,D3DERR_DEVICENOTRESET
,D3DERR_DRIVERINTERNALERROR
,并且D3DERR_NOTAVAILABLE
情况在Direct3D 10或更高版本中永远不会发生。
如Microsoft Docs所述,您将永远不会得到D3DERR_DRIVERINVALIDCALL
。
D3DERR_TOOMANYOPERATIONS
,D3DERR_CONFLICTINGRENDERSTATE
,D3DERR_CONFLICTINGTEXTUREFILTER
等适用于Direct3D 10或更高版本不存在的旧版固定功能管道。
许多这些较旧的错误,例如D3DERR_UNSUPPORTEDALPHAARG
,D3DERR_UNSUPPORTEDALPHAOPERATION
等,都与旧的旧版“大写位”有关,这与Direct3D 10或更高版本的管理方式无关。而是使用Direct3D hardware feature levels。
在Direct3D9返回D3DERR_INVALIDDEVICE
的情况下,您现在可能会得到E_INVALIDARG
。
您可能想看看this blog post