summaryrefslogtreecommitdiff
path: root/src/cairo.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-07-03 18:26:50 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2009-07-03 18:26:50 +0100
commit6003ab77e1ebefadb97338de0e7da4a76d973b1a (patch)
treee375335dac3abfdd3e75cb18a317824556de84f6 /src/cairo.h
parent2a9903dbbfeb3fe843f0d618d15674b37a29f3a9 (diff)
Export meta-surface
The meta-surface is a vital tool to record a trace of drawing commands in-memory. As such it is used throughout cairo. The value of such a surface is immediately obvious and should be applicable for many applications. The first such case is by cairo-test-trace which wants to record the entire graph of drawing commands that affect a surface in the event of a failure.
Diffstat (limited to 'src/cairo.h')
-rw-r--r--src/cairo.h22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/cairo.h b/src/cairo.h
index 37ccdc3c..8f7e5338 100644
--- a/src/cairo.h
+++ b/src/cairo.h
@@ -1890,6 +1890,7 @@ cairo_surface_status (cairo_surface_t *surface);
* @CAIRO_SURFACE_TYPE_QUARTZ_IMAGE: The surface is of type quartz_image
* @CAIRO_SURFACE_TYPE_SCRIPT: The surface is of type script, since 1.10
* @CAIRO_SURFACE_TYPE_QT: The surface is of type Qt, since 1.10
+ * @CAIRO_SURFACE_TYPE_META: The surface is a meta-type, since 1.10
*
* #cairo_surface_type_t is used to describe the type of a given
* surface. The surface types are also known as "backends" or "surface
@@ -1930,7 +1931,8 @@ typedef enum _cairo_surface_type {
CAIRO_SURFACE_TYPE_WIN32_PRINTING,
CAIRO_SURFACE_TYPE_QUARTZ_IMAGE,
CAIRO_SURFACE_TYPE_SCRIPT,
- CAIRO_SURFACE_TYPE_QT
+ CAIRO_SURFACE_TYPE_QT,
+ CAIRO_SURFACE_TYPE_META
} cairo_surface_type_t;
cairo_public cairo_surface_type_t
@@ -2108,6 +2110,24 @@ cairo_image_surface_create_from_png_stream (cairo_read_func_t read_func,
#endif
+/* Meta-surface functions */
+
+cairo_public cairo_surface_t *
+cairo_meta_surface_create (cairo_content_t content,
+ double width_pixels,
+ double height_pixels);
+
+cairo_public void
+cairo_meta_surface_ink_extents (cairo_surface_t *surface,
+ double *x0,
+ double *y0,
+ double *width,
+ double *height);
+
+cairo_public cairo_status_t
+cairo_meta_surface_replay (cairo_surface_t *surface,
+ cairo_surface_t *target);
+
/* Pattern creation functions */
cairo_public cairo_pattern_t *