summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2008-09-26 15:26:40 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2008-09-26 17:11:51 +0100
commit0c030d3b768718eac5d429d0c819934f32896b25 (patch)
tree9b60f3dda1341ba4f37d4a77125411682456d2ea
parent86e57671dd21078215505202ef8aa2141d10fb9c (diff)
[boilerplate] Add svg-1.2 target.
SVG 1.2 is sufficiently different from 1.1 that it has separate code paths within cairo-svg-surface and so justifies its own boilerplate target.
-rw-r--r--boilerplate/cairo-boilerplate-svg-private.h30
-rw-r--r--boilerplate/cairo-boilerplate-svg.c48
-rw-r--r--boilerplate/cairo-boilerplate.c24
-rw-r--r--test/Makefile.am66
-rw-r--r--test/caps-joins-alpha-svg11-ref.png (renamed from test/caps-joins-alpha-svg-ref.png)bin2454 -> 2454 bytes
-rw-r--r--test/caps-joins-alpha-svg12-ref.pngbin0 -> 2454 bytes
-rw-r--r--test/font-matrix-translation-svg11-ref.png (renamed from test/font-matrix-translation-svg-ref.png)bin970 -> 970 bytes
-rw-r--r--test/font-matrix-translation-svg12-ref.pngbin0 -> 970 bytes
-rw-r--r--test/ft-show-glyphs-positioning-svg11-ref.png (renamed from test/ft-show-glyphs-positioning-svg-ref.png)bin6590 -> 6590 bytes
-rw-r--r--test/ft-show-glyphs-positioning-svg12-ref.pngbin0 -> 6590 bytes
-rw-r--r--test/ft-text-vertical-layout-type1-svg11-ref.png (renamed from test/ft-text-vertical-layout-type1-svg-ref.png)bin3973 -> 3973 bytes
-rw-r--r--test/ft-text-vertical-layout-type1-svg12-ref.pngbin0 -> 3973 bytes
-rw-r--r--test/ft-text-vertical-layout-type3-svg11-ref.png (renamed from test/ft-text-vertical-layout-type3-svg-ref.png)bin3957 -> 3957 bytes
-rw-r--r--test/ft-text-vertical-layout-type3-svg12-ref.pngbin0 -> 3957 bytes
-rw-r--r--test/linear-gradient-svg11-ref.png (renamed from test/linear-gradient-svg-ref.png)bin1000 -> 1000 bytes
-rw-r--r--test/linear-gradient-svg12-ref.pngbin0 -> 1000 bytes
-rw-r--r--test/mask-alpha-svg11-argb32-ref.png (renamed from test/mask-alpha-svg-argb32-ref.png)bin615 -> 615 bytes
-rw-r--r--test/mask-alpha-svg12-argb32-ref.pngbin0 -> 615 bytes
-rw-r--r--test/mask-ctm-svg11-argb32-ref.png (renamed from test/mask-ctm-svg-argb32-ref.png)bin108 -> 108 bytes
-rw-r--r--test/mask-ctm-svg12-argb32-ref.png (renamed from test/mask-surface-ctm-svg-argb32-ref.png)bin108 -> 108 bytes
-rw-r--r--test/mask-surface-ctm-svg11-argb32-ref.pngbin0 -> 108 bytes
-rw-r--r--test/mask-surface-ctm-svg12-argb32-ref.pngbin0 -> 108 bytes
-rw-r--r--test/mask-svg11-argb32-ref.png (renamed from test/mask-svg-argb32-ref.png)bin8527 -> 8527 bytes
-rw-r--r--test/mask-svg11-rgb24-ref.png (renamed from test/mask-svg-rgb24-ref.png)bin7935 -> 7935 bytes
-rw-r--r--test/mask-svg12-argb32-ref.pngbin0 -> 8527 bytes
-rw-r--r--test/mask-svg12-rgb24-ref.pngbin0 -> 7935 bytes
-rw-r--r--test/mask-transformed-similar-svg11-ref.png (renamed from test/mask-transformed-similar-svg-ref.png)bin4051 -> 4051 bytes
-rw-r--r--test/mask-transformed-similar-svg12-ref.pngbin0 -> 4051 bytes
-rw-r--r--test/meta-surface-pattern-svg11-argb32-ref.png (renamed from test/meta-surface-pattern-svg-argb32-ref.png)bin3924 -> 3924 bytes
-rw-r--r--test/meta-surface-pattern-svg11-rgb24-ref.png (renamed from test/meta-surface-pattern-svg-rgb24-ref.png)bin4593 -> 4593 bytes
-rw-r--r--test/meta-surface-pattern-svg12-argb32-ref.pngbin0 -> 3924 bytes
-rw-r--r--test/meta-surface-pattern-svg12-rgb24-ref.pngbin0 -> 4593 bytes
-rw-r--r--test/paint-source-alpha-svg11-ref.png (renamed from test/paint-source-alpha-svg-ref.png)bin505 -> 505 bytes
-rw-r--r--test/paint-source-alpha-svg12-ref.pngbin0 -> 505 bytes
-rw-r--r--test/paint-with-alpha-svg11-ref.png (renamed from test/paint-with-alpha-svg-ref.png)bin516 -> 516 bytes
-rw-r--r--test/paint-with-alpha-svg12-ref.pngbin0 -> 516 bytes
-rw-r--r--test/push-group-svg11-argb32-ref.png (renamed from test/push-group-svg-argb32-ref.png)bin2935 -> 2935 bytes
-rw-r--r--test/push-group-svg12-argb32-ref.pngbin0 -> 2935 bytes
-rw-r--r--test/radial-gradient-svg11-ref.png (renamed from test/radial-gradient-svg-ref.png)bin91039 -> 91039 bytes
-rw-r--r--test/radial-gradient-svg12-ref.pngbin0 -> 91039 bytes
-rw-r--r--test/rotate-image-surface-paint-svg11-ref.png (renamed from test/rotate-image-surface-paint-svg-ref.png)bin248 -> 248 bytes
-rw-r--r--test/rotate-image-surface-paint-svg12-ref.pngbin0 -> 248 bytes
-rw-r--r--test/scale-source-surface-paint-svg11-argb32-ref.png (renamed from test/scale-source-surface-paint-svg-argb32-ref.png)bin182 -> 182 bytes
-rw-r--r--test/scale-source-surface-paint-svg11-rgb24-ref.png (renamed from test/scale-source-surface-paint-svg-rgb24-ref.png)bin192 -> 192 bytes
-rw-r--r--test/scale-source-surface-paint-svg12-argb32-ref.pngbin0 -> 182 bytes
-rw-r--r--test/scale-source-surface-paint-svg12-rgb24-ref.pngbin0 -> 192 bytes
-rw-r--r--test/set-source-svg11-argb32-ref.png (renamed from test/set-source-svg-argb32-ref.png)bin104 -> 104 bytes
-rw-r--r--test/set-source-svg12-argb32-ref.pngbin0 -> 104 bytes
-rw-r--r--test/smask-fill-svg11-ref.png (renamed from test/smask-fill-svg-ref.png)bin1166 -> 1166 bytes
-rw-r--r--test/smask-fill-svg12-ref.pngbin0 -> 1166 bytes
-rw-r--r--test/smask-mask-svg11-ref.png (renamed from test/smask-mask-svg-ref.png)bin2529 -> 2529 bytes
-rw-r--r--test/smask-mask-svg12-ref.pngbin0 -> 2529 bytes
-rw-r--r--test/smask-paint-svg11-ref.png (renamed from test/smask-paint-svg-ref.png)bin2612 -> 2612 bytes
-rw-r--r--test/smask-paint-svg12-ref.pngbin0 -> 2612 bytes
-rw-r--r--test/smask-svg11-ref.png (renamed from test/smask-svg-ref.png)bin3634 -> 3634 bytes
-rw-r--r--test/smask-svg12-ref.pngbin0 -> 3634 bytes
-rw-r--r--test/smask-text-svg11-ref.png (renamed from test/smask-text-svg-ref.png)bin1886 -> 1886 bytes
-rw-r--r--test/smask-text-svg12-ref.pngbin0 -> 1886 bytes
-rw-r--r--test/source-clip-scale-svg11-ref.png (renamed from test/source-clip-scale-svg-ref.png)bin119 -> 119 bytes
-rw-r--r--test/source-clip-scale-svg12-ref.pngbin0 -> 119 bytes
-rw-r--r--test/surface-pattern-svg11-ref.png (renamed from test/surface-pattern-svg-ref.png)bin17663 -> 17663 bytes
-rw-r--r--test/surface-pattern-svg12-ref.pngbin0 -> 17663 bytes
-rw-r--r--test/text-pattern-svg11-argb32-ref.png (renamed from test/text-pattern-svg-argb32-ref.png)bin1733 -> 1733 bytes
-rw-r--r--test/text-pattern-svg11-rgb24-ref.png (renamed from test/text-pattern-svg-rgb24-ref.png)bin1563 -> 1563 bytes
-rw-r--r--test/text-pattern-svg12-argb32-ref.pngbin0 -> 1733 bytes
-rw-r--r--test/text-pattern-svg12-rgb24-ref.pngbin0 -> 1563 bytes
-rw-r--r--test/text-rotate-svg11-ref.png (renamed from test/text-rotate-svg-ref.png)bin18301 -> 18301 bytes
-rw-r--r--test/text-rotate-svg12-ref.pngbin0 -> 18301 bytes
-rw-r--r--test/user-font-proxy-svg11-ref.png (renamed from test/user-font-proxy-svg-ref.png)bin17902 -> 17902 bytes
-rw-r--r--test/user-font-proxy-svg12-ref.pngbin0 -> 17902 bytes
-rw-r--r--test/user-font-rescale-svg11-ref.png (renamed from test/user-font-rescale-svg-ref.png)bin15741 -> 15741 bytes
-rw-r--r--test/user-font-rescale-svg12-ref.pngbin0 -> 15741 bytes
-rw-r--r--test/user-font-svg11-ref.png (renamed from test/user-font-svg-ref.png)bin6134 -> 6134 bytes
-rw-r--r--test/user-font-svg12-ref.pngbin0 -> 6134 bytes
74 files changed, 128 insertions, 40 deletions
diff --git a/boilerplate/cairo-boilerplate-svg-private.h b/boilerplate/cairo-boilerplate-svg-private.h
index ea429488..075bdcd1 100644
--- a/boilerplate/cairo-boilerplate-svg-private.h
+++ b/boilerplate/cairo-boilerplate-svg-private.h
@@ -28,15 +28,27 @@
#define _CAIRO_BOILERPLATE_SVG_PRIVATE_H_
cairo_surface_t *
-_cairo_boilerplate_svg_create_surface (const char *name,
- cairo_content_t content,
- int width,
- int height,
- int max_width,
- int max_height,
- cairo_boilerplate_mode_t mode,
- int id,
- void **closure);
+_cairo_boilerplate_svg11_create_surface (const char *name,
+ cairo_content_t content,
+ int width,
+ int height,
+ int max_width,
+ int max_height,
+ cairo_boilerplate_mode_t mode,
+ int id,
+ void **closure);
+
+cairo_surface_t *
+_cairo_boilerplate_svg12_create_surface (const char *name,
+ cairo_content_t content,
+ int width,
+ int height,
+ int max_width,
+ int max_height,
+ cairo_boilerplate_mode_t mode,
+ int id,
+ void **closure);
+
cairo_status_t
_cairo_boilerplate_svg_finish_surface (cairo_surface_t *surface);
diff --git a/boilerplate/cairo-boilerplate-svg.c b/boilerplate/cairo-boilerplate-svg.c
index c3ad8d2f..227088cc 100644
--- a/boilerplate/cairo-boilerplate-svg.c
+++ b/boilerplate/cairo-boilerplate-svg.c
@@ -39,16 +39,16 @@
cairo_user_data_key_t svg_closure_key;
-typedef struct _svg_target_closure
-{
+typedef struct _svg_target_closure {
char *filename;
int width, height;
cairo_surface_t *target;
} svg_target_closure_t;
-cairo_surface_t *
+static cairo_surface_t *
_cairo_boilerplate_svg_create_surface (const char *name,
cairo_content_t content,
+ cairo_svg_version_t version,
int width,
int height,
int max_width,
@@ -73,6 +73,7 @@ _cairo_boilerplate_svg_create_surface (const char *name,
if (cairo_surface_status (surface))
goto CLEANUP_FILENAME;
+ cairo_svg_surface_restrict_to_version (surface, version);
cairo_surface_set_fallback_resolution (surface, 72., 72.);
if (content == CAIRO_CONTENT_COLOR) {
@@ -101,6 +102,45 @@ _cairo_boilerplate_svg_create_surface (const char *name,
return surface;
}
+cairo_surface_t *
+_cairo_boilerplate_svg11_create_surface (const char *name,
+ cairo_content_t content,
+ int width,
+ int height,
+ int max_width,
+ int max_height,
+ cairo_boilerplate_mode_t mode,
+ int id,
+ void **closure)
+{
+ /* current default, but be explicit in case the default changes */
+ return _cairo_boilerplate_svg_create_surface (name, content,
+ CAIRO_SVG_VERSION_1_1,
+ width, height,
+ max_width, max_height,
+ mode, id,
+ closure);
+}
+
+cairo_surface_t *
+_cairo_boilerplate_svg12_create_surface (const char *name,
+ cairo_content_t content,
+ int width,
+ int height,
+ int max_width,
+ int max_height,
+ cairo_boilerplate_mode_t mode,
+ int id,
+ void **closure)
+{
+ return _cairo_boilerplate_svg_create_surface (name, content,
+ CAIRO_SVG_VERSION_1_2,
+ width, height,
+ max_width, max_height,
+ mode, id,
+ closure);
+}
+
cairo_status_t
_cairo_boilerplate_svg_finish_surface (cairo_surface_t *surface)
{
@@ -207,7 +247,7 @@ cairo_boilerplate_svg_surface_force_fallbacks (cairo_surface_t *abstract_surface
cairo_paginated_surface_t *paginated = (cairo_paginated_surface_t*) abstract_surface;
cairo_svg_surface_t *surface;
- if (cairo_surface_get_type (abstract_surface) != CAIRO_SURFACE_TYPE_PDF)
+ if (cairo_surface_get_type (abstract_surface) != CAIRO_SURFACE_TYPE_SVG)
return CAIRO_STATUS_SURFACE_TYPE_MISMATCH;
surface = (cairo_svg_surface_t*) paginated->target;
diff --git a/boilerplate/cairo-boilerplate.c b/boilerplate/cairo-boilerplate.c
index 65898e16..7c9890f3 100644
--- a/boilerplate/cairo-boilerplate.c
+++ b/boilerplate/cairo-boilerplate.c
@@ -479,20 +479,34 @@ static cairo_boilerplate_target_t targets[] =
NULL, TRUE },
#endif
#if CAIRO_HAS_SVG_SURFACE && CAIRO_CAN_TEST_SVG_SURFACE
- /* It seems we should be able to round-trip SVG content perfrectly
+ /* It seems we should be able to round-trip SVG content perfectly
* through librsvg and cairo, but for some mysterious reason, some
* systems get an error of 1 for some pixels on some of the text
* tests. XXX: I'd still like to chase these down at some point.
* For now just set the svg error tolerance to 1. */
- { "svg", ".svg", CAIRO_SURFACE_TYPE_SVG, CAIRO_CONTENT_COLOR_ALPHA, 1,
- _cairo_boilerplate_svg_create_surface,
+ { "svg11", ".svg", CAIRO_SURFACE_TYPE_SVG, CAIRO_CONTENT_COLOR_ALPHA, 1,
+ _cairo_boilerplate_svg11_create_surface,
_cairo_boilerplate_svg_finish_surface,
_cairo_boilerplate_svg_get_image_surface,
_cairo_boilerplate_svg_surface_write_to_png,
_cairo_boilerplate_svg_cleanup,
NULL, TRUE },
- { "svg", ".svg", CAIRO_INTERNAL_SURFACE_TYPE_META, CAIRO_CONTENT_COLOR, 1,
- _cairo_boilerplate_svg_create_surface,
+ { "svg11", ".svg", CAIRO_INTERNAL_SURFACE_TYPE_META, CAIRO_CONTENT_COLOR, 1,
+ _cairo_boilerplate_svg11_create_surface,
+ _cairo_boilerplate_svg_finish_surface,
+ _cairo_boilerplate_svg_get_image_surface,
+ _cairo_boilerplate_svg_surface_write_to_png,
+ _cairo_boilerplate_svg_cleanup,
+ NULL, TRUE },
+ { "svg12", ".svg", CAIRO_SURFACE_TYPE_SVG, CAIRO_CONTENT_COLOR_ALPHA, 1,
+ _cairo_boilerplate_svg12_create_surface,
+ _cairo_boilerplate_svg_finish_surface,
+ _cairo_boilerplate_svg_get_image_surface,
+ _cairo_boilerplate_svg_surface_write_to_png,
+ _cairo_boilerplate_svg_cleanup,
+ NULL, TRUE },
+ { "svg12", ".svg", CAIRO_INTERNAL_SURFACE_TYPE_META, CAIRO_CONTENT_COLOR, 1,
+ _cairo_boilerplate_svg12_create_surface,
_cairo_boilerplate_svg_finish_surface,
_cairo_boilerplate_svg_get_image_surface,
_cairo_boilerplate_svg_surface_write_to_png,
diff --git a/test/Makefile.am b/test/Makefile.am
index 1081bb0a..0a0d499b 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -307,7 +307,8 @@ REFERENCE_IMAGES = \
bitmap-font-rgb24-ref.png \
caps-joins-alpha-quartz-ref.png \
caps-joins-alpha-ref.png \
- caps-joins-alpha-svg-ref.png \
+ caps-joins-alpha-svg12-ref.png \
+ caps-joins-alpha-svg11-ref.png \
caps-joins-ref.png \
caps-joins-ps-ref.png \
caps-sub-paths-ref.png \
@@ -442,24 +443,28 @@ REFERENCE_IMAGES = \
font-matrix-translation-ps-argb32-ref.png \
font-matrix-translation-ps-rgb24-ref.png \
font-matrix-translation-ref.png \
- font-matrix-translation-svg-ref.png \
+ font-matrix-translation-svg12-ref.png \
+ font-matrix-translation-svg11-ref.png \
font-matrix-translation-quartz-ref.png \
ft-text-antialias-none-ps-argb32-ref.png \
ft-text-antialias-none-ref.png \
ft-show-glyphs-positioning-ref.png \
ft-show-glyphs-positioning-pdf-ref.png \
ft-show-glyphs-positioning-ps-ref.png \
- ft-show-glyphs-positioning-svg-ref.png \
+ ft-show-glyphs-positioning-svg12-ref.png \
+ ft-show-glyphs-positioning-svg11-ref.png \
ft-show-glyphs-table-ref.png \
ft-show-glyphs-table-ps-ref.png \
ft-text-vertical-layout-type1-pdf-ref.png \
ft-text-vertical-layout-type1-ps-ref.png \
ft-text-vertical-layout-type1-ref.png \
- ft-text-vertical-layout-type1-svg-ref.png \
+ ft-text-vertical-layout-type1-svg12-ref.png \
+ ft-text-vertical-layout-type1-svg11-ref.png \
ft-text-vertical-layout-type3-pdf-ref.png \
ft-text-vertical-layout-type3-ps-ref.png \
ft-text-vertical-layout-type3-ref.png \
- ft-text-vertical-layout-type3-svg-ref.png \
+ ft-text-vertical-layout-type3-svg12-ref.png \
+ ft-text-vertical-layout-type3-svg11-ref.png \
get-group-target-ref.png \
glitz-surface-source-ref.png \
glyph-cache-pressure-ref.png \
@@ -503,7 +508,8 @@ REFERENCE_IMAGES = \
linear-gradient-ps-ref.png \
linear-gradient-quartz-ref.png \
linear-gradient-ref.png \
- linear-gradient-svg-ref.png \
+ linear-gradient-svg12-ref.png \
+ linear-gradient-svg11-ref.png \
line-width-ref.png \
line-width-scale-ps-ref.png \
line-width-scale-quartz-ref.png \
@@ -533,7 +539,8 @@ REFERENCE_IMAGES = \
mask-transformed-image-ref.png \
mask-transformed-similar-ref.png \
mask-transformed-similar-pdf-ref.png \
- mask-transformed-similar-svg-ref.png \
+ mask-transformed-similar-svg12-ref.png \
+ mask-transformed-similar-svg11-ref.png \
meta-surface-pattern-ref.png \
meta-surface-pattern-rgb24-ref.png \
meta-surface-pattern-pdf-ref.png \
@@ -593,9 +600,11 @@ REFERENCE_IMAGES = \
paint-repeat-ref.png \
paint-source-alpha-pdf-argb32-ref.png \
paint-source-alpha-ref.png \
- paint-source-alpha-svg-ref.png \
+ paint-source-alpha-svg12-ref.png \
+ paint-source-alpha-svg11-ref.png \
paint-with-alpha-ref.png \
- paint-with-alpha-svg-ref.png \
+ paint-with-alpha-svg12-ref.png \
+ paint-with-alpha-svg11-ref.png \
paint-source-alpha-pdf-ref.png \
paint-with-alpha-pdf-ref.png \
pattern-getters-ref.png \
@@ -611,7 +620,8 @@ REFERENCE_IMAGES = \
radial-gradient-ref.png \
radial-gradient-pdf-ref.png \
radial-gradient-quartz-ref.png \
- radial-gradient-svg-ref.png \
+ radial-gradient-svg12-ref.png \
+ radial-gradient-svg11-ref.png \
random-intersections-ref.png \
random-intersections-ps-ref.png \
random-intersections-quartz-ref.png \
@@ -634,7 +644,8 @@ REFERENCE_IMAGES = \
rotate-image-surface-paint-pdf-argb32-ref.png \
rotate-image-surface-paint-quartz-ref.png \
rotate-image-surface-paint-ref.png \
- rotate-image-surface-paint-svg-ref.png \
+ rotate-image-surface-paint-svg12-ref.png \
+ rotate-image-surface-paint-svg11-ref.png \
scale-down-source-surface-paint-ref.png \
scale-source-surface-paint-pdf-argb32-ref.png \
scale-source-surface-paint-ref.png \
@@ -665,24 +676,29 @@ REFERENCE_IMAGES = \
smask-ref.png \
smask-pdf-ref.png \
smask-ps-ref.png \
- smask-svg-ref.png \
+ smask-svg12-ref.png \
+ smask-svg11-ref.png \
smask-fill-ref.png \
smask-fill-pdf-ref.png \
- smask-fill-svg-ref.png \
+ smask-fill-svg12-ref.png \
+ smask-fill-svg11-ref.png \
smask-image-mask-ref.png \
smask-image-mask-pdf-ref.png \
smask-mask-ref.png \
smask-mask-pdf-ref.png \
- smask-mask-svg-ref.png \
+ smask-mask-svg12-ref.png \
+ smask-mask-svg11-ref.png \
smask-paint-ref.png \
smask-paint-pdf-ref.png \
- smask-paint-svg-ref.png \
+ smask-paint-svg12-ref.png \
+ smask-paint-svg11-ref.png \
smask-stroke-ref.png \
smask-stroke-pdf-ref.png \
smask-text-ref.png \
smask-text-pdf-ref.png \
smask-text-ps-ref.png \
- smask-text-svg-ref.png \
+ smask-text-svg12-ref.png \
+ smask-text-svg11-ref.png \
stroke-image-ref.png \
stroke-image-pdf-ref.png \
stroke-image-ps-ref.png \
@@ -693,7 +709,8 @@ REFERENCE_IMAGES = \
source-clip-scale-ps-argb32-ref.png \
source-clip-scale-ps-rgb24-ref.png \
source-clip-scale-ref.png \
- source-clip-scale-svg-ref.png \
+ source-clip-scale-svg12-ref.png \
+ source-clip-scale-svg11-ref.png \
source-clip-scale-pdf-ref.png \
source-surface-scale-paint-ref.png \
source-surface-scale-paint-rgb24-ref.png \
@@ -709,7 +726,8 @@ REFERENCE_IMAGES = \
surface-pattern-scale-up-pdf-argb32-ref.png \
surface-pattern-scale-up-ps-argb32-ref.png \
surface-pattern-scale-up-ref.png \
- surface-pattern-svg-ref.png \
+ surface-pattern-svg12-ref.png \
+ surface-pattern-svg11-ref.png \
svg-surface-source-ref.png \
text-antialias-gray-ref.png \
text-antialias-gray-quartz-ref.png \
@@ -732,7 +750,8 @@ REFERENCE_IMAGES = \
text-rotate-ref.png \
text-rotate-pdf-ref.png \
text-rotate-ps-ref.png \
- text-rotate-svg-ref.png \
+ text-rotate-svg12-ref.png \
+ text-rotate-svg11-ref.png \
text-rotate-quartz-ref.png \
text-transform-ref.png \
text-transform-pdf-ref.png \
@@ -754,14 +773,17 @@ REFERENCE_IMAGES = \
unbounded-operator-rgb24-ref.png \
user-font-ref.png \
user-font-ps-ref.png \
- user-font-svg-ref.png \
+ user-font-svg12-ref.png \
+ user-font-svg11-ref.png \
user-font-proxy-ref.png \
user-font-proxy-pdf-ref.png \
user-font-proxy-ps-ref.png \
- user-font-proxy-svg-ref.png \
+ user-font-proxy-svg12-ref.png \
+ user-font-proxy-svg11-ref.png \
user-font-rescale-ref.png \
user-font-rescale-ps-ref.png \
- user-font-rescale-svg-ref.png \
+ user-font-rescale-svg12-ref.png \
+ user-font-rescale-svg11-ref.png \
unbounded-operator-quartz-ref.png \
unbounded-operator-quartz-rgb24-ref.png \
xlib-expose-event-ref.png \
diff --git a/test/caps-joins-alpha-svg-ref.png b/test/caps-joins-alpha-svg11-ref.png
index 24689364..24689364 100644
--- a/test/caps-joins-alpha-svg-ref.png
+++ b/test/caps-joins-alpha-svg11-ref.png
Binary files differ
diff --git a/test/caps-joins-alpha-svg12-ref.png b/test/caps-joins-alpha-svg12-ref.png
new file mode 100644
index 00000000..24689364
--- /dev/null
+++ b/test/caps-joins-alpha-svg12-ref.png
Binary files differ
diff --git a/test/font-matrix-translation-svg-ref.png b/test/font-matrix-translation-svg11-ref.png
index 92ad17b2..92ad17b2 100644
--- a/test/font-matrix-translation-svg-ref.png
+++ b/test/font-matrix-translation-svg11-ref.png
Binary files differ
diff --git a/test/font-matrix-translation-svg12-ref.png b/test/font-matrix-translation-svg12-ref.png
new file mode 100644
index 00000000..92ad17b2
--- /dev/null
+++ b/test/font-matrix-translation-svg12-ref.png
Binary files differ
diff --git a/test/ft-show-glyphs-positioning-svg-ref.png b/test/ft-show-glyphs-positioning-svg11-ref.png
index 43b83cbe..43b83cbe 100644
--- a/test/ft-show-glyphs-positioning-svg-ref.png
+++ b/test/ft-show-glyphs-positioning-svg11-ref.png
Binary files differ
diff --git a/test/ft-show-glyphs-positioning-svg12-ref.png b/test/ft-show-glyphs-positioning-svg12-ref.png
new file mode 100644
index 00000000..43b83cbe
--- /dev/null
+++ b/test/ft-show-glyphs-positioning-svg12-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1-svg-ref.png b/test/ft-text-vertical-layout-type1-svg11-ref.png
index 4ad4268b..4ad4268b 100644
--- a/test/ft-text-vertical-layout-type1-svg-ref.png
+++ b/test/ft-text-vertical-layout-type1-svg11-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type1-svg12-ref.png b/test/ft-text-vertical-layout-type1-svg12-ref.png
new file mode 100644
index 00000000..4ad4268b
--- /dev/null
+++ b/test/ft-text-vertical-layout-type1-svg12-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3-svg-ref.png b/test/ft-text-vertical-layout-type3-svg11-ref.png
index 7aa322db..7aa322db 100644
--- a/test/ft-text-vertical-layout-type3-svg-ref.png
+++ b/test/ft-text-vertical-layout-type3-svg11-ref.png
Binary files differ
diff --git a/test/ft-text-vertical-layout-type3-svg12-ref.png b/test/ft-text-vertical-layout-type3-svg12-ref.png
new file mode 100644
index 00000000..7aa322db
--- /dev/null
+++ b/test/ft-text-vertical-layout-type3-svg12-ref.png
Binary files differ
diff --git a/test/linear-gradient-svg-ref.png b/test/linear-gradient-svg11-ref.png
index 4ed4bfa8..4ed4bfa8 100644
--- a/test/linear-gradient-svg-ref.png
+++ b/test/linear-gradient-svg11-ref.png
Binary files differ
diff --git a/test/linear-gradient-svg12-ref.png b/test/linear-gradient-svg12-ref.png
new file mode 100644
index 00000000..4ed4bfa8
--- /dev/null
+++ b/test/linear-gradient-svg12-ref.png
Binary files differ
diff --git a/test/mask-alpha-svg-argb32-ref.png b/test/mask-alpha-svg11-argb32-ref.png
index 3e56aa34..3e56aa34 100644
--- a/test/mask-alpha-svg-argb32-ref.png
+++ b/test/mask-alpha-svg11-argb32-ref.png
Binary files differ
diff --git a/test/mask-alpha-svg12-argb32-ref.png b/test/mask-alpha-svg12-argb32-ref.png
new file mode 100644
index 00000000..3e56aa34
--- /dev/null
+++ b/test/mask-alpha-svg12-argb32-ref.png
Binary files differ
diff --git a/test/mask-ctm-svg-argb32-ref.png b/test/mask-ctm-svg11-argb32-ref.png
index 049d5f0d..049d5f0d 100644
--- a/test/mask-ctm-svg-argb32-ref.png
+++ b/test/mask-ctm-svg11-argb32-ref.png
Binary files differ
diff --git a/test/mask-surface-ctm-svg-argb32-ref.png b/test/mask-ctm-svg12-argb32-ref.png
index 049d5f0d..049d5f0d 100644
--- a/test/mask-surface-ctm-svg-argb32-ref.png
+++ b/test/mask-ctm-svg12-argb32-ref.png
Binary files differ
diff --git a/test/mask-surface-ctm-svg11-argb32-ref.png b/test/mask-surface-ctm-svg11-argb32-ref.png
new file mode 100644
index 00000000..049d5f0d
--- /dev/null
+++ b/test/mask-surface-ctm-svg11-argb32-ref.png
Binary files differ
diff --git a/test/mask-surface-ctm-svg12-argb32-ref.png b/test/mask-surface-ctm-svg12-argb32-ref.png
new file mode 100644
index 00000000..049d5f0d
--- /dev/null
+++ b/test/mask-surface-ctm-svg12-argb32-ref.png
Binary files differ
diff --git a/test/mask-svg-argb32-ref.png b/test/mask-svg11-argb32-ref.png
index c5828591..c5828591 100644
--- a/test/mask-svg-argb32-ref.png
+++ b/test/mask-svg11-argb32-ref.png
Binary files differ
diff --git a/test/mask-svg-rgb24-ref.png b/test/mask-svg11-rgb24-ref.png
index 79957237..79957237 100644
--- a/test/mask-svg-rgb24-ref.png
+++ b/test/mask-svg11-rgb24-ref.png
Binary files differ
diff --git a/test/mask-svg12-argb32-ref.png b/test/mask-svg12-argb32-ref.png
new file mode 100644
index 00000000..c5828591
--- /dev/null
+++ b/test/mask-svg12-argb32-ref.png
Binary files differ
diff --git a/test/mask-svg12-rgb24-ref.png b/test/mask-svg12-rgb24-ref.png
new file mode 100644
index 00000000..79957237
--- /dev/null
+++ b/test/mask-svg12-rgb24-ref.png
Binary files differ
diff --git a/test/mask-transformed-similar-svg-ref.png b/test/mask-transformed-similar-svg11-ref.png
index b4344cd1..b4344cd1 100644
--- a/test/mask-transformed-similar-svg-ref.png
+++ b/test/mask-transformed-similar-svg11-ref.png
Binary files differ
diff --git a/test/mask-transformed-similar-svg12-ref.png b/test/mask-transformed-similar-svg12-ref.png
new file mode 100644
index 00000000..b4344cd1
--- /dev/null
+++ b/test/mask-transformed-similar-svg12-ref.png
Binary files differ
diff --git a/test/meta-surface-pattern-svg-argb32-ref.png b/test/meta-surface-pattern-svg11-argb32-ref.png
index 6250f26c..6250f26c 100644
--- a/test/meta-surface-pattern-svg-argb32-ref.png
+++ b/test/meta-surface-pattern-svg11-argb32-ref.png
Binary files differ
diff --git a/test/meta-surface-pattern-svg-rgb24-ref.png b/test/meta-surface-pattern-svg11-rgb24-ref.png
index feda67da..feda67da 100644
--- a/test/meta-surface-pattern-svg-rgb24-ref.png
+++ b/test/meta-surface-pattern-svg11-rgb24-ref.png
Binary files differ
diff --git a/test/meta-surface-pattern-svg12-argb32-ref.png b/test/meta-surface-pattern-svg12-argb32-ref.png
new file mode 100644
index 00000000..6250f26c
--- /dev/null
+++ b/test/meta-surface-pattern-svg12-argb32-ref.png
Binary files differ
diff --git a/test/meta-surface-pattern-svg12-rgb24-ref.png b/test/meta-surface-pattern-svg12-rgb24-ref.png
new file mode 100644
index 00000000..feda67da
--- /dev/null
+++ b/test/meta-surface-pattern-svg12-rgb24-ref.png
Binary files differ
diff --git a/test/paint-source-alpha-svg-ref.png b/test/paint-source-alpha-svg11-ref.png
index 3b3a990c..3b3a990c 100644
--- a/test/paint-source-alpha-svg-ref.png
+++ b/test/paint-source-alpha-svg11-ref.png
Binary files differ
diff --git a/test/paint-source-alpha-svg12-ref.png b/test/paint-source-alpha-svg12-ref.png
new file mode 100644
index 00000000..3b3a990c
--- /dev/null
+++ b/test/paint-source-alpha-svg12-ref.png
Binary files differ
diff --git a/test/paint-with-alpha-svg-ref.png b/test/paint-with-alpha-svg11-ref.png
index 97a2100e..97a2100e 100644
--- a/test/paint-with-alpha-svg-ref.png
+++ b/test/paint-with-alpha-svg11-ref.png
Binary files differ
diff --git a/test/paint-with-alpha-svg12-ref.png b/test/paint-with-alpha-svg12-ref.png
new file mode 100644
index 00000000..97a2100e
--- /dev/null
+++ b/test/paint-with-alpha-svg12-ref.png
Binary files differ
diff --git a/test/push-group-svg-argb32-ref.png b/test/push-group-svg11-argb32-ref.png
index 34f06bf7..34f06bf7 100644
--- a/test/push-group-svg-argb32-ref.png
+++ b/test/push-group-svg11-argb32-ref.png
Binary files differ
diff --git a/test/push-group-svg12-argb32-ref.png b/test/push-group-svg12-argb32-ref.png
new file mode 100644
index 00000000..34f06bf7
--- /dev/null
+++ b/test/push-group-svg12-argb32-ref.png
Binary files differ
diff --git a/test/radial-gradient-svg-ref.png b/test/radial-gradient-svg11-ref.png
index 7e047019..7e047019 100644
--- a/test/radial-gradient-svg-ref.png
+++ b/test/radial-gradient-svg11-ref.png
Binary files differ
diff --git a/test/radial-gradient-svg12-ref.png b/test/radial-gradient-svg12-ref.png
new file mode 100644
index 00000000..7e047019
--- /dev/null
+++ b/test/radial-gradient-svg12-ref.png
Binary files differ
diff --git a/test/rotate-image-surface-paint-svg-ref.png b/test/rotate-image-surface-paint-svg11-ref.png
index 5a75aef2..5a75aef2 100644
--- a/test/rotate-image-surface-paint-svg-ref.png
+++ b/test/rotate-image-surface-paint-svg11-ref.png
Binary files differ
diff --git a/test/rotate-image-surface-paint-svg12-ref.png b/test/rotate-image-surface-paint-svg12-ref.png
new file mode 100644
index 00000000..5a75aef2
--- /dev/null
+++ b/test/rotate-image-surface-paint-svg12-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-svg-argb32-ref.png b/test/scale-source-surface-paint-svg11-argb32-ref.png
index de274f95..de274f95 100644
--- a/test/scale-source-surface-paint-svg-argb32-ref.png
+++ b/test/scale-source-surface-paint-svg11-argb32-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-svg-rgb24-ref.png b/test/scale-source-surface-paint-svg11-rgb24-ref.png
index 099b8a0d..099b8a0d 100644
--- a/test/scale-source-surface-paint-svg-rgb24-ref.png
+++ b/test/scale-source-surface-paint-svg11-rgb24-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-svg12-argb32-ref.png b/test/scale-source-surface-paint-svg12-argb32-ref.png
new file mode 100644
index 00000000..de274f95
--- /dev/null
+++ b/test/scale-source-surface-paint-svg12-argb32-ref.png
Binary files differ
diff --git a/test/scale-source-surface-paint-svg12-rgb24-ref.png b/test/scale-source-surface-paint-svg12-rgb24-ref.png
new file mode 100644
index 00000000..099b8a0d
--- /dev/null
+++ b/test/scale-source-surface-paint-svg12-rgb24-ref.png
Binary files differ
diff --git a/test/set-source-svg-argb32-ref.png b/test/set-source-svg11-argb32-ref.png
index 754f1c46..754f1c46 100644
--- a/test/set-source-svg-argb32-ref.png
+++ b/test/set-source-svg11-argb32-ref.png
Binary files differ
diff --git a/test/set-source-svg12-argb32-ref.png b/test/set-source-svg12-argb32-ref.png
new file mode 100644
index 00000000..754f1c46
--- /dev/null
+++ b/test/set-source-svg12-argb32-ref.png
Binary files differ
diff --git a/test/smask-fill-svg-ref.png b/test/smask-fill-svg11-ref.png
index 06ab12a6..06ab12a6 100644
--- a/test/smask-fill-svg-ref.png
+++ b/test/smask-fill-svg11-ref.png
Binary files differ
diff --git a/test/smask-fill-svg12-ref.png b/test/smask-fill-svg12-ref.png
new file mode 100644
index 00000000..06ab12a6
--- /dev/null
+++ b/test/smask-fill-svg12-ref.png
Binary files differ
diff --git a/test/smask-mask-svg-ref.png b/test/smask-mask-svg11-ref.png
index 0820cd18..0820cd18 100644
--- a/test/smask-mask-svg-ref.png
+++ b/test/smask-mask-svg11-ref.png
Binary files differ
diff --git a/test/smask-mask-svg12-ref.png b/test/smask-mask-svg12-ref.png
new file mode 100644
index 00000000..0820cd18
--- /dev/null
+++ b/test/smask-mask-svg12-ref.png
Binary files differ
diff --git a/test/smask-paint-svg-ref.png b/test/smask-paint-svg11-ref.png
index 09c01deb..09c01deb 100644
--- a/test/smask-paint-svg-ref.png
+++ b/test/smask-paint-svg11-ref.png
Binary files differ
diff --git a/test/smask-paint-svg12-ref.png b/test/smask-paint-svg12-ref.png
new file mode 100644
index 00000000..09c01deb
--- /dev/null
+++ b/test/smask-paint-svg12-ref.png
Binary files differ
diff --git a/test/smask-svg-ref.png b/test/smask-svg11-ref.png
index f1885614..f1885614 100644
--- a/test/smask-svg-ref.png
+++ b/test/smask-svg11-ref.png
Binary files differ
diff --git a/test/smask-svg12-ref.png b/test/smask-svg12-ref.png
new file mode 100644
index 00000000..f1885614
--- /dev/null
+++ b/test/smask-svg12-ref.png
Binary files differ
diff --git a/test/smask-text-svg-ref.png b/test/smask-text-svg11-ref.png
index 2665370c..2665370c 100644
--- a/test/smask-text-svg-ref.png
+++ b/test/smask-text-svg11-ref.png
Binary files differ
diff --git a/test/smask-text-svg12-ref.png b/test/smask-text-svg12-ref.png
new file mode 100644
index 00000000..2665370c
--- /dev/null
+++ b/test/smask-text-svg12-ref.png
Binary files differ
diff --git a/test/source-clip-scale-svg-ref.png b/test/source-clip-scale-svg11-ref.png
index 87c29174..87c29174 100644
--- a/test/source-clip-scale-svg-ref.png
+++ b/test/source-clip-scale-svg11-ref.png
Binary files differ
diff --git a/test/source-clip-scale-svg12-ref.png b/test/source-clip-scale-svg12-ref.png
new file mode 100644
index 00000000..87c29174
--- /dev/null
+++ b/test/source-clip-scale-svg12-ref.png
Binary files differ
diff --git a/test/surface-pattern-svg-ref.png b/test/surface-pattern-svg11-ref.png
index 5569a557..5569a557 100644
--- a/test/surface-pattern-svg-ref.png
+++ b/test/surface-pattern-svg11-ref.png
Binary files differ
diff --git a/test/surface-pattern-svg12-ref.png b/test/surface-pattern-svg12-ref.png
new file mode 100644
index 00000000..5569a557
--- /dev/null
+++ b/test/surface-pattern-svg12-ref.png
Binary files differ
diff --git a/test/text-pattern-svg-argb32-ref.png b/test/text-pattern-svg11-argb32-ref.png
index 97d7534c..97d7534c 100644
--- a/test/text-pattern-svg-argb32-ref.png
+++ b/test/text-pattern-svg11-argb32-ref.png
Binary files differ
diff --git a/test/text-pattern-svg-rgb24-ref.png b/test/text-pattern-svg11-rgb24-ref.png
index c1f76c23..c1f76c23 100644
--- a/test/text-pattern-svg-rgb24-ref.png
+++ b/test/text-pattern-svg11-rgb24-ref.png
Binary files differ
diff --git a/test/text-pattern-svg12-argb32-ref.png b/test/text-pattern-svg12-argb32-ref.png
new file mode 100644
index 00000000..97d7534c
--- /dev/null
+++ b/test/text-pattern-svg12-argb32-ref.png
Binary files differ
diff --git a/test/text-pattern-svg12-rgb24-ref.png b/test/text-pattern-svg12-rgb24-ref.png
new file mode 100644
index 00000000..c1f76c23
--- /dev/null
+++ b/test/text-pattern-svg12-rgb24-ref.png
Binary files differ
diff --git a/test/text-rotate-svg-ref.png b/test/text-rotate-svg11-ref.png
index 35fd019f..35fd019f 100644
--- a/test/text-rotate-svg-ref.png
+++ b/test/text-rotate-svg11-ref.png
Binary files differ
diff --git a/test/text-rotate-svg12-ref.png b/test/text-rotate-svg12-ref.png
new file mode 100644
index 00000000..35fd019f
--- /dev/null
+++ b/test/text-rotate-svg12-ref.png
Binary files differ
diff --git a/test/user-font-proxy-svg-ref.png b/test/user-font-proxy-svg11-ref.png
index e5e9e9a7..e5e9e9a7 100644
--- a/test/user-font-proxy-svg-ref.png
+++ b/test/user-font-proxy-svg11-ref.png
Binary files differ
diff --git a/test/user-font-proxy-svg12-ref.png b/test/user-font-proxy-svg12-ref.png
new file mode 100644
index 00000000..e5e9e9a7
--- /dev/null
+++ b/test/user-font-proxy-svg12-ref.png
Binary files differ
diff --git a/test/user-font-rescale-svg-ref.png b/test/user-font-rescale-svg11-ref.png
index 871e27e4..871e27e4 100644
--- a/test/user-font-rescale-svg-ref.png
+++ b/test/user-font-rescale-svg11-ref.png
Binary files differ
diff --git a/test/user-font-rescale-svg12-ref.png b/test/user-font-rescale-svg12-ref.png
new file mode 100644
index 00000000..871e27e4
--- /dev/null
+++ b/test/user-font-rescale-svg12-ref.png
Binary files differ
diff --git a/test/user-font-svg-ref.png b/test/user-font-svg11-ref.png
index 28ba652a..28ba652a 100644
--- a/test/user-font-svg-ref.png
+++ b/test/user-font-svg11-ref.png
Binary files differ
diff --git a/test/user-font-svg12-ref.png b/test/user-font-svg12-ref.png
new file mode 100644
index 00000000..28ba652a
--- /dev/null
+++ b/test/user-font-svg12-ref.png
Binary files differ