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
一个"丢失设备", 必须被重新创建