+ 我要发布
我发布的 我的标签 发现
浏览器扩展
斑点象@Edge

TGFX 强大易用的 2D 图形库

TGFX 是国内许多头部业务的核心组件,最近刚刚开源,但了解它的人还不多。它就是来自腾讯的 2D 图形库 TGFX。 很多朋友可能不清楚图形库的作用以及为什么它很重要。 我们每天使用计算机(包括手机),接触的都是图形界面,那些漂亮的组件都依赖于图形库。计算机本质上只是一个计算引擎,只会计算。如果你想要有图形界面,必须调用专门的图形库才能获得图形能力。 图形库(包括组件库)一般由操作系统提供,但如果软件需要跨系统或要求特殊效果,就必须使用外部图形库。目前最流行的通用 2D 图形库是谷歌的 Skia,它是开源的,被 Chrome 浏览器、Android 系统和谷歌地图等广泛应用。 TGFX 的开发目的是替代 Skia。它起源于腾讯的动效解决方案 PAG。当时,腾讯内部许多项目都有强烈的动画效果需求,并且要求跨平台,因此开发了专门制作动效的工具 PAG。 PAG 的核心是图形库,最初使用的是 Skia,但后来发现了两个问题:首先,Skia 有历史包袱,打包体积大,性能也比较保守;其次,中国开发者关注的问题,开发团队往往不能(或不愿)跟进。 最终,PAG 团队下定决心,决定替换 Skia,开发自己的图形库 TGFX。这是一个相当困难的任务,需要用 C++ 开发,兼容各种操作系统的图形接口(目前主要是 OpenGL),实现各种图形效果,并保证性能和渲染效果。他们从 2021 年开始开发,直到今年才取得了一些成果。TGFX 有几个鲜明的特点。 (1)充分利用现代 GPU 的计算能力,保证性能。 (2)提供全面的图形能力:支持各种图片、矢量和文本的 2D 绘制。 (3)实现轻量化的 Skia 替代品,打包体积仅为 400KB,实现了大部分 Skia 功能(2MB)。 (4)使用成本低。API 与 Skia 基本相同,并且进行了简化和整合。 将图形引擎从 Skia 更换为 TGFX 后,PAG 4.0 的包体积降低了 65%,矢量渲染性能提升了 60%。 截至 XXXX 年 X 月,借助 PAG 项目,TGFX 已经在国内头部业务中运行超过 1000+ 个项目,其中包括腾讯的微信、手机 QQ、王者荣耀等内部项目,以及小红书、知乎、BiliBili 等外部项目。稳定性经过了超过 10 亿用户设备的验证,性能表现也非常出色,例如为腾讯文档带来了 50% 的内存降低。 TGFX 之前是 PAG 项目的一部分,最近才独立出来成为一个单独的开源项目,并托管在 GitHub 上。如果你的项目需要图形引擎,不妨尝试一下它。 这个项目刚刚开源不久,腾讯会长期大力投入其中。对图形开发感兴趣的朋友可以研究一下它的代码和文档,相信可以学到很多东西。如果你有任何想法和意见,都可以向开发团队反馈,他们会及时响应。
你可能想看的