D3D的设备丢失处理经验

1.什么时候会设备丢失?
全屏下被强制切回桌面时就会设备丢失
创建于显存的资源在设备丢失时会破损,如果没有重新载入就会引起设备丢失

 

2.哪些资源会影响设备丢失?
在创建D3D资源时,可以选择自己管理D3D资源还是让D3D帮你管理资源,前者需要在设备丢失时手动重新载入;后者就不需要。对于使用D3DPOOL_DEFAULT时为自己管理资源,D3DPOOL_MANAGED为D3D管理资源。对于D3DXMESH使用D3DXMESH_SYSTEMMEM因放在系统内存,所以不会存在设备丢失的问题.

3.哪些时候需要处理设备丢失
(1)在切换为全屏时
(2)改变窗口大小时,需要重新设定设备
(2)在Present返回D3DERR_DEVICELOST时

4.处理设备丢失的顺序
(1)卸载位于显存的自己管理的D3D资源和调用一些D3DX资源的OnLostDevice函数,如ISPRITE,ID3DXFONT
(2)按照创建设备时的方法填充D3DPRESENT_PARAMETERS,并使用设备Reset
(3)重新载入设备和调用一些D3DX资源的OnResetDevice函数
(4)重新设置矩阵和初始渲染状态

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值