_cairo_pattern_init (pattern);
_cairo_pattern_init_linear (pattern, x0, y0, x1, y1);
cairo_pattern_create_linear (double x0, double y0, double x1, double y1){    cairo_pattern_t *pattern;    pattern = malloc (sizeof (cairo_pattern_t));    if (pattern == NULL)	return NULL;    _cairo_pattern_init (pattern);    pattern->type = CAIRO_PATTERN_LINEAR;    pattern->u.linear.point0.x = x0;    pattern->u.linear.point0.y = y0;    pattern->u.linear.point1.x = x1;    pattern->u.linear.point1.y = y1;    return pattern;}