ANGLE 和 Skia 图形引擎有什么区别?

Alo*_*hor 10 graphics gpu skia

ANGLE是Google开发的跨平台图形引擎抽象层。ANGLE 团队将其描述为便携式 OpenGL。该 API 的主要目的是通过将 OpenGL 调用转换为具有更好的驱动程序支持的Direct3D ,为Windows计算机和Chromium/Google Chrome网络浏览器带来高性能 OpenGL 兼容性。

Skia Graphics Engine是一个用C++编写的图形库 ,它抽象了特定于平台的图形 API。

两者都是Google开发的支持openGL 的抽象层,并且都在Google Chrome中使用。

两者到底有什么区别?

小智 23

首先是一些背景。

OpenGL 是一个用于对图形卡进行编程的 API。对 OpenGL 的 API 调用由 GPU 供应商(通常是 Nvidia、AMD 或 Intel)的驱动程序转换为计算机中 GPU 卡的命令。

(用于对 GPU 进行编程的其他 API 包括 Windows 上的 Direct3D、macOS 上的 Metal、Vulkan 等)

这些 API 在某种程度上是“低级”的,因为它们发出调用来指示 GPU 在原始“几何”/“像素”级别上做什么;这些 API 没有“在此处绘制矩形”或“在此处绘制此图像”之类的内容。

Chrome 等 Web 浏览器为 HTML5 页面提供 WebGL API。WebGL 主要是 OpenGL ES 2.0 API。

ANGLE是一个将 OpenGL ES 2.0 API 转换为 GPU API 之一的库:您进行 OpenGL ES 2 调用,ANGLE 会转换为桌面 OpenGL 中的等效调用,或者 Windows 上的 Direct3D,或者 macOS 上的 Metal。

这为您提供了 OpenGL ES 2.0 的一致实现,这是 Chrome 想要在网络上实现的。(这非常有用,因为 Windows OpenGL 实现因供应商而异,并且 macOS 很久以前就停止更新其 OpenGL 实现版本 4.1)。

Skia是一个更高级别的 API,可让您“在此处绘制矩形”和“在此处绘制此图像”以及更多功能(绘制文本;绘制路径;绘制曲线等)。这是您通常需要使用的高级 API使用更高级的语言和 Web Canvas API。

为了实现这些调用,Skia 将绘图命令转换为较低级别的 API,如 GL、Metal 等。Skia 可以定位的 API 之一是 ANGLE,以便 Skia 绘图在跨平台上获得一致的输出。