summaryrefslogtreecommitdiff
path: root/src/cairo-surface-private.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cairo-surface-private.h')
-rw-r--r--src/cairo-surface-private.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/cairo-surface-private.h b/src/cairo-surface-private.h
index b07f7806..c25b6dc8 100644
--- a/src/cairo-surface-private.h
+++ b/src/cairo-surface-private.h
@@ -43,6 +43,8 @@
#include "cairo-types-private.h"
#include "cairo-reference-count-private.h"
+typedef void (*cairo_surface_func_t) (cairo_surface_t *);
+
struct _cairo_surface {
const cairo_surface_backend_t *backend;
@@ -94,7 +96,10 @@ struct _cairo_surface {
unsigned int current_clip_serial;
/* A "snapshot" surface is immutable. See _cairo_surface_snapshot. */
- cairo_bool_t is_snapshot;
+ cairo_surface_t *snapshot_of;
+ cairo_surface_func_t snapshot_detach;
+ /* current snapshots of this surface */
+ cairo_array_t snapshots;
/*
* Surface font options, falling back to backend's default options,