summaryrefslogtreecommitdiff
path: root/src/cairo-surface-backend-private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-surface-backend-private.h')
-rw-r--r--src/cairo-surface-backend-private.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/cairo-surface-backend-private.h b/src/cairo-surface-backend-private.h
index 15032de20..856c596c8 100644
--- a/src/cairo-surface-backend-private.h
+++ b/src/cairo-surface-backend-private.h
@@ -1,3 +1,4 @@
+/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */
/* cairo - a vector graphics library with display and print output
*
* Copyright © 2002 University of Southern California
@@ -40,6 +41,7 @@
#include "cairo-compiler-private.h"
#include "cairo-error-private.h"
+#include "cairo-pattern-private.h"
CAIRO_BEGIN_DECLS
@@ -211,6 +213,29 @@ struct _cairo_surface_backend {
(*supports_color_glyph) (void *surface,
cairo_scaled_font_t *scaled_font,
unsigned long glyph_index);
+
+ /* Paginated surfaces only. During the analysis stage, if any
+ * recording surfaces used as a source are to be replayed, this
+ * function will be called at the begining and end of the replay.
+ *
+ * @recording_surface - the recording surface used as a source
+ * @source_type - a type indicating the combination of drawing
+ * operation and source type
+ * @begin - TRUE when called before the replay, FALSE when called
+ * after the replay has finished.
+ */
+ cairo_warn cairo_int_status_t
+ (*analyze_recording_surface)(void *surface,
+ const cairo_surface_pattern_t *recording_surface_pattern,
+ unsigned int region_id,
+ cairo_analysis_source_t source_type,
+ cairo_bool_t begin);
+
+ cairo_warn cairo_int_status_t
+ (*command_id) (void *surface,
+ unsigned int recording_id,
+ unsigned int command_id);
+
};
cairo_private cairo_status_t