Fog: A High-Performance Alternative To Cairo

Posted by Michael Larabel on March 04, 2012

While Cairo gets much of the spotlight when it comes to a 2D vector graphics drawing library, there's another open-source project that claims to provide even faster performance and greater benefits; meet the Fog-Framework.

Fog-Framework, unlike Cairo that's written in C, is written in C++ and made available under the MIT license. Fog-Framework provides a high-performance 2D vector graphics library with a platform-independent SVG engine and optional UI tool-kit.

For providing fast performance, the Fog-Framework engine is multi-threaded and does feature a JIT (Just-In-Time) compiler as well. Fog-Framework still relies upon underlying operating system APIs and libraries for handling basic tasks like loading image files and other system controls. The project has posted benchmarks indicating Fog to be much faster than Windows GDI+ and Cairo in a variety of tests.

Fog-Framework consists of Fog-Core (the platform abstraction component), Fog-G2d (the Vector 2D and imaging side), Fog-UI (the optional vector UI), and Fog-Svg (the SVG DOM, parser, and renderer).

The 2D graphics library component (Fog-G2d) was based upon the Anti-Grain Geometry project, but with a horde of improvements. Besides single and multi-threading optimizations, there is various CPU optimizations like for SSE3. At the moment, however, the 2D graphics library is just a CPU-based software rasterizer. Fog-Framework may be fast and outperforming the popular Cairo, but at the moment it's just running on the CPU and not poking the GPU like can be done under Cairo with some of its back-ends.

The project does have a lengthy to-do list / road-map as listed here. Besides the back-end shortage, another disadvantage compared to Cairo is at the moment it doesn't appear to have bindings for as many languages as Cairo. The open-source project is hosted on Google Code.

Other alternatives would be the Skia library that's used by Google and Azure, which is a replacement for Cairo within Mozilla Firefox.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite