summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--boilerplate/cairo-boilerplate-svg.c8
-rw-r--r--src/cairo-svg-surface-private.h39
-rw-r--r--src/cairo-svg-surface.c46
3 files changed, 47 insertions, 46 deletions
diff --git a/boilerplate/cairo-boilerplate-svg.c b/boilerplate/cairo-boilerplate-svg.c
index bf9921d5a..2787e8567 100644
--- a/boilerplate/cairo-boilerplate-svg.c
+++ b/boilerplate/cairo-boilerplate-svg.c
@@ -264,15 +264,11 @@ _cairo_boilerplate_svg_force_fallbacks (cairo_surface_t *abstract_surface,
svg_target_closure_t *ptc = cairo_surface_get_user_data (abstract_surface,
&svg_closure_key);
- cairo_paginated_surface_t *paginated;
- cairo_svg_surface_t *surface;
-
if (ptc->target)
abstract_surface = ptc->target;
- paginated = (cairo_paginated_surface_t*) abstract_surface;
- surface = (cairo_svg_surface_t*) paginated->target;
- surface->force_fallbacks = TRUE;
+ cairo_paginated_surface_t *paginated = (cairo_paginated_surface_t*) abstract_surface;
+ _cairo_svg_surface_set_force_fallbacks (paginated->target, TRUE);
cairo_surface_set_fallback_resolution (&paginated->base,
x_pixels_per_inch,
y_pixels_per_inch);
diff --git a/src/cairo-svg-surface-private.h b/src/cairo-svg-surface-private.h
index 32f032729..ad2e76e9d 100644
--- a/src/cairo-svg-surface-private.h
+++ b/src/cairo-svg-surface-private.h
@@ -41,41 +41,8 @@
#ifndef CAIRO_SVG_SURFACE_PRIVATE_H
#define CAIRO_SVG_SURFACE_PRIVATE_H
-#include "cairo-svg.h"
-
-#include "cairo-surface-private.h"
-#include "cairo-surface-clipper-private.h"
-
-typedef struct cairo_svg_document cairo_svg_document_t;
-
-typedef struct cairo_svg_surface {
- cairo_surface_t base;
-
- unsigned int source_id;
-
- cairo_content_t content;
-
- double width;
- double height;
- cairo_bool_t surface_bounded;
-
- cairo_svg_document_t *document;
-
- cairo_output_stream_t *xml_node;
- cairo_array_t page_set;
-
- cairo_hash_table_t *source_surfaces;
-
- cairo_surface_clipper_t clipper;
- cairo_output_stream_t *current_clipper_output_stream;
- unsigned int clip_level;
-
- cairo_bool_t paint_used;
- cairo_bool_t transitive_paint_used;
-
- cairo_paginated_mode_t paginated_mode;
-
- cairo_bool_t force_fallbacks;
-} cairo_svg_surface_t;
+void
+_cairo_svg_surface_set_force_fallbacks (void *abstract_surface,
+ cairo_bool_t force_fallbacks);
#endif /* CAIRO_SVG_SURFACE_PRIVATE_H */
diff --git a/src/cairo-svg-surface.c b/src/cairo-svg-surface.c
index c6eeb88d5..e4ae77534 100644
--- a/src/cairo-svg-surface.c
+++ b/src/cairo-svg-surface.c
@@ -172,11 +172,11 @@ typedef struct _cairo_svg_paint {
cairo_box_double_t box;
} cairo_svg_paint_t;
-typedef struct cairo_svg_page {
+typedef struct _cairo_svg_page {
cairo_output_stream_t *xml_node;
} cairo_svg_page_t;
-struct cairo_svg_document {
+typedef struct _cairo_svg_document {
cairo_output_stream_t *output_stream;
unsigned long refcount;
cairo_surface_t *owner;
@@ -205,7 +205,37 @@ struct cairo_svg_document {
cairo_scaled_font_subsets_t *font_subsets;
cairo_hash_table_t *paints;
-};
+} cairo_svg_document_t;
+
+typedef struct _cairo_svg_surface {
+ cairo_surface_t base;
+
+ unsigned int source_id;
+
+ cairo_content_t content;
+
+ double width;
+ double height;
+ cairo_bool_t surface_bounded;
+
+ cairo_svg_document_t *document;
+
+ cairo_output_stream_t *xml_node;
+ cairo_array_t page_set;
+
+ cairo_hash_table_t *source_surfaces;
+
+ cairo_surface_clipper_t clipper;
+ cairo_output_stream_t *current_clipper_output_stream;
+ unsigned int clip_level;
+
+ cairo_bool_t paint_used;
+ cairo_bool_t transitive_paint_used;
+
+ cairo_paginated_mode_t paginated_mode;
+
+ cairo_bool_t force_fallbacks;
+} cairo_svg_surface_t;
static cairo_status_t
_cairo_svg_document_create (cairo_output_stream_t *stream,
@@ -379,6 +409,15 @@ _extract_svg_surface (cairo_surface_t *surface,
return TRUE;
}
+void
+_cairo_svg_surface_set_force_fallbacks (void *abstract_surface,
+ cairo_bool_t force_fallbacks)
+{
+ cairo_svg_surface_t *surface = (cairo_svg_surface_t *) abstract_surface;
+
+ surface->force_fallbacks = force_fallbacks;
+}
+
/**
* cairo_svg_surface_restrict_to_version:
* @surface: a SVG #cairo_surface_t
@@ -3923,5 +3962,4 @@ static const cairo_paginated_surface_backend_t cairo_svg_surface_paginated_backe
NULL, /* _cairo_svg_surface_set_bounding_box */
NULL, /* _cairo_svg_surface_set_fallback_images_required */
_cairo_svg_surface_supports_fine_grained_fallbacks,
-
};