cog /käg/ Noun: A wheel or bar with a series of projections on its edge that transfers motion by engaging with projections on another wheel or bar


An open source GPU graphics & utilities API:


  • A hardware accelerated graphics API
  • Math utilities: Matrices including Matrix Stacks, Vectors, Euler angles, Quaternion rotations and Colors.
  • Texturing utilities: Atlasing, Sub textures, Sliced textures, X11 Texture from pixmap, Wayland texture from buffer

Cogl also provides these optional utilities:

  • cogl-gles2: to intermix rendering with OpenGL ES 2.0
  • cogl-pango: A Pango text renderer backend
  • cogl-gst: GStreamer video integration
  • cogl-path: A 2D Path tessellation api
Find out more...

Who's using Cogl


Rig is aiming to provide a design tool and rendering engine for the next generation of user interface developers and uses Cogl for all low-level GPU programming:

Gnome Shell

Gnome Shell provides the core user interface of the Gnome 3 Desktop. Gnome Shell is built on huge number of technologies (too many to list here) including Clutter which is a low-level UI toolkit built on top of Cogl.

Media Explorer

Media Explorer is a media centre application for Linux leveraging libraries such as GUPnP, Grilo, Tracker and GStreamer to find, index and play local and remote media. The application (interface coded in Mx and Clutter) enables browsing, searching, and viewing of found media.

Cairo Cogl

This is a proof of concept accelerated backend for Cairo that did some interesting things to transparently retain tessellated path geometry where early profiling showed some very compelling results. The project has only stalled due to lack of time but could be an interesting project for someone to revive.

Evas Cogl

This is a proof of concept backend for the Evas scenegraph library which could for example enable the project to share the effort of handling the various EGL/GLX/WGL window system integration backends as well as the quirky differences between GL and GLES and could also help enable support for OpenGL 3 and WebGL.