D3DERR内容详细翻译

D3DERR

    用于返回Direct3D相关的错误信息。

    下面这个列表是可以通过 Direct3D 方法返回的值的列表。返回的各值的说明请参阅列表解释中的描述。

 

   
   
1 typedef enum D3DERR
2 {
3 D3DOK_NOAUTOGEN,
4 D3DERR_CONFLICTINGRENDERSTATE,
5 D3DERR_CONFLICTINGTEXTUREFILTER,
6 D3DERR_CONFLICTINGTEXTUREPALETTE,
7 D3DERR_DEVICEHUNG,
8 D3DERR_DEVICELOST,
9 D3DERR_DEVICENOTRESET,
10 D3DERR_DEVICEREMOVED,
11 D3DERR_DRIVERINTERNALERROR,
12 D3DERR_DRIVERINVALIDCALL,
13 D3DERR_INVALIDCALL,
14 D3DERR_INVALIDDEVICE,
15 D3DERR_MOREDATA,
16 D3DERR_NOTAVAILABLE,
17 D3DERR_NOTFOUND,
18 D3D_OK,
19 D3DERR_OUTOFVIDEOMEMORY,
20 D3DERR_TOOMANYOPERATIONS,
21 D3DERR_UNSUPPORTEDALPHAARG,
22 D3DERR_UNSUPPORTEDALPHAOPERATION,
23 D3DERR_UNSUPPORTEDCOLORARG,
24 D3DERR_UNSUPPORTEDCOLOROPERATION,
25 D3DERR_UNSUPPORTEDFACTORVALUE,
26 D3DERR_UNSUPPORTEDTEXTUREFILTER,
27 D3DERR_WASSTILLDRAWING,
28 D3DERR_WRONGTEXTUREFORMAT,
29 E_FAIL,
30 E_INVALIDARG,
31 E_INVALIDCALL,
32 E_NOINTERFACE,
33 E_NOTIMPL,
34 E_OUTOFMEMORY,
35 S_OK,
36 } D3DERR, * LPD3DERR;

 

枚举的常量:

 

D3DOK_NOAUTOGEN
这是一个成功的代码。但是,这种格式不支持纹理的自动生成。这意味着资源创建将会成功,但纹理色阶将不会自动生成。

D3DERR_CONFLICTINGRENDERSTATE
与当前设置的渲染状态不能同时使用。

D3DERR_CONFLICTINGTEXTUREFILTER
与当前纹理筛选器不能同时使用。

D3DERR_CONFLICTINGTEXTUREPALETTE
与当前纹理不能同时使用。

D3DERR_DEVICEHUNG
设备返回此代码是由于操作系统重置了硬件适配器。大多数应用程序应当销毁该设备,并退出。应用程序必须继续应销毁所有视频内存对象 (表面,纹理,状态块等),并调用 Reset() 将该设备的重置为默认状态。如果应用程序随后继续以同样的方式渲染,设备将返回此状态。

D3DERR_DEVICELOST
设备已经丢失,但不能在这个时候被重置。因此,渲染是不合理的。一个Direct 3D设备对象而不是这个返回的代码引起的硬件适配器被操作系统重置。删除所有视频内存对象 (表面、 纹理、 状态块),并调用 Reset() 以返回到设备默认状态。如果应用程序继续渲染而不重置,渲染调用将失败。

D3DERR_DEVICENOTRESET
设备已丢失,但在这个时候可以重置。

D3DERR_DEVICEREMOVED
硬件适配器已被删除。应用程序必须销毁该设备、 进行枚举的显卡和创建另一个 D3D 设备。如果应用程序无需调用 Reset 继续渲染,渲染调用将失败。

D3DERR_DRIVERINTERNALERROR
内部驱动程序错误。当收到此错误时应用程序应销毁,并重新创建该设备。调试此错误的提示请参阅驱动程序内部错误 (Direct3D 9)。

D3DERR_DRIVERINVALIDCALL
未使用。

D3DERR_INVALIDCALL
方法调用无效。例如一个方法的参数的无效指针。

D3DERR_INVALIDDEVICE
请求的设备类型不是有效的。

D3DERR_MOREDATA
可支持比指定的缓冲区大小更多的有效数据。

D3DERR_NOTAVAILABLE
此设备不支持查询的技术。

D3DERR_NOTFOUND
找不到的请求的项目。

D3D_OK
没有错误产生。

D3DERR_OUTOFVIDEOMEMORY
Direct3D的没有足够的显存来执行操作。该设备使用一个场景中的更多资源不能同时容纳视频内存。IDirect3DDevice9::Present、 IDirect3DDevice9Ex::PresentEx 或 IDirect3DDevice9Ex::CheckDeviceState 可以返回此错误。恢复类似于 D3DERR_DEVICEHUNG,虽然该应用程序可能需要降低其每个帧内存使用情况,并且为了避免再发生该错误。

D3DERR_TOOMANYOPERATIONS
这个应用程序请求设备支持更多的纹理过滤操作。

D3DERR_UNSUPPORTEDALPHAARG
该设备不支持alpha通道中指定的纹理混合的参数。

D3DERR_UNSUPPORTEDALPHAOPERATION
该设备不支持alpha 通道中指定的纹理混合的操作 。

D3DERR_UNSUPPORTEDCOLORARG
该设备不支持指定的纹理混合的颜色值的参数。

D3DERR_UNSUPPORTEDCOLOROPERATION
该设备不支持指定的纹理混合操作的颜色值。

D3DERR_UNSUPPORTEDFACTORVALUE
该设备不支持指定的纹理因子的值。未使用; 提供仅以支持较旧的驱动程序。

D3DERR_UNSUPPORTEDTEXTUREFILTER
该设备不支持指定的纹理过滤器。

D3DERR_WASSTILLDRAWING
这表明之前的位传递操作所传递的信息或表面是不完整的。

D3DERR_WRONGTEXTUREFORMAT
纹理表面的像素格式不正确。

E_FAIL
Direct3D子系统内发生未确定的错误。

E_INVALIDARG
一个无效的参数传递给该函数的返回值。

E_INVALIDCALL
方法调用是无效的。例如,一个方法的参数,可能有一个无效值。

E_NOINTERFACE
没有可用的对象接口。

E_NOTIMPL
未执行。

E_OUTOFMEMORY
Direct3D 无法分配足够的内存来完成调用。

S_OK
没有错误产生。

备注:

错误代码是由负值表示,并且不能进行组合使用。
其它的返回代码包含在 S_PRESENT 中。
这段功能代码 _FACD3D 用于生成错误代码 ,如同下面的宏代码。

 

 

   
   
1 // Direct3D Errors
2 # define D3DERR_UNSUPPORTEDFACTORVALUE MAKE_D3DHRESULT( 2079 )
3 # define D3DERR_WASSTILLDRAWING MAKE_D3DHRESULT( 540 )
4
5 # define _FACD3D 0x876 / / Direct3D 设备代码
6 # define MAKE_D3DHRESULT (code MAKE_HRESULT ( 1 ,_FACD3D,code
7 # define MAKE_D3DSTATUS (code MAKE_HRESULT ( 0 ,_FACD3D,code)

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值