Skia Graphics Engine

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Skia Graphics Engine
Файл:Skia Project Logo.svg
Тип Графічна бібліотека
Автор Skia Inc.
Розробник Google
Операційна система Android, iOS, Linux, macOS, Windows
Мова програмування C++
Ліцензія Ліцензія BSD
Репозиторій skia.googlesource.com/skia
Вебсайт skia.org
github.com/google/skia/

Skia Graphics Engine — це компактна графічна бібліотека з відкритим вихідним кодом, яка написана на мові програмування С++, розроблена Skia Inc. У 2005 році була придбана компанією Google та переведена у статус вільного програмного забезпечення[1] під ліцензією BSD вільного програмного забезпечення.

Тепер ця бібліотека, відома як Skia, з 2017 року використовується у Google Chrome, Chrome OS, Chromium OS, Mozilla Firefox, Android (частково замінена на HWUI, починаючи з Android 3.0[2]), Firefox OS, Flutter, LibreOffice (починаючи з версії 7.0[3]) та Sublime Text 3. Графічна бібліотека Skia також використовується у BlackBerry PlayBook, хоча обсяг її використання не відомий.

Skia має декілька основних внутрішніх частин: програмна растеризація на базі центрального процесора, вивід PDF та прискорення OpenGL графічним процесором. Частично реалізовані частини (у яких можливо відсутні деякі функції) також доступні для OpenGL ES, OpenVG, SVG та Adobe SWF (Flash). За метою Skia більш схожа на Cairo (означає, що вона більш спрямована на малювання), а не на інших більш складних інструментів, таких як Qt, які надають свої власні віджети, тощо[4].

Марк Кілгард і Джефф Болз пояснюють та критикують внутрішню будову Skia (станом на 2012 рік) у наступних термінах:[5]

Skia має звичайний процес рендеру на основі процесора, але нещодавно була інтегрована нова внутрішня частина, яка прискорена OpenGL ES2, під назвою Ganesh. Ganesh експериментував з двома прискореними підходами. Перший використовував трафаретний буфер для рендеру шляхів, через накладні витрати API був замінений другим підходом. Другий використовує процесорний растеризатор, обчислює маску покриття, яка завантажується як текстура на кожному із шляхів, щоб забезпечити належне згладжене покриття GPU.

З тих пір, Skia додала підтримку запропонованого NV рендеру шляхів, додавши розширення поставника OpenGL (головним автором якого є Марк Кілгард)[6].

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Malik, Om (2 вересня 2008). Google Open Sources Skia Graphics Engine. gigaom. Архів оригіналу за 11 вересня 2011. Процитовано 31 серпня 2011.
  2. Guy, Romain (18 травня 2014). Android’s Font Renderer. medium.com. Архів оригіналу за 20 квітня 2018. Процитовано 19 квітня 2018.
  3. LibreOffice 7.0: Release Notes — The Document Foundation Wiki. wiki.documentfoundation.org. Архів оригіналу за 8 серпня 2020. Процитовано 6 серпня 2020.
  4. The Skia 2D Graphics Library From Google - Phoronix. www.phoronix.com. Архів оригіналу за 20 квітня 2018. Процитовано 19 квітня 2018.
  5. Kilgard, Mark J. (2012). GPU-accelerated path rendering. ACM Transactions on Graphics. 31: 1. doi:10.1145/2366145.2366191.
  6. Архівована копія (PDF). Архів оригіналу (PDF) за 12 липня 2019. Процитовано 15 січня 2019.{{cite web}}: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)

Посилання[ред. | ред. код]