游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2166|回复: 6

为什么我的程序中加入了一个文字显示就变得很慢很慢?

[复制链接]

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
发表于 2005-12-5 21:32:00 | 显示全部楼层 |阅读模式
font->DrawText(NULL,
                                           "Hello World", // String to draw.
                                                   -1, // Null terminating string.
                                                   &rect, // Rectangle to draw the string in.                                                                        DT_TOP | DT_LEFT, // Draw in top-left corner of                           
                                                   rect   
                                                   0xff000000); // Black.

5

主题

72

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2005-12-6 23:19:00 | 显示全部楼层

Re:为什么我的程序中加入了一个文字显示就变得很慢很慢?

特别提示:提高字体性能
  Font用于绘制文本的字体是基于纹理的。把这些字体绘制为纹理是通过GDI来完成的,相当缓慢。最好在开始时使用font类的预载方法,保证不会再运行时遇到几次这样的加载。可以调用PreloadCharacters方法来加载指定的字体,或者使用PreloadText方法加载指定的字符串。

深入Managed DirectX9(十七)
http://dev.gameres.com/Program/Visual/DirectX/ManagedDirectX9_17.htm

刚好看到的

140

主题

1228

帖子

1233

积分

金牌会员

Rank: 6Rank: 6

积分
1233
QQ
发表于 2005-12-6 23:34:00 | 显示全部楼层

Re:为什么我的程序中加入了一个文字显示就变得很慢很慢?

关键在于你不会每次渲染都创建字体吧?
创建字体极慢,渲染是挺快的。

35

主题

59

帖子

65

积分

注册会员

Rank: 2

积分
65
 楼主| 发表于 2005-12-7 08:55:00 | 显示全部楼层

Re:为什么我的程序中加入了一个文字显示就变得很慢很慢?

谢谢 lights ,正如你所说的,我已经改回来了

2

主题

34

帖子

34

积分

注册会员

Rank: 2

积分
34
QQ
发表于 2005-12-7 10:33:00 | 显示全部楼层

Re:为什么我的程序中加入了一个文字显示就变得很慢很慢?

ID3DXFont接口实际还是调用GDI来实现,就是只调用一次速度的提升还不是很快,通常是把字体一次性写到一个空纹理,同进保存每个字的纹理坐标,绘制字时直接渲染,看看D3DSDK的字体例子就知道了,这样还可以为字体使用效果...

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2005-12-7 14:30:00 | 显示全部楼层

Re:为什么我的程序中加入了一个文字显示就变得很慢很慢?

几乎所有的字体显示都是基于GDI的,GDI速度也没有那么慢,但是不能每次都GDI啊。必要的缓存策略是必须的。

6

主题

390

帖子

400

积分

中级会员

Rank: 3Rank: 3

积分
400
发表于 2005-12-7 19:16:00 | 显示全部楼层

Re:为什么我的程序中加入了一个文字显示就变得很慢很慢?

ID3DXFont的效率在近期的SDK Release中已经变得非常快了,不走GDI的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 21:23

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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