diff options
author | Anton Danilkin <afdw@yandex.ru> | 2021-04-11 21:49:47 +0200 |
---|---|---|
committer | Anton Danilkin <afdw@yandex.ru> | 2021-04-11 23:59:47 +0200 |
commit | 500b39e98fa17aaf89a805aa4ce73c5f334f6bd9 (patch) | |
tree | 6e74b407458b27601587dec23574901f1e24b2dd | |
parent | ceae137ba6930c0415b64918e74750d1cfd162cb (diff) | |
download | cairo-500b39e98fa17aaf89a805aa4ce73c5f334f6bd9.tar.gz |
Move cairo_svg_surface_t to cairo-svg-surface.c
-rw-r--r-- | boilerplate/cairo-boilerplate-svg.c | 8 | ||||
-rw-r--r-- | src/cairo-svg-surface-private.h | 39 | ||||
-rw-r--r-- | src/cairo-svg-surface.c | 46 |
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, - }; |