diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2021-07-18 07:16:22 +0930 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2021-07-26 18:31:47 +0930 |
commit | bd514f6b08c1b31a75948fd99c147319e5aa649f (patch) | |
tree | 035e388d017c90124a0ad93e85372b197e78f71e /src/cairo-pdf-surface-private.h | |
parent | 0f382eb0875f2102ba26e30c6ea1dfbaf1abff96 (diff) | |
download | cairo-bd514f6b08c1b31a75948fd99c147319e5aa649f.tar.gz |
pdf: add support for object streams for PDF >= 1.5
This allows all objects that were previously emitted uncompressed to
be compressed into a an object stream.
Currently only /Page, /Pages, and /Catalog have been converted to use
object streams.
Diffstat (limited to 'src/cairo-pdf-surface-private.h')
-rw-r--r-- | src/cairo-pdf-surface-private.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cairo-pdf-surface-private.h b/src/cairo-pdf-surface-private.h index 65fd8c741..673e20a6d 100644 --- a/src/cairo-pdf-surface-private.h +++ b/src/cairo-pdf-surface-private.h @@ -55,6 +55,7 @@ typedef struct _cairo_pdf_resource { unsigned int id; } cairo_pdf_resource_t; + #define CAIRO_NUM_OPERATORS (CAIRO_OPERATOR_HSL_LUMINOSITY + 1) typedef struct _cairo_pdf_group_resources { @@ -315,6 +316,13 @@ struct _cairo_pdf_surface { cairo_bool_t is_knockout; } group_stream; + struct { + cairo_bool_t active; + cairo_output_stream_t *stream; + cairo_pdf_resource_t resource; + cairo_array_t objects; + } object_stream; + cairo_surface_clipper_t clipper; cairo_pdf_operators_t pdf_operators; @@ -378,6 +386,13 @@ _cairo_pdf_interchange_tag_begin (cairo_pdf_surface_t *surface, const char *attributes); cairo_private cairo_int_status_t +_cairo_pdf_surface_object_begin (cairo_pdf_surface_t *surface, + cairo_pdf_resource_t resource); + +cairo_private void +_cairo_pdf_surface_object_end (cairo_pdf_surface_t *surface); + +cairo_private cairo_int_status_t _cairo_pdf_interchange_tag_end (cairo_pdf_surface_t *surface, const char *name); |