diff options
Diffstat (limited to 'source/xps/xps-common.c')
-rw-r--r-- | source/xps/xps-common.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/source/xps/xps-common.c b/source/xps/xps-common.c index 667b0631..104b6c1b 100644 --- a/source/xps/xps-common.c +++ b/source/xps/xps-common.c @@ -130,7 +130,7 @@ xps_end_opacity(fz_context *ctx, xps_document *doc, char *base_uri, xps_resource } } -void +static void xps_parse_render_transform(fz_context *ctx, xps_document *doc, char *transform, fz_matrix *matrix) { float args[6]; @@ -155,7 +155,7 @@ xps_parse_render_transform(fz_context *ctx, xps_document *doc, char *transform, matrix->e = args[4]; matrix->f = args[5]; } -void +static void xps_parse_matrix_transform(fz_context *ctx, xps_document *doc, fz_xml *root, fz_matrix *matrix) { char *transform; @@ -171,6 +171,17 @@ xps_parse_matrix_transform(fz_context *ctx, xps_document *doc, fz_xml *root, fz_ } void +xps_parse_transform(fz_context *ctx, xps_document *doc, char *att, fz_xml *tag, fz_matrix *transform, const fz_matrix *ctm) +{ + *transform = fz_identity; + if (att) + xps_parse_render_transform(ctx, doc, att, transform); + if (tag) + xps_parse_matrix_transform(ctx, doc, tag, transform); + fz_concat(transform, transform, ctm); +} + +void xps_parse_rectangle(fz_context *ctx, xps_document *doc, char *text, fz_rect *rect) { float args[4]; |