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

« back to all changes in this revision

Viewing changes to test/operator-alpha.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 © 2008 Chris Wilson
 
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
 * Chris Wilson not be used in advertising or publicity pertaining to
 
10
 * distribution of the software without specific, written prior
 
11
 * permission. Chris Wilson 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
 * CHRIS WILSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
 
16
 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 
17
 * FITNESS, IN NO EVENT SHALL CHRIS WILSON 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: Chris Wilson <chris@chris-wilson.co.uk>
 
24
 */
 
25
 
 
26
#include "cairo-test.h"
 
27
 
 
28
#define N_OPERATORS (CAIRO_OPERATOR_SATURATE + 1)
 
29
#define SIZE 10
 
30
#define PAD 3
 
31
 
 
32
static cairo_test_draw_function_t draw;
 
33
 
 
34
static const cairo_test_t test = {
 
35
    "operator-alpha",
 
36
    "Tests using set_operator() with an non-opaque source",
 
37
    (SIZE+PAD) * N_OPERATORS + PAD, SIZE + 2*PAD,
 
38
    draw
 
39
};
 
40
 
 
41
static cairo_test_status_t
 
42
draw (cairo_t *cr, int width, int height)
 
43
{
 
44
    unsigned int n;
 
45
 
 
46
    cairo_translate (cr, PAD, PAD);
 
47
 
 
48
    for (n = 0; n < N_OPERATORS; n++) {
 
49
        cairo_reset_clip (cr);
 
50
        cairo_rectangle (cr, 0, 0, SIZE, SIZE);
 
51
        cairo_clip (cr);
 
52
 
 
53
        cairo_set_source_rgb (cr, 1, 0, 0);
 
54
        cairo_set_operator (cr, CAIRO_OPERATOR_OVER);
 
55
        cairo_rectangle (cr, 0, 0, SIZE-PAD, SIZE-PAD);
 
56
        cairo_fill (cr);
 
57
 
 
58
        cairo_set_source_rgba (cr, 0, 0, 1, .33);
 
59
        cairo_set_operator (cr, n);
 
60
        cairo_rectangle (cr, PAD, PAD, SIZE-PAD, SIZE-PAD);
 
61
        cairo_fill (cr);
 
62
 
 
63
        cairo_translate (cr, SIZE+PAD, 0);
 
64
    }
 
65
 
 
66
    return CAIRO_TEST_SUCCESS;
 
67
}
 
68
 
 
69
int
 
70
main (void)
 
71
{
 
72
    return cairo_test (&test);
 
73
}
 
74