您现在的位置是:首页 > 文章详情

TGFX —— 跨平台 2D 绘图引擎

日期:2023-11-14点击:391

TGFX (Tencent Graphics) 是一个轻量级 2D 图形库,设计用于渲染文本、几何图形和图像。它提供高性能的 API,可在各种 GPU 硬件和软件平台上运行,包括 iOS、Android、macOS、Windows、Linux、Web 等。

TGFX 最初是作为 PAG 项目的核心组件创建的,从 4.0 版开始成为 libpag 库的默认图形引擎。它的主要目标是在保持更小二进制文件大小的同时,为 Skia 图形库提供令人信服的替代方案。随着时间的推移,它已被许多其他产品采用,如 Hippy、腾讯文档和各种视频编辑应用程序。

包体优化

TGFX 最终以 400K 左右的大小覆盖了 Skia 近 2M 包体的绝大部分功能。核心优化策略主要有两点:

调度优化

TGFX 并不只是做 Skia 的简化,还把一些在业务上调用起来非常复杂的通用性流程进行了抽象封装

在性能和架构方面,还做了这些额外的优化:

  • 默认开启了 HardwareBuffer 的支持,来全面加速纹理的提交,包括 Android 端。
  • 暴露了引擎内部 Path 对应的 GPU 高速缓存,避免矢量绘制充分进行三角剖分操作。
  • GPU 对象支持在任意线程释放,等关联的上下文激活时才清理,避免随机 Crash 问题。
  • 约束图片解码完会尽可能只缓存 GPU 的纹理部分,理论上全局可以降低一半的内存占用。
  • 将绝大部分缓存都交给了上层业务精确管理,避免随机绘制的缓存持续占用额外的内存。
  • 在全平台都实现了默认字体的读取能力,包括浏览器,避免下载上百兆 CJK 字体的压力。
  • 增加了对各种硬解视频帧格式的直接绘制能力,可以一次性上屏无需通过 CPU 转换格式。
  • 放弃了 SKSL 的统一 Shader 语言设计,更加符合原生接口调用习惯,既节省了包体,也减少了 GPU Program 的编译耗时。
原文链接:https://www.oschina.net/p/tgfx
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章