Skia Graphics Engine
|Original author(s)||Skia Inc.|
|License||New BSD License|
The Skia Graphics Engine is a compact open source graphics library written in C++. It was originally developed by Skia Inc., which was subsequently acquired by Google in 2005, who then released the software as open source licensed under the New BSD free software license.
Now known as Skia, it is currently used in Mozilla Firefox, Google Chrome, Chrome OS, Chromium OS, Sublime Text 3, Android (although partially superseded by libhwui starting with Android 3.0) and Firefox OS. The Skia library is also present on the BlackBerry PlayBook, though the extent of its usage is unclear.
Skia has several back-ends, including one for CPU-based software rasterization, one for PDF output, and one for GPU-accelerated OpenGL. Partially implemented back-ends (which may lack some features) are also available for OpenGL ES, OpenVG, SVG, and Adobe SWF (Flash). Skia also has front-ends that allow it to convert popular vector graphics formats such as SVG, PostScript, PDF, SWF, and Adobe Illustrator files into its own API calls. Skia is most similar in purpose to Cairo (meaning that it focuses on drawing) rather than to other more elaborate infrastructures like Qt that provide their own widgets etc.
Skia has a conventional CPU-based path renderer but has recently integrated a new OpenGL ES2-accelerated back-end called Ganesh. Ganesh has experimented with two accelerated approaches. The first used the stencil buffer to render paths. Because of API overheads with this approach, this first approach was replaced with a second approach where the CPU-based rasterizer computes a coverage mask which is loaded as a texture upon every path draw to provide the GPU proper antialiased coverage. This hybrid scheme is often bottlenecked by the dynamic texture updates required for every rendered path.
- Malik, Om (2 Sep 2008). "Google Open Sources Skia Graphics Engine". gigaom. Retrieved 31 August 2011.
- The Skia 2D Graphics Library From Google
- . doi:10.1145/2366145.2366191. Missing or empty
- Official website
|This computer library–related article is a stub. You can help Wikipedia by expanding it.|