From c218ff8cbec2cc7aa3efc4c7f7d8690fbdec5e9a Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 9 Sep 2009 09:52:18 +0100 Subject: [PATCH] [test] SUBPIXEL_ANTIALIAS varation of twin Force argb32 glyphs. --- test/Makefile.am | 2 + test/Makefile.sources | 1 + test/twin-antialias-subpixel.c | 71 ++++++++++++++++++++++ test/twin-antialias-subpixel.ref.png | Bin 0 -> 3979 bytes test/twin-antialias-subpixel.xlib.ref.png | Bin 0 -> 3863 bytes 5 files changed, 74 insertions(+) create mode 100644 test/twin-antialias-subpixel.c create mode 100644 test/twin-antialias-subpixel.ref.png create mode 100644 test/twin-antialias-subpixel.xlib.ref.png diff --git a/test/Makefile.am b/test/Makefile.am index 52023c014..c03b7bf11 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -979,6 +979,8 @@ REFERENCE_IMAGES = \ twin-antialias-gray.xlib.ref.png \ twin-antialias-none.ref.png \ twin-antialias-none.xlib.ref.png \ + twin-antialias-subpixel.ref.png \ + twin-antialias-subpixel.xlib.ref.png \ unantialiased-shapes.quartz.ref.png \ unantialiased-shapes.ref.png \ unbounded-operator.gl.argb32.xfail.png \ diff --git a/test/Makefile.sources b/test/Makefile.sources index 5813b110a..37762e0f5 100644 --- a/test/Makefile.sources +++ b/test/Makefile.sources @@ -219,6 +219,7 @@ test_sources = \ twin.c \ twin-antialias-gray.c \ twin-antialias-none.c \ + twin-antialias-subpixel.c \ unantialiased-shapes.c \ unbounded-operator.c \ user-data.c \ diff --git a/test/twin-antialias-subpixel.c b/test/twin-antialias-subpixel.c new file mode 100644 index 000000000..8ecc0fc3b --- /dev/null +++ b/test/twin-antialias-subpixel.c @@ -0,0 +1,71 @@ +/* + * Copyright 2008 Chris Wilson + * + * Permission to use, copy, modify, distribute, and sell this software + * and its documentation for any purpose is hereby granted without + * fee, provided that the above copyright notice appear in all copies + * and that both that copyright notice and this permission notice + * appear in supporting documentation, and that the name of + * Chris Wilson not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Chris Wilson makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * CHRIS WILSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL CHRIS WILSON BE LIABLE FOR ANY SPECIAL, + * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER + * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR + * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + * Author: Chris Wilson + */ + +#include "cairo-test.h" + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_font_options_t *options; + + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + cairo_set_source_rgb (cr, 0, 0, 0); + + cairo_set_antialias (cr, CAIRO_ANTIALIAS_SUBPIXEL); + + cairo_select_font_face (cr, + "@cairo:", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + + options = cairo_font_options_create (); + cairo_font_options_set_antialias (options, CAIRO_ANTIALIAS_SUBPIXEL); + cairo_set_font_options (cr, options); + cairo_font_options_destroy (options); + + cairo_set_font_size (cr, 16); + + cairo_move_to (cr, 4, 14); + cairo_show_text (cr, "Is cairo's twin giza?"); + + cairo_move_to (cr, 4, 34); + cairo_text_path (cr, "Is cairo's twin giza?"); + cairo_fill (cr); + + cairo_move_to (cr, 4, 54); + cairo_text_path (cr, "Is cairo's twin giza?"); + cairo_set_line_width (cr, 2/16.); + cairo_stroke (cr); + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (twin_antialias_subpixel, + "Tests the internal font (with subpixel antialiasing)", + "twin, font", /* keywords */ + NULL, /* requirements */ + 140, 60, + NULL, draw) diff --git a/test/twin-antialias-subpixel.ref.png b/test/twin-antialias-subpixel.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ffaa57c2d5413fb9c724529c847263c5fceb09db GIT binary patch literal 3979 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 literal 0 HcmV?d00001 diff --git a/test/twin-antialias-subpixel.xlib.ref.png b/test/twin-antialias-subpixel.xlib.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..c8a79f4aa029b6b83c79ae12edc3dafb955ea66d GIT binary patch literal 3863 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