Ktam3874/pitx software guide – Kontron KTAM3874-pITX User Manual
Page 159

KTD-S0057-I
Page 155 Linux® Programming Examples (DebianTM)
KTAM3874/pITX Software Guide
static void destroy_X11_window (XSystem sys)
{
if
(sys.cmap)
XFreeColormap (sys.disp, sys.cmap);
XCloseDisplay
(sys.disp);
}
int main (void)
{
XSystem
xsys;
cairo_t
*cr;
cairo_surface_t
*surface;
memset ((void *) &xsys, 0, sizeof (xsys));
if (create_X11_window (&xsys))
return
EXIT_FAILURE;
surface = (cairo_surface_t *) cairo_pdf_surface_create ("test.pdf", WIDTH, HEIGHT);
/* surface = (cairo_surface_t *) cairo_ps_surface_create ("test.ps", WIDTH, HEIGHT);
surface = (cairo_surface_t *) cairo_svg_surface_create ("test.svg", WIDTH, HEIGHT); */
if (cairo_surface_status (surface) != CAIRO_STATUS_SUCCESS)
{
fprintf (stderr, "Cannot create cairo surface\n");
destroy_X11_window
(xsys);
return
EXIT_FAILURE;
}
cr = cairo_create (surface);
if (cairo_status (cr) != CAIRO_STATUS_SUCCESS)
{
fprintf (stderr, "Cannot create cairo context\n");
cairo_surface_destroy
(surface);
destroy_X11_window
(xsys);
return
EXIT_FAILURE;
}
draw_cairo_object1 (xsys, cr);
cairo_surface_set_device_offset
(surface, OBJ2_XOFFS, OBJ2_YOFFS);
draw_cairo_object2 (xsys, cr);
cairo_show_page
(cr);
/* Only necessary for PDF and PS */
cairo_destroy
(cr);
cairo_surface_destroy
(surface);
destroy_X11_window
(xsys);
return
EXIT_SUCCESS;
}