diff options
author | Carl Worth <cworth@cworth.org> | 2008-03-24 16:24:36 -0700 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2008-03-24 16:26:28 -0700 |
commit | ee3981fb92ee5fa9b049dae32421cc0015fd4bf6 (patch) | |
tree | 2c31b25da0dc6c7ff1873d02c32e1893c296144d | |
parent | 184d9cbf9c8967b741209b9d891848c9bd37dd60 (diff) |
Add new text-transform test
Previously, the test suite wasn't supplying any coverage of transformed
text rendering.
-rw-r--r-- | test/.gitignore | 1 | ||||
-rw-r--r-- | test/Makefile.am | 1 | ||||
-rw-r--r-- | test/README | 1 | ||||
-rw-r--r-- | test/text-transform-pdf-ref.png | bin | 0 -> 3796 bytes | |||
-rw-r--r-- | test/text-transform-ps-ref.png | bin | 0 -> 4154 bytes | |||
-rw-r--r-- | test/text-transform-ref.png | bin | 0 -> 6200 bytes | |||
-rw-r--r-- | test/text-transform.c | 113 |
7 files changed, 116 insertions, 0 deletions
diff --git a/test/.gitignore b/test/.gitignore index 3f7b2af7..ab211ee5 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -177,6 +177,7 @@ text-cache-crash text-glyph-range text-pattern text-rotate +text-transform text-zero-len transforms translate-show-surface diff --git a/test/Makefile.am b/test/Makefile.am index 675c6b1d..069ce1e1 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -133,6 +133,7 @@ text-antialias-subpixel$(EXEEXT) \ text-cache-crash$(EXEEXT) \ text-pattern$(EXEEXT) \ text-rotate$(EXEEXT) \ +text-transform$(EXEEXT) \ text-zero-len$(EXEEXT) \ transforms$(EXEEXT) \ translate-show-surface$(EXEEXT) \ diff --git a/test/README b/test/README index e21ba724..a241d8a3 100644 --- a/test/README +++ b/test/README @@ -220,6 +220,7 @@ Poppler renders patterned text as black https://bugs.freedesktop.org/show_bug.cgi?id=14577 -------------------------------------------------- text-pattern +text-transform Poppler should paint images with CAIRO_EXTEND_PAD https://bugs.freedesktop.org/show_bug.cgi?id=14578 diff --git a/test/text-transform-pdf-ref.png b/test/text-transform-pdf-ref.png Binary files differnew file mode 100644 index 00000000..46076bdf --- /dev/null +++ b/test/text-transform-pdf-ref.png diff --git a/test/text-transform-ps-ref.png b/test/text-transform-ps-ref.png Binary files differnew file mode 100644 index 00000000..6f33fb6c --- /dev/null +++ b/test/text-transform-ps-ref.png diff --git a/test/text-transform-ref.png b/test/text-transform-ref.png Binary files differnew file mode 100644 index 00000000..6f36b9d4 --- /dev/null +++ b/test/text-transform-ref.png diff --git a/test/text-transform.c b/test/text-transform.c new file mode 100644 index 00000000..0a886db5 --- /dev/null +++ b/test/text-transform.c @@ -0,0 +1,113 @@ +/* + * Copyright © 2006 Mozilla Corporation + * + * 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 + * Mozilla Corporation not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Mozilla Corporation makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * MOZILLA CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL MOZILLA CORPORATION 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: Vladimir Vukicevic <vladimir@pobox.com> + */ + +#include "cairo-test.h" + +static cairo_test_draw_function_t draw; + +#define SIZE 100 +#define PAD 5 + +#define FONT_SIZE 32.0 + +const char png_filename[] = "romedalen.png"; + +cairo_test_t test = { + "text-transform", + "Test various applications of the font matrix", + SIZE, SIZE, + draw +}; + +void draw_text (cairo_t *cr); + +void +draw_text (cairo_t *cr) +{ + cairo_matrix_t tm; + + /* skew */ + cairo_matrix_init (&tm, 1, 0, + -0.25, 1, + 0, 0); + cairo_matrix_scale (&tm, FONT_SIZE, FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, 50, SIZE-PAD); + cairo_show_text (cr, "A"); + + /* rotate and scale */ + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, FONT_SIZE, FONT_SIZE * 2.0); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, PAD, PAD + 25); + cairo_show_text (cr, "A"); + + cairo_matrix_init_rotate (&tm, M_PI / 2); + cairo_matrix_scale (&tm, FONT_SIZE * 2.0, FONT_SIZE); + cairo_set_font_matrix (cr, &tm); + + cairo_new_path (cr); + cairo_move_to (cr, PAD, PAD + 50); + cairo_show_text (cr, "A"); +} + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_pattern_t *pattern; + + pattern = cairo_test_create_pattern_from_png (png_filename); + cairo_pattern_set_extend (pattern, CAIRO_EXTEND_REPEAT); + + cairo_set_source_rgb (cr, 1., 1., 1.); + cairo_paint (cr); + + cairo_set_source_rgb (cr, 0., 0., 0.); + + cairo_select_font_face (cr, "Bitstream Vera Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + + draw_text (cr); + + cairo_translate (cr, SIZE, SIZE); + cairo_rotate (cr, M_PI); + + cairo_set_source (cr, pattern); + + draw_text (cr); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} |