1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
|
#include "cairodriver.h"
#if CAIRO_HAS_XLIB_SURFACE
#include <X11/Xlib.h>
#include <cairo-xlib.h>
#endif
void write_image(void)
{
G_debug(1, "write_image");
if (!modified)
return;
if (mapped)
return;
if (!cairo || !surface)
return;
if (file_type == FTYPE_PPM) {
G_debug(1, "Writing image to %s", file_name);
write_ppm();
}
else if (file_type == FTYPE_BMP) {
G_debug(1, "Writing image to %s", file_name);
write_bmp();
}
#if CAIRO_HAS_PNG_FUNCTIONS
else if (file_type == FTYPE_PNG) {
G_debug(1, "Writing image to %s", file_name);
cairo_surface_write_to_png(surface, file_name);
}
#endif
#if CAIRO_HAS_XLIB_SURFACE
else if (file_type == FTYPE_X11) {
XFlush(cairo_xlib_surface_get_display(surface));
}
#endif
/* vector format files are written directly to file */
modified = 0;
}
|