/work/workdir/UnpackedTarball/cairo/src/cairo-box-inline.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */ |
2 | | /* cairo - a vector graphics library with display and print output |
3 | | * |
4 | | * Copyright © 2010 Andrea Canciani |
5 | | * |
6 | | * This library is free software; you can redistribute it and/or |
7 | | * modify it either under the terms of the GNU Lesser General Public |
8 | | * License version 2.1 as published by the Free Software Foundation |
9 | | * (the "LGPL") or, at your option, under the terms of the Mozilla |
10 | | * Public License Version 1.1 (the "MPL"). If you do not alter this |
11 | | * notice, a recipient may use your version of this file under either |
12 | | * the MPL or the LGPL. |
13 | | * |
14 | | * You should have received a copy of the LGPL along with this library |
15 | | * in the file COPYING-LGPL-2.1; if not, write to the Free Software |
16 | | * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA |
17 | | * You should have received a copy of the MPL along with this library |
18 | | * in the file COPYING-MPL-1.1 |
19 | | * |
20 | | * The contents of this file are subject to the Mozilla Public License |
21 | | * Version 1.1 (the "License"); you may not use this file except in |
22 | | * compliance with the License. You may obtain a copy of the License at |
23 | | * http://www.mozilla.org/MPL/ |
24 | | * |
25 | | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY |
26 | | * OF ANY KIND, either express or implied. See the LGPL or the MPL for |
27 | | * the specific language governing rights and limitations. |
28 | | * |
29 | | * The Original Code is the cairo graphics library. |
30 | | * |
31 | | * Contributor(s): |
32 | | * Andrea Canciani <ranma42@gmail.com> |
33 | | */ |
34 | | |
35 | | #ifndef CAIRO_BOX_H |
36 | | #define CAIRO_BOX_H |
37 | | |
38 | | #include "cairo-types-private.h" |
39 | | #include "cairo-compiler-private.h" |
40 | | #include "cairo-fixed-private.h" |
41 | | |
42 | | static inline void |
43 | | _cairo_box_set (cairo_box_t *box, |
44 | | const cairo_point_t *p1, |
45 | | const cairo_point_t *p2) |
46 | 8.35M | { |
47 | 8.35M | box->p1 = *p1; |
48 | 8.35M | box->p2 = *p2; |
49 | 8.35M | } Unexecuted instantiation: cairo-rectangle.c:_cairo_box_set Unexecuted instantiation: cairo-spline.c:_cairo_box_set Unexecuted instantiation: cairo-traps.c:_cairo_box_set Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_set Unexecuted instantiation: cairo-boxes.c:_cairo_box_set Unexecuted instantiation: cairo-clip-boxes.c:_cairo_box_set Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_set cairo-path-fixed.c:_cairo_box_set Line | Count | Source | 46 | 8.35M | { | 47 | 8.35M | box->p1 = *p1; | 48 | 8.35M | box->p2 = *p2; | 49 | 8.35M | } |
Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_set Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_box_set Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_set Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_set Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_set |
50 | | |
51 | | static inline void |
52 | | _cairo_box_from_integers (cairo_box_t *box, int x, int y, int w, int h) |
53 | 0 | { |
54 | 0 | box->p1.x = _cairo_fixed_from_int (x); |
55 | 0 | box->p1.y = _cairo_fixed_from_int (y); |
56 | 0 | box->p2.x = _cairo_fixed_from_int (x + w); |
57 | 0 | box->p2.y = _cairo_fixed_from_int (y + h); |
58 | 0 | } Unexecuted instantiation: cairo-rectangle.c:_cairo_box_from_integers Unexecuted instantiation: cairo-spline.c:_cairo_box_from_integers Unexecuted instantiation: cairo-traps.c:_cairo_box_from_integers Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_from_integers Unexecuted instantiation: cairo-boxes.c:_cairo_box_from_integers Unexecuted instantiation: cairo-clip-boxes.c:_cairo_box_from_integers Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_from_integers Unexecuted instantiation: cairo-path-fixed.c:_cairo_box_from_integers Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_from_integers Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_box_from_integers Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_from_integers Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_from_integers Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_from_integers |
59 | | |
60 | | static inline void |
61 | | _cairo_box_from_rectangle_int (cairo_box_t *box, |
62 | | const cairo_rectangle_int_t *rect) |
63 | 3.09M | { |
64 | 3.09M | box->p1.x = _cairo_fixed_from_int (rect->x); |
65 | 3.09M | box->p1.y = _cairo_fixed_from_int (rect->y); |
66 | 3.09M | box->p2.x = _cairo_fixed_from_int (rect->x + rect->width); |
67 | 3.09M | box->p2.y = _cairo_fixed_from_int (rect->y + rect->height); |
68 | 3.09M | } Unexecuted instantiation: cairo-rectangle.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-spline.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-traps.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-boxes.c:_cairo_box_from_rectangle_int cairo-clip-boxes.c:_cairo_box_from_rectangle_int Line | Count | Source | 63 | 3.09M | { | 64 | 3.09M | box->p1.x = _cairo_fixed_from_int (rect->x); | 65 | 3.09M | box->p1.y = _cairo_fixed_from_int (rect->y); | 66 | 3.09M | box->p2.x = _cairo_fixed_from_int (rect->x + rect->width); | 67 | 3.09M | box->p2.y = _cairo_fixed_from_int (rect->y + rect->height); | 68 | 3.09M | } |
Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-path-fixed.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_from_rectangle_int Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_from_rectangle_int |
69 | | |
70 | | /* assumes box->p1 is top-left, p2 bottom-right */ |
71 | | static inline void |
72 | | _cairo_box_add_point (cairo_box_t *box, |
73 | | const cairo_point_t *point) |
74 | 134M | { |
75 | 134M | if (point->x < box->p1.x) |
76 | 19.4M | box->p1.x = point->x; |
77 | 114M | else if (point->x > box->p2.x) |
78 | 25.1M | box->p2.x = point->x; |
79 | | |
80 | 134M | if (point->y < box->p1.y) |
81 | 20.1M | box->p1.y = point->y; |
82 | 113M | else if (point->y > box->p2.y) |
83 | 26.5M | box->p2.y = point->y; |
84 | 134M | } cairo-rectangle.c:_cairo_box_add_point Line | Count | Source | 74 | 84.1k | { | 75 | 84.1k | if (point->x < box->p1.x) | 76 | 4.95k | box->p1.x = point->x; | 77 | 79.1k | else if (point->x > box->p2.x) | 78 | 5.60k | box->p2.x = point->x; | 79 | | | 80 | 84.1k | if (point->y < box->p1.y) | 81 | 5.25k | box->p1.y = point->y; | 82 | 78.8k | else if (point->y > box->p2.y) | 83 | 5.64k | box->p2.y = point->y; | 84 | 84.1k | } |
cairo-spline.c:_cairo_box_add_point Line | Count | Source | 74 | 100k | { | 75 | 100k | if (point->x < box->p1.x) | 76 | 40.9k | box->p1.x = point->x; | 77 | 59.0k | else if (point->x > box->p2.x) | 78 | 39.9k | box->p2.x = point->x; | 79 | | | 80 | 100k | if (point->y < box->p1.y) | 81 | 41.1k | box->p1.y = point->y; | 82 | 58.8k | else if (point->y > box->p2.y) | 83 | 39.8k | box->p2.y = point->y; | 84 | 100k | } |
Unexecuted instantiation: cairo-traps.c:_cairo_box_add_point Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_add_point Unexecuted instantiation: cairo-boxes.c:_cairo_box_add_point Unexecuted instantiation: cairo-clip-boxes.c:_cairo_box_add_point Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_add_point cairo-path-fixed.c:_cairo_box_add_point Line | Count | Source | 74 | 133M | { | 75 | 133M | if (point->x < box->p1.x) | 76 | 19.3M | box->p1.x = point->x; | 77 | 114M | else if (point->x > box->p2.x) | 78 | 25.0M | box->p2.x = point->x; | 79 | | | 80 | 133M | if (point->y < box->p1.y) | 81 | 20.0M | box->p1.y = point->y; | 82 | 113M | else if (point->y > box->p2.y) | 83 | 26.4M | box->p2.y = point->y; | 84 | 133M | } |
Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_add_point Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_box_add_point Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_add_point Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_add_point Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_add_point |
85 | | |
86 | | static inline void |
87 | | _cairo_box_add_box (cairo_box_t *box, |
88 | | const cairo_box_t *add) |
89 | 0 | { |
90 | 0 | if (add->p1.x < box->p1.x) |
91 | 0 | box->p1.x = add->p1.x; |
92 | 0 | if (add->p2.x > box->p2.x) |
93 | 0 | box->p2.x = add->p2.x; |
94 | |
|
95 | 0 | if (add->p1.y < box->p1.y) |
96 | 0 | box->p1.y = add->p1.y; |
97 | 0 | if (add->p2.y > box->p2.y) |
98 | 0 | box->p2.y = add->p2.y; |
99 | 0 | } Unexecuted instantiation: cairo-rectangle.c:_cairo_box_add_box Unexecuted instantiation: cairo-spline.c:_cairo_box_add_box Unexecuted instantiation: cairo-traps.c:_cairo_box_add_box Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_add_box Unexecuted instantiation: cairo-boxes.c:_cairo_box_add_box Unexecuted instantiation: cairo-clip-boxes.c:_cairo_box_add_box Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_add_box Unexecuted instantiation: cairo-path-fixed.c:_cairo_box_add_box Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_add_box Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_box_add_box Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_add_box Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_add_box Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_add_box |
100 | | |
101 | | /* assumes box->p1 is top-left, p2 bottom-right */ |
102 | | static inline cairo_bool_t |
103 | | _cairo_box_contains_point (const cairo_box_t *box, |
104 | | const cairo_point_t *point) |
105 | 309k | { |
106 | 309k | return box->p1.x <= point->x && point->x <= box->p2.x && |
107 | 309k | box->p1.y <= point->y && point->y <= box->p2.y; |
108 | 309k | } cairo-rectangle.c:_cairo_box_contains_point Line | Count | Source | 105 | 131k | { | 106 | 131k | return box->p1.x <= point->x && point->x <= box->p2.x && | 107 | 131k | box->p1.y <= point->y && point->y <= box->p2.y; | 108 | 131k | } |
cairo-spline.c:_cairo_box_contains_point Line | Count | Source | 105 | 171k | { | 106 | 171k | return box->p1.x <= point->x && point->x <= box->p2.x && | 107 | 171k | box->p1.y <= point->y && point->y <= box->p2.y; | 108 | 171k | } |
Unexecuted instantiation: cairo-traps.c:_cairo_box_contains_point Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_contains_point Unexecuted instantiation: cairo-boxes.c:_cairo_box_contains_point Unexecuted instantiation: cairo-clip-boxes.c:_cairo_box_contains_point Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_contains_point Unexecuted instantiation: cairo-path-fixed.c:_cairo_box_contains_point Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_contains_point cairo-path-stroke-polygon.c:_cairo_box_contains_point Line | Count | Source | 105 | 6.22k | { | 106 | 6.22k | return box->p1.x <= point->x && point->x <= box->p2.x && | 107 | 6.22k | box->p1.y <= point->y && point->y <= box->p2.y; | 108 | 6.22k | } |
Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_contains_point Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_contains_point Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_contains_point |
109 | | |
110 | | static inline cairo_bool_t |
111 | | _cairo_box_is_pixel_aligned (const cairo_box_t *box) |
112 | 2.12M | { |
113 | | #if CAIRO_FIXED_FRAC_BITS <= 8 && 0 |
114 | | return ((cairo_fixed_unsigned_t)(box->p1.x & CAIRO_FIXED_FRAC_MASK) << 24 | |
115 | | (box->p1.y & CAIRO_FIXED_FRAC_MASK) << 16 | |
116 | | (box->p2.x & CAIRO_FIXED_FRAC_MASK) << 8 | |
117 | | (box->p2.y & CAIRO_FIXED_FRAC_MASK) << 0) == 0; |
118 | | #else /* GCC on i7 prefers this variant (bizarrely according to the profiler) */ |
119 | 2.12M | cairo_fixed_t f; |
120 | | |
121 | 2.12M | f = 0; |
122 | 2.12M | f |= box->p1.x & CAIRO_FIXED_FRAC_MASK; |
123 | 2.12M | f |= box->p1.y & CAIRO_FIXED_FRAC_MASK; |
124 | 2.12M | f |= box->p2.x & CAIRO_FIXED_FRAC_MASK; |
125 | 2.12M | f |= box->p2.y & CAIRO_FIXED_FRAC_MASK; |
126 | | |
127 | 2.12M | return f == 0; |
128 | 2.12M | #endif |
129 | 2.12M | } Unexecuted instantiation: cairo-rectangle.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-spline.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-traps.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-analysis-surface.c:_cairo_box_is_pixel_aligned cairo-boxes.c:_cairo_box_is_pixel_aligned Line | Count | Source | 112 | 562k | { | 113 | | #if CAIRO_FIXED_FRAC_BITS <= 8 && 0 | 114 | | return ((cairo_fixed_unsigned_t)(box->p1.x & CAIRO_FIXED_FRAC_MASK) << 24 | | 115 | | (box->p1.y & CAIRO_FIXED_FRAC_MASK) << 16 | | 116 | | (box->p2.x & CAIRO_FIXED_FRAC_MASK) << 8 | | 117 | | (box->p2.y & CAIRO_FIXED_FRAC_MASK) << 0) == 0; | 118 | | #else /* GCC on i7 prefers this variant (bizarrely according to the profiler) */ | 119 | 562k | cairo_fixed_t f; | 120 | | | 121 | 562k | f = 0; | 122 | 562k | f |= box->p1.x & CAIRO_FIXED_FRAC_MASK; | 123 | 562k | f |= box->p1.y & CAIRO_FIXED_FRAC_MASK; | 124 | 562k | f |= box->p2.x & CAIRO_FIXED_FRAC_MASK; | 125 | 562k | f |= box->p2.y & CAIRO_FIXED_FRAC_MASK; | 126 | | | 127 | 562k | return f == 0; | 128 | 562k | #endif | 129 | 562k | } |
cairo-clip-boxes.c:_cairo_box_is_pixel_aligned Line | Count | Source | 112 | 1.56M | { | 113 | | #if CAIRO_FIXED_FRAC_BITS <= 8 && 0 | 114 | | return ((cairo_fixed_unsigned_t)(box->p1.x & CAIRO_FIXED_FRAC_MASK) << 24 | | 115 | | (box->p1.y & CAIRO_FIXED_FRAC_MASK) << 16 | | 116 | | (box->p2.x & CAIRO_FIXED_FRAC_MASK) << 8 | | 117 | | (box->p2.y & CAIRO_FIXED_FRAC_MASK) << 0) == 0; | 118 | | #else /* GCC on i7 prefers this variant (bizarrely according to the profiler) */ | 119 | 1.56M | cairo_fixed_t f; | 120 | | | 121 | 1.56M | f = 0; | 122 | 1.56M | f |= box->p1.x & CAIRO_FIXED_FRAC_MASK; | 123 | 1.56M | f |= box->p1.y & CAIRO_FIXED_FRAC_MASK; | 124 | 1.56M | f |= box->p2.x & CAIRO_FIXED_FRAC_MASK; | 125 | 1.56M | f |= box->p2.y & CAIRO_FIXED_FRAC_MASK; | 126 | | | 127 | 1.56M | return f == 0; | 128 | 1.56M | #endif | 129 | 1.56M | } |
Unexecuted instantiation: cairo-path-bounds.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-path-fixed.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-path-stroke-boxes.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-path-stroke-polygon.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-path-stroke.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-traps-compositor.c:_cairo_box_is_pixel_aligned Unexecuted instantiation: cairo-path-stroke-traps.c:_cairo_box_is_pixel_aligned |
130 | | |
131 | | #endif /* CAIRO_BOX_H */ |