From 65d017a4063242d221365371301e1aab5b3c6299 Mon Sep 17 00:00:00 2001 From: Sylvain Pasche Date: Tue, 5 Aug 2008 13:52:13 +0200 Subject: [PATCH] Add tests for the new LCD filter API --- test/Makefile.am | 4 ++ test/font-options.c | 6 +- test/text-antialias-subpixel-ref.png | Bin 1121 -> 974 bytes test/text-antialias-subpixel.c | 1 + test/text-lcd-filter-fir3-ref.png | Bin 0 -> 974 bytes test/text-lcd-filter-fir3.c | 85 +++++++++++++++++++++++ test/text-lcd-filter-fir5-ref.png | Bin 0 -> 974 bytes test/text-lcd-filter-fir5.c | 85 +++++++++++++++++++++++ test/text-lcd-filter-intra-pixel-ref.png | Bin 0 -> 974 bytes test/text-lcd-filter-intra-pixel.c | 85 +++++++++++++++++++++++ test/text-lcd-filter-none-ref.png | Bin 0 -> 974 bytes test/text-lcd-filter-none.c | 85 +++++++++++++++++++++++ 12 files changed, 350 insertions(+), 1 deletion(-) create mode 100644 test/text-lcd-filter-fir3-ref.png create mode 100644 test/text-lcd-filter-fir3.c create mode 100644 test/text-lcd-filter-fir5-ref.png create mode 100644 test/text-lcd-filter-fir5.c create mode 100644 test/text-lcd-filter-intra-pixel-ref.png create mode 100644 test/text-lcd-filter-intra-pixel.c create mode 100644 test/text-lcd-filter-none-ref.png create mode 100644 test/text-lcd-filter-none.c diff --git a/test/Makefile.am b/test/Makefile.am index 9554a2880..c2582230a 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -149,6 +149,10 @@ text-antialias-gray$(EXEEXT) \ text-antialias-none$(EXEEXT) \ text-antialias-subpixel$(EXEEXT) \ text-cache-crash$(EXEEXT) \ +text-lcd-filter-fir3$(EXEEXT) \ +text-lcd-filter-fir5$(EXEEXT) \ +text-lcd-filter-intra-pixel$(EXEEXT) \ +text-lcd-filter-none$(EXEEXT) \ text-pattern$(EXEEXT) \ text-rotate$(EXEEXT) \ text-transform$(EXEEXT) \ diff --git a/test/font-options.c b/test/font-options.c index b0e111ef6..3e5194c96 100644 --- a/test/font-options.c +++ b/test/font-options.c @@ -72,7 +72,11 @@ main (void) cairo_font_options_set_subpixel_order (NULL, CAIRO_SUBPIXEL_ORDER_DEFAULT); cairo_font_options_get_subpixel_order (NULL); - assert (cairo_font_options_get_subpixel_order (default_options) == CAIRO_SUBPIXEL_ORDER_DEFAULT); + assert (cairo_font_options_get_subpixel_order (default_options) == CAIRO_SUBPIXEL_ORDER_DEFAULT); + + cairo_font_options_set_lcd_filter (NULL, CAIRO_LCD_FILTER_DEFAULT); + cairo_font_options_get_lcd_filter (NULL); + assert (cairo_font_options_get_lcd_filter (default_options) == CAIRO_LCD_FILTER_DEFAULT); cairo_font_options_set_hint_style (NULL, CAIRO_HINT_STYLE_DEFAULT); cairo_font_options_get_hint_style (NULL); diff --git a/test/text-antialias-subpixel-ref.png b/test/text-antialias-subpixel-ref.png index 88f76c08e3481de5f6a29148363bea342b28d0ec..2721a504fcf19e7efc050dcd504dc0b43aa5e70a 100644 GIT binary patch delta 928 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 + */ + +#include "cairo-test.h" + +#define WIDTH 31 +#define HEIGHT 22 +#define TEXT_SIZE 12 + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "text-lcd-filter-fir3", + "Tests text rendering with a 3x3 kernel FIR LCD filter", + WIDTH, HEIGHT, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_text_extents_t extents; + cairo_font_options_t *font_options; + static char black[] = "black", blue[] = "blue"; + + /* We draw in the default black, so paint white first. */ + cairo_save (cr); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + cairo_restore (cr); + + cairo_select_font_face (cr, "Bitstream Vera Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_set_font_size (cr, TEXT_SIZE); + + font_options = cairo_font_options_create (); + cairo_get_font_options (cr, font_options); + cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_SUBPIXEL); + cairo_font_options_set_lcd_filter (font_options, CAIRO_LCD_FILTER_FIR3); + cairo_set_font_options (cr, font_options); + + cairo_font_options_destroy (font_options); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + cairo_text_extents (cr, black, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, black); + cairo_translate (cr, 0, -extents.y_bearing + 1); + + cairo_set_source_rgb (cr, 0, 0, 1); /* blue */ + cairo_text_extents (cr, blue, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, blue); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/text-lcd-filter-fir5-ref.png b/test/text-lcd-filter-fir5-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..319cdc103c8e3b64f248ff2978a2a2ad9dd40e11 GIT binary patch literal 974 zcmV;<12O!GP)z~9K(~Sl8$ag8X18=W%SxK7*3#&Y{^^IS)U})&n*we^D`%Mt zk-E4OchIH5AUP8z%jLj#e{dalbf1I9AN6eC?LN=@{XFl_KF|9ehJry|l{tokL4^|F zvk8+1PSDE<3M)ZXa}+me*!T})Qhe+f4OOKSxhtsOA25>pKYIgDWht)0CwZ#wEm}sS z(NWqOxAAP53s>3mY~R;u=rYWK7d^c8%>;IUBN?Bt_3%z!x1HndqUEeyD7wo2S?2#X znMca&c`kLFi*37brS);`&kwm3IJPbow_fFohTYs_zf5Pd7g#l|Ll=AUayhuVjh`M( z0w*Zd8#M@jx?rz)<~J_uVqdQUfq*JNHIk&41P=X>Xy(_NRJ|lc8{X@UO9UAA#&Rv)V$@ z2X}Hw&18f#n=OlO0NV=Sd!ttXHU=6wm6b)shCvRM-2#LS_w^HJxCwyhC~bwjkK!5y zl9(4hO?+3*rxENZYdDOvWo(Kbx)fWU@d76Y_j0v7m68J^0F#ERE7*Y}$0FO-#i{Ex zw4YxRNBj_tYtu+ynoogagr4LocJVpK0l1r!9j~z7wU7+QYO<1k!#hyRNdNZO7I#$B zI=p~QcctO{<5!3b;7UNg3j-QAPA*LA^~oO`HJ~@tAMnZlb4U|2^pPZMC@7_5!Xm@0 zLcf5O35yN*T*7i9hyWAGe}<+Q&G z6(!()8uooPgSrzbdy(}138|x9+B8qfIWlF6N)%Z#3y_XSJH{=sZR*(exHNyG)O=bx z(;}@$sva^M4kwznUZtr2z`qg)sXrQTlE^fR+X2cSh(^b literal 0 HcmV?d00001 diff --git a/test/text-lcd-filter-fir5.c b/test/text-lcd-filter-fir5.c new file mode 100644 index 000000000..54bee806a --- /dev/null +++ b/test/text-lcd-filter-fir5.c @@ -0,0 +1,85 @@ +/* + * Copyright © 2005 Red Hat, Inc. + * + * 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 + * Red Hat, Inc. not be used in advertising or publicity pertaining to + * distribution of the software without specific, written prior + * permission. Red Hat, Inc. makes no representations about the + * suitability of this software for any purpose. It is provided "as + * is" without express or implied warranty. + * + * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS + * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS, IN NO EVENT SHALL RED HAT, INC. 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: Carl D. Worth + */ + +#include "cairo-test.h" + +#define WIDTH 31 +#define HEIGHT 22 +#define TEXT_SIZE 12 + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "text-lcd-filter-fir5", + "Tests text rendering with a 5x5 kernel FIR LCD filter", + WIDTH, HEIGHT, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_text_extents_t extents; + cairo_font_options_t *font_options; + static char black[] = "black", blue[] = "blue"; + + /* We draw in the default black, so paint white first. */ + cairo_save (cr); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + cairo_restore (cr); + + cairo_select_font_face (cr, "Bitstream Vera Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_set_font_size (cr, TEXT_SIZE); + + font_options = cairo_font_options_create (); + cairo_get_font_options (cr, font_options); + cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_SUBPIXEL); + cairo_font_options_set_lcd_filter (font_options, CAIRO_LCD_FILTER_FIR5); + cairo_set_font_options (cr, font_options); + + cairo_font_options_destroy (font_options); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + cairo_text_extents (cr, black, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, black); + cairo_translate (cr, 0, -extents.y_bearing + 1); + + cairo_set_source_rgb (cr, 0, 0, 1); /* blue */ + cairo_text_extents (cr, blue, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, blue); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/text-lcd-filter-intra-pixel-ref.png b/test/text-lcd-filter-intra-pixel-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..03a8afa82f42d4e135995a7485eaa7c5b37f0584 GIT binary patch literal 974 zcmV;<12O!GP)z~9K(~Sl8$ag8X18=W%SxK7*3#&Y{^^IS)U})&n*we^D`%Mt zk-E4OchIH5AUP8z%jLj#e{dalbf1I9AN6eC?LN=@{XFl_KF|9ehJry|l{tokL4^|F zvk8+1PSDE<3M)ZXa}+me*!T})Qhe+f4OOKSxhtsOA25>pKYIgDWht)0CwZ#wEm}sS z(NWqOxAAP53s>3mY~R;u=rYWK7d^c8%>;IUBN?Bt_3%z!x1HndqUEeyD7wo2S?2#X znMca&c`kLFi*37brS);`&kwm3IJPbow_fFohTYs_zf5Pd7g#l|Ll=AUayhuVjh`M( z0w*Zd8#M@jx?rz)<~J_uVqdQUfq*JNHIk&41P=X>Xy(_NRJ|lc8{X@UO9UAA#&Rv)V$@ z2X}Hw&18f#n=OlO0NV=Sd!ttXHU=6wm6b)shCvRM-2#LS_w^HJxCwyhC~bwjkK!5y zl9(4hO?+3*rxENZYdDOvWo(Kbx)fWU@d76Y_j0v7m68J^0F#ERE7*Y}$0FO-#i{Ex zw4YxRNBj_tYtu+ynoogagr4LocJVpK0l1r!9j~z7wU7+QYO<1k!#hyRNdNZO7I#$B zI=p~QcctO{<5!3b;7UNg3j-QAPA*LA^~oO`HJ~@tAMnZlb4U|2^pPZMC@7_5!Xm@0 zLcf5O35yN*T*7i9hyWAGe}<+Q&G z6(!()8uooPgSrzbdy(}138|x9+B8qfIWlF6N)%Z#3y_XSJH{=sZR*(exHNyG)O=bx z(;}@$sva^M4kwznUZtr2z`qg)sXrQTlE^fR+X2cSh + */ + +#include "cairo-test.h" + +#define WIDTH 31 +#define HEIGHT 22 +#define TEXT_SIZE 12 + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "text-lcd-filter-intra-pixel", + "Tests text rendering with intra-pixel LCD filter", + WIDTH, HEIGHT, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_text_extents_t extents; + cairo_font_options_t *font_options; + static char black[] = "black", blue[] = "blue"; + + /* We draw in the default black, so paint white first. */ + cairo_save (cr); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + cairo_restore (cr); + + cairo_select_font_face (cr, "Bitstream Vera Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_set_font_size (cr, TEXT_SIZE); + + font_options = cairo_font_options_create (); + cairo_get_font_options (cr, font_options); + cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_SUBPIXEL); + cairo_font_options_set_lcd_filter (font_options, CAIRO_LCD_FILTER_INTRA_PIXEL); + cairo_set_font_options (cr, font_options); + + cairo_font_options_destroy (font_options); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + cairo_text_extents (cr, black, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, black); + cairo_translate (cr, 0, -extents.y_bearing + 1); + + cairo_set_source_rgb (cr, 0, 0, 1); /* blue */ + cairo_text_extents (cr, blue, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, blue); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +} diff --git a/test/text-lcd-filter-none-ref.png b/test/text-lcd-filter-none-ref.png new file mode 100644 index 0000000000000000000000000000000000000000..32138331e4e4bdad9a7cd919d1af126dd23442a2 GIT binary patch literal 974 zcmV;<12O!GP)z~9K(~Sl8$ag8X18=W%SxK7*3#&Y{^^IS)U})&n*we^D`%Mt zk-E4OchIH5AUP8z%jLj#e{dalbf1I9AN6eC?LN=@{XFl_KF|9ehJry|l{tokL4^|F zvk8+1PSDE<3M)ZXa}+me*!T})Qhe+f4OOKSxhtsOA25>pKYIgDWht)0CwZ#wEm}sS z(NWqOxAAP53s>3mY~R;u=rYWK7d^c8%>;IUBN?Bt_3%z!x1HndqUEeyD7wo2S?2#X znMca&c`kLFi*37brS);`&kwm3IJPbow_fFohTYs_zf5Pd7g#l|Ll=AUayhuVjh`M( z0w*Zd8#M@jx?rz)<~J_uVqdQUfq*JNHIk&41P=X>Xy(_NRJ|lc8{X@UO9UAA#&Rv)V$@ z2X}Hw&18f#n=OlO0NV=Sd!ttXHU=6wm6b)shCvRM-2#LS_w^HJxCwyhC~bwjkK!5y zl9(4hO?+3*rxENZYdDOvWo(Kbx)fWU@d76Y_j0v7m68J^0F#ERE7*Y}$0FO-#i{Ex zw4YxRNBj_tYtu+ynoogagr4LocJVpK0l1r!9j~z7wU7+QYO<1k!#hyRNdNZO7I#$B zI=p~QcctO{<5!3b;7UNg3j-QAPA*LA^~oO`HJ~@tAMnZlb4U|2^pPZMC@7_5!Xm@0 zLcf5O35yN*T*7i9hyWAGe}<+Q&G z6(!()8uooPgSrzbdy(}138|x9+B8qfIWlF6N)%Z#3y_XSJH{=sZR*(exHNyG)O=bx z(;}@$sva^M4kwznUZtr2z`qg)sXrQTlE^fR+X2cSh + */ + +#include "cairo-test.h" + +#define WIDTH 31 +#define HEIGHT 22 +#define TEXT_SIZE 12 + +static cairo_test_draw_function_t draw; + +cairo_test_t test = { + "text-lcd-filter-none", + "Tests text rendering with no LCD filter", + WIDTH, HEIGHT, + draw +}; + +static cairo_test_status_t +draw (cairo_t *cr, int width, int height) +{ + cairo_text_extents_t extents; + cairo_font_options_t *font_options; + static char black[] = "black", blue[] = "blue"; + + /* We draw in the default black, so paint white first. */ + cairo_save (cr); + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */ + cairo_paint (cr); + cairo_restore (cr); + + cairo_select_font_face (cr, "Bitstream Vera Sans", + CAIRO_FONT_SLANT_NORMAL, + CAIRO_FONT_WEIGHT_NORMAL); + cairo_set_font_size (cr, TEXT_SIZE); + + font_options = cairo_font_options_create (); + cairo_get_font_options (cr, font_options); + cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_SUBPIXEL); + cairo_font_options_set_lcd_filter (font_options, CAIRO_LCD_FILTER_NONE); + cairo_set_font_options (cr, font_options); + + cairo_font_options_destroy (font_options); + + cairo_set_source_rgb (cr, 0, 0, 0); /* black */ + cairo_text_extents (cr, black, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, black); + cairo_translate (cr, 0, -extents.y_bearing + 1); + + cairo_set_source_rgb (cr, 0, 0, 1); /* blue */ + cairo_text_extents (cr, blue, &extents); + cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing); + cairo_show_text (cr, blue); + + return CAIRO_TEST_SUCCESS; +} + +int +main (void) +{ + return cairo_test (&test); +}