IDirect3DTexture9::LockRect调用失败的原因

凤朝凰 2010-09-21 02:54:46
D3D和DShow联合开发的程序,现在基本运行正常。但是发现在开启瑞星杀毒全盘扫描后,有时会出现在程序运行一段时间后调用IDirect3DTexture9::LockRect 方法失败,返回 D3DERR_INVALIDCALL 的错误代码。不知道是什么原因,哪位高手可以给个思路什么的,谢谢了。
...全文
442 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
robtown 2010-12-04
  • 打赏
  • 举报
回复
我也遇到同样问题,还在研究中
凤朝凰 2010-09-25
  • 打赏
  • 举报
回复
我去查一下这个
xingzhe2001 2010-09-25
  • 打赏
  • 举报
回复
我也感觉是设备丢失的问题
凤朝凰 2010-09-25
  • 打赏
  • 举报
回复
目前只在开启瑞星全盘查杀的过程中发现过这个问题,其他时候还没有发现。不过我认为不一定要瑞星,而只是取决于CPU使用率,或者内核代码的执行时间。不过还没办法验证。
凤朝凰 2010-09-25
  • 打赏
  • 举报
回复
	if( FAILED( D3DXCreateTexture( mpD3dDevice,			//LPDIRECT3DDEVICE9 pDevice,
Width, //UINT Width,
Height, //UINT Height,
D3DX_DEFAULT, //UINT MipLevels,
D3DUSAGE_DYNAMIC, //DWORD Usage,
D3DFMT_R8G8B8, //D3DFORMAT Format,
D3DPOOL_DEFAULT, //D3DPOOL Pool,
&mpTexture //LPDIRECT3DTEXTURE9 *ppTexture
) ) )
以上是创建纹理的代码。
设备丢失没有在代码里检查,不过我的是全屏程序,运行过程中没有操作。应该不会有丢失设备的情况吧。
凤朝凰 2010-09-25
  • 打赏
  • 举报
回复
已经验证不是设备丢失的原因。在锁定纹理失败时,仍然可以成功完成渲染。
yashuwa0622 2010-09-23
  • 打赏
  • 举报
回复
能不能你创建texture的的代码也贴出来看看,还有,是不是只要不开瑞星,就不会出现这种情况?
yashuwa0622 2010-09-23
  • 打赏
  • 举报
回复
你有没有判断设备有无丢失?

8,302

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧