TGFX 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
TGFX 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
TGFX 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 BSD-3-Clause
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织 腾讯
地区 国产
投 递 者 白开水不加糖
适用人群 未知
收录时间 2023-11-08

软件简介

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 的编译耗时。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击引领话题📣 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
0 评论
8 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部