~ubuntu-branches/ubuntu/intrepid/cairo/intrepid-updates

« back to all changes in this revision

Viewing changes to test/text-lcd-filter-fir5.c

  • Committer: Bazaar Package Importer
  • Author(s): Fabien Tassin
  • Date: 2008-09-25 16:22:33 UTC
  • mfrom: (1.1.9 upstream)
  • Revision ID: james.westby@ubuntu.com-20080925162233-btx61ymk181i7mcc
Tags: 1.7.6-0ubuntu1
* New upstream version. Most noticable changes are:
  - some API changes with especially the removal of
    cairo_font_options_set_lcd_filter and cairo_font_options_get_lcd_filter
  - xlib: Faster bookkeeping
  - PS: Fix gradients with non-constant alpha
  - Fix deadlock in user-font code
* debian/patches/00list: Remove 03_from_git_fix_lcd_filter_default.dpatch,
  add debian/patches/03_fix_ftbfs_withing_xcb.dpatch
* debian/libcairo2.symbols, debian/libcairo-directfb2.symbols: update
  list of symbols

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Copyright © 2005 Red Hat, Inc.
3
 
 *
4
 
 * Permission to use, copy, modify, distribute, and sell this software
5
 
 * and its documentation for any purpose is hereby granted without
6
 
 * fee, provided that the above copyright notice appear in all copies
7
 
 * and that both that copyright notice and this permission notice
8
 
 * appear in supporting documentation, and that the name of
9
 
 * Red Hat, Inc. not be used in advertising or publicity pertaining to
10
 
 * distribution of the software without specific, written prior
11
 
 * permission. Red Hat, Inc. makes no representations about the
12
 
 * suitability of this software for any purpose.  It is provided "as
13
 
 * is" without express or implied warranty.
14
 
 *
15
 
 * RED HAT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
16
 
 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17
 
 * FITNESS, IN NO EVENT SHALL RED HAT, INC. BE LIABLE FOR ANY SPECIAL,
18
 
 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
19
 
 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
20
 
 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
21
 
 * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22
 
 *
23
 
 * Author: Carl D. Worth <cworth@cworth.org>
24
 
 */
25
 
 
26
 
#include "cairo-test.h"
27
 
 
28
 
#define WIDTH  31
29
 
#define HEIGHT 22
30
 
#define TEXT_SIZE 12
31
 
 
32
 
static cairo_test_draw_function_t draw;
33
 
 
34
 
cairo_test_t test = {
35
 
    "text-lcd-filter-fir5",
36
 
    "Tests text rendering with a 5x5 kernel FIR LCD filter",
37
 
    WIDTH, HEIGHT,
38
 
    draw
39
 
};
40
 
 
41
 
static cairo_test_status_t
42
 
draw (cairo_t *cr, int width, int height)
43
 
{
44
 
    cairo_text_extents_t extents;
45
 
    cairo_font_options_t *font_options;
46
 
    static char black[] = "black", blue[] = "blue";
47
 
 
48
 
    /* We draw in the default black, so paint white first. */
49
 
    cairo_save (cr);
50
 
    cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); /* white */
51
 
    cairo_paint (cr);
52
 
    cairo_restore (cr);
53
 
 
54
 
    cairo_select_font_face (cr, "Bitstream Vera Sans",
55
 
                            CAIRO_FONT_SLANT_NORMAL,
56
 
                            CAIRO_FONT_WEIGHT_NORMAL);
57
 
    cairo_set_font_size (cr, TEXT_SIZE);
58
 
 
59
 
    font_options = cairo_font_options_create ();
60
 
    cairo_get_font_options (cr, font_options);
61
 
    cairo_font_options_set_antialias (font_options, CAIRO_ANTIALIAS_SUBPIXEL);
62
 
    cairo_font_options_set_lcd_filter (font_options, CAIRO_LCD_FILTER_FIR5);
63
 
    cairo_set_font_options (cr, font_options);
64
 
 
65
 
    cairo_font_options_destroy (font_options);
66
 
 
67
 
    cairo_set_source_rgb (cr, 0, 0, 0); /* black */
68
 
    cairo_text_extents (cr, black, &extents);
69
 
    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
70
 
    cairo_show_text (cr, black);
71
 
    cairo_translate (cr, 0, -extents.y_bearing + 1);
72
 
 
73
 
    cairo_set_source_rgb (cr, 0, 0, 1); /* blue */
74
 
    cairo_text_extents (cr, blue, &extents);
75
 
    cairo_move_to (cr, -extents.x_bearing, -extents.y_bearing);
76
 
    cairo_show_text (cr, blue);
77
 
 
78
 
    return CAIRO_TEST_SUCCESS;
79
 
}
80
 
 
81
 
int
82
 
main (void)
83
 
{
84
 
    return cairo_test (&test);
85
 
}