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.
Latest Hardware Reviews
  1. Sumo Lounge Emperor
  2. Gallium3D Continues Improving OpenGL For Older Radeon GPUs
  3. 15-Way Open vs. Closed Source NVIDIA/AMD Linux GPU Comparison
  4. Nouveau vs. NVIDIA Linux Comparison Shows Shortcomings
Latest Software Articles
  1. Intel Linux OpenGL Driver Leading Over Apple OS X
  2. The Cost Of Ubuntu Disk Encryption
  3. Btrfs vs. EXT4 vs. XFS vs. F2FS On Linux 3.10
  4. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
Latest Linux News
  1. AMD RadeonSI Gallium3D Begins Simple CL Demos
  2. Intel Shows Off GNOME3-Based Tizen Shell
  3. Linux Desktop Security Could Be A Whole Lot Better
  4. KDE 4.11 Will Be The Last Major KDE4 Workspaces Feature Release
  5. New NVIDIA Linux Driver Supports The GeForce GTX 780
  6. Chrome 28 To Offer More Speed Improvements
  7. Digia Announces "Boot To Qt" Project
  8. X.Org Libraries Hit By Round Of Security Issues
  9. Wayland's Weston Gets Output Scaling Support
  10. Raspberry Pi Gets New Wayland Weston Renderer
  11. Debian GNU/Hurd 2013 Release Brings New Packages
Latest Forum Talk
  1. Intel Shows Off GNOME3-Based Tizen Shell
  2. AMD RadeonSI Gallium3D Begins Simple CL Demos
  3. AMD Radeon R600 GPU LLVM 3.3 Back-End Testing
  4. Linux Desktop Security Could Be A Whole Lot Better
  5. Microsoft's zombie attacks Android (again)
  6. Raspberry Pi Gets New Wayland Weston Renderer
  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