summaryrefslogtreecommitdiff
path: root/src/cairo-types-private.h
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2010-01-18 19:05:34 +0000
committerChris Wilson <chris@chris-wilson.co.uk>2010-01-22 23:01:50 +0000
commit934d0d0d6585eb7638c7db597c40dd821092c034 (patch)
tree2809f3241b797800ceefe375b89ae4f0b9a6a884 /src/cairo-types-private.h
parent6b3e19aa434d159db7878b2a7fb28a026b2d1756 (diff)
downloadcairo-934d0d0d6585eb7638c7db597c40dd821092c034.tar.gz
Real zero-copy cow snapshotting
The first iteration of COW snapshotting always made an initial copy when the snapshot was requested (and reused that copy until the surface was modified). However, in a few circumstances we can avoid even that copy so long as the surface is still alive and unmodified between the snapshotting and its use. In order to do so, we need a new proxy surface that can automatically perform the copy if the target should disappear prior to use.
Diffstat (limited to 'src/cairo-types-private.h')
-rw-r--r--src/cairo-types-private.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/cairo-types-private.h b/src/cairo-types-private.h
index 125874bdb..e10d11ec7 100644
--- a/src/cairo-types-private.h
+++ b/src/cairo-types-private.h
@@ -64,6 +64,7 @@ typedef struct _cairo_scaled_font_backend cairo_scaled_font_backend_t;
typedef struct _cairo_scaled_font_subsets cairo_scaled_font_subsets_t;
typedef struct _cairo_solid_pattern cairo_solid_pattern_t;
typedef struct _cairo_surface_backend cairo_surface_backend_t;
+typedef struct _cairo_surface_snapshot cairo_surface_snapshot_t;
typedef struct _cairo_surface_subsurface cairo_surface_subsurface_t;
typedef struct _cairo_surface_wrapper cairo_surface_wrapper_t;
typedef struct _cairo_unscaled_font_backend cairo_unscaled_font_backend_t;
@@ -166,6 +167,7 @@ typedef enum _cairo_int_status {
typedef enum _cairo_internal_surface_type {
CAIRO_INTERNAL_SURFACE_TYPE_SUBSURFACE = 0x1000,
+ CAIRO_INTERNAL_SURFACE_TYPE_SNAPSHOT,
CAIRO_INTERNAL_SURFACE_TYPE_PAGINATED,
CAIRO_INTERNAL_SURFACE_TYPE_ANALYSIS,
CAIRO_INTERNAL_SURFACE_TYPE_TEST_FALLBACK,