Некоторое время назад (после многих часов поиска) я узнал, что Chrome / Webkit использует Каирская графика для своего (как минимум) 2D рисования.Я не уверен, что это делает для 3D.Но если вы ищете «графический движок, используемый Chrome», вы получите кучу вещей о Blink , но это не то, что вам нужно ....
Кратко рассмотрим Серво браузер, вы видите серво / серво / блоб / мастер / компоненты / canvas / webgl_mode / inprocess.rs # L13 , который ссылается на серво / блеск который из чего он кажется - это уровень абстракции, обеспечивающий поддержку OpenGL в Servo.Но я еще не видел, где он на самом деле подключается к конкретным «драйверам» операционной системы или что у вас есть для графики, как Cairo (я бы подумал).Если подумать, я не уверен, как Каир тезисы windows / darwin / linux, было бы интересно узнать.
Итак, мои вопросы:
- Графические механизмы (2D и 3D), которые используются Chrome и Servo.
- Где они выполняют фактическое соединение на уровне операционной системы с графическими драйверами или API-интерфейсами системного уровня для ОС.
Хотелось бы посмотреть, как крупномасштабный графический движок подключается к нативной графике.Как в наши дни, например, они могут просто подключиться к Metal API для iOS, а не к чему-то более высокому уровню.Я не уверен, к чему они подключаются на Mac, Windows и Linux.Мне интересно увидеть исходный код для него.
Я слышал о Mesa , но не уверен, используют ли эти проекты его для 3D или нет.