游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2618|回复: 4

请教一下关于IDirect3DDevice9::Clear()的问题

[复制链接]

15

主题

248

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
发表于 2005-11-22 18:44:00 | 显示全部楼层 |阅读模式
请教一下各位前辈,这个Clear()函数是不是有条件限制!?

我创建了一个窗口显示的3D区域(800*600),正常情况下没什么问题,但是当其他窗口完全覆盖3D显示区域的时候,CPU资源就会被耗尽,然后显卡就停止工作……另外在没有被完全覆盖的时候却可以正常运行。

我现在手上的资料不多,而且可以调试的文件都存在这样的问题,搞了快两天,还是不知道怎么解决……拜托各位前辈帮忙解释/解决一下这个问题,或者有正确的代码让我拜读一下,谢谢!!!!!!!!!

2

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2005-11-23 16:43:00 | 显示全部楼层

Re:请教一下关于IDirect3DDevice9::Clear()的问题

应该是peekmessage()消息循环的问题把,试下在render()之前加上sleep(20),把cpu时间让出给其他程序。我之前也是发现这样的问题,加上就好点。

15

主题

248

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
 楼主| 发表于 2005-11-24 15:16:00 | 显示全部楼层

Re: Re:请教一下关于IDirect3DDevice9::Clear()的问题

netky: Re:请教一下关于IDirect3DDevice9::Clear()的问题

应该是peekmessage()消息循环的问题把,试下在render()之前加上sleep(20),把cpu时间让出给其他程序。我之前也是发现这样的问题,加上就好点。


哦,是这样啊……

多谢、多谢!!

我还有点不太清楚,peekmessage()不断从messagequene中读取消息,为什么只有当完全覆盖的时候才会出现这种情况,所以我想会不会是当窗口被完全覆盖的时候,会产生一个比较“特殊”的系统信息!?

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-11-24 23:59:00 | 显示全部楼层

Re:请教一下关于IDirect3DDevice9::Clear()的问题

这时候你的render 效率“最”高,不管就会吃尽系统资源。

15

主题

248

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
 楼主| 发表于 2005-11-29 17:50:00 | 显示全部楼层

Re: Re:请教一下关于IDirect3DDevice9::Clear()的问题

lights: Re:请教一下关于IDirect3DDevice9::Clear()的问题

这时候你的render 效率“最”高,不管就会吃尽系统资源。

这样一说我大概就清楚了!!
不过有没有更妥善的解决方法呢?
比如sleep(),并不需要每次循环就Sleep一次吧……
这样可以先GetDesktopWindow(),然后和应用程序的hWnd比较一下,如果相等就不用sleep()了……那不知道还有没有更好的方法呢????

再次感谢上面两位前辈的指点!!谢谢!!!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 19:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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