Work continues and with the the Cairo rotation figured out, now I need to get into a place a way for the Cairo surfaces to be redrawn appropriately. This could be a prototype for an OpenGL implementation, but we'll wait and see. If I get the threading in place, it's useful for Cairo, as well as OpenGL.