Skia Graphics Engine
Тип | Графічна бібліотека |
---|---|
Автор | Skia Inc. |
Розробник | |
Операційна система | 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].
Див. також
Примітки
- ↑ Malik, Om (2 вересня 2008). Google Open Sources Skia Graphics Engine. gigaom. Процитовано 31 серпня 2011.
- ↑ Guy, Romain (18 травня 2014). Android’s Font Renderer. medium.com. Процитовано 19 квітня 2018.
- ↑ LibreOffice 7.0: Release Notes — The Document Foundation Wiki. wiki.documentfoundation.org. Процитовано 6 серпня 2020.
- ↑ The Skia 2D Graphics Library From Google - Phoronix. www.phoronix.com. Процитовано 19 квітня 2018.
- ↑ Kilgard, Mark J. (2012). GPU-accelerated path rendering. ACM Transactions on Graphics. 31: 1. doi:10.1145/2366145.2366191.
- ↑ http://on-demand.gputechconf.com/gtc/2014/presentations/S4810-accelerating-vector-graphics-mobile-web.pdf