Что это такое?
Skia — это полноценная библиотека для двумерной графики, написанная на C++, для отрисовки текста, геометрических фигур и изображений. Она служит движком рендеринга в Chrome, Android, Flutter и многих других продуктах.
Это самостоятельное приложение или библиотека, которую я могу встроить в свой проект?
Это низкоуровневая библиотека/движок для графики на C++, которые предназначены для компиляции и подключения к другому программному обеспечению, а не самостоятельное приложение.
Как мне его собрать?
Исходный код загружается с помощью depot_tools от Google (git-sync-deps), после чего с помощью GN и Ninja выполняются настройка и сборка, как описано в полных инструкциях по сборке, на которые есть ссылка в README.
Какие инструменты нужны перед сборкой Skia?
Для сборки Skia требуются depot_tools, GN и Ninja, а также набор компиляторов C++; в репозитории также есть инструменты на Python и Go для скриптов сборки и тестирования.
Его легко просто подключить к небольшому проекту?
Нет, это большой и сложный движок, рассчитанный на крупных пользователей (браузеры, операционные системы, игровые и UI-фреймворки). Сборка и интеграция требуют серьёзного времени на освоение, а установить его через менеджер пакетов просто нельзя.
Кто обычно использует Skia?
В первую очередь инженеры, которые создают браузеры, операционные системы, игровые движки и UI-инструменты и которым нужна быстрая и переносимая основа для двумерной отрисовки. Skia уже используется в Chrome, Android и Flutter.
Использует ли Skia GPU для отрисовки?
Skia поддерживает бэкенды отрисовки с ускорением на GPU (например, через Ganesh/GPU-бэкенд) в дополнение к растеризации на CPU, однако в README не описано подробно, как выбирается бэкенд.
Почему Skia так широко используется?
Это проверенный временем, очень переносимый движок двумерной отрисовки, который уже поставляется в составе Chrome, Android и Flutter. Поэтому он хорошо работает на разных платформах и получил серьёзную оптимизацию в реальных условиях.
Что может отрисовывать Skia?
Текст, геометрические фигуры и изображения, то есть базовые элементы, необходимые для двумерной графики и отрисовки интерфейсов.
Привязана ли Skia к конкретной операционной системе или платформе?
Нет, она разработана как кроссплатформенная и используется на компьютерах, мобильных устройствах и в вебе (например, в Chrome и Android).
What are similar projects?
bgfx, tinyrenderer, GPUImage, renderdoc, pixijs, Vulkan, ladybird, node-canvas
Which topics is it in?
rendering-engine, text, engine, computer-graphics, image, rendering, graphics, image-processing, bsd, c++, performance, android