#include #include #include int main (void) { Display *dpy; Screen *scr; Window win; int screen; cairo_surface_t *surface; cairo_t *cr; char buf[] = "1234567890", c; int i, j, k; int x, y; dpy = XOpenDisplay (NULL); if (dpy == NULL) return 1; screen = DefaultScreen (dpy); scr = XScreenOfDisplay (dpy, screen); win = XCreateWindow (dpy, DefaultRootWindow (dpy), 0, 0, 800, 600, 0, DefaultDepth (dpy, screen), InputOutput, DefaultVisual (dpy, screen), 0, NULL); XMapWindow (dpy, win); XSync (dpy, True); surface = cairo_xlib_surface_create (dpy, win, DefaultVisual (dpy, screen), 800, 600); cr = cairo_create (surface); cairo_set_source_rgb (cr, .6, .6, .6); cairo_paint (cr); cairo_set_source_rgb (cr, .0, .0, .0); cairo_select_font_face (cr, "mono", CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL); cairo_set_font_size (cr, 10); y = 12; for (j = 1; j < 100; j++) { cairo_move_to (cr, 8, y); for (i = 0; i < j; i += 10) { k = 10; if (i + 10 > j) k = j - i; c = buf[k]; buf[k] = '\0'; cairo_show_text (cr, buf); buf[k] = c; } y += 12; } cairo_destroy (cr); XFlush (dpy); pause (); return 0; }