今天遇到一个设备丢失的问题,浪费我好长时间才跟出来,真坑爹!结果是用到了一个ID3DXEffect接口,设备丢失时没有处理造成的。每次遇到设备丢失的问题都要跟踪好长时间才能搞定。所以给个建议:每当在系统中添加一个新的资源或者使用一个新的接口时,一定要处理其设备丢失问题,否则以后处理起来会很费劲!
下面总结一下设备丢失时需要处理的一些资源,暂时只想到这么多,如果有不完善的地方还请各位补充!
1. 系统中使用D3DPOOL_DEFAULT类型创建的资源
2. 使用函数IDirect3DDevice9::CreateRenderTarget和IDirect3DDevice9::CreateDepthStencilSurface 创建的资源
3. IDirect3DSwapChain9
4. ID3DXSprite
5. IDirect3DQuery9
6. ID3DXFont
7. ID3DXLine
8. ID3DXEffect