成就中心 DouJin Terraria! 社区服务 统计排行 帮助
  • 4157阅读
  • 3回复

[作品发布][个人作品]基于FreeType和D3D9的字体绘制库FontChan

发帖
13
信仰
0
蓝点
5
符卡
0
好吧这是我心血来潮一时兴起于是花了两天左右写出来的库,可以生成指定字体、字号的Unicode字符&字符串所对应的纹理,然后可以用于3D环境下文字的绘制。

当然也提供了一些懒人函数来直接绘制字符&字符串。

使用方法? FontChan.h里面的注释就已经够了吧……(大概  

使用的时候需要打开ALPHABLENDING,并且SRCALPHA得设置成顶点ALPHA×纹理ALPHA(就像附件里面的main.cpp所做的一样),颜色操作也得设置成顶点漫反射颜色×纹理颜色,不然就没法给文字二次上色了。

main.cpp做的是性能的测试,在我的机器上(i5-430M GT330M)可以跑到每秒30+万字这样的速度,其实还可以再优化的只是我犯懒而已。



推荐的编译环境是VS2012+DX9.0cSDK
附件: FontChan.7z (3532 K) 下载次数:1
本帖最近评分记录: 1 条评分 蓝点 +2 隐藏
elegame 蓝点 +2 2013-06-02 感谢大大发片
Your brain has two parts:the left & the right.Your left brain has nothing right, and your right brain has nothing left.
诶?

Me.SetState("填坑");
发帖
59
信仰
0
蓝点
17
符卡
0
只看该作者 沙发  发表于: 2013-06-01
main.cpp,129行

if (pFont == NULL)
    {
        pDevice->Release();
        return 1;
    }
进入到这里了,这是怎么回事?pFont = FontChan::Create(&info);失败了?
顺便我是VS2010重建的win32空工程,添加三个文件,设了一下dx sdk目录和库,调了一下freetype2412.lib依赖和include路径。
发帖
13
信仰
0
蓝点
5
符卡
0
只看该作者 板凳  发表于: 2013-06-01
回 1楼(elegame) 的帖子
到构造函数里设个断点看看?
有必要的话可以自己编译一个freetype库……用它源码包里面的给2010用的sln来编译,编译配置是release


还有就是……字体文件路径正确吗?看你的描述你貌似没有把字体文件一并拷过去的样子呃
Your brain has two parts:the left & the right.Your left brain has nothing right, and your right brain has nothing left.
诶?

Me.SetState("填坑");
发帖
59
信仰
0
蓝点
17
符卡
0
只看该作者 地板  发表于: 2013-06-02
哦,原来字体要复制一下。以为复制到系统fonts下就行了呢。搞定。
顺便试下评分!!!
[ 此帖被elegame在2013-06-02 04:33重新编辑 ]
描述
快速回复

您目前还是游客,请 登录注册
如果您在写长篇帖子又不马上发表,建议存为草稿
认证码: