首页 > 解决方案 > Chrome 和 Servo 使用的 2D 和 3D 图形引擎

问题描述

不久前(经过数小时的搜索)我了解到 Chrome/Webkit 使用Cairo 图形作为它的(至少)2D绘图。我不确定它对 3D 有什么作用。但是如果你搜索“chrome 使用的图形引擎”,你会得到一堆关于Blink的东西,但这不是你想要的......

简要看一下Servo浏览器,您会看到server/servo/blob/master/components/canvas/webgl_mode/inprocess.rs#L13链接到servo/ gleam ,这似乎是在 Servo 中提供 OpenGL 支持的抽象层。但是我还没有看到它实际上连接到操作系统特定的“驱动程序”或者你有什么图形,就像开罗一样(我想)。想想看,我不确定 Cairo 是如何抽象windows/darwin/linux 的,知道这会很有趣。

所以我的问题是:

  1. Chrome 和 Servo 正在使用的图形引擎(2D 和 3D)。
  2. 他们在哪里执行与操作系统的图形驱动程序或系统级 API 的实际操作系统级连接。

我想看看大型图形引擎如何连接到本机图形。就像现在一样,他们可能只是连接到 iOS 的 Metal API,而不是更高级别的东西。我不确定它们在 Mac、Windows 和 Linux 上连接到什么。我有兴趣查看它的源代码。

我听说过Mesa,但不确定这些项目是否将它用于 3D。

标签: c++cbrowsergraphics

解决方案


推荐阅读