mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 07:05:24 +00:00
529 lines
18 KiB
Diff
529 lines
18 KiB
Diff
diff --git a/gfx/cairo/cairo/src/cairo-analysis-surface-private.h b/gfx/cairo/cairo/src/cairo-analysis-surface-private.h
|
|
--- a/gfx/cairo/cairo/src/cairo-analysis-surface-private.h
|
|
+++ b/gfx/cairo/cairo/src/cairo-analysis-surface-private.h
|
|
@@ -65,14 +65,11 @@ _cairo_analysis_surface_has_unsupported
|
|
cairo_private void
|
|
_cairo_analysis_surface_get_bounding_box (cairo_surface_t *surface,
|
|
cairo_box_t *bbox);
|
|
|
|
cairo_private cairo_int_status_t
|
|
_cairo_analysis_surface_merge_status (cairo_int_status_t status_a,
|
|
cairo_int_status_t status_b);
|
|
|
|
-cairo_private cairo_surface_t *
|
|
-_cairo_null_surface_create (cairo_content_t content);
|
|
-
|
|
CAIRO_END_DECLS
|
|
|
|
#endif /* CAIRO_ANALYSIS_SURFACE_H */
|
|
diff --git a/gfx/cairo/cairo/src/cairo-analysis-surface.c b/gfx/cairo/cairo/src/cairo-analysis-surface.c
|
|
--- a/gfx/cairo/cairo/src/cairo-analysis-surface.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-analysis-surface.c
|
|
@@ -902,17 +902,17 @@ static const cairo_surface_backend_t cai
|
|
NULL, /* fill_stroke */
|
|
NULL, /* create_solid_pattern_surface */
|
|
NULL, /* can_repaint_solid_pattern_surface */
|
|
NULL, /* has_show_text_glyphs */
|
|
NULL /* show_text_glyphs */
|
|
};
|
|
|
|
cairo_surface_t *
|
|
-_cairo_null_surface_create (cairo_content_t content)
|
|
+cairo_null_surface_create (cairo_content_t content)
|
|
{
|
|
cairo_surface_t *surface;
|
|
|
|
surface = malloc (sizeof (cairo_surface_t));
|
|
if (unlikely (surface == NULL)) {
|
|
return _cairo_surface_create_in_error (_cairo_error (CAIRO_STATUS_NO_MEMORY));
|
|
}
|
|
|
|
diff --git a/gfx/cairo/cairo/src/cairo-d2d-surface.cpp b/gfx/cairo/cairo/src/cairo-d2d-surface.cpp
|
|
--- a/gfx/cairo/cairo/src/cairo-d2d-surface.cpp
|
|
+++ b/gfx/cairo/cairo/src/cairo-d2d-surface.cpp
|
|
@@ -1951,24 +1951,24 @@ _cairo_d2d_create_brush_for_pattern(cair
|
|
rect = D2D1::RectU(1, 1, srcSurf->width + 1, srcSurf->height + 1);
|
|
} else {
|
|
rect = D2D1::RectU(0, 0, srcSurf->width, srcSurf->height);
|
|
}
|
|
sourceBitmap->CopyFromMemory(&rect,
|
|
srcSurf->data,
|
|
srcSurf->stride);
|
|
cairo_surface_t *nullSurf =
|
|
- _cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
|
|
+ cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
|
|
cachebitmap->refs++;
|
|
cachebitmap->dirty = false;
|
|
cairo_surface_set_user_data(nullSurf,
|
|
&bitmap_key_snapshot,
|
|
cachebitmap,
|
|
NULL);
|
|
- _cairo_surface_attach_snapshot(surfacePattern->surface,
|
|
+ cairo_surface_attach_snapshot(surfacePattern->surface,
|
|
nullSurf,
|
|
_d2d_snapshot_detached);
|
|
}
|
|
} else {
|
|
if (pattern->extend != CAIRO_EXTEND_NONE) {
|
|
d2dsurf->rt->CreateBitmap(D2D1::SizeU(width, height),
|
|
data + yoffset * stride + xoffset * Bpp,
|
|
stride,
|
|
@@ -2015,22 +2015,22 @@ _cairo_d2d_create_brush_for_pattern(cair
|
|
* and one more in the user data structure.
|
|
*/
|
|
cachebitmap->refs = 2;
|
|
cairo_surface_set_user_data(surfacePattern->surface,
|
|
key,
|
|
cachebitmap,
|
|
_d2d_release_bitmap);
|
|
cairo_surface_t *nullSurf =
|
|
- _cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
|
|
+ cairo_null_surface_create(CAIRO_CONTENT_COLOR_ALPHA);
|
|
cairo_surface_set_user_data(nullSurf,
|
|
&bitmap_key_snapshot,
|
|
cachebitmap,
|
|
NULL);
|
|
- _cairo_surface_attach_snapshot(surfacePattern->surface,
|
|
+ cairo_surface_attach_snapshot(surfacePattern->surface,
|
|
nullSurf,
|
|
_d2d_snapshot_detached);
|
|
cache_usage += _d2d_compute_bitmap_mem_size(sourceBitmap);
|
|
}
|
|
if (pix_image) {
|
|
pixman_image_unref(pix_image);
|
|
}
|
|
}
|
|
diff --git a/gfx/cairo/cairo/src/cairo-recording-surface.c b/gfx/cairo/cairo/src/cairo-recording-surface.c
|
|
--- a/gfx/cairo/cairo/src/cairo-recording-surface.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-recording-surface.c
|
|
@@ -276,17 +276,17 @@ _cairo_recording_surface_acquire_source_
|
|
-surface->extents.y);
|
|
|
|
status = _cairo_recording_surface_replay (&surface->base, image);
|
|
if (unlikely (status)) {
|
|
cairo_surface_destroy (image);
|
|
return status;
|
|
}
|
|
|
|
- _cairo_surface_attach_snapshot (&surface->base, image, NULL);
|
|
+ cairo_surface_attach_snapshot (&surface->base, image, NULL);
|
|
|
|
*image_out = (cairo_image_surface_t *) image;
|
|
*image_extra = NULL;
|
|
return CAIRO_STATUS_SUCCESS;
|
|
}
|
|
|
|
static void
|
|
_cairo_recording_surface_release_source_image (void *abstract_surface,
|
|
@@ -1046,17 +1046,17 @@ static cairo_status_t
|
|
_recording_surface_get_ink_bbox (cairo_recording_surface_t *surface,
|
|
cairo_box_t *bbox,
|
|
const cairo_matrix_t *transform)
|
|
{
|
|
cairo_surface_t *null_surface;
|
|
cairo_surface_t *analysis_surface;
|
|
cairo_status_t status;
|
|
|
|
- null_surface = _cairo_null_surface_create (surface->content);
|
|
+ null_surface = cairo_null_surface_create (surface->content);
|
|
analysis_surface = _cairo_analysis_surface_create (null_surface);
|
|
cairo_surface_destroy (null_surface);
|
|
|
|
status = analysis_surface->status;
|
|
if (unlikely (status))
|
|
return status;
|
|
|
|
if (transform != NULL)
|
|
diff --git a/gfx/cairo/cairo/src/cairo-surface-private.h b/gfx/cairo/cairo/src/cairo-surface-private.h
|
|
--- a/gfx/cairo/cairo/src/cairo-surface-private.h
|
|
+++ b/gfx/cairo/cairo/src/cairo-surface-private.h
|
|
@@ -40,18 +40,16 @@
|
|
|
|
#include "cairo.h"
|
|
|
|
#include "cairo-types-private.h"
|
|
#include "cairo-list-private.h"
|
|
#include "cairo-reference-count-private.h"
|
|
#include "cairo-clip-private.h"
|
|
|
|
-typedef void (*cairo_surface_func_t) (cairo_surface_t *);
|
|
-
|
|
struct _cairo_surface {
|
|
const cairo_surface_backend_t *backend;
|
|
cairo_device_t *device;
|
|
|
|
/* We allow surfaces to override the backend->type by shoving something
|
|
* else into surface->type. This is for "wrapper" surfaces that want to
|
|
* hide their internal type from the user-level API. */
|
|
cairo_surface_type_t type;
|
|
diff --git a/gfx/cairo/cairo/src/cairo-surface-snapshot.c b/gfx/cairo/cairo/src/cairo-surface-snapshot.c
|
|
--- a/gfx/cairo/cairo/src/cairo-surface-snapshot.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-surface-snapshot.c
|
|
@@ -209,17 +209,17 @@ _cairo_surface_snapshot (cairo_surface_t
|
|
if (unlikely (status)) {
|
|
cairo_surface_destroy (snap);
|
|
return _cairo_surface_create_in_error (status);
|
|
}
|
|
|
|
snap->device_transform = surface->device_transform;
|
|
snap->device_transform_inverse = surface->device_transform_inverse;
|
|
|
|
- _cairo_surface_attach_snapshot (surface, snap, NULL);
|
|
+ cairo_surface_attach_snapshot (surface, snap, NULL);
|
|
|
|
return snap;
|
|
}
|
|
}
|
|
|
|
snapshot = (cairo_surface_snapshot_t *)
|
|
_cairo_surface_has_snapshot (surface, &_cairo_surface_snapshot_backend);
|
|
if (snapshot != NULL)
|
|
@@ -242,14 +242,14 @@ _cairo_surface_snapshot (cairo_surface_t
|
|
if (unlikely (status)) {
|
|
cairo_surface_destroy (&snapshot->base);
|
|
return _cairo_surface_create_in_error (status);
|
|
}
|
|
|
|
snapshot->base.device_transform = surface->device_transform;
|
|
snapshot->base.device_transform_inverse = surface->device_transform_inverse;
|
|
|
|
- _cairo_surface_attach_snapshot (surface,
|
|
+ cairo_surface_attach_snapshot (surface,
|
|
&snapshot->base,
|
|
_cairo_surface_snapshot_copy_on_write);
|
|
|
|
return &snapshot->base;
|
|
}
|
|
diff --git a/gfx/cairo/cairo/src/cairo-surface-subsurface.c b/gfx/cairo/cairo/src/cairo-surface-subsurface.c
|
|
--- a/gfx/cairo/cairo/src/cairo-surface-subsurface.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-surface-subsurface.c
|
|
@@ -326,17 +326,17 @@ _cairo_surface_subsurface_acquire_source
|
|
_cairo_image_surface_create_with_content (meta->content,
|
|
surface->extents.width,
|
|
surface->extents.height);
|
|
if (unlikely (image->base.status))
|
|
return image->base.status;
|
|
|
|
cairo_surface_paint_to_target (&image->base, surface);
|
|
|
|
- _cairo_surface_attach_snapshot (&surface->base, &image->base, NULL);
|
|
+ cairo_surface_attach_snapshot (&surface->base, &image->base, NULL);
|
|
|
|
*image_out = image;
|
|
*extra_out = NULL;
|
|
return CAIRO_STATUS_SUCCESS;
|
|
}
|
|
}
|
|
|
|
extra = malloc (sizeof (struct extra));
|
|
diff --git a/gfx/cairo/cairo/src/cairo-surface.c b/gfx/cairo/cairo/src/cairo-surface.c
|
|
--- a/gfx/cairo/cairo/src/cairo-surface.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-surface.c
|
|
@@ -305,51 +305,51 @@ _cairo_surface_detach_mime_data (cairo_s
|
|
if (! _cairo_surface_has_mime_data (surface))
|
|
return;
|
|
|
|
_cairo_user_data_array_fini (&surface->mime_data);
|
|
_cairo_user_data_array_init (&surface->mime_data);
|
|
}
|
|
|
|
static void
|
|
-_cairo_surface_detach_snapshots (cairo_surface_t *surface)
|
|
+cairo_surface_detach_snapshots (cairo_surface_t *surface)
|
|
{
|
|
while (_cairo_surface_has_snapshots (surface)) {
|
|
- _cairo_surface_detach_snapshot (cairo_list_first_entry (&surface->snapshots,
|
|
+ cairo_surface_detach_snapshot (cairo_list_first_entry (&surface->snapshots,
|
|
cairo_surface_t,
|
|
snapshot));
|
|
}
|
|
}
|
|
|
|
void
|
|
-_cairo_surface_detach_snapshot (cairo_surface_t *snapshot)
|
|
+cairo_surface_detach_snapshot (cairo_surface_t *snapshot)
|
|
{
|
|
assert (snapshot->snapshot_of != NULL);
|
|
|
|
snapshot->snapshot_of = NULL;
|
|
cairo_list_del (&snapshot->snapshot);
|
|
|
|
if (snapshot->snapshot_detach != NULL)
|
|
snapshot->snapshot_detach (snapshot);
|
|
|
|
cairo_surface_destroy (snapshot);
|
|
}
|
|
|
|
void
|
|
-_cairo_surface_attach_snapshot (cairo_surface_t *surface,
|
|
+cairo_surface_attach_snapshot (cairo_surface_t *surface,
|
|
cairo_surface_t *snapshot,
|
|
cairo_surface_func_t detach_func)
|
|
{
|
|
assert (surface != snapshot);
|
|
assert (snapshot->snapshot_of != surface);
|
|
|
|
cairo_surface_reference (snapshot);
|
|
|
|
if (snapshot->snapshot_of != NULL)
|
|
- _cairo_surface_detach_snapshot (snapshot);
|
|
+ cairo_surface_detach_snapshot (snapshot);
|
|
|
|
snapshot->snapshot_of = surface;
|
|
snapshot->snapshot_detach = detach_func;
|
|
|
|
cairo_list_add (&snapshot->snapshot, &surface->snapshots);
|
|
|
|
assert (_cairo_surface_has_snapshot (surface, snapshot->backend) == snapshot);
|
|
}
|
|
@@ -382,17 +382,17 @@ _cairo_surface_is_writable (cairo_surfac
|
|
|
|
static void
|
|
_cairo_surface_begin_modification (cairo_surface_t *surface)
|
|
{
|
|
assert (surface->status == CAIRO_STATUS_SUCCESS);
|
|
assert (! surface->finished);
|
|
assert (surface->snapshot_of == NULL);
|
|
|
|
- _cairo_surface_detach_snapshots (surface);
|
|
+ cairo_surface_detach_snapshots (surface);
|
|
_cairo_surface_detach_mime_data (surface);
|
|
}
|
|
|
|
void
|
|
_cairo_surface_init (cairo_surface_t *surface,
|
|
const cairo_surface_backend_t *backend,
|
|
cairo_device_t *device,
|
|
cairo_content_t content)
|
|
@@ -711,19 +711,19 @@ cairo_surface_finish (cairo_surface_t *s
|
|
|
|
if (CAIRO_REFERENCE_COUNT_IS_INVALID (&surface->ref_count))
|
|
return;
|
|
|
|
if (surface->finished)
|
|
return;
|
|
|
|
/* update the snapshots *before* we declare the surface as finished */
|
|
- _cairo_surface_detach_snapshots (surface);
|
|
+ cairo_surface_detach_snapshots (surface);
|
|
if (surface->snapshot_of != NULL)
|
|
- _cairo_surface_detach_snapshot (surface);
|
|
+ cairo_surface_detach_snapshot (surface);
|
|
|
|
cairo_surface_flush (surface);
|
|
surface->finished = TRUE;
|
|
|
|
/* call finish even if in error mode */
|
|
if (surface->backend->finish) {
|
|
status = surface->backend->finish (surface);
|
|
if (unlikely (status))
|
|
@@ -1106,17 +1106,17 @@ cairo_surface_flush (cairo_surface_t *su
|
|
|
|
if (surface->status)
|
|
return;
|
|
|
|
if (surface->finished)
|
|
return;
|
|
|
|
/* update the current snapshots *before* the user updates the surface */
|
|
- _cairo_surface_detach_snapshots (surface);
|
|
+ cairo_surface_detach_snapshots (surface);
|
|
|
|
if (surface->backend->flush) {
|
|
status = surface->backend->flush (surface);
|
|
if (unlikely (status))
|
|
status = _cairo_surface_set_error (surface, status);
|
|
}
|
|
}
|
|
slim_hidden_def (cairo_surface_flush);
|
|
@@ -1628,17 +1628,17 @@ _cairo_recording_surface_clone_similar (
|
|
return similar->status;
|
|
|
|
status = _cairo_recording_surface_replay (src, similar);
|
|
if (unlikely (status)) {
|
|
cairo_surface_destroy (similar);
|
|
return status;
|
|
}
|
|
|
|
- _cairo_surface_attach_snapshot (src, similar, NULL);
|
|
+ cairo_surface_attach_snapshot (src, similar, NULL);
|
|
|
|
src_x = src_y = 0;
|
|
}
|
|
|
|
*clone_out = similar;
|
|
*clone_offset_x = src_x;
|
|
*clone_offset_y = src_y;
|
|
return CAIRO_STATUS_SUCCESS;
|
|
diff --git a/gfx/cairo/cairo/src/cairo-vg-surface.c b/gfx/cairo/cairo/src/cairo-vg-surface.c
|
|
--- a/gfx/cairo/cairo/src/cairo-vg-surface.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-vg-surface.c
|
|
@@ -977,17 +977,17 @@ _vg_setup_surface_source (cairo_vg_conte
|
|
status = _cairo_cache_insert (&context->snapshot_cache,
|
|
&clone->snapshot_cache_entry);
|
|
if (unlikely (status)) {
|
|
clone->snapshot_cache_entry.hash = 0;
|
|
cairo_surface_destroy (&clone->base);
|
|
return status;
|
|
}
|
|
|
|
- _cairo_surface_attach_snapshot (spat->surface, &clone->base,
|
|
+ cairo_surface_attach_snapshot (spat->surface, &clone->base,
|
|
_vg_surface_remove_from_cache);
|
|
|
|
DONE:
|
|
cairo_surface_destroy (&context->source->base);
|
|
context->source = clone;
|
|
|
|
vgSetParameteri (context->paint, VG_PAINT_TYPE, VG_PAINT_TYPE_PATTERN);
|
|
|
|
diff --git a/gfx/cairo/cairo/src/cairo-xcb-surface.c b/gfx/cairo/cairo/src/cairo-xcb-surface.c
|
|
--- a/gfx/cairo/cairo/src/cairo-xcb-surface.c
|
|
+++ b/gfx/cairo/cairo/src/cairo-xcb-surface.c
|
|
@@ -560,17 +560,17 @@ _cairo_xcb_surface_acquire_source_image
|
|
image = (cairo_image_surface_t *) cairo_surface_reference (&image->base);
|
|
goto DONE;
|
|
}
|
|
|
|
status = _get_image (surface, FALSE, &image);
|
|
if (unlikely (status))
|
|
return status;
|
|
|
|
- _cairo_surface_attach_snapshot (&surface->base, &image->base, NULL);
|
|
+ cairo_surface_attach_snapshot (&surface->base, &image->base, NULL);
|
|
|
|
DONE:
|
|
*image_out = image;
|
|
*image_extra = NULL;
|
|
return CAIRO_STATUS_SUCCESS;
|
|
}
|
|
|
|
static void
|
|
@@ -713,17 +713,17 @@ _cairo_xcb_surface_flush (void *abstract
|
|
status = cairo_surface_status (surface->fallback);
|
|
|
|
if (status == CAIRO_STATUS_SUCCESS) {
|
|
status = _put_image (surface,
|
|
(cairo_image_surface_t *) surface->fallback);
|
|
}
|
|
|
|
if (status == CAIRO_STATUS_SUCCESS) {
|
|
- _cairo_surface_attach_snapshot (&surface->base,
|
|
+ cairo_surface_attach_snapshot (&surface->base,
|
|
surface->fallback,
|
|
cairo_surface_finish);
|
|
}
|
|
}
|
|
|
|
cairo_surface_destroy (surface->fallback);
|
|
surface->fallback = NULL;
|
|
|
|
diff --git a/gfx/cairo/cairo/src/cairo.h b/gfx/cairo/cairo/src/cairo.h
|
|
--- a/gfx/cairo/cairo/src/cairo.h
|
|
+++ b/gfx/cairo/cairo/src/cairo.h
|
|
@@ -214,16 +214,25 @@ typedef struct _cairo_pattern cairo_patt
|
|
*
|
|
* #cairo_destroy_func_t the type of function which is called when a
|
|
* data element is destroyed. It is passed the pointer to the data
|
|
* element and should free any memory and resources allocated for it.
|
|
**/
|
|
typedef void (*cairo_destroy_func_t) (void *data);
|
|
|
|
/**
|
|
+ * cairo_surface_func_t:
|
|
+ * @surface: The surface being referred to.
|
|
+ *
|
|
+ * #cairo_surface_func_t the type of function which is used for callback
|
|
+ * when a surface needs to be apssed as a parameter.
|
|
+ */
|
|
+typedef void (*cairo_surface_func_t) (cairo_surface_t *surface);
|
|
+
|
|
+/**
|
|
* cairo_user_data_key_t:
|
|
* @unused: not used; ignore.
|
|
*
|
|
* #cairo_user_data_key_t is used for attaching user data to cairo
|
|
* data structures. The actual contents of the struct is never used,
|
|
* and there is no need to initialize the object; only the unique
|
|
* address of a #cairo_data_key_t object is used. Typically, you
|
|
* would just use the address of a static #cairo_data_key_t object.
|
|
@@ -2150,16 +2159,24 @@ cairo_surface_get_user_data (cairo_surfa
|
|
const cairo_user_data_key_t *key);
|
|
|
|
cairo_public cairo_status_t
|
|
cairo_surface_set_user_data (cairo_surface_t *surface,
|
|
const cairo_user_data_key_t *key,
|
|
void *user_data,
|
|
cairo_destroy_func_t destroy);
|
|
|
|
+cairo_public void
|
|
+cairo_surface_attach_snapshot (cairo_surface_t *surface,
|
|
+ cairo_surface_t *snapshot,
|
|
+ cairo_surface_func_t detach_func);
|
|
+
|
|
+cairo_public void
|
|
+cairo_surface_detach_snapshot (cairo_surface_t *snapshot);
|
|
+
|
|
#define CAIRO_MIME_TYPE_JPEG "image/jpeg"
|
|
#define CAIRO_MIME_TYPE_PNG "image/png"
|
|
#define CAIRO_MIME_TYPE_JP2 "image/jp2"
|
|
#define CAIRO_MIME_TYPE_URI "text/x-uri"
|
|
|
|
cairo_public void
|
|
cairo_surface_get_mime_data (cairo_surface_t *surface,
|
|
const char *mime_type,
|
|
@@ -2328,16 +2345,21 @@ cairo_recording_surface_create (cairo_co
|
|
|
|
cairo_public void
|
|
cairo_recording_surface_ink_extents (cairo_surface_t *surface,
|
|
double *x0,
|
|
double *y0,
|
|
double *width,
|
|
double *height);
|
|
|
|
+/* Null-surface functions */
|
|
+
|
|
+cairo_public cairo_surface_t *
|
|
+cairo_null_surface_create (cairo_content_t content);
|
|
+
|
|
/* Pattern creation functions */
|
|
|
|
cairo_public cairo_pattern_t *
|
|
cairo_pattern_create_rgb (double red, double green, double blue);
|
|
|
|
cairo_public cairo_pattern_t *
|
|
cairo_pattern_create_rgba (double red, double green, double blue,
|
|
double alpha);
|
|
diff --git a/gfx/cairo/cairo/src/cairoint.h b/gfx/cairo/cairo/src/cairoint.h
|
|
--- a/gfx/cairo/cairo/src/cairoint.h
|
|
+++ b/gfx/cairo/cairo/src/cairoint.h
|
|
@@ -1770,27 +1770,19 @@ _cairo_surface_clone_similar (cairo_surf
|
|
int height,
|
|
int *clone_offset_x,
|
|
int *clone_offset_y,
|
|
cairo_surface_t **clone_out);
|
|
|
|
cairo_private cairo_surface_t *
|
|
_cairo_surface_snapshot (cairo_surface_t *surface);
|
|
|
|
-cairo_private void
|
|
-_cairo_surface_attach_snapshot (cairo_surface_t *surface,
|
|
- cairo_surface_t *snapshot,
|
|
- cairo_surface_func_t detach_func);
|
|
-
|
|
cairo_private cairo_surface_t *
|
|
_cairo_surface_has_snapshot (cairo_surface_t *surface,
|
|
- const cairo_surface_backend_t *backend);
|
|
-
|
|
-cairo_private void
|
|
-_cairo_surface_detach_snapshot (cairo_surface_t *snapshot);
|
|
+ const cairo_surface_backend_t *backend);
|
|
|
|
cairo_private cairo_bool_t
|
|
_cairo_surface_is_similar (cairo_surface_t *surface_a,
|
|
cairo_surface_t *surface_b);
|
|
|
|
cairo_private cairo_bool_t
|
|
_cairo_surface_get_extents (cairo_surface_t *surface,
|
|
cairo_rectangle_int_t *extents);
|