Create a new cairo_pattern_t for the given surface. Since 1.0
the newly created cairo_pattern_t if successful, or an error pattern in case of no memory. The caller owns the returned object and should call Pattern.destroy when finished with it. This function will always return a valid pointer, but if an error occurred the pattern status will be set to an error. To inspect the status of a pattern use Pattern.status.