diff options
Diffstat (limited to 'source/fitz/svg-device.c')
-rw-r--r-- | source/fitz/svg-device.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/fitz/svg-device.c b/source/fitz/svg-device.c index dc248f88..aa5ff74c 100644 --- a/source/fitz/svg-device.c +++ b/source/fitz/svg-device.c @@ -682,7 +682,10 @@ svg_dev_fill_image(fz_device *dev, fz_image *image, const fz_matrix *ctm, float fz_context *ctx = dev->ctx; fz_output *out = sdev->out; fz_matrix local_ctm = *ctm; - fz_matrix scale = { 1.0f/image->w, 0, 0, 1.0f/image->h, 0, 0}; + fz_matrix scale = { 0 }; + + scale.a = 1.0f / image->w; + scale.d = 1.0f / image->h; fz_concat(&local_ctm, &scale, ctm); if (alpha != 1.0f) @@ -767,9 +770,12 @@ fz_colorspace *colorspace, float *color, float alpha) fz_context *ctx = dev->ctx; fz_output *out; fz_matrix local_ctm = *ctm; - fz_matrix scale = { 1.0f/image->w, 0, 0, 1.0f/image->h, 0, 0}; + fz_matrix scale = { 0 }; int mask = sdev->id++; + scale.a = 1.0f / image->w; + scale.d = 1.0f / image->h; + fz_concat(&local_ctm, &scale, ctm); out = start_def(sdev); fz_printf(out, "<mask id=\"ma%d\"><image", mask); @@ -808,9 +814,12 @@ svg_dev_clip_image_mask(fz_device *dev, fz_image *image, const fz_rect *rect, co fz_context *ctx = dev->ctx; fz_output *out; fz_matrix local_ctm = *ctm; - fz_matrix scale = { 1.0f/image->w, 0, 0, 1.0f/image->h, 0, 0}; + fz_matrix scale = { 0 }; int mask = sdev->id++; + scale.a = 1.0f / image->w; + scale.d = 1.0f / image->h; + fz_concat(&local_ctm, &scale, ctm); out = start_def(sdev); fz_printf(out, "<mask id=\"ma%d\"><image", mask); |