ANGLE 和 Skia 图形引擎有啥区别?
Posted
技术标签:
【中文标题】ANGLE 和 Skia 图形引擎有啥区别?【英文标题】:What is difference between ANGLE and Skia Graphics Engine?ANGLE 和 Skia 图形引擎有什么区别? 【发布时间】:2021-08-15 03:50:13 【问题描述】:
ANGLE
是一个跨平台的图形引擎抽象层 由谷歌开发。 ANGLE 团队将其描述为便携式 OpenGL。 API主要是为了带来高性能 OpenGL 与 Windows 计算机和 web browsers 的兼容性,例如 Chromium/Google Chrome 通过翻译 OpenGL 调用Direct3D,它有更好的驱动支持。
Skia Graphics Engine
是用C++ 编写的图形库 它抽象出特定于平台的图形 API。
两者都是由Google 开发的抽象层,用于支持openGL,并且都在Google Chrome 中使用。
两者之间到底有什么区别?
【问题讨论】:
【参考方案1】:先了解一下上下文。
OpenGL 是一种用于编程图形卡的 API。对 OpenGL 的 API 调用被 GPU 供应商(通常是 Nvidia、AMD 或 Intel)的驱动程序转换为计算机中 GPU 卡的命令。
(编程 GPU 的其他 API 包括 Windows 上的 Direct3D、macOS 上的 Metal、Vulkan 等)
这些 API 有点“低级”,因为它们发出调用以指示 GPU 在原始“几何”/“像素”级别上做什么;这些 API 没有“在此处绘制矩形”或“在此处绘制此图像”之类的功能。
像 Chrome 这样的网络浏览器为 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 很久以前就停止更新 4.1 版的 OpenGL 实现。
Skia 是一个更高级别的 API,可让您“在此处绘制矩形”和“在此处绘制此图像”等等(绘制文本;绘制路径;绘制曲线等)。使用高级语言和 Web Canvas API 获得的常用高级 API。
为了实现这些调用,Skia 将绘图命令转换为 GL、Metal 等较低级别的 API。Skia 可以针对的 API 之一是 ANGLE,以便 Skia 绘图获得跨平台的一致输出。
【讨论】:
以上是关于ANGLE 和 Skia 图形引擎有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章