游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1952|回复: 7

两个头痛的问题!!!

[复制链接]

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-9-15 18:23:00 | 显示全部楼层 |阅读模式
1、为什么我的D3D全屏程序在用Alt+Tab切换到其他程序后再切回来画面就显示不出来了呢?
2、我用CD3DFont进行文字渲染,可一旦使用次数过多时程序就变得好慢,CPU也几乎占用了100%,是不是用这种方法渲染文字的效率不高呢?

18

主题

279

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
QQ
发表于 2005-9-15 19:04:00 | 显示全部楼层

Re:两个头痛的问题!!!

A1: Device lost!
A2: Yes, your work didn't enough! You may need some optimized method.

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2005-9-15 21:08:00 | 显示全部楼层

Re:两个头痛的问题!!!

谢谢bombbear兄!
请问设备丢失后应该怎么还原呢?是不是要再次创建设备?还是在一开始就备份设备,一旦丢失再用备份的设备恢复。在设备丢失前,我载入的纹理都有十几M,丢失后这些纹理好像也都没有了,那设备恢复后纹理也会自动恢复么?
对于文字渲染我该做那些优化呢?是不是应该尽量减少DrawText的调用?由于我要显示一张至少20行的文字列表,就算我可以每一行只调用1次,那也要20次啊,会不会有其他更好的方法?

18

主题

279

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
QQ
发表于 2005-9-16 14:12:00 | 显示全部楼层

Re:两个头痛的问题!!!

MSDN中说的很清楚,显存中的数据在设备丢失时都会被销毁,所以你需要重新载入。
你应该把要用的文字都预先画在一个离屏面上,如果可能就预排版,不要每次翻屏都使用DrawText。当然还不止这些,可以加上频率统计等。

32

主题

116

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2005-9-16 18:15:00 | 显示全部楼层

Re:两个头痛的问题!!!

设备丢失我也遇到这样的问题 也是很茫 希望哪位高手给个详细的解决办法 如果再讲一下设备为什么会丢失那就更好了  跪谢

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-9-17 01:27:00 | 显示全部楼层

Re:两个头痛的问题!!!

我使用伪窗口。。。

15

主题

1268

帖子

1268

积分

金牌会员

Rank: 6Rank: 6

积分
1268
发表于 2005-9-22 16:31:00 | 显示全部楼层

Re: Re:两个头痛的问题!!!

bombbear: Re:两个头痛的问题!!!

MSDN中说的很清楚,显存中的数据在设备丢失时都会被销毁,所以你需要重新载入。
你应该把要用的文字都预先...

这个方法听起来确实很好,如果文字占屏幕地方太多,全屏幕的ALPHATEST会不会很慢呢?

18

主题

279

帖子

279

积分

中级会员

Rank: 3Rank: 3

积分
279
QQ
发表于 2005-9-24 10:35:00 | 显示全部楼层

Re:两个头痛的问题!!!

关于效率的问题,我们总得有所取舍,完成任务是第一位的。
就此处来说,文字总是要输出的,屏蔽测试(ALPHATEST算是其中一种)肯定要做,我们只能在这个前提下做文章。所以预排版之后,我们可以减少解码和传输文字的[B]次数[/B]。减少系统在其它方面的消耗。

另外,以我个人的观点,文字非常多时是不必有很高的刷新速度的(当然也是很无奈的事情)。文字越多,此时程序的性质就越接近于文本编辑器,有10帧以上的速度就差不多了。你可以做个简单的文本编辑器感受一下。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-27 22:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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