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

8

ANGLE 是由 Google 开发的跨平台图形引擎抽象层。ANGLE 团队将其描述为可移植的 OpenGL。该 API 主要设计用于将高性能 OpenGL 兼容性带到 Windows 计算机和 Chromium/Google ChromeWeb 浏览器,通过将 OpenGL 调用转换为 Direct3D,从而获得更好的驱动程序支持。

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

这两个都是由谷歌开发的抽象层,用于支持OpenGL,并且两者都在Google Chrome中得到了使用。

它们之间到底有什么区别呢?

1个回答

18

先提供一些背景信息。

OpenGL是一个用于编程图形卡的API。这个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.0并且ANGLE会将其转换为桌面OpenGL中等效的调用,或者在Windows上转换为Direct3D,在macOS上转换为Metal。

这为您提供了OpenGL ES 2.0的一致实现,Chrome希望在Web上实现这一点。(这非常有用,因为Windows的OpenGL实现因供应商而异,而macOS在很久以前就停止更新其OpenGL实现至版本4.1)。

Skia 是一个更高级别的API,它允许您“在这里绘制矩形”、“在那里绘制图像”以及其他更多操作(如:绘制文本、绘制路径、绘制曲线等)。这是您可以在高级编程语言和Web Canvas API中使用的常见高级API。

为了实现这些调用,Skia将绘图命令转换为较低级别的API,例如GL,Metal等。Skia可以针对其中之一的API是ANGLE进行目标化,以便Skia绘图可在各个平台上得到一致的输出。


金色答案 ⭐ 那么多的概念被简单而美妙地解释。现在我能够看到整体图像以及每个拼图在其中的位置 :) - Prid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接