The Skia Graphics Engine or Skia is an
open-source 2D
graphics library
A graphics library is a program library designed to aid in rendering computer graphics to a monitor. This typically involves providing optimized versions of functions that handle common rendering tasks. This can be done purely in software and runn ...
written in
C++
C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
. Skia abstracts away platform-specific graphics API (which differ from one to another). Skia Inc. originally developed the library;
Google
Google LLC () is an American Multinational corporation, multinational technology company focusing on Search Engine, search engine technology, online advertising, cloud computing, software, computer software, quantum computing, e-commerce, ar ...
acquired it in 2005,
and then released the software as open source licensed under the
New BSD free software license
A free-software license is a notice that grants the recipient of a piece of software extensive rights to modify and redistribute that software. These actions are usually prohibited by copyright law, but the rights-holder (usually the author) ...
in 2008.
Overview
In order to stay multi-platform Skia supports several (platform-dependent) back-ends. These include:
* CPU software
rasterization
In computer graphics, rasterisation (British English) or rasterization (American English) is the task of taking an image described in a vector graphics format (shapes) and converting it into a raster image (a series of pixels, dots or lines, whi ...
*
Portable Document Format
Portable Document Format (PDF), standardized as ISO 32000, is a file format developed by Adobe in 1992 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating syste ...
(PDF) output
*
GPU
A graphics processing unit (GPU) is a specialized electronic circuit designed to manipulate and alter memory to accelerate the creation of images in a frame buffer intended for output to a display device. GPUs are used in embedded systems, mobi ...
-accelerated rendering by using:
**
ANGLE
In Euclidean geometry, an angle is the figure formed by two rays, called the '' sides'' of the angle, sharing a common endpoint, called the '' vertex'' of the angle.
Angles formed by two rays lie in the plane that contains the rays. Angles a ...
backed which translates
OpenGL ES
OpenGL for Embedded Systems (OpenGL ES or GLES) is a subset of the OpenGL computer graphics rendering application programming interface (API) for rendering 2D and 3D computer graphics such as those used by video games, typically hardware-accele ...
calls into vendor's native APIs
**
Vulkan
Vulkan is a low- overhead, cross-platform API, open standard for 3D graphics and computing. Vulkan targets high-performance real-time 3D graphics applications, such as video games and interactive media. Vulkan is intended to offer higher perfor ...
, and
Metal
A metal (from Greek μέταλλον ''métallon'', "mine, quarry, metal") is a material that, when freshly prepared, polished, or fractured, shows a lustrous appearance, and conducts electricity and heat relatively well. Metals are typicall ...
.
*
Scalable Vector Graphics
Scalable Vector Graphics (SVG) is an XML-based vector image format for defining two-dimensional graphics, having support for interactivity and animation. The SVG specification is an open standard developed by the World Wide Web Consortium sinc ...
(SVG)
* XPS
Skia is most similar in purpose to
Cairo
Cairo ( ; ar, القاهرة, al-Qāhirah, ) is the Capital city, capital of Egypt and its largest city, home to 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, List of ...
or Pathfinder (meaning that it focuses on drawing) rather than to other more elaborate APIs like that one of
Qt that provide their own widgets and UI description language etc.
Application
The library is used in
Google Chrome,
ChromeOS
ChromeOS, sometimes stylized as chromeOS and formerly styled as Chrome OS, is a Linux-based operating system designed by Google. It is derived from the open-source ChromiumOS and uses the Google Chrome web browser as its principal user interfa ...
,
ChromiumOS
ChromiumOS is a free and open-source operating system designed for running web applications and browsing the World Wide Web. It is the open-source version of ChromeOS, a Linux-based operating system made by Google.
Like ChromeOS, ChromiumOS is ...
,
Mozilla Firefox,
Mozilla Thunderbird
Mozilla Thunderbird is a free and open-source cross-platform email client, personal information manager, news client, RSS and chat client developed by the Mozilla Foundation and operated by subsidiary MZLA Technologies Corporation. The projec ...
,
Android,
Firefox OS
Firefox OS (project name: ''Boot to Gecko'', also known as ''B2G'') is a discontinued open-source operating system made for smartphones, tablet computers, smart TVs, and dongles designed by Mozilla and external contributors. It is based on the ...
,
LibreOffice
LibreOffice () is a free and open-source office productivity software suite, a project of The Document Foundation (TDF). It was forked in 2010 from OpenOffice.org, an open-sourced version of the earlier StarOffice. The LibreOffice suite co ...
(from version 7.0),
Flutter and Avalonia (from Alpha 4).
The Skia library is also present on the
BlackBerry PlayBook
The BlackBerry PlayBook is a Tablet computer#Mini tablets, mini tablet computer developed by BlackBerry (company), BlackBerry and made by Quanta Computer, an original design manufacturer (ODM). , though the extent of its usage is unclear.
Supported platforms
* Windows 7, 8, 8.1, 10
* macOS 10.10.5 or later
* iOS 8 or later
* Android 4.1 (JellyBean) or later
* Ubuntu 14.04+, Debian 8+, openSUSE 13.3+, or Fedora Linux 24+
* Web Browsers
History
Created in 2004 by Mike Reed and Cary Clark in Chapel Hill North Carolina. It was quietly acquired by Google in 2005.
See also
*
Direct2D
Direct2D is a 2D vector graphics application programming interface (API) designed by Microsoft and implemented in Windows 10, Windows 8, Windows 7 and Windows Server 2008 R2, and also Windows Vista and Windows Server 2008 (with Platform Update i ...
*
Starling Framework
*
Anti-Grain Geometry
Anti-Grain Geometry (AGG) is a 2D rendering graphics library written in C++. It features anti-aliasing and sub-pixel resolution. It is not a graphics library, per se, but rather a framework to build a graphics library upon.
The library is opera ...
*
CoreGraphics
*
Cairo
Cairo ( ; ar, القاهرة, al-Qāhirah, ) is the Capital city, capital of Egypt and its largest city, home to 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, List of ...
*
QuickDraw GX
QuickDraw GX was a replacement for the QuickDraw (QD) 2D graphics engine and Printing Manager inside the classic Mac OS. Its underlying drawing platform was a resolution-independent object oriented retained mode system, making it much easier for ...
References
External links
*
*http://www.slideshare.net/snailee/skia-freetype-android-2d-graphics-essentials
* https://github.com/servo/pathfinder
YouTube
* {{YouTube, OmfliNQsk88, Skia Path Ops : High Performance Set Operations for Geometry
Google Developers: Painting in Chromium 2012 on YouTube
Google acquisitions
Graphics libraries
Software using the BSD license