D3D的设备丢失处理经验
来源:互联网 发布:新浪微博的域名 编辑:程序博客网 时间:2024/05/01 04:08
在D3D图形编程中,你是不是遇到过吃完饭回来,就发现先前运行的DEMO无情地被DOWN掉了的情况。是否遇到过,在DEMO运行过程中,修改了屏幕分辨率,DEMO就DOWN掉了的情况? 这就是传说中的D3D设备丢失。 下面是一些简单的总结。
1.什么时候会设备丢失?
全屏/窗口模式的切换、屏幕锁、修改屏幕分辨率等。上面的这些行为会使D3D设备重置显卡状态以及刷新相应的缓冲区,所以会导致设备的丢失。另外,如果你需要重建后台缓冲区。则同样应该按设备丢失的方法来处理和重新加载你的资源。
2.哪些资源会影响设备丢失?
在创建D3D资源时,可以选择自己管理D3D资源还是让D3D帮你管理资源,前者需要在设备丢失时手动重新载入;后者就不需要。对于使用D3DPOOL_DEFAULT时为自己管理资源,D3DPOOL_MANAGED为D3D管理资源。对于D3DXMESH使用D3DXMESH_SYSTEMMEM因放在系统内存,所以不会存在设备丢失的问题.对于这个问题,你可参见本BLOG中的《D3DPOOL》一文。
3.处理设备丢失的顺序
(1)卸载位于显存的自己管理的D3D资源(D3DPOOL_DEFAULT)和调用一些D3DX资源的OnLostDevice函数,如ISPRITE,ID3DXFONT
(2)按照创建设备时的方法填充D3DPRESENT_PARAMETERS,并使用设备Reset
(3)重新载入设备和调用一些D3DX资源的OnResetDevice函数
(4)重新设置矩阵和初始渲染状态
上面这个是一般方法。对于其中要进行的一些特殊处理,则视个人情况而定!!
另外,当你需要重置资源,但设备又不处于丢失状态的时候。可以强制调用Reset。此时的Reset是不成功的,但他可以导致设备丢失,这样就把要做的工作转交给了处理设备丢失的函数!
- D3D的设备丢失处理经验
- D3D的设备丢失处理经验
- D3D的设备丢失处理经验
- D3D中设备丢失的处理
- D3D设备丢失解释
- D3D中的设备丢失
- d3d 设备丢失和reset
- D3D 设备丢失后,什么会一同丢失?
- 老天爷,搞明白什么叫D3D设备丢失了,及设备丢失后如何办了。。。
- Direct3D中设备丢失处理
- DirectX 3D 设备丢失(lost device)的处理
- DirectX图形的设备类型-D3D入门
- DirectX图形的设备类型-D3D入门
- DirectX图形的设备类型-D3D入门
- 数据文件丢失的处理
- 处理丢失的数据
- d3d设备基础
- Android——处理设备旋转Activity销毁时临时数据丢失的问题
- 关于游戏中的材质系统
- 游戏业现状
- 关于《3D管线导论》这本书
- Alpha混合物体的深度排序[译]
- PS 1.x 中的寄存器
- D3D的设备丢失处理经验
- 详细介绍Z-Buffer与W-Buffer
- Irrlicht(鬼火引擎)中多设备的支持
- ASM字节填充函数
- c++虚函数表探究
- irrlicht v1.6 例程18 Splitscreen
- 一个游戏引擎所应具有的元素
- 啥都想!!!
- 毕业设计,MD2模型动画展示