mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-06 13:58:01 +02:00
Add new _cairo_pattern_create_in_error.
Propagate error values from cr->status to pattern->status.
This commit is contained in:
parent
14ae3ce3ad
commit
8084fb9b09
4 changed files with 44 additions and 3 deletions
|
|
@ -1,3 +1,12 @@
|
|||
2005-06-13 Carl Worth <cworth@cworth.org>
|
||||
|
||||
* src/cairoint.h:
|
||||
* src/cairo-pattern.c: (_cairo_pattern_create_in_error): Add new
|
||||
_cairo_pattern_create_in_error.
|
||||
|
||||
* src/cairo.c: (cairo_get_source): Propagate error values from
|
||||
cr->status to pattern->status.
|
||||
|
||||
2005-06-13 Carl Worth <cworth@cworth.org>
|
||||
|
||||
* src/cairo.c (_cairo_set_source_solid),
|
||||
|
|
|
|||
|
|
@ -263,6 +263,37 @@ _cairo_pattern_create_solid (const cairo_color_t *color)
|
|||
return &pattern->base;
|
||||
}
|
||||
|
||||
/**
|
||||
* _cairo_pattern_create_in_error:
|
||||
* @status: an error status
|
||||
*
|
||||
* Create an empty #cairo_pattern_t object to hold an error
|
||||
* status. This is useful for propagating status values from an
|
||||
* existing object to a new #cairo_pattern_t.
|
||||
*
|
||||
* Return value: a (solid, black) #cairo_pattern_t object with status
|
||||
* of @status. If there is insufficient memory a pointer to a special,
|
||||
* static cairo_solid_pattern_nil will be returned instead with a
|
||||
* status of CAIRO_STATUS_NO_MEMORY rather than @status.
|
||||
*
|
||||
* Return value:
|
||||
**/
|
||||
cairo_pattern_t *
|
||||
_cairo_pattern_create_in_error (cairo_status_t status)
|
||||
{
|
||||
cairo_solid_pattern_t *pattern;
|
||||
|
||||
pattern = malloc (sizeof (cairo_solid_pattern_t));
|
||||
if (pattern == NULL)
|
||||
return (cairo_pattern_t *) &cairo_solid_pattern_nil.base;
|
||||
|
||||
_cairo_pattern_init_solid (pattern, CAIRO_COLOR_BLACK);
|
||||
|
||||
pattern->base.status = status;
|
||||
|
||||
return &pattern->base;
|
||||
}
|
||||
|
||||
cairo_pattern_t *
|
||||
cairo_pattern_create_for_surface (cairo_surface_t *surface)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -481,10 +481,8 @@ cairo_pattern_t *
|
|||
cairo_get_source (cairo_t *cr)
|
||||
{
|
||||
CAIRO_CHECK_SANITY (cr);
|
||||
/* XXX: We'll want to do something like this:
|
||||
if (cr->status)
|
||||
return cairo_pattern_nil;
|
||||
*/
|
||||
return _cairo_pattern_create_in_error (cr->status);
|
||||
|
||||
return _cairo_gstate_get_source (cr->gstate);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1717,6 +1717,9 @@ _cairo_pattern_fini (cairo_pattern_t *pattern);
|
|||
cairo_private cairo_pattern_t *
|
||||
_cairo_pattern_create_solid (const cairo_color_t *color);
|
||||
|
||||
cairo_pattern_t *
|
||||
_cairo_pattern_create_in_error (cairo_status_t status);
|
||||
|
||||
cairo_private void
|
||||
_cairo_pattern_transform (cairo_pattern_t *pattern,
|
||||
const cairo_matrix_t *ctm_inverse);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue