Lost Devices (Direct3D 9)

D3D device可以是 operational状态 或 lost状态 。

operational状态 就是 可正常渲染状态。

lost状态 由一些事件触发, 转换过去, 如全屏模式下 失去焦点, 会使得渲染无效。Present时返回D3DERR_DEVICELOST错误。

一些情况会导致 设备失效 : 典型的 , 1. ALT+TAB 或 系统对话框被初始化。 2. 电源管理事件 触发   3. 任何Reset失败都会导致device丢失。

 

所有派生自 IUnknown的函数, 都保证在device失效后 仍然工作.   当device失效后, 每个函数会有三种行为:

1. D3DERR_DEVICELOST    这个返回值 你应该意识到, 设备丢失了

2. 默默的失败, 返回S_OK 或 其他代码.  这种情况 你不能 区分 是成功  还是失败。

3. 返回代码

D3D9 和 D3D9 Ex 区别

D3D9 丢失设备后, 之后操作都会失败。

D3D9Ex丢失设备后, 会返回不同的值。

Responding to a Lost Device

一个"丢失设备", 必须被重新创建

posted on 2011-09-02 14:41  oleeceo  阅读(485)  评论(0)    收藏  举报

导航