diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2009-09-22 18:20:03 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2009-09-22 18:20:03 +0100 |
commit | 9948b5180aa4312b3184d9ba46e9ad6f0d8e700c (patch) | |
tree | bf0723ffa6a74493ba213c0d28644d4ae63e86fc | |
parent | 941d3693fac831c4ce8c61cbac7c77b566b97611 (diff) |
[test] Revamp surface-source
Include a translucent region in the source that exercises the xlib bug
that I'm trying to fix. Hmm.
24 files changed, 47 insertions, 8 deletions
diff --git a/test/Makefile.am b/test/Makefile.am index 04280520..b8174f65 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -548,7 +548,8 @@ REFERENCE_IMAGES = \ huge-radial.ref.png \ image-surface-source.ps2.ref.png \ image-surface-source.ps3.ref.png \ - image-surface-source.ref.png \ + image-surface-source.rgb24.ref.png \ + image-surface-source.argb32.ref.png \ image-surface-source.svg12.argb32.xfail.png \ image-surface-source.svg12.rgb24.xfail.png \ implicit-close.ref.png \ @@ -747,12 +748,14 @@ REFERENCE_IMAGES = \ path-append.xlib-fallback.ref.png \ path-append.xlib.ref.png \ pattern-getters.ref.png \ - pdf-surface-source.ref.png \ + pdf-surface-source.rgb24.ref.png \ + pdf-surface-source.argb32.ref.png \ pdf-surface-source.svg12.argb32.xfail.png \ pdf-surface-source.svg12.rgb24.xfail.png \ pixman-rotate.ref.png \ pixman-rotate.rgb24.ref.png \ - ps-surface-source.ref.png \ + ps-surface-source.rgb24.ref.png \ + ps-surface-source.argb32.ref.png \ ps-surface-source.svg12.argb32.xfail.png \ ps-surface-source.svg12.rgb24.xfail.png \ push-group.ref.png \ @@ -761,9 +764,10 @@ REFERENCE_IMAGES = \ push-group.xlib.rgb24.ref.png \ push-group-color.ref.png \ push-group-color.xlib.ref.png \ + quartz-surface-source.rgb24.ref.png \ + quartz-surface-source.argb32.ref.png \ quartz-surface-source.ps2.ref.png \ quartz-surface-source.ps3.ref.png \ - quartz-surface-source.ref.png \ radial-gradient.pdf.ref.png \ radial-gradient.quartz.ref.png \ radial-gradient.ref.png \ @@ -922,7 +926,8 @@ REFERENCE_IMAGES = \ surface-pattern.ps.xfail.png \ surface-pattern.ref.png \ surface-pattern.svg.xfail.png \ - svg-surface-source.ref.png \ + svg-surface-source.rgb24.ref.png \ + svg-surface-source.argb32.ref.png \ svg-surface-source.svg12.argb32.xfail.png \ svg-surface-source.svg12.rgb24.xfail.png \ test-fallback16-surface-source.ps.ref.png \ @@ -1023,9 +1028,10 @@ REFERENCE_IMAGES = \ user-font.svg.ref.png \ user-font.xlib.ref.png \ xlib-expose-event.ref.png \ + xlib-surface-source.rgb24.ref.png \ + xlib-surface-source.argb32.ref.png \ xlib-surface-source.ps2.ref.png \ xlib-surface-source.ps3.ref.png \ - xlib-surface-source.ref.png \ xlib-surface-source.svg12.argb32.xfail.png \ xlib-surface-source.svg12.rgb24.xfail.png \ zero-alpha.ref.png diff --git a/test/glitz-surface-source.argb32.ref.png b/test/glitz-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/glitz-surface-source.argb32.ref.png diff --git a/test/glitz-surface-source.ref.png b/test/glitz-surface-source.ref.png Binary files differdeleted file mode 100644 index 3fa8bbe5..00000000 --- a/test/glitz-surface-source.ref.png +++ /dev/null diff --git a/test/glitz-surface-source.rgb24.ref.png b/test/glitz-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/glitz-surface-source.rgb24.ref.png diff --git a/test/image-surface-source.argb32.ref.png b/test/image-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/image-surface-source.argb32.ref.png diff --git a/test/image-surface-source.ref.png b/test/image-surface-source.ref.png Binary files differdeleted file mode 100644 index 9fbbedd5..00000000 --- a/test/image-surface-source.ref.png +++ /dev/null diff --git a/test/image-surface-source.rgb24.ref.png b/test/image-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/image-surface-source.rgb24.ref.png diff --git a/test/pdf-surface-source.argb32.ref.png b/test/pdf-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/pdf-surface-source.argb32.ref.png diff --git a/test/pdf-surface-source.ref.png b/test/pdf-surface-source.ref.png Binary files differdeleted file mode 100644 index 3fa8bbe5..00000000 --- a/test/pdf-surface-source.ref.png +++ /dev/null diff --git a/test/pdf-surface-source.rgb24.ref.png b/test/pdf-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/pdf-surface-source.rgb24.ref.png diff --git a/test/ps-surface-source.argb32.ref.png b/test/ps-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/ps-surface-source.argb32.ref.png diff --git a/test/ps-surface-source.ref.png b/test/ps-surface-source.ref.png Binary files differdeleted file mode 100644 index 3fa8bbe5..00000000 --- a/test/ps-surface-source.ref.png +++ /dev/null diff --git a/test/ps-surface-source.rgb24.ref.png b/test/ps-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/ps-surface-source.rgb24.ref.png diff --git a/test/quartz-surface-source.argb32.ref.png b/test/quartz-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/quartz-surface-source.argb32.ref.png diff --git a/test/quartz-surface-source.ref.png b/test/quartz-surface-source.ref.png Binary files differdeleted file mode 100644 index 9fbbedd5..00000000 --- a/test/quartz-surface-source.ref.png +++ /dev/null diff --git a/test/quartz-surface-source.rgb24.ref.png b/test/quartz-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/quartz-surface-source.rgb24.ref.png diff --git a/test/surface-source.c b/test/surface-source.c index 5d978f23..bd047c97 100644 --- a/test/surface-source.c +++ b/test/surface-source.c @@ -34,16 +34,22 @@ static cairo_surface_t *create_source_surface (int size); */ #define SOURCE_SIZE 2000 #define INTER_SIZE 512 -#define SIZE 90 +#define SIZE 96 static void draw_pattern (cairo_surface_t **surface_inout, int surface_size) { cairo_t *cr; + int mid = surface_size/2; cr = cairo_create (*surface_inout); cairo_surface_destroy (*surface_inout); + cairo_rectangle (cr, 0, 0, surface_size, surface_size); + cairo_rectangle (cr, mid - SIZE/4, mid + SIZE/4, SIZE/2, -SIZE/2); + cairo_clip (cr); + + /* outside squares -> opaque */ cairo_set_source_rgb (cr, 1, 1, 1); cairo_rectangle (cr, 0, 0, @@ -65,6 +71,33 @@ draw_pattern (cairo_surface_t **surface_inout, int surface_size) surface_size / 2, surface_size / 2); cairo_fill (cr); + cairo_reset_clip (cr); + cairo_rectangle (cr, mid - SIZE/4, mid - SIZE/4, SIZE/2, SIZE/2); + cairo_clip (cr); + + /* inside squares -> translucent */ + cairo_set_source_rgba (cr, 0, 0, 1, .5); + cairo_rectangle (cr, + 0, 0, + surface_size / 2, surface_size / 2); + cairo_fill (cr); + cairo_set_source_rgba (cr, 0, 1, 0, .5); + cairo_rectangle (cr, + surface_size / 2, 0, + surface_size / 2, surface_size / 2); + cairo_fill (cr); + cairo_set_source_rgba (cr, 1, 0, 0, .5); + cairo_rectangle (cr, + 0, surface_size / 2, + surface_size / 2, surface_size / 2); + cairo_fill (cr); + cairo_set_source_rgba (cr, 1, 1, 1, .5); + cairo_rectangle (cr, + surface_size / 2, surface_size / 2, + surface_size / 2, surface_size / 2); + cairo_fill (cr); + + *surface_inout = cairo_surface_reference (cairo_get_target (cr)); cairo_destroy (cr); } @@ -101,7 +134,7 @@ draw (cairo_t *cr, int width, int height) (width - INTER_SIZE)/2, (height - INTER_SIZE)/2); cairo_destroy (cr2); - cairo_rectangle (cr, 15, 15, 60, 60); + cairo_rectangle (cr, 16, 16, 64, 64); cairo_set_operator (cr, CAIRO_OPERATOR_SOURCE); cairo_fill (cr); diff --git a/test/svg-surface-source.argb32.ref.png b/test/svg-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/svg-surface-source.argb32.ref.png diff --git a/test/svg-surface-source.ref.png b/test/svg-surface-source.ref.png Binary files differdeleted file mode 100644 index 3fa8bbe5..00000000 --- a/test/svg-surface-source.ref.png +++ /dev/null diff --git a/test/svg-surface-source.rgb24.ref.png b/test/svg-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/svg-surface-source.rgb24.ref.png diff --git a/test/test-fallback16-surface-source.ref.png b/test/test-fallback16-surface-source.ref.png Binary files differdeleted file mode 100644 index 3fa8bbe5..00000000 --- a/test/test-fallback16-surface-source.ref.png +++ /dev/null diff --git a/test/xlib-surface-source.argb32.ref.png b/test/xlib-surface-source.argb32.ref.png Binary files differnew file mode 100644 index 00000000..01829720 --- /dev/null +++ b/test/xlib-surface-source.argb32.ref.png diff --git a/test/xlib-surface-source.ref.png b/test/xlib-surface-source.ref.png Binary files differdeleted file mode 100644 index 3fa8bbe5..00000000 --- a/test/xlib-surface-source.ref.png +++ /dev/null diff --git a/test/xlib-surface-source.rgb24.ref.png b/test/xlib-surface-source.rgb24.ref.png Binary files differnew file mode 100644 index 00000000..0d68a82c --- /dev/null +++ b/test/xlib-surface-source.rgb24.ref.png |