~ubuntu-branches/ubuntu/karmic/moon/karmic

« back to all changes in this revision

Viewing changes to pixman/pixman/pixman-region16.c

  • Committer: Bazaar Package Importer
  • Author(s): Jo Shields
  • Date: 2009-02-14 12:01:08 UTC
  • Revision ID: james.westby@ubuntu.com-20090214120108-06539vb25vhbd8bn
Tags: upstream-1.0
Import upstream version 1.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright © 2008 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: Soren Sandmann <sandmann@redhat.com>
 
24
 */
 
25
#ifdef HAVE_CONFIG_H
 
26
#include <config.h>
 
27
#endif
 
28
 
 
29
#undef PIXMAN_DISABLE_DEPRECATED
 
30
 
 
31
#include "pixman-private.h"
 
32
 
 
33
#include <stdlib.h>
 
34
 
 
35
typedef pixman_box16_t          box_type_t;
 
36
typedef pixman_region16_data_t  region_data_type_t;
 
37
typedef pixman_region16_t       region_type_t;
 
38
 
 
39
typedef struct {
 
40
    int x, y;
 
41
} point_type_t;
 
42
 
 
43
#define PREFIX(x) pixman_region##x
 
44
 
 
45
PIXMAN_EXPORT void
 
46
pixman_region_set_static_pointers (pixman_box16_t *empty_box,
 
47
                                   pixman_region16_data_t *empty_data,
 
48
                                   pixman_region16_data_t *broken_data)
 
49
{
 
50
    pixman_region_internal_set_static_pointers (empty_box, empty_data, broken_data);
 
51
}
 
52
 
 
53
pixman_bool_t
 
54
pixman_region16_copy_from_region32 (pixman_region16_t *dst,
 
55
                                    pixman_region32_t *src)
 
56
{
 
57
    int n_boxes, i;
 
58
    pixman_box32_t *boxes32;
 
59
    pixman_box16_t *boxes16;
 
60
    pixman_bool_t retval;
 
61
 
 
62
    boxes32 = pixman_region32_rectangles (src, &n_boxes);
 
63
 
 
64
    boxes16 = pixman_malloc_ab (n_boxes, sizeof (pixman_box16_t));
 
65
 
 
66
    if (!boxes16)
 
67
        return FALSE;
 
68
 
 
69
    for (i = 0; i < n_boxes; ++i)
 
70
    {
 
71
        boxes16[i].x1 = boxes32[i].x1;
 
72
        boxes16[i].y1 = boxes32[i].y1;
 
73
        boxes16[i].x2 = boxes32[i].x2;
 
74
        boxes16[i].y2 = boxes32[i].y2;
 
75
    }
 
76
 
 
77
    pixman_region_fini (dst);
 
78
    retval = pixman_region_init_rects (dst, boxes16, n_boxes);
 
79
    free (boxes16);
 
80
    return retval;
 
81
}
 
82
 
 
83
#include "pixman-region.c"