游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5970|回复: 8

Reset设备报错。。。求教。。。

[复制链接]

1

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2011-5-28 16:52:00 | 显示全部楼层 |阅读模式
if( wParam == SIZE_MAXIMIZED ) //更改窗口大小
{
onLostDevice();
gd3dDevice->Reset(&md3dPP);
onResetDevice();
}
在Reset这里会报错..
gd3dDevice->Reset(&md3dPP) hr=D3DERR_INVALIDCALL (0x8876086c)
。。。。为什么会出现无效的调用呢。。

我之前在工程中有添加一个类,是个草体的类,把这个类的实例删除后,这里就不会报错了。。。
我晕了。。
这个。。。
附件是md3dPP的各个数值。。。

1

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2011-5-28 16:53:00 | 显示全部楼层

Re:Reset设备报错。。。求教。。。

debug的信息是:
All user created D3DPOOL_DEFAULT surfaces must be freed before Reset can succeed
也就是说我在建立vertex/index的时候采用的是D3DPOOL_DEFAULT,
我尝试着把D3DPOOL_DEFAULT修改为D3DPOOL_MANAGED就没有事情了。。

但是还是不解啊。。如果我就是要用D3DPOOL_DEFAULT呢??怎么去free这一部分呢。。。

查看文档:
D3DPOOL_DEFAULT:
     资源存储位置:此类资源不由D3D管理,通常被创建在显存或AGP Aperture中。
             当设备丢失时,必需手动恢复资源,增加了代码复杂度。
这个。。。how to ?

22

主题

98

帖子

98

积分

注册会员

Rank: 2

积分
98
QQ
发表于 2011-5-28 17:57:00 | 显示全部楼层

Re:Reset设备报错。。。求教。。。

应该是什么东西没释放,reset前有很多东西需要释放,没释放干净就会失败。
“Before calling the IDirect3DDevice9::Reset method for a device, an application should release any explicit render targets, depth stencil surfaces, additional swap chains, state blocks, and D3DPOOL_DEFAULT resources associated with the device.

1

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2011-5-28 17:59:00 | 显示全部楼层

Re: Re:Reset设备报错。。。求教。。。

hflong240: Re:Reset设备报错。。。求教。。。

应该是什么东西没释放,reset前有很多东西需要释放,没释放干净就会失败。
“Before calling the IDirect3...

恩谢谢回复!,你说的对,我查看了一下,是D3DPOOL_DEFAULT建立的Index没有释放,具体我写在1L了。。。
抱歉。。我比较菜。。。

22

主题

98

帖子

98

积分

注册会员

Rank: 2

积分
98
QQ
发表于 2011-5-28 18:00:00 | 显示全部楼层

Re:Reset设备报错。。。求教。。。

Release掉,reset之后重新创建就行了

1

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2011-5-28 18:02:00 | 显示全部楼层

Re: Re:Reset设备报错。。。求教。。。

hflong240: Re:Reset设备报错。。。求教。。。

Release掉,reset之后重新创建就行了

恩,对。。。对啊!!我擦嘞我咋这么2 呢。。
试试先!

1

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2011-5-28 18:13:00 | 显示全部楼层

Re:Reset设备报错。。。求教。。。

我在onLostDevice里
ReleaseCOM(m_pIndexBuffer);
。。可是reset的时候。。还是报错。。。。
这个。。。。。。
还是说我没释放。。。

11

主题

1238

帖子

1782

积分

金牌会员

Rank: 6Rank: 6

积分
1782
发表于 2011-5-29 11:03:00 | 显示全部楼层

Re:Reset设备报错。。。求教。。。

请使用OpenGL吧,这样您就不用为设备丢失发愁了!

http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=266155

1

主题

19

帖子

19

积分

新手上路

Rank: 1

积分
19
 楼主| 发表于 2011-5-29 13:31:00 | 显示全部楼层

Re: Re:Reset设备报错。。。求教。。。

游戏阿家: Re:Reset设备报错。。。求教。。。

请使用OpenGL吧,这样您就不用为设备丢失发愁了!

http://www.opengl.org/discussion_boards/ubbthreads.p...

恩,我看了一下这个帖子的2L,也就是说,opengl是默认分配采用的就是类似d3d中的managed方式,全部保存到了ram中,等到需要的时候再调出来。。。。
虽然还是没有找到直接的解决办法。。但是还是谢谢了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-10 16:25

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表