CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  游戏开发

DrawText的效率如何!?

楼主snwcwt(风舞影天)2003-11-02 01:00:50 在 专题开发/技术/项目 / 游戏开发 提问

用DDRAW,在后台页面上调用了较多的DrawText   API,FPS为26左右,  
  注释掉这些DRAWTEXT调用,FPS变为70左右,DrawText的效率如此低下,  
  可另有途径在不太影响效率下提高文本绘制的速度!? 问题点数:50、回复次数:10Top

1 楼snwcwt(风舞影天)回复于 2003-11-02 21:16:05 得分 0

upTop

2 楼vnix()回复于 2003-11-02 22:17:23 得分 10

我听别人说好象可以用FREETYPE字体,将文字转换成图片显示,不过我也没试过。  
  另外,TextOut的效率与DRAWTEXT相比如何?Top

3 楼snwcwt(风舞影天)回复于 2003-11-03 00:37:33 得分 0

不相上下,我最开始是自己写了个函数计算的文本的宽度来计算折行,然后再用TextOut输出,  
  换成DrawText后两者的FPS一样Top

4 楼snwcwt(风舞影天)回复于 2003-11-03 00:38:32 得分 0

我朋友说他们公司的游戏是将字形存在内存里的,看来想提速也只好这样做了  
   
  过几天再结贴吧,希望能看见期他人的意见Top

5 楼subzero(赘姆烂壳)回复于 2003-11-03 01:04:45 得分 15

字种类不多的话,转成图片bltfastTop

6 楼KingofMagic(大魔头)回复于 2003-11-03 13:02:00 得分 25

TextOut是要先锁定表面,所以很慢  
  一个好的办法是,另外建一个数组,将数组里的字先TextOut到一个图片A,显示另一个字时,先看数组里是否有此字,如有将图片A相应的图片拷到屏幕,如没有的话在TextOut到图片A上。  
  因为拷图片是很快的Top

7 楼vnix()回复于 2003-11-03 15:50:11 得分 0

如果是随机的汉字呢,比如需要用户输入的,该用什么方法呢?Top

8 楼snwcwt(风舞影天)回复于 2003-11-04 00:05:38 得分 0

to   vnix:  
  需要用户输入的也很容易解决啊  
  比如建立一个map,当用户输入字符时根据它的编码来查询是否有这个汉字的图片,有则直接输出,无的话TextOut到一个surface上,然后设定相应的map。  
  不知道stl的map对这种操作的效率如何,我对STL一点都不熟,呵呵Top

9 楼KingofMagic(大魔头)回复于 2003-11-04 09:26:05 得分 0

我说的和snwcwt(风舞影天)说的结合起来就是最好的  
  TextOut到一个surface上,然后设定相应的map,虽然很费时间,但是TextOut上去后,以后就是拷贝了  
  Top

10 楼snwcwt(风舞影天)回复于 2003-11-05 01:04:35 得分 0

或者就是将所有的字形存入一个文件(当然这样在游戏中能用的字体灵活性就不大了)  
  其实字形也不多,从0到128,128+128*256(129-255,第二个字节1-255)个字形,假设汉字为  
  12*12px,一共需要128*(12/2)*12+128*256*12*12=9216+4718592=4727808个象素点,字体颜色可变,那么用位来存储就只需要4727808/8=590976个字节,当然如果一个字能够按8个点对齐的话就较好计算,128*1*12+128*256*2*12=1536+786432=787968,然后设置一些相关的文件头信息,占内存也不是很大哦。Top

相关问题

  • 如何提高效率?##################
  • hibernate 效率如何阿?
  • ODBC的效率如何
  • 如何提高效率
  • 如何提高Socket服务器效率?
  • 触发器的效率如何?
  • 如何提高系统效率
  • 如何测试jdbc的效率?
  • asp中使用MVC效率如何??
  • 讨论:如何提高开发效率?

关键词

  • 字体
  • fps
  • 用户
  • drawtext
  • textout
  • 效率
  • 数组
  • 字形
  • 图片
  • 字

得分解答快速导航

  • 帖主:snwcwt
  • vnix
  • subzero
  • KingofMagic

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo