Skip to content
A really simple actor-based layer hierarchy for drawable nodes
C++ C CMake Meson
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Bubbles is a very basic actor-based layer hierarchy for drawable nodes. It allows you to organize a hierarchy of drawable "actors" (the nodes) into a "scene". The scene then acts as a sort of runloop, responsible for rendering actors in their respective positions.



cairo pango pangocairo freetype2 pangoft2 x11 xfixes


mkdir build && cmake .. && make


Each actor has a render and update method. These methods are called by the scene every turn of the runloop. render takes a Cairo context cairo_t that you draw into. The scene already takes care of raster groups and any parent transformations that need to be applied.


Check out the example for some basic usage.


I created this project because I found myself writing this same code over and over again for any project that needed to render a complex drawable hierarchy to a framebuffer (i.e., an X11 window or an LED matrix). Ideally I'd like to avoid using something like GTK or Qt since I am targeting platforms that may not have a high resolution bitmap display (like an LED matrix). Theoretically this could be divorced from the platform completely, as its only dependency is the Cairo Graphics Library.

Why did you call it bubbles

I don't remember. I think it was the first name that came to my head. I do really like the 1982 Williams classic arcade game Bubbles

You can’t perform that action at this time.