From d92015e4f9e654580c1dac6adf860eafd804a4ba Mon Sep 17 00:00:00 2001 From: Adrian Johnson Date: Sat, 18 Jun 2016 13:15:37 +0930 Subject: [PATCH] add test text-unhinted-metrics Based on bug report in https://lists.cairographics.org/archives/cairo/2016-April/027334.html --- test/Makefile.sources | 1 + .../text-unhinted-metrics.pdf.ref.png | Bin 0 -> 4083 bytes .../text-unhinted-metrics.ps.ref.png | Bin 0 -> 3426 bytes test/reference/text-unhinted-metrics.ref.png | Bin 0 -> 4104 bytes test/text-unhinted-metrics.c | 73 ++++++++++++++++++ 5 files changed, 74 insertions(+) create mode 100644 test/reference/text-unhinted-metrics.pdf.ref.png create mode 100644 test/reference/text-unhinted-metrics.ps.ref.png create mode 100644 test/reference/text-unhinted-metrics.ref.png create mode 100644 test/text-unhinted-metrics.c diff --git a/test/Makefile.sources b/test/Makefile.sources index 8a11c0b3d..479b2caa1 100644 --- a/test/Makefile.sources +++ b/test/Makefile.sources @@ -354,6 +354,7 @@ test_sources = \ text-pattern.c \ text-rotate.c \ text-transform.c \ + text-unhinted-metrics.c \ text-zero-len.c \ thin-lines.c \ tighten-bounds.c \ diff --git a/test/reference/text-unhinted-metrics.pdf.ref.png b/test/reference/text-unhinted-metrics.pdf.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8952175ba0f7458ccbf4c41353a4e2c3400bb2 GIT binary patch literal 4083 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 Ku2Y7!3;92x80d!p literal 0 HcmV?d00001 diff --git a/test/reference/text-unhinted-metrics.ps.ref.png b/test/reference/text-unhinted-metrics.ps.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..d34ea3478f9a9c51a9bbf5977ff2821e0355180a GIT binary patch literal 3426 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 Eg4BtXj{pDw literal 0 HcmV?d00001 diff --git a/test/reference/text-unhinted-metrics.ref.png b/test/reference/text-unhinted-metrics.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..7bfe2f651500903ced69466fbf80b61d60d7617f GIT binary patch literal 4104 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 z zVfN`S8KN{v6tc6&afYNBTI5Vk{|b3_b~cWq3Rp&1l;(V-i%UsmrHRv3S?xG?Fr?c1rQvJjxzY7Bm7(c4=m{(uS6nmdJ{4@Sb_U>?fcR zVO(UMiFAsb2CJD>6D!d4q zM7XEBgCY+n0-3DQ%|KMsM$-W_mSf_$zS?LL5y(4J+&w_{mYbrm{~*-Vln~Vd(GJal z`y+;)>(Rie7ZPm?%{qREPmt~9=nB5gN$|KrdYc`M*8uh + */ + +/* Test CAIRO_HINT_METRICS_OFF with a TrueType font. + * + * Based on the test case in https://lists.cairographics.org/archives/cairo/2016-April/027334.html + */ + +#include "cairo-test.h" + +#define WIDTH 100 +#define HEIGHT 100 + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_font_options_t *font_options; + double size, y; + + cairo_set_source_rgb (cr, 1, 1, 1); + cairo_paint (cr); + + cairo_select_font_face (cr, CAIRO_TEST_FONT_FAMILY "DejaVu Sans Mono", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + + font_options = cairo_font_options_create(); + cairo_get_font_options (cr, font_options); + cairo_font_options_set_hint_metrics (font_options, CAIRO_HINT_METRICS_OFF); + cairo_font_options_set_hint_style (font_options, CAIRO_HINT_STYLE_NONE); + cairo_set_font_options (cr, font_options); + cairo_font_options_destroy (font_options); + + y = 0.0; + cairo_set_source_rgb (cr, 0, 0, 0); + for (size = 8.0; size <= 10.0; size += 0.25) { + cairo_set_font_size (cr, size); + y += 10.0; + cairo_move_to (cr, 5, y); + cairo_show_text (cr, "abcdefghijklm"); + } + + return CAIRO_TEST_SUCCESS; +} + +CAIRO_TEST (text_unhinted_metrics, + "Test CAIRO_HINT_METRICS_OFF", + "text, font", /* keywords */ + NULL, /* requirements */ + WIDTH, HEIGHT, + NULL, draw)