prepared to implement the function in "cairo.h"