zoukankan      html  css  js  c++  java
  • 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美金,便宜不。

  • 相关阅读:
    Linux之apt-get无sudo权限安装软件
    Java stream 并发应用案例
    java 执行 shell脚本通过mysql load data导入数据
    修改mysql存储过程或函数的定义着
    [ERR] 1118
    定时杀死mysql中sleep的进程
    centos7安装配置MariaDB10
    Tomcat设置JVM参数
    通Shell获取Tomcat进程号并杀死进程
    对于之前已经push的项目增加.gitignore配置文件不起作用的处理
  • 原文地址:https://www.cnblogs.com/crazylights/p/1868473.html
Copyright © 2011-2022 走看看