diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-04-23 19:45:26 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2011-07-15 11:05:19 +0100 |
commit | 83bfd85a1378e61b8bdc3f554f5e07900311f61f (patch) | |
tree | 380f96e0021d420799db02f4abe3e364745ec476 /src/cairo-private.h | |
parent | 2055732ffcd6316c3feb05ac330fbaf8698df5c4 (diff) | |
download | cairo-83bfd85a1378e61b8bdc3f554f5e07900311f61f.tar.gz |
Implement cairo_backend_t
Allow a backend to completely reimplement the Cairo API as it wants. The
goal is to pass operations to the native backends such as Quartz,
Direct2D, Qt, Skia, OpenVG with no overhead. And to permit complete
logging contexts, and whatever else the imagination holds. Perhaps to
experiment with double-paths?
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/cairo-private.h')
-rw-r--r-- | src/cairo-private.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/src/cairo-private.h b/src/cairo-private.h index 901a69a31..9f4f55b7c 100644 --- a/src/cairo-private.h +++ b/src/cairo-private.h @@ -36,22 +36,29 @@ #ifndef CAIRO_PRIVATE_H #define CAIRO_PRIVATE_H +#include "cairo-types-private.h" #include "cairo-reference-count-private.h" -#include "cairo-gstate-private.h" -#include "cairo-path-fixed-private.h" + +CAIRO_BEGIN_DECLS struct _cairo { cairo_reference_count_t ref_count; - cairo_status_t status; - cairo_user_data_array_t user_data; - cairo_gstate_t *gstate; - cairo_gstate_t gstate_tail[2]; - cairo_gstate_t *gstate_freelist; - - cairo_path_fixed_t path[1]; + const cairo_backend_t *backend; }; +cairo_private cairo_t * +_cairo_create_in_error (cairo_status_t status); + +cairo_private void +_cairo_init (cairo_t *cr, + const cairo_backend_t *backend); + +cairo_private void +_cairo_fini (cairo_t *cr); + +CAIRO_END_DECLS + #endif /* CAIRO_PRIVATE_H */ |