Что интернет-браузеры используют для рендеринга?
Очень быстрый, мне всегда было интересно, используют ли интернет-браузеры для рендеринга функций OS API для создания кнопок, рендеринга магов и т. д., или они делают все это самостоятельно?
Сначала я подумал, что он использует системные API, но есть некоторые эффекты, например, когда экран становится серым, и вы видите только маленькое окно посередине, вы знаете, этот эффект используется во многих онлайн-альбомах с фотографиями, которых я не совсем понимаю, как добиться, используя например только звонки Win32.
РЕДАКТИРОВАТЬ: Точнее, я знаю, что окончательный рисунок на экране всегда будет использовать системный API, но вы можете отправлять предварительно обработанное изображение, как вы хотите. Благодарю.
2 ответа
Веб-браузеры используют свои собственные механизмы рендеринга, а не OS API. Использование OS API для рендеринга кнопок полностью зависит от проектного решения конкретного движка рендеринга. Однако для работы в различных операционных системах эти движки предпочитают, чтобы их собственный рендеринг предлагал одинаковый внешний вид на разных платформах.
Используют ли движки рендеринга браузера API-интерфейсы для создания кнопок, написания текста, создания блоков и т. Д., Или же они визуализируют все это самостоятельно с помощью OS API только для того, чтобы фактически отобразить изображение на экране?
Я реализовал что-то из движка рендеринга браузера (см., Например, Таблицу поддерживаемых элементов и Поддерживаемые свойства для списка элементов HTML и свойств CSS, которые он поддерживает).
Я использую системные API (API.NET Framework, которые представляют собой тонкие обертки вокруг базовых API O/S GDI) для:
- Мера слова (строки текста)
- Рисовать слова
- Нарисуйте линии и коробки
- Заполните прямоугольники сплошным цветом
Это тот тип функциональности API, который реализован в Windows GDI.
Есть также некоторые системные (O/S или.NET) API, которые я использую для рисования кнопок и комбинированных окон (см. Переписать стандартные элементы управления, такие как edit, combo и т. Д.?).
Поскольку весь рендеринг текста, графики и т. Д. Кажется довольно сложным, чтобы написать полностью самостоятельно
Да, реализация CSS и все это занимает некоторое время. Вы видели, сколько времени понадобилось командам разработчиков браузеров: несколько календарных лет, много человеко-лет.