1.0版本字体输出,完成度80%,具备可用性

image

创建绘制用字体,输出32点阵。

image

使用字体输出字符串

%)KX)L[RE20QU2}5~2Y@4RA

使用效果,后面的部分无视,那是用轮廓信息简单建模绘制的。

image 粗版雅黑image 普通雅黑

微软雅黑也被我们征服了

1.0版本 基本完成,可以实用化了。

关于填充,扫描线填充还有bug,偶尔会有无法判断准确的问题,这也和输出大小有关,输出的尺寸小容易发生这种问题。虽然是浮点型,但在值过于接近的情况下判断也容易有问题,还有两个共点的线也许会同时判断为和一条扫描线碰撞,这个问题必须要考虑线段的连续性和方向性。

这需要修改一下边界的搜寻方式,另外我仔细思考过这个问题,可以高效的生成点碰撞信息,可以将填充性能提高一个数量级,还有很大的优化空间,请允许把优化的问题留到2.0版本再说。

关于抗锯齿,这里使用了一个小小的花招,c#的性能我们不去谈他,这里利用了GPU对贴图的双线性过滤来做了抗锯齿,这就无关乎c#性能了,这个方法还是挺不错的,对于c#的开发,我无时无刻不在考虑GPU能帮我们做什么。

关于性能,扫描线填充太不高效了,即使将来优化成了高效的方式,我们也不可能频繁的创建字模。

目前实现了一个静态字模缓冲机制,font内部自动管理多张贴图缓存字模,第一次使用的字模会缓存起来。

第二次绘制同一个字的时候,就是贴那么大一张图而已,损耗非常的低。请放心使用。

特此声明:非商业使用,请在作品中表明来自 疯光无线。

商业使用,联系本人,1.0版本的库定价99美金,便宜不。

原文地址:https://www.cnblogs.com/crazylights/p/1868473.html